<rss version="2.0">
   <channel>
      <title>West Wind Message Board Messages</title>
      <link>http://www.foxcentral.net</link>
      <description>West Wind Message Board New Messages</description>
      <language>en-us</language>
      <ttl>1440</ttl>       <item>
			<title>Convert this to wwipstuff / wwxml / wwhttp ?</title>
			<pubDate>Thu, 9 Feb 2012 15:30:28 GMT</pubDate>
			<guid isPermaLink="false">3FG0G3CIB</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Convert this to wwipstuff / wwxml / wwhttp ?&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    West Wind Internet Protocols
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Convert this to wwipstuff / wwxml / wwhttp ?
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/09/2012&lt;br /&gt;
           07:30:28 AM&lt;br /&gt;
          3FG0G3CIB
          &lt;a href="default.asp?Thread=3FG0G5SXY&amp;MsgId=3FG0G3CIB"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/163dbfc3c345cada8fe7238116c46f53?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJDO('chrisodonnell2','gmail.com','re%3A%20Convert%20this%20to%20wwipstuff%20%2F%20wwxml%20%2F%20wwhttp%20%3F');" &gt;Chris ODonnell&lt;/a&gt;&lt;script&gt; function _3FG0HZJDO(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;All&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Do the wwisptuff / wwxml / wwhttp classes offer a more simple means of replicating the functionality of the code below?&lt;p&gt;&lt;br&gt;&lt;pre&gt;&lt;div class="vfpcode"&gt;cDatasend=&lt;span class="codestring"&gt;"transtype=SALE&amp;clientid=1&amp;siteid=12345678&amp;priceid=2&amp;password=test"&lt;/span&gt;
cDatasend=cDatasend+&lt;span class="codestring"&gt;"&amp;first_name="&lt;/span&gt;+thisform.encodetext(cFirstname)
cDatasend=cDatasend+&lt;span class="codestring"&gt;"&amp;last_name="&lt;/span&gt;+thisform.encodetext(cLastname)
cDatasend=cDatasend+&lt;span class="codestring"&gt;"&amp;address="&lt;/span&gt;+thisform.encodetext(cAddress)
cDatasend=cDatasend+&lt;span class="codestring"&gt;"&amp;city="&lt;/span&gt;+thisform.encodetext(cCity)
cDatasend=cDatasend+&lt;span class="codestring"&gt;"&amp;state="&lt;/span&gt;+thisform.encodetext(cState)
cDatasend=cDatasend+&lt;span class="codestring"&gt;"&amp;zip="&lt;/span&gt;+thisform.encodetext(cZipcode)
cDatasend=cDatasend+&lt;span class="codestring"&gt;"&amp;country="&lt;/span&gt;+thisform.encodetext(cCountry)
cDatasend=cDatasend+&lt;span class="codestring"&gt;"&amp;phone="&lt;/span&gt;+thisform.encodetext(cPhone)
cDatasend=cDatasend+&lt;span class="codestring"&gt;"&amp;email="&lt;/span&gt;+thisform.encodetext(cEmail)
cTargetURL=&lt;span class="codestring"&gt;"https://blahblahblah/blah_v2.asp"&lt;/span&gt;
cError=&lt;span class="functions"&gt;on&lt;/span&gt;(&lt;span class="codestring"&gt;'error'&lt;/span&gt;)
&lt;span class="functions"&gt;on&lt;/span&gt; &lt;span class="functions"&gt;error&lt;/span&gt; lErrorflag=.t.
oXmlhttp=&lt;span class="functions"&gt;createobject&lt;/span&gt;(&lt;span class="codestring"&gt;'MSXML2.ServerXMLHTTP'&lt;/span&gt;)
&lt;span class="programcontrol"&gt;if&lt;/span&gt; lErrorflag=.t.
	&lt;span class="functions"&gt;on&lt;/span&gt; &lt;span class="functions"&gt;error&lt;/span&gt; &amp;cError.
	=&lt;span class="functions"&gt;messagebox&lt;/span&gt;(&lt;span class="codestring"&gt;'Cannot Initialize XML Object!'&lt;/span&gt;,0+16)
	&lt;span class="commands"&gt;return&lt;/span&gt;
&lt;span class="programcontrol"&gt;endif&lt;/span&gt;
oXmlhttp.&lt;span class="commands"&gt;open&lt;/span&gt;(&lt;span class="codestring"&gt;"POST"&lt;/span&gt;,cTargetURL,.f.)
&lt;span class="programcontrol"&gt;if&lt;/span&gt; lErrorflag=.t.
	&lt;span class="functions"&gt;on&lt;/span&gt; &lt;span class="functions"&gt;error&lt;/span&gt; &amp;cError.
	=&lt;span class="functions"&gt;messagebox&lt;/span&gt;(&lt;span class="codestring"&gt;'Cannot Open URL!'&lt;/span&gt;,0+16)
	&lt;span class="commands"&gt;return&lt;/span&gt;
&lt;span class="programcontrol"&gt;endif&lt;/span&gt;
oXmlhttp.setRequestHeader(&lt;span class="codestring"&gt;"Content-Type"&lt;/span&gt;,&lt;span class="codestring"&gt;"application/x-www-form-urlencoded"&lt;/span&gt;)
&lt;span class="programcontrol"&gt;if&lt;/span&gt; lErrorflag=.t.
	&lt;span class="functions"&gt;on&lt;/span&gt; &lt;span class="functions"&gt;error&lt;/span&gt; &amp;cError.
	=&lt;span class="functions"&gt;messagebox&lt;/span&gt;(&lt;span class="codestring"&gt;'Header Request Failed!'&lt;/span&gt;,0+16)
	&lt;span class="commands"&gt;return&lt;/span&gt;
&lt;span class="programcontrol"&gt;endif&lt;/span&gt;
oXmlhttp.send(cDatasend)
&lt;span class="programcontrol"&gt;if&lt;/span&gt; lErrorflag=.t.
	&lt;span class="functions"&gt;on&lt;/span&gt; &lt;span class="functions"&gt;error&lt;/span&gt; &amp;cError.
	=&lt;span class="functions"&gt;messagebox&lt;/span&gt;(&lt;span class="codestring"&gt;'Send Failed!'&lt;/span&gt;,0+16)
	&lt;span class="commands"&gt;return&lt;/span&gt;
&lt;span class="programcontrol"&gt;endif&lt;/span&gt;
cResponse=oXmlhttp.responseText
&lt;span class="programcontrol"&gt;if&lt;/span&gt; lErrorflag=.t.
	&lt;span class="functions"&gt;on&lt;/span&gt; &lt;span class="functions"&gt;error&lt;/span&gt; &amp;cError.
	=&lt;span class="functions"&gt;messagebox&lt;/span&gt;(&lt;span class="codestring"&gt;'Response Failed!'&lt;/span&gt;,0+16)
	&lt;span class="commands"&gt;return&lt;/span&gt;
&lt;span class="programcontrol"&gt;endif&lt;/span&gt;
thisform.edit1.&lt;span class="properties"&gt;value&lt;/span&gt;=cResponse&lt;/div&gt;&lt;/pre&gt;&lt;p&gt;&lt;br&gt;I have been using wwHTTP with AddPostKey to send encoded DBFs (rough code below), but i'm not sure how to precede in replicating the code above using the WW classes. Any help appreciated.&lt;p&gt;&lt;br&gt;&lt;pre&gt;&lt;div class="vfpcode"&gt;oSendObj=&lt;span class="functions"&gt;CREATEOBJECT&lt;/span&gt;(&lt;span class="codestring"&gt;"wwhttp"&lt;/span&gt;)
&lt;span class="codecomment"&gt;*--- encode the DBF file
*---&lt;/span&gt;
lcFileBinary = oSendObj.EncodeDBF(lcdbf,lHasMemo)
&lt;span class="functions"&gt;STRTOFILE&lt;/span&gt;(LCFILEBINARY,lcfilename) &lt;span class="codecomment"&gt;&amp;&amp; dump the encoded file to disk
oSendObj.nHttpPostMode = 2 &lt;span class="codecomment"&gt;&amp;&amp; multipart forms&lt;/span&gt;
oSendObj.AddPostKey(&lt;span class="codestring"&gt;"USER"&lt;/span&gt;,lcUser))
oSendObj.AddPostKey(&lt;span class="codestring"&gt;"PASSWORD"&lt;/span&gt;, lcPassword)
oSendObj.AddPostKey(&lt;span class="codestring"&gt;"DATATYPE"&lt;/span&gt;,lcWhat)	
oSendObj.AddPostKey(&lt;span class="codestring"&gt;'CUSTFILE'&lt;/span&gt;, lcfilename, .T.)
LCBUFFER= &lt;span class="codestring"&gt;''&lt;/span&gt;
LNSIZE = 0
lcHtml = oSendObj.httpget(zUrlSendFile)&lt;/div&gt;&lt;/pre&gt;&lt;br&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FG0G3CIB";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FG0G3CIB</link>
			<author>Chris ODonnell</author>
     </item>
     <item>
			<title>Re: Alternatives To Foxpro</title>
			<pubDate>Thu, 9 Feb 2012 14:47:35 GMT</pubDate>
			<guid isPermaLink="false">3FG0EK6LV</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Alternatives To Foxpro&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    FoxPro Programming
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Alternatives To Foxpro
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/09/2012&lt;br /&gt;
           06:47:35 AM&lt;br /&gt;
          3FG0EK6LV
          &lt;a href="default.asp?Thread=3FF0F47NU&amp;MsgId=3FG0EK6LV"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/7f802b1f30239f5c07893f4346ab205e?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJDU('Marty','customsoftworks.com','re%3A%20Re%3A%20Alternatives%20To%20Foxpro');" &gt;Marty Cantwell&lt;/a&gt;&lt;script&gt; function _3FG0HZJDU(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJDV('ddodge','xmission.com');" &gt;Doug Dodge&lt;/a&gt;&lt;script&gt; function _3FG0HZJDV(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Doug,&lt;p&gt;You found very elegant words that state what I feel very nicely! I've been one of the hold-outs for older technology out of fear of exploring new frontiers myself.  For example; I think I may have been one of the last CP/M users and developers on this continent!  But when I finally migrated to DOS, I had the adventure of my first "PC" being an AT running at 12MHZ.  Your post helped me to remember how rewarding it can be and how much fun you can have looking over the horizon!&lt;p&gt;Well done,&lt;p&gt;Marty&lt;p&gt;&lt;i&gt;Marty, et al&lt;/i&gt;&lt;p&gt;&lt;i&gt;Entrepeneurs are what I call 'over the horizon' folks. Always looking for the next great adventure. Typically, after one of these folks has blazed the trail, the next set of folks arrive - the 'farmers', or those who take the trail and make something of it, building cities and infrastructures, etc. They are needed. Sometimes, like in Boston, they leave the old cow trails and you have a mess. *s* Sometimes they tear old 'stuff' down and put in new freeways, but you do lose the old stuff in the process. That's the price we pay to drive faster or get more done. Some choose to keep the old stuff and some want the new stuff more so..&lt;/i&gt;&lt;p&gt;&lt;i&gt;I think what a lot of folks are missing is the &lt;b&gt;great sense of adventure&lt;/b&gt; that we all had early on with xBASE. The reality is that the 'pioneers' need the open road, not the settled city. xBASE really had been a great ride and I feel very fortunate to have been there from the start as well - but it's time to find some new adventures, at least for me.&lt;/i&gt;&lt;p&gt;&lt;i&gt;What I have always appreciated about Rick is that he's not abandoned the pioneer (read: entrepeneurial) spirit and has helped many of us to look to 'new stuff' as he has shared his particular journey. I read his blogs now for the .NET stuff rather than the FoxPro stuff. As a result of reading his posts I WANT to learn the new technology - really because I want that sense of adventure to be more crisp in my mind. I really appreciate this site for that reason.&lt;/i&gt;&lt;p&gt;&lt;i&gt;I also think that many of us miss the camaraderie we have enjoyed in the FoxPro community especially. That doesn't go away because we take that with us. And that's another reason I always visit here each day - to keep plugged in to the (evolving) community. &lt;/i&gt;&lt;p&gt;&lt;i&gt;I am REALLY glad and happy to have been a part of all of this and love the dear friends I have made along the way but I am also moving on - selfishly I suppose, but I want to learn some new stuff again. &lt;/i&gt;&lt;p&gt;&lt;i&gt;Best,&lt;/i&gt;&lt;p&gt;&lt;i&gt;Doug&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Very nicely put Rick!&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;IMHO, you were spot on here.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I started coding in xBase back in the Vulcan days, before Ashton-Tate sprung up to be the "dBase" folks.  I've also worked in Condor, dBase and dBaseII on both the CP/M and DOS platforms, as well as dBaseIII and dBaseIII+ on the DOS platform.  Moving from version to version was primarily due to language enhancements that came along which made life in the xBase world a little easier.  When FoxPro2 came out from Fox Software, a demo set of disks showed me that you could have not only blindingly faster data access (and programs), but could also create a system that could be distributed royalty free!  But what hooked me with this line of products was the language enhancements over the next few versions and thus I am still using VFP now.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I agree that dBase has had it's day, especially when I looked at it a few years ago.  Borland had added OOP capabilities to the product after dBaseIV had been out a while, but if felt more like Paradox's OOP system (probably because Borland owned it?) and seemed to me like a step backwards from what I had learned in VFP.  Of course that is probably just due to my limited knowlege.  Who knows what the new group who owns it now came up with but I understand that they did a complete re-write of the product and I've just not been interested enough to take a look yet...&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;As with spoken languages, programming languages become less used or can die out completely, so for now I am starting to learn .NET and how I can migrate that direction.  Interestingly, I still get the odd job every few years supporting, fixing or modifying dBaseIII+ systems!  That I know of, there is a large publishing company and a leather product manufacturing company in the midwest still running their systems with dBaseIII+ programs!&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;But I want to thank you and other developers like Richard for having a balanced and realistic view of how things associated with our favorite language is proceeding.  It's refreshing compared to the plethora of nay-sayers that have doomed various xBase dialects for so many years!  It has at times reminded me of the Chicken Little nursery rhyme...&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Marty&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Richard,&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I think one way to look at it is that dbase's time has come and gone. We may love FoxPro and what it can do, but the platform it currently running on is getting crumbly for VFP (especially the desktop) and that will only get worse as time goes on.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;While there maybe alternatives that will let you continue to use dBase languages, the question you have to ask yourself is: Do you really want to be in that market niche where few people will be, where there are few peers, support or companies/OOS devs to keep building new features and add-ons? Who will keep extending functionality and innovating with recent market trends to improve the experience? Who will support it? ANd what developers will want to extend it with their own tools? I think you'll find that there are precious few folks who want to be the leaders to take a product forward and not just make it run as other tools have.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;We already know how awkard it is to be in a niche market and jumping off the VFP wagon onto an even less known dBase language solution is only going to aggrevate that. Yes you can use your existing code and skills, but there is not likely to be any community or support worth mentioning.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;There are other solutions out there for dynamic languages that are more like FoxPro (although none have the data richness of VFP of course - and when that's taken out, a lot of the dynamic/static advantages/disadvantages come out a wash IMHO) that are popular and actively developed with large developer communities around them. Especially for the Web there are LOTS of choices. For desktop the choices are there too but they are pretty ugly with runtimes of Web frameworks. &lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Either way I think dBase had its time, but it's not going to come roaring back - ever. And if you stay in that niche then you might as well stick with VFP which I think is still the biggest player in the dBase space (for whatever that's worth).&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;+++ Rick ---&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Hi all,&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Over the last few years there have been many discussions to the eventual end of MS Visual Foxpro.  There have been several projects sprung up that have attempted to either extend the life of VFP or become an alternative replacement.  The replacements have either totally failed or do not resemble VFP in any such way.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;The logical evolution for desktop development in Windows appears to be with little question the .NET framework.  My biggest bugbear with this is that although I love C# as a language the closest language to VFP is VB.NET and to be honest doesn't come close.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Giving this some long thought I questioned why I would miss VFP.  I have totally accepted .NET and C# yet something was missing.  From time to time I end up cutting some VFP code for legacy systems that have not migrated yet and then it struck me.  Its nothing more than the VFP language itself that I will miss, not VFP.  Looking at the roots of this, VFP was based on the DBase language, my initial searches for VFP language alternatives proved pretty fruitless.  I specifically wanted to find the language reincarnated in .NET, no joy.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I was so disheartened as I was coming to the realisation we may actually be seeing a death of a language.  People could argue the langauge is outdated, but the truth is it isn't really.  It's just a language and it can evolve sensibly like any other.  There are many other successful dynamic languages like VFP about.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I then thought harder.  VFP fell out with Ashton-Tate back in the day over the DBase langauge.  If you look at this single fact, the VFP language is truely a Dbase language at its heart.  This made me look, and what do you know, there it is, DBase.  DBase appears to still exist and under what seems to be something close to its original company.  The website is: &lt;a href="http://www.dbase.com"&gt;http://www.dbase.com.&lt;/a&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;It appears the language still lives on in a more modern way.  It is a shame it is not based on .NET, not sure if this is a disadvantage though.  My biggest concern is why I have not picked up on this in any forums anywhere when people were looking for VFP alternatives?  Is this purely on the basis of the history between VFP and DBase?  You would think those days were gone?  I'm interested in whether people even realised DBase even still existed?  Whether or not I look at this any closer, I'm just humbled by the fact that we have not seen a death of a language.  For me that would be a total tradgedy.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;What are peoples thoughts on this?&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Regards&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Richard&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;&lt;br&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;p&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;img src="http://www.west-wind.com/images/wcmvp.gif"&gt;&lt;br&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FG0EK6LV";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FG0EK6LV</link>
			<author>Marty Cantwell</author>
     </item>
     <item>
			<title>Re: Alternatives To Foxpro</title>
			<pubDate>Thu, 9 Feb 2012 14:47:35 GMT</pubDate>
			<guid isPermaLink="false">3FG0EK6MT</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Alternatives To Foxpro&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    FoxPro Programming
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Alternatives To Foxpro
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/09/2012&lt;br /&gt;
           06:47:35 AM&lt;br /&gt;
          3FG0EK6MT
          &lt;a href="default.asp?Thread=3FF0F47NU&amp;MsgId=3FG0EK6MT"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/7f802b1f30239f5c07893f4346ab205e?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJE2('Marty','customsoftworks.com','re%3A%20Re%3A%20Alternatives%20To%20Foxpro');" &gt;Marty Cantwell&lt;/a&gt;&lt;script&gt; function _3FG0HZJE2(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJE3('rstrahl','west-wind.com');" &gt;Rick Strahl&lt;/a&gt;&lt;script&gt; function _3FG0HZJE3(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Rick,&lt;p&gt;I too echo what both you and Doug stated about the Fox community.  I don't recall ever feeling at any time that I was stupid for not understanding something about FoxPro, Web Connection, OOP as applied to the Fox, etc., even when I couldn't quite express my delimma or word a question in a clear way.&lt;p&gt;When a local friend and colleague fell ill with tongue cancer 19 years back, I stepped in to help him wrap up some DataFlex work for some of his customers before he passed away.  DataFlex has a nice template style of screen form development for console apps and a visual system for Windows apps.  I came across something I could not figure out with the documentation, and since he was recovering from surgery I went to the forums and asked a simple question.  One person answered the question only after 20 flamed me thoroughly for bringing such a basic form design question to the forums!  Ends up the form design was sort-of half template, half scripting.&lt;p&gt;The Fox community is indeed a beautifully unique community...&lt;p&gt;I'm not sure that I can be very inventive anymore (or that I really ever was), but you have made me realize that perhaps I should spend at least a little time out on the front edge of what's new and exciting!  I had really gotten away from that over the last decade or so.&lt;p&gt;Thanks!&lt;p&gt;Marty&lt;p&gt;&lt;i&gt;Doug,&lt;/i&gt;&lt;p&gt;&lt;i&gt;That's a great point actually.&lt;/i&gt;&lt;p&gt;&lt;i&gt;We live in completely different times than we did back in the mid 90's when I started doing Web development. Software development has matured a bit since then, and I think the applications we built today tend to be a lot more sophisticated than most of what was built and accepted back in those days.&lt;/i&gt;&lt;p&gt;&lt;i&gt;I've also noticed that in the last few years technology has gone a bit stale. We're basically at a point where we are re-hashing of doing things we've done all along in different sometimes more efficient ways, rather than trailblazing into really new territory. A lot of what happens today is more about being more productive than really figuring out technology. IOW, it's more 'down to business' as opposed to 'explorer and figure out hairy technology issues' that I remember somewhat fondly.&lt;/i&gt;&lt;p&gt;&lt;i&gt;It's almost like we're continually stuck in that 'maintenance' mode rather than the inventive mode :-) I miss that, but realistically it helps the majority of people to get their application development work done.&lt;/i&gt;&lt;p&gt;&lt;i&gt;Nevertheless, the Fox community was certainly the most unique developer community i've ever been part of. Nothing has ever compared since - certainly not the stodgy .NET community :-)&lt;/i&gt;&lt;p&gt;&lt;br&gt;&lt;i&gt;+++ Rick ---&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Marty, et al&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Entrepeneurs are what I call 'over the horizon' folks. Always looking for the next great adventure. Typically, after one of these folks has blazed the trail, the next set of folks arrive - the 'farmers', or those who take the trail and make something of it, building cities and infrastructures, etc. They are needed. Sometimes, like in Boston, they leave the old cow trails and you have a mess. *s* Sometimes they tear old 'stuff' down and put in new freeways, but you do lose the old stuff in the process. That's the price we pay to drive faster or get more done. Some choose to keep the old stuff and some want the new stuff more so..&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I think what a lot of folks are missing is the &lt;b&gt;great sense of adventure&lt;/b&gt; that we all had early on with xBASE. The reality is that the 'pioneers' need the open road, not the settled city. xBASE really had been a great ride and I feel very fortunate to have been there from the start as well - but it's time to find some new adventures, at least for me.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;What I have always appreciated about Rick is that he's not abandoned the pioneer (read: entrepeneurial) spirit and has helped many of us to look to 'new stuff' as he has shared his particular journey. I read his blogs now for the .NET stuff rather than the FoxPro stuff. As a result of reading his posts I WANT to learn the new technology - really because I want that sense of adventure to be more crisp in my mind. I really appreciate this site for that reason.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I also think that many of us miss the camaraderie we have enjoyed in the FoxPro community especially. That doesn't go away because we take that with us. And that's another reason I always visit here each day - to keep plugged in to the (evolving) community. &lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I am REALLY glad and happy to have been a part of all of this and love the dear friends I have made along the way but I am also moving on - selfishly I suppose, but I want to learn some new stuff again. &lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Best,&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Doug&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Very nicely put Rick!&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;IMHO, you were spot on here.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I started coding in xBase back in the Vulcan days, before Ashton-Tate sprung up to be the "dBase" folks.  I've also worked in Condor, dBase and dBaseII on both the CP/M and DOS platforms, as well as dBaseIII and dBaseIII+ on the DOS platform.  Moving from version to version was primarily due to language enhancements that came along which made life in the xBase world a little easier.  When FoxPro2 came out from Fox Software, a demo set of disks showed me that you could have not only blindingly faster data access (and programs), but could also create a system that could be distributed royalty free!  But what hooked me with this line of products was the language enhancements over the next few versions and thus I am still using VFP now.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I agree that dBase has had it's day, especially when I looked at it a few years ago.  Borland had added OOP capabilities to the product after dBaseIV had been out a while, but if felt more like Paradox's OOP system (probably because Borland owned it?) and seemed to me like a step backwards from what I had learned in VFP.  Of course that is probably just due to my limited knowlege.  Who knows what the new group who owns it now came up with but I understand that they did a complete re-write of the product and I've just not been interested enough to take a look yet...&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;As with spoken languages, programming languages become less used or can die out completely, so for now I am starting to learn .NET and how I can migrate that direction.  Interestingly, I still get the odd job every few years supporting, fixing or modifying dBaseIII+ systems!  That I know of, there is a large publishing company and a leather product manufacturing company in the midwest still running their systems with dBaseIII+ programs!&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;But I want to thank you and other developers like Richard for having a balanced and realistic view of how things associated with our favorite language is proceeding.  It's refreshing compared to the plethora of nay-sayers that have doomed various xBase dialects for so many years!  It has at times reminded me of the Chicken Little nursery rhyme...&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Marty&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Richard,&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I think one way to look at it is that dbase's time has come and gone. We may love FoxPro and what it can do, but the platform it currently running on is getting crumbly for VFP (especially the desktop) and that will only get worse as time goes on.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;While there maybe alternatives that will let you continue to use dBase languages, the question you have to ask yourself is: Do you really want to be in that market niche where few people will be, where there are few peers, support or companies/OOS devs to keep building new features and add-ons? Who will keep extending functionality and innovating with recent market trends to improve the experience? Who will support it? ANd what developers will want to extend it with their own tools? I think you'll find that there are precious few folks who want to be the leaders to take a product forward and not just make it run as other tools have.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;We already know how awkard it is to be in a niche market and jumping off the VFP wagon onto an even less known dBase language solution is only going to aggrevate that. Yes you can use your existing code and skills, but there is not likely to be any community or support worth mentioning.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;There are other solutions out there for dynamic languages that are more like FoxPro (although none have the data richness of VFP of course - and when that's taken out, a lot of the dynamic/static advantages/disadvantages come out a wash IMHO) that are popular and actively developed with large developer communities around them. Especially for the Web there are LOTS of choices. For desktop the choices are there too but they are pretty ugly with runtimes of Web frameworks. &lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Either way I think dBase had its time, but it's not going to come roaring back - ever. And if you stay in that niche then you might as well stick with VFP which I think is still the biggest player in the dBase space (for whatever that's worth).&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;+++ Rick ---&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Hi all,&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Over the last few years there have been many discussions to the eventual end of MS Visual Foxpro.  There have been several projects sprung up that have attempted to either extend the life of VFP or become an alternative replacement.  The replacements have either totally failed or do not resemble VFP in any such way.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;The logical evolution for desktop development in Windows appears to be with little question the .NET framework.  My biggest bugbear with this is that although I love C# as a language the closest language to VFP is VB.NET and to be honest doesn't come close.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Giving this some long thought I questioned why I would miss VFP.  I have totally accepted .NET and C# yet something was missing.  From time to time I end up cutting some VFP code for legacy systems that have not migrated yet and then it struck me.  Its nothing more than the VFP language itself that I will miss, not VFP.  Looking at the roots of this, VFP was based on the DBase language, my initial searches for VFP language alternatives proved pretty fruitless.  I specifically wanted to find the language reincarnated in .NET, no joy.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I was so disheartened as I was coming to the realisation we may actually be seeing a death of a language.  People could argue the langauge is outdated, but the truth is it isn't really.  It's just a language and it can evolve sensibly like any other.  There are many other successful dynamic languages like VFP about.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I then thought harder.  VFP fell out with Ashton-Tate back in the day over the DBase langauge.  If you look at this single fact, the VFP language is truely a Dbase language at its heart.  This made me look, and what do you know, there it is, DBase.  DBase appears to still exist and under what seems to be something close to its original company.  The website is: &lt;a href="http://www.dbase.com"&gt;http://www.dbase.com.&lt;/a&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;It appears the language still lives on in a more modern way.  It is a shame it is not based on .NET, not sure if this is a disadvantage though.  My biggest concern is why I have not picked up on this in any forums anywhere when people were looking for VFP alternatives?  Is this purely on the basis of the history between VFP and DBase?  You would think those days were gone?  I'm interested in whether people even realised DBase even still existed?  Whether or not I look at this any closer, I'm just humbled by the fact that we have not seen a death of a language.  For me that would be a total tradgedy.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;What are peoples thoughts on this?&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Regards&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Richard&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;p&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;img src="http://www.west-wind.com/images/wcmvp.gif"&gt;&lt;br&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FG0EK6MT";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FG0EK6MT</link>
			<author>Marty Cantwell</author>
     </item>
     <item>
			<title>Re: Alternatives To Foxpro</title>
			<pubDate>Thu, 9 Feb 2012 08:12:55 GMT</pubDate>
			<guid isPermaLink="false">3FG00GQN6</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Alternatives To Foxpro&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    FoxPro Programming
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Alternatives To Foxpro
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/09/2012&lt;br /&gt;
           12:12:55 AM&lt;br /&gt;
          3FG00GQN6
          &lt;a href="default.asp?Thread=3FE04D84H&amp;MsgId=3FG00GQN6"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/14ec8fc6e1c1e568f7259f5289d87bed?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJEB('thn','foxincloud.com','re%3A%20Re%3A%20Alternatives%20To%20Foxpro');" &gt;Thierry Nivelet (FoxInCloud)&lt;/a&gt;&lt;script&gt; function _3FG0HZJEB(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJEC('rstrahl','west-wind.com');" &gt;Rick Strahl&lt;/a&gt;&lt;script&gt; function _3FG0HZJEC(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Agree with both your posts Rick,&lt;p&gt;I think the scalability issues you're mentioning are just a matter of how much effort we put in making things happen easier.&lt;br&gt;As everything in a computer is about software and writing code, what php and aspx can achieve in easing deployment is - IMHO - achievable with VFP/wConnect&lt;br&gt;We are every much aware of that with FoxInCloud and I look forward at both wConnect users, West-Wind and FoxInCloud grouping our efforts to make things easier.&lt;p&gt;About writing new software as a contractor for a client, it's obviously just like selling a car - you're not gonna pick a 10-year old model. No need to discuss that IMO.&lt;p&gt;ThN&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;I think the key to take away is the same it's always been:&lt;/i&gt;&lt;p&gt;&lt;i&gt;If you have an existing product in VFP and it works well, it will continue to work and you can extend it as needed. For Web apps you can continue to use the latest front end technologies and mix it with the backend. There's no reason to switch and re-write, just so one can say they're not running in FoxPro especially for a server based application.&lt;/i&gt;&lt;p&gt;&lt;i&gt;But for new development I'd be very hard pressed to recommend anybody picking up FoxPro. It's just not an ideal Web platform. Web Connection (and other tools as well) can make it happen and it's even pretty scalable to a point, but it's way more work to make VFP scale properly than with most other tools and platforms that you 'just install' and run.&lt;/i&gt;&lt;p&gt;&lt;i&gt;I'm always amazed to see the cool apps people have built with Web Connection and how far some of these apps have pushed what Web Connection and VFP can do. It's pretty amazing to think that this is technology that's basically 18 years old and VFP which hasn't significantly changed in about that same time frameframe. &lt;/i&gt;&lt;p&gt;&lt;i&gt;+++ Rick ---&lt;/i&gt;&lt;p&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;I have loved FoxPro/VFP since 1990.  I still use it a little, but I have also moved on.  .Net really does allow me to go further that what I could do in VFP.  Not because I couldn't force VFP to do something weird (stuff like shared memory and IPC), but because it made more sense to develop in something else.  I do most of my web development in PHP/MySQL now.  Why? Because the support is endless, there are great frameworks, and most important my solutions can run as part of more stacks than any other platform.  I still support some old Web Connection projects I was hired to build and they will run forever, but I don't need a VFP community to rise up and restore VFP and then take it into the future.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;The article Thierry posted is interesting, but I can't see it being realistic for a community to take over and maintain a VFP style product.  Future computing platforms just won't leave the economic case for investing that much effort into a niche product.  Actually, it kind of said that in the article :) recognizing that investors wouldn't touch that model.  Developers aren't going to be convinced either, not when there are so many ways to develop software already being driven by well funded companies and developer-supported organizations.  The products/platforms/frameworks/whatevers we use are created to fill a market-driven need.  What is the market-driven need for continuing a VFP style thingy at the same level as other technology communities support their products?  That's right, the answer is there is none.&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FG00GQN6";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FG00GQN6</link>
			<author>Thierry Nivelet (FoxInCloud)</author>
     </item>
     <item>
			<title>using wwPOP3</title>
			<pubDate>Thu, 9 Feb 2012 06:32:21 GMT</pubDate>
			<guid isPermaLink="false">3FF1CB9HQ</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;using wwPOP3&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    West Wind Internet Protocols
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  using wwPOP3
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           10:32:21 PM&lt;br /&gt;
          3FF1CB9HQ
          &lt;a href="default.asp?Thread=3FF1CB9HP&amp;MsgId=3FF1CB9HQ"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/4c33ec4142592962afbe2c251674a022?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJEF('Ian.Simcock','Internode.on.net','re%3A%20using%20wwPOP3');" &gt;Ian Simcock&lt;/a&gt;&lt;script&gt; function _3FG0HZJEF(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;All&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Hi Rick.&lt;p&gt;I just want to confirm something.&lt;p&gt;I was trying to use the wwPOP3 class today and it doesn't connect. The error message I got was "Login failed: ERR Command is not valid in this state.".&lt;p&gt;I saw in the documentation that the class will only work with plain text logins, which I'm using.&lt;p&gt;I then noticed by testing the account in my mail client that, while the login is in clear text, there is another setting for connection security and when I switched that from the best guess type setting to try the individual specific settings that when I set it to none it fails and I have to set it to STARTTLS to connect.&lt;p&gt;So, am I right in assuming that, even though it's not mentioned, requiring any form of secure connection will prevent this class from working as well?&lt;p&gt;Ian Simccok.&lt;br&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF1CB9HQ";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF1CB9HQ</link>
			<author>Ian Simcock</author>
     </item>
     <item>
			<title>wwDBFPopup selectedvalue</title>
			<pubDate>Thu, 9 Feb 2012 02:52:02 GMT</pubDate>
			<guid isPermaLink="false">3FF14FXC4</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;wwDBFPopup selectedvalue&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    Web Connection 5.0
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  wwDBFPopup selectedvalue
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           06:52:02 PM&lt;br /&gt;
          3FF14FXC4
          &lt;a href="default.asp?Thread=3FF14FXC3&amp;MsgId=3FF14FXC4"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/369cf38ca7ad9446c55a3f9ff21aa540?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJEJ('jaykon2005','yahoo.com','re%3A%20wwDBFPopup%20selectedvalue');" &gt;Cool&lt;/a&gt;&lt;script&gt; function _3FG0HZJEJ(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;All&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Hi All&lt;p&gt;lopopup=createobject("wwDBFPopup")&lt;br&gt;lopopup.cSelectedValue=lcselloc&lt;p&gt;how to set it preset multi selectedvalue?&lt;br&gt;i have try put common but still failure.&lt;p&gt;&lt;br&gt;Regard&lt;br&gt;Cool&lt;p&gt;&lt;br&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF14FXC4";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF14FXC4</link>
			<author>Cool</author>
     </item>
     <item>
			<title>Re: Multi user data update</title>
			<pubDate>Thu, 9 Feb 2012 00:54:22 GMT</pubDate>
			<guid isPermaLink="false">3FF108LE1</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Multi user data update&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    Web Development with Visual FoxPro
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Multi user data update
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           04:54:22 PM&lt;br /&gt;
          3FF108LE1
          &lt;a href="default.asp?Thread=3FF0OR8O4&amp;MsgId=3FF108LE1"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/beb7fdd4bcd15e35472a96ab8182f034?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJEM('rstrahl','west-wind.com','re%3A%20Re%3A%20Multi%20user%20data%20update');" &gt;Rick Strahl&lt;/a&gt;&lt;script&gt; function _3FG0HZJEM(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJEN('rstrahl','west-wind.com');" &gt;Rick Strahl&lt;/a&gt;&lt;script&gt; function _3FG0HZJEN(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    &lt;br&gt;Not sure, but my guess is that those applications themselves take over the event handlers. Browser events are determined through event bubbling and the client can trap keystrokes and clicks and not pass them forward (returning false from the event handler or using event.cancelBubble). That'd be my guess.&lt;p&gt;I don't think you can override that behavior other than potentially hooking into the keydown event which fires first (rather than keyup or keypress which fire later).&lt;p&gt;+++ Rick ---&lt;p&gt;&lt;br&gt;&lt;i&gt;Brian,&lt;/i&gt;&lt;p&gt;&lt;i&gt;Web Requests are transactional, so nothing actually updates or locks until you press the save button and your code does it. THere are no traditional lock issues on the Web because users don't have connections. &lt;/i&gt;&lt;p&gt;&lt;i&gt;In most cases you don't have to worry about update conflicts unless your application specifically can run into simultaneous edits of records (which is very rare and what I call a 5% or less use case). &lt;/i&gt;&lt;p&gt;&lt;i&gt;In the cases where it does matter that something is edited you need to build that logic into the application itself - ie. semaphore locking where you set some update flag int he database and compare that value. That can be a field that holds the person holding a lock on a record, or something as simple as using timestamp keys to compare whether the data has changed since the last update. But that's a manual and application specific process.&lt;/i&gt;&lt;p&gt;&lt;i&gt;+++ Rick ---&lt;/i&gt;&lt;p&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;Trying to get my head around how to allow for multi user update - Just finished Devdemo tutorials but unsure as to whether wwdevregistry code traps multi updates - seems not to. &lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Is there anything published that can give me a lead into how to handle multi user update??? &lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;p&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;br&gt;&lt;div class="messagedetailheader"&gt;&lt;b style="color: maroon;font-weight: bold;"&gt;Rick Strahl&lt;br&gt;West Wind Technologies&lt;br&gt;&lt;/b&gt;&lt;hr /&gt;Making waves on the Web&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;small&gt;from Maui, Hawaii&lt;/small&gt;&lt;br&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF108LE1";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF108LE1</link>
			<author>Rick Strahl</author>
     </item>
     <item>
			<title>Re: Alternatives To Foxpro</title>
			<pubDate>Thu, 9 Feb 2012 00:47:44 GMT</pubDate>
			<guid isPermaLink="false">3FF1001TK</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Alternatives To Foxpro&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    FoxPro Programming
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Alternatives To Foxpro
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           04:47:44 PM&lt;br /&gt;
          3FF1001TK
          &lt;a href="default.asp?Thread=3FE04D84H&amp;MsgId=3FF1001TK"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/beb7fdd4bcd15e35472a96ab8182f034?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJEQ('rstrahl','west-wind.com','re%3A%20Re%3A%20Alternatives%20To%20Foxpro');" &gt;Rick Strahl&lt;/a&gt;&lt;script&gt; function _3FG0HZJEQ(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJER('mrboson','gmail.com');" &gt;Phil Connolly&lt;/a&gt;&lt;script&gt; function _3FG0HZJER(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    &lt;br&gt;I think the key to take away is the same it's always been:&lt;p&gt;If you have an existing product in VFP and it works well, it will continue to work and you can extend it as needed. For Web apps you can continue to use the latest front end technologies and mix it with the backend. There's no reason to switch and re-write, just so one can say they're not running in FoxPro especially for a server based application.&lt;p&gt;But for new development I'd be very hard pressed to recommend anybody picking up FoxPro. It's just not an ideal Web platform. Web Connection (and other tools as well) can make it happen and it's even pretty scalable to a point, but it's way more work to make VFP scale properly than with most other tools and platforms that you 'just install' and run.&lt;p&gt;I'm always amazed to see the cool apps people have built with Web Connection and how far some of these apps have pushed what Web Connection and VFP can do. It's pretty amazing to think that this is technology that's basically 18 years old and VFP which hasn't significantly changed in about that same time frameframe. &lt;p&gt;+++ Rick ---&lt;p&gt;&lt;br&gt;&lt;i&gt;I have loved FoxPro/VFP since 1990.  I still use it a little, but I have also moved on.  .Net really does allow me to go further that what I could do in VFP.  Not because I couldn't force VFP to do something weird (stuff like shared memory and IPC), but because it made more sense to develop in something else.  I do most of my web development in PHP/MySQL now.  Why? Because the support is endless, there are great frameworks, and most important my solutions can run as part of more stacks than any other platform.  I still support some old Web Connection projects I was hired to build and they will run forever, but I don't need a VFP community to rise up and restore VFP and then take it into the future.&lt;/i&gt;&lt;p&gt;&lt;i&gt;The article Thierry posted is interesting, but I can't see it being realistic for a community to take over and maintain a VFP style product.  Future computing platforms just won't leave the economic case for investing that much effort into a niche product.  Actually, it kind of said that in the article :) recognizing that investors wouldn't touch that model.  Developers aren't going to be convinced either, not when there are so many ways to develop software already being driven by well funded companies and developer-supported organizations.  The products/platforms/frameworks/whatevers we use are created to fill a market-driven need.  What is the market-driven need for continuing a VFP style thingy at the same level as other technology communities support their products?  That's right, the answer is there is none.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;p&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;br&gt;&lt;div class="messagedetailheader"&gt;&lt;b style="color: maroon;font-weight: bold;"&gt;Rick Strahl&lt;br&gt;West Wind Technologies&lt;br&gt;&lt;/b&gt;&lt;hr /&gt;Making waves on the Web&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;small&gt;from Maui, Hawaii&lt;/small&gt;&lt;br&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF1001TK";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF1001TK</link>
			<author>Rick Strahl</author>
     </item>
     <item>
			<title>Re: Alternatives To Foxpro</title>
			<pubDate>Thu, 9 Feb 2012 00:47:44 GMT</pubDate>
			<guid isPermaLink="false">3FF1001TY</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Alternatives To Foxpro&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    FoxPro Programming
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Alternatives To Foxpro
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           04:47:44 PM&lt;br /&gt;
          3FF1001TY
          &lt;a href="default.asp?Thread=3FF0F47NU&amp;MsgId=3FF1001TY"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/beb7fdd4bcd15e35472a96ab8182f034?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJEV('rstrahl','west-wind.com','re%3A%20Re%3A%20Alternatives%20To%20Foxpro');" &gt;Rick Strahl&lt;/a&gt;&lt;script&gt; function _3FG0HZJEV(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJEW('ddodge','xmission.com');" &gt;Doug Dodge&lt;/a&gt;&lt;script&gt; function _3FG0HZJEW(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Doug,&lt;p&gt;That's a great point actually.&lt;p&gt;We live in completely different times than we did back in the mid 90's when I started doing Web development. Software development has matured a bit since then, and I think the applications we built today tend to be a lot more sophisticated than most of what was built and accepted back in those days.&lt;p&gt;I've also noticed that in the last few years technology has gone a bit stale. We're basically at a point where we are re-hashing of doing things we've done all along in different sometimes more efficient ways, rather than trailblazing into really new territory. A lot of what happens today is more about being more productive than really figuring out technology. IOW, it's more 'down to business' as opposed to 'explorer and figure out hairy technology issues' that I remember somewhat fondly.&lt;p&gt;It's almost like we're continually stuck in that 'maintenance' mode rather than the inventive mode :-) I miss that, but realistically it helps the majority of people to get their application development work done.&lt;p&gt;Nevertheless, the Fox community was certainly the most unique developer community i've ever been part of. Nothing has ever compared since - certainly not the stodgy .NET community :-)&lt;p&gt;&lt;br&gt;+++ Rick ---&lt;p&gt;&lt;i&gt;Marty, et al&lt;/i&gt;&lt;p&gt;&lt;i&gt;Entrepeneurs are what I call 'over the horizon' folks. Always looking for the next great adventure. Typically, after one of these folks has blazed the trail, the next set of folks arrive - the 'farmers', or those who take the trail and make something of it, building cities and infrastructures, etc. They are needed. Sometimes, like in Boston, they leave the old cow trails and you have a mess. *s* Sometimes they tear old 'stuff' down and put in new freeways, but you do lose the old stuff in the process. That's the price we pay to drive faster or get more done. Some choose to keep the old stuff and some want the new stuff more so..&lt;/i&gt;&lt;p&gt;&lt;i&gt;I think what a lot of folks are missing is the &lt;b&gt;great sense of adventure&lt;/b&gt; that we all had early on with xBASE. The reality is that the 'pioneers' need the open road, not the settled city. xBASE really had been a great ride and I feel very fortunate to have been there from the start as well - but it's time to find some new adventures, at least for me.&lt;/i&gt;&lt;p&gt;&lt;i&gt;What I have always appreciated about Rick is that he's not abandoned the pioneer (read: entrepeneurial) spirit and has helped many of us to look to 'new stuff' as he has shared his particular journey. I read his blogs now for the .NET stuff rather than the FoxPro stuff. As a result of reading his posts I WANT to learn the new technology - really because I want that sense of adventure to be more crisp in my mind. I really appreciate this site for that reason.&lt;/i&gt;&lt;p&gt;&lt;i&gt;I also think that many of us miss the camaraderie we have enjoyed in the FoxPro community especially. That doesn't go away because we take that with us. And that's another reason I always visit here each day - to keep plugged in to the (evolving) community. &lt;/i&gt;&lt;p&gt;&lt;i&gt;I am REALLY glad and happy to have been a part of all of this and love the dear friends I have made along the way but I am also moving on - selfishly I suppose, but I want to learn some new stuff again. &lt;/i&gt;&lt;p&gt;&lt;i&gt;Best,&lt;/i&gt;&lt;p&gt;&lt;i&gt;Doug&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Very nicely put Rick!&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;IMHO, you were spot on here.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I started coding in xBase back in the Vulcan days, before Ashton-Tate sprung up to be the "dBase" folks.  I've also worked in Condor, dBase and dBaseII on both the CP/M and DOS platforms, as well as dBaseIII and dBaseIII+ on the DOS platform.  Moving from version to version was primarily due to language enhancements that came along which made life in the xBase world a little easier.  When FoxPro2 came out from Fox Software, a demo set of disks showed me that you could have not only blindingly faster data access (and programs), but could also create a system that could be distributed royalty free!  But what hooked me with this line of products was the language enhancements over the next few versions and thus I am still using VFP now.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I agree that dBase has had it's day, especially when I looked at it a few years ago.  Borland had added OOP capabilities to the product after dBaseIV had been out a while, but if felt more like Paradox's OOP system (probably because Borland owned it?) and seemed to me like a step backwards from what I had learned in VFP.  Of course that is probably just due to my limited knowlege.  Who knows what the new group who owns it now came up with but I understand that they did a complete re-write of the product and I've just not been interested enough to take a look yet...&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;As with spoken languages, programming languages become less used or can die out completely, so for now I am starting to learn .NET and how I can migrate that direction.  Interestingly, I still get the odd job every few years supporting, fixing or modifying dBaseIII+ systems!  That I know of, there is a large publishing company and a leather product manufacturing company in the midwest still running their systems with dBaseIII+ programs!&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;But I want to thank you and other developers like Richard for having a balanced and realistic view of how things associated with our favorite language is proceeding.  It's refreshing compared to the plethora of nay-sayers that have doomed various xBase dialects for so many years!  It has at times reminded me of the Chicken Little nursery rhyme...&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Marty&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Richard,&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I think one way to look at it is that dbase's time has come and gone. We may love FoxPro and what it can do, but the platform it currently running on is getting crumbly for VFP (especially the desktop) and that will only get worse as time goes on.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;While there maybe alternatives that will let you continue to use dBase languages, the question you have to ask yourself is: Do you really want to be in that market niche where few people will be, where there are few peers, support or companies/OOS devs to keep building new features and add-ons? Who will keep extending functionality and innovating with recent market trends to improve the experience? Who will support it? ANd what developers will want to extend it with their own tools? I think you'll find that there are precious few folks who want to be the leaders to take a product forward and not just make it run as other tools have.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;We already know how awkard it is to be in a niche market and jumping off the VFP wagon onto an even less known dBase language solution is only going to aggrevate that. Yes you can use your existing code and skills, but there is not likely to be any community or support worth mentioning.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;There are other solutions out there for dynamic languages that are more like FoxPro (although none have the data richness of VFP of course - and when that's taken out, a lot of the dynamic/static advantages/disadvantages come out a wash IMHO) that are popular and actively developed with large developer communities around them. Especially for the Web there are LOTS of choices. For desktop the choices are there too but they are pretty ugly with runtimes of Web frameworks. &lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Either way I think dBase had its time, but it's not going to come roaring back - ever. And if you stay in that niche then you might as well stick with VFP which I think is still the biggest player in the dBase space (for whatever that's worth).&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;+++ Rick ---&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Hi all,&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Over the last few years there have been many discussions to the eventual end of MS Visual Foxpro.  There have been several projects sprung up that have attempted to either extend the life of VFP or become an alternative replacement.  The replacements have either totally failed or do not resemble VFP in any such way.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;The logical evolution for desktop development in Windows appears to be with little question the .NET framework.  My biggest bugbear with this is that although I love C# as a language the closest language to VFP is VB.NET and to be honest doesn't come close.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Giving this some long thought I questioned why I would miss VFP.  I have totally accepted .NET and C# yet something was missing.  From time to time I end up cutting some VFP code for legacy systems that have not migrated yet and then it struck me.  Its nothing more than the VFP language itself that I will miss, not VFP.  Looking at the roots of this, VFP was based on the DBase language, my initial searches for VFP language alternatives proved pretty fruitless.  I specifically wanted to find the language reincarnated in .NET, no joy.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I was so disheartened as I was coming to the realisation we may actually be seeing a death of a language.  People could argue the langauge is outdated, but the truth is it isn't really.  It's just a language and it can evolve sensibly like any other.  There are many other successful dynamic languages like VFP about.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I then thought harder.  VFP fell out with Ashton-Tate back in the day over the DBase langauge.  If you look at this single fact, the VFP language is truely a Dbase language at its heart.  This made me look, and what do you know, there it is, DBase.  DBase appears to still exist and under what seems to be something close to its original company.  The website is: &lt;a href="http://www.dbase.com"&gt;http://www.dbase.com.&lt;/a&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;It appears the language still lives on in a more modern way.  It is a shame it is not based on .NET, not sure if this is a disadvantage though.  My biggest concern is why I have not picked up on this in any forums anywhere when people were looking for VFP alternatives?  Is this purely on the basis of the history between VFP and DBase?  You would think those days were gone?  I'm interested in whether people even realised DBase even still existed?  Whether or not I look at this any closer, I'm just humbled by the fact that we have not seen a death of a language.  For me that would be a total tradgedy.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;What are peoples thoughts on this?&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Regards&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Richard&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;&lt;br&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;p&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;br&gt;&lt;div class="messagedetailheader"&gt;&lt;b style="color: maroon;font-weight: bold;"&gt;Rick Strahl&lt;br&gt;West Wind Technologies&lt;br&gt;&lt;/b&gt;&lt;hr /&gt;Making waves on the Web&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;small&gt;from Maui, Hawaii&lt;/small&gt;&lt;br&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF1001TY";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF1001TY</link>
			<author>Rick Strahl</author>
     </item>
     <item>
			<title>Re: Multi user data update</title>
			<pubDate>Thu, 9 Feb 2012 00:47:44 GMT</pubDate>
			<guid isPermaLink="false">3FF1001U7</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Multi user data update&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    Web Development with Visual FoxPro
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Multi user data update
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           04:47:44 PM&lt;br /&gt;
          3FF1001U7
          &lt;a href="default.asp?Thread=3FF0OR8O4&amp;MsgId=3FF1001U7"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/beb7fdd4bcd15e35472a96ab8182f034?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJF3('rstrahl','west-wind.com','re%3A%20Re%3A%20Multi%20user%20data%20update');" &gt;Rick Strahl&lt;/a&gt;&lt;script&gt; function _3FG0HZJF3(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJF4('brianworger','blueyonder.co.uk');" &gt;Brian Worger&lt;/a&gt;&lt;script&gt; function _3FG0HZJF4(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Brian,&lt;p&gt;Web Requests are transactional, so nothing actually updates or locks until you press the save button and your code does it. THere are no traditional lock issues on the Web because users don't have connections. &lt;p&gt;In most cases you don't have to worry about update conflicts unless your application specifically can run into simultaneous edits of records (which is very rare and what I call a 5% or less use case). &lt;p&gt;In the cases where it does matter that something is edited you need to build that logic into the application itself - ie. semaphore locking where you set some update flag int he database and compare that value. That can be a field that holds the person holding a lock on a record, or something as simple as using timestamp keys to compare whether the data has changed since the last update. But that's a manual and application specific process.&lt;p&gt;+++ Rick ---&lt;p&gt;&lt;br&gt;&lt;i&gt;Trying to get my head around how to allow for multi user update - Just finished Devdemo tutorials but unsure as to whether wwdevregistry code traps multi updates - seems not to. &lt;/i&gt;&lt;p&gt;&lt;i&gt;Is there anything published that can give me a lead into how to handle multi user update??? &lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;p&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;br&gt;&lt;div class="messagedetailheader"&gt;&lt;b style="color: maroon;font-weight: bold;"&gt;Rick Strahl&lt;br&gt;West Wind Technologies&lt;br&gt;&lt;/b&gt;&lt;hr /&gt;Making waves on the Web&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;small&gt;from Maui, Hawaii&lt;/small&gt;&lt;br&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF1001U7";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF1001U7</link>
			<author>Rick Strahl</author>
     </item>
     <item>
			<title>Re: Sending back PDF files</title>
			<pubDate>Wed, 8 Feb 2012 20:45:52 GMT</pubDate>
			<guid isPermaLink="false">3FF0RCZW6</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Sending back PDF files&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    Web Connection
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Sending back PDF files
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           12:45:52 PM&lt;br /&gt;
          3FF0RCZW6
          &lt;a href="default.asp?Thread=3EX0GBNWT&amp;MsgId=3FF0RCZW6"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/d2876d8f73c8d5a2fa1c527a95a08fc8?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJF7('mhogan','webconnectionhosting.com','re%3A%20Re%3A%20Sending%20back%20PDF%20files');" &gt;Michael Hogan&lt;/a&gt;&lt;script&gt; function _3FG0HZJF7(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJF8('potter','orrcomputer.com');" &gt;Potter Orr&lt;/a&gt;&lt;script&gt; function _3FG0HZJF8(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Is there a reason you don't want the docs accessible from the web server? If you just place the PDFs in a particular subdirectory of the web site, you can simply display a relative link to it on the web page.&lt;p&gt;If you need to have the PDFs on the LAN but not on the web server for some security reason, I bet you could use an absolute link to the file such as &amp;lt;a href="\\MachineName\sharename\directoryname\documentname.pdf"&amp;gt;Click Here for the Document&amp;lt;/a&amp;gt; (hope I have the slashes pointed in the right direction).&lt;p&gt;&lt;i&gt;Bob,&lt;/i&gt;&lt;p&gt;&lt;i&gt;Thank you for your reply. I'm sorry it took me so long to get back to this, but I've been getting the basic application set up with to do some beta testing.&lt;/i&gt;&lt;p&gt;&lt;i&gt;The PDF files that I need to be able to send back on the same LAN but not directly accessible from the Web server. Rick pointed out the strtofile() function to render the PDFs in a form that I could deliver, but I have still not come to grips with how to put a column in the grid they would let me call the code necessary to send them back.&lt;/i&gt;&lt;p&gt;&lt;i&gt;This part of my application is a mini document management system. The user will have selected an individual and then I wanted to display a list of the documents currently attached to that individual in the grid and let them click on one to see it. If you have code samples I'd be delighted to see them.&lt;/i&gt;&lt;p&gt;&lt;i&gt;Thank you, Potter&lt;/i&gt;&lt;p&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;Hi Potter;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I do this all the time, so I do have code snippets that should work.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Question 1 though, to begin with:&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Are the pdf files in a web accessible directory or somewhere else?&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Just to go a little further, generally keep all pdf files that I might upload in a non-web accessible directory; that is, you can't&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;create an html link directly to the file. Rather I have a process method that loads the file.&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;For instance:&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;GetDocument.cmt?g=E9F49C90-7AB2-461B-A011-6E7A092FAA57&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Where i pass a guid identifier (that links back to a record in a table) and the file is downloaded from there.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;If you are linking to something like this, then the issue isn't the link just in the way you are sending the file&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Bob&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I have a simple test that I need to do and I can't seem to figure it out. One of my FoxPro tables contains a type, a description and the file name of a PDF file. When the application selects a user, I run a query and get a cursor with the list of the files that apply to this user. I want to display that cursor in a Web data grid and allow the user to click on an individual file and then send that PDF back to their browser.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I know there are some examples in the help file, but I have not been able to make any of them work. I tried putting an HREF in for one of the columns, but Firefox comes back and says he doesn't know how to open this kind of file. Can this be done with HTML code or does it require JavaScript?&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Potter&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF0RCZW6";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF0RCZW6</link>
			<author>Michael Hogan</author>
     </item>
     <item>
			<title>Re: Scheduling events in COM mode</title>
			<pubDate>Wed, 8 Feb 2012 20:37:42 GMT</pubDate>
			<guid isPermaLink="false">3FF0R2HR8</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Scheduling events in COM mode&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    Web Connection
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Scheduling events in COM mode
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           12:37:42 PM&lt;br /&gt;
          3FF0R2HR8
          &lt;a href="default.asp?Thread=3F910HF24&amp;MsgId=3FF0R2HR8"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/d2876d8f73c8d5a2fa1c527a95a08fc8?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJFC('mhogan','webconnectionhosting.com','re%3A%20Re%3A%20Scheduling%20events%20in%20COM%20mode');" &gt;Michael Hogan&lt;/a&gt;&lt;script&gt; function _3FG0HZJFC(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJFD('nicholas.stjon','gmail.com');" &gt;Nicholas St Jon&lt;/a&gt;&lt;script&gt; function _3FG0HZJFD(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Let me mention that, for my scheduled events I compile a separate EXE to do the job and use Windows Task Scheduler to run it at specified times or intervals. You may want to consider doing that. You can include WebConnect components to send emails and such.&lt;p&gt;&lt;i&gt;Thx for the quick response, I'll give that a shot.&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF0R2HR8";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF0R2HR8</link>
			<author>Michael Hogan</author>
     </item>
     <item>
			<title>Multi user data update</title>
			<pubDate>Wed, 8 Feb 2012 19:32:58 GMT</pubDate>
			<guid isPermaLink="false">3FF0OR8O5</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Multi user data update&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    Web Development with Visual FoxPro
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Multi user data update
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           11:32:58 AM&lt;br /&gt;
          3FF0OR8O5
          &lt;a href="default.asp?Thread=3FF0OR8O4&amp;MsgId=3FF0OR8O5"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/b6c5d9d44d24dfd4ddebf0a926e2c0d3?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJFF('brianworger','blueyonder.co.uk','re%3A%20Multi%20user%20data%20update');" &gt;Brian Worger&lt;/a&gt;&lt;script&gt; function _3FG0HZJFF(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;All&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Trying to get my head around how to allow for multi user update - Just finished Devdemo tutorials but unsure as to whether wwdevregistry code traps multi updates - seems not to. &lt;p&gt;Is there anything published that can give me a lead into how to handle multi user update??? &lt;br&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF0OR8O5";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF0OR8O5</link>
			<author>Brian Worger</author>
     </item>
     <item>
			<title>Re: Alternatives To Foxpro</title>
			<pubDate>Wed, 8 Feb 2012 19:15:16 GMT</pubDate>
			<guid isPermaLink="false">3FF0O4HKX</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Alternatives To Foxpro&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    FoxPro Programming
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Alternatives To Foxpro
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           11:15:16 AM&lt;br /&gt;
          3FF0O4HKX
          &lt;a href="default.asp?Thread=3FE04D84H&amp;MsgId=3FF0O4HKX"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/0dda03213e23d4a7727c84882b0ed8b9?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJFI('mrboson','gmail.com','re%3A%20Re%3A%20Alternatives%20To%20Foxpro');" &gt;Phil Connolly&lt;/a&gt;&lt;script&gt; function _3FG0HZJFI(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJFJ('thn','foxincloud.com');" &gt;Thierry Nivelet (FoxInCloud)&lt;/a&gt;&lt;script&gt; function _3FG0HZJFJ(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    I have loved FoxPro/VFP since 1990.  I still use it a little, but I have also moved on.  .Net really does allow me to go further that what I could do in VFP.  Not because I couldn't force VFP to do something weird (stuff like shared memory and IPC), but because it made more sense to develop in something else.  I do most of my web development in PHP/MySQL now.  Why? Because the support is endless, there are great frameworks, and most important my solutions can run as part of more stacks than any other platform.  I still support some old Web Connection projects I was hired to build and they will run forever, but I don't need a VFP community to rise up and restore VFP and then take it into the future.&lt;p&gt;The article Thierry posted is interesting, but I can't see it being realistic for a community to take over and maintain a VFP style product.  Future computing platforms just won't leave the economic case for investing that much effort into a niche product.  Actually, it kind of said that in the article :) recognizing that investors wouldn't touch that model.  Developers aren't going to be convinced either, not when there are so many ways to develop software already being driven by well funded companies and developer-supported organizations.  The products/platforms/frameworks/whatevers we use are created to fill a market-driven need.  What is the market-driven need for continuing a VFP style thingy at the same level as other technology communities support their products?  That's right, the answer is there is none.&lt;br&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF0O4HKX";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF0O4HKX</link>
			<author>Phil Connolly</author>
     </item>
     <item>
			<title>Re: Anyone here using wkHtmlToPdf?</title>
			<pubDate>Wed, 8 Feb 2012 17:36:20 GMT</pubDate>
			<guid isPermaLink="false">3FF0KL918</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Anyone here using wkHtmlToPdf?&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    Web Connection 5.0
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Anyone here using wkHtmlToPdf?
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           09:36:20 AM&lt;br /&gt;
          3FF0KL918
          &lt;a href="default.asp?Thread=3FF0KN0H9&amp;MsgId=3FF0KL918"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/017ba1b086d46a8c791acf8193b53065?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJFM('sgoering','mwt.net','re%3A%20Re%3A%20Anyone%20here%20using%20wkHtmlToPdf%3F');" &gt;Stein Goering&lt;/a&gt;&lt;script&gt; function _3FG0HZJFM(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJFN('rick','intercepteft.com');" &gt;Rick Steinwand&lt;/a&gt;&lt;script&gt; function _3FG0HZJFN(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    &lt;p&gt;&lt;i&gt;BTW, I like the new look of the forum. Border radius and box shadow are cool stuff.&lt;/i&gt;&lt;p&gt;&lt;i&gt;I'd REALLY like to see a preview button before I post tho.&lt;/i&gt;&lt;p&gt;You can always post, then use the Edit button to make changes if you don't like how it looks.  Or Delete if you really don't like it...&lt;p&gt;Pretty much equivalent to a Preview option IMO.&lt;p&gt;--stein&lt;br&gt; &lt;br&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF0KL918";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF0KL918</link>
			<author>Stein Goering</author>
     </item>
     <item>
			<title>Re: JavaScript IE 9 error on mouseover</title>
			<pubDate>Wed, 8 Feb 2012 17:26:24 GMT</pubDate>
			<guid isPermaLink="false">3FF0K8H5V</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: JavaScript IE 9 error on mouseover&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    HTML, CSS,  JavaScript, Flash
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: JavaScript IE 9 error on mouseover
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           09:26:24 AM&lt;br /&gt;
          3FF0K8H5V
          &lt;a href="default.asp?Thread=3FF0KCBB5&amp;MsgId=3FF0K8H5V"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/017ba1b086d46a8c791acf8193b53065?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJFP('sgoering','mwt.net','re%3A%20Re%3A%20JavaScript%20IE%209%20error%20on%20mouseover');" &gt;Stein Goering&lt;/a&gt;&lt;script&gt; function _3FG0HZJFP(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJFQ('danielcummings123','gmail.com');" &gt;Nathan Brazil&lt;/a&gt;&lt;script&gt; function _3FG0HZJFQ(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    &lt;br&gt;&lt;i&gt;I'm not familiar with jQuery but I will look into it.  &lt;/i&gt;&lt;p&gt;If you are writing javascript code you should definitely check it out.   There's a learning curve involved but it will be worth the effort, IMO.  One of its strengths is dealing with these types of incompatibilities across different browsers.&lt;p&gt;&lt;i&gt;&lt;i&gt;That because onmouseover fires for child elements so you may get events fired for elements other than the element you defined the onmouseover on.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I'd recommend you look into something like jQuery to handle the element filtering more cleanly and just give you the events on the elements you're actually monitoring.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;+++ Rick ---&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Below is the code that is giving me an issue in IE 9.  I believe it is the onmouseover becuase when I mouse over the generated popup, I get an invalid argument error.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;pre&gt;&lt;div class="csharpcode"&gt;&amp;lt;script	language=&lt;span class="codestring"&gt;'JavaScript'&lt;/span&gt;&amp;gt; &lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;span class="programcontrol"&gt;var&lt;/span&gt; oPopup = window.createPopup();&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;span class="programcontrol"&gt;function&lt;/span&gt; ShowPopup(tRailCar, tRailShip) {&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt; &lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;span class="programcontrol"&gt;var&lt;/span&gt; cRailHistory = &lt;span class="codestring"&gt;"wc.dll?IclRailHistory~InfoMain~&amp;"&lt;/span&gt; +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"lcSession="&lt;/span&gt; + document.frmVars.cSession.value +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"&amp;lcTrans="&lt;/span&gt; + document.frmVars.cTrans.value +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"&amp;lcRailCar="&lt;/span&gt; + tRailCar +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"&amp;lcDate="&lt;/span&gt; + tRailShip;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt; &lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;span class="programcontrol"&gt;var&lt;/span&gt; cVINsummary = &lt;span class="codestring"&gt;"wc.dll?IclVinSummary~InfoMain~&amp;"&lt;/span&gt; +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"lcSession="&lt;/span&gt; + document.frmVars.cSession.value +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"&amp;lcTrans="&lt;/span&gt; + document.frmVars.cTrans.value +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"&amp;lcRailCar="&lt;/span&gt; + tRailCar +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"&amp;lcDate="&lt;/span&gt; + tRailShip;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;span class="programcontrol"&gt;var&lt;/span&gt; cMenu1 = &lt;span class="codestring"&gt;"&amp;lt;DIV style=\"&lt;/span&gt;cursor:hand; font-family:Arial; font-Size:11px; Color:800000; margin-left:5px; margin-right:10px; background:CCCFEC;\&lt;span class="codestring"&gt;""&lt;/span&gt; +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"onmouseover=\"&lt;/span&gt;&lt;span class="programcontrol"&gt;this&lt;/span&gt;.style.background=&lt;span class="codestring"&gt;'9999EE'&lt;/span&gt;;\&lt;span class="codestring"&gt;""&lt;/span&gt; +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;    &lt;span class="codestring"&gt;"onmouseout=\"&lt;/span&gt;&lt;span class="programcontrol"&gt;this&lt;/span&gt;.style.background=&lt;span class="codestring"&gt;'CCCFEC'&lt;/span&gt;;\&lt;span class="codestring"&gt;"&amp;gt;"&lt;/span&gt; +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"&amp;lt;SPAN onclick=parent.location.href='"&lt;/span&gt; + cVINsummary+ &lt;span class="codestring"&gt;"'&amp;gt;"&lt;/span&gt; +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"VIN Summary&amp;lt;/SPAN&amp;gt;"&lt;/span&gt; +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"&amp;lt;/DIV&amp;gt;"&lt;/span&gt;;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;span class="programcontrol"&gt;var&lt;/span&gt; cMenu2 = &lt;span class="codestring"&gt;"&amp;lt;DIV style=\"&lt;/span&gt;cursor:hand; font-family:Arial; font-Size:11px; Color:800000; margin-left:5px; margin-right:10px; background:CCCFEC;\&lt;span class="codestring"&gt;""&lt;/span&gt; +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"onmouseover=\"&lt;/span&gt;&lt;span class="programcontrol"&gt;this&lt;/span&gt;.style.background=&lt;span class="codestring"&gt;'9999EE'&lt;/span&gt;;\&lt;span class="codestring"&gt;""&lt;/span&gt; +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;    &lt;span class="codestring"&gt;"onmouseout=\"&lt;/span&gt;&lt;span class="programcontrol"&gt;this&lt;/span&gt;.style.background=&lt;span class="codestring"&gt;'CCCFEC'&lt;/span&gt;;\&lt;span class="codestring"&gt;" &amp;gt;"&lt;/span&gt; +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"&amp;lt;SPAN onclick=parent.location.href='"&lt;/span&gt; + cRailHistory + &lt;span class="codestring"&gt;"'&amp;gt;"&lt;/span&gt; +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;    &lt;span class="codestring"&gt;"Railcar History&amp;lt;/SPAN&amp;gt;"&lt;/span&gt; +&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="codestring"&gt;"&amp;lt;/DIV&amp;gt;"&lt;/span&gt;;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;oPopup.document.body.innerHTML = cMenu1 + cMenu2;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt; &lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;span class="programcontrol"&gt;var&lt;/span&gt; lefter = 10; &lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;    &lt;span class="programcontrol"&gt;var&lt;/span&gt; topper = 15;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;    oPopup.show(lefter, topper, 95, 30, event.srcElement);&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;	&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;} // ShowPopup()&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;&amp;lt;/script&amp;gt;&lt;/div&gt;&lt;/pre&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Dan&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF0K8H5V";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF0K8H5V</link>
			<author>Stein Goering</author>
     </item>
     <item>
			<title>Re: Alternatives To Foxpro</title>
			<pubDate>Wed, 8 Feb 2012 15:38:12 GMT</pubDate>
			<guid isPermaLink="false">3FF0GDBEZ</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Alternatives To Foxpro&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    FoxPro Programming
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Alternatives To Foxpro
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           07:38:12 AM&lt;br /&gt;
          3FF0GDBEZ
          &lt;a href="default.asp?Thread=3FE04D84H&amp;MsgId=3FF0GDBEZ"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/14ec8fc6e1c1e568f7259f5289d87bed?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJFV('thn','foxincloud.com','re%3A%20Re%3A%20Alternatives%20To%20Foxpro');" &gt;Thierry Nivelet (FoxInCloud)&lt;/a&gt;&lt;script&gt; function _3FG0HZJFV(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJFW('Marty','customsoftworks.com');" &gt;Marty Cantwell&lt;/a&gt;&lt;script&gt; function _3FG0HZJFW(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    In my opinion the key issue is more the numbers lines of code you've sold your clients rather than the language they're written with.&lt;br&gt;Discussing the compared qualities of such or such language sounds very theoretical to my ears. Business is about which service a software provides more than the underlying language.&lt;br&gt;I know many VFP developers who use maybe 20% of what VFP can deliver - switching to another language will simply not help them at all.&lt;br&gt;Going .net looks to me like riding an exhausted horse - microsoft has not seriously innovated for the 10 past years, and is definitely a looser on the emerging market of  mobile devices. Most what microsoft has released for the past decade is being 'discontinued' like silverlight, oledb, etc.&lt;p&gt;Whether a language continues evolving is a matter of how many people speak/uses it; it can be a self-fulfilling prophecy (nobody uses it anymore, it's a disaster, no support, no new skills, etc.) or people who like this language and want to continue using it can unite their efforts in building their own future: &lt;a href="http://bit.ly/rzCfGz"  target="top" &gt;http://bit.ly/rzCfGz&lt;/a&gt;&lt;p&gt;It's up to themselves, not microsoft, java, or some sort of evolution fatalism.&lt;p&gt;Thierry Nivelet&lt;p&gt;&lt;br&gt;&lt;i&gt;Very nicely put Rick!&lt;/i&gt;&lt;p&gt;&lt;i&gt;IMHO, you were spot on here.&lt;/i&gt;&lt;p&gt;&lt;i&gt;I started coding in xBase back in the Vulcan days, before Ashton-Tate sprung up to be the "dBase" folks.  I've also worked in Condor, dBase and dBaseII on both the CP/M and DOS platforms, as well as dBaseIII and dBaseIII+ on the DOS platform.  Moving from version to version was primarily due to language enhancements that came along which made life in the xBase world a little easier.  When FoxPro2 came out from Fox Software, a demo set of disks showed me that you could have not only blindingly faster data access (and programs), but could also create a system that could be distributed royalty free!  But what hooked me with this line of products was the language enhancements over the next few versions and thus I am still using VFP now.&lt;/i&gt;&lt;p&gt;&lt;i&gt;I agree that dBase has had it's day, especially when I looked at it a few years ago.  Borland had added OOP capabilities to the product after dBaseIV had been out a while, but if felt more like Paradox's OOP system (probably because Borland owned it?) and seemed to me like a step backwards from what I had learned in VFP.  Of course that is probably just due to my limited knowlege.  Who knows what the new group who owns it now came up with but I understand that they did a complete re-write of the product and I've just not been interested enough to take a look yet...&lt;/i&gt;&lt;p&gt;&lt;i&gt;As with spoken languages, programming languages become less used or can die out completely, so for now I am starting to learn .NET and how I can migrate that direction.  Interestingly, I still get the odd job every few years supporting, fixing or modifying dBaseIII+ systems!  That I know of, there is a large publishing company and a leather product manufacturing company in the midwest still running their systems with dBaseIII+ programs!&lt;/i&gt;&lt;p&gt;&lt;i&gt;But I want to thank you and other developers like Richard for having a balanced and realistic view of how things associated with our favorite language is proceeding.  It's refreshing compared to the plethora of nay-sayers that have doomed various xBase dialects for so many years!  It has at times reminded me of the Chicken Little nursery rhyme...&lt;/i&gt;&lt;p&gt;&lt;i&gt;Marty&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Richard,&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I think one way to look at it is that dbase's time has come and gone. We may love FoxPro and what it can do, but the platform it currently running on is getting crumbly for VFP (especially the desktop) and that will only get worse as time goes on.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;While there maybe alternatives that will let you continue to use dBase languages, the question you have to ask yourself is: Do you really want to be in that market niche where few people will be, where there are few peers, support or companies/OOS devs to keep building new features and add-ons? Who will keep extending functionality and innovating with recent market trends to improve the experience? Who will support it? ANd what developers will want to extend it with their own tools? I think you'll find that there are precious few folks who want to be the leaders to take a product forward and not just make it run as other tools have.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;We already know how awkard it is to be in a niche market and jumping off the VFP wagon onto an even less known dBase language solution is only going to aggrevate that. Yes you can use your existing code and skills, but there is not likely to be any community or support worth mentioning.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;There are other solutions out there for dynamic languages that are more like FoxPro (although none have the data richness of VFP of course - and when that's taken out, a lot of the dynamic/static advantages/disadvantages come out a wash IMHO) that are popular and actively developed with large developer communities around them. Especially for the Web there are LOTS of choices. For desktop the choices are there too but they are pretty ugly with runtimes of Web frameworks. &lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Either way I think dBase had its time, but it's not going to come roaring back - ever. And if you stay in that niche then you might as well stick with VFP which I think is still the biggest player in the dBase space (for whatever that's worth).&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;+++ Rick ---&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Hi all,&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Over the last few years there have been many discussions to the eventual end of MS Visual Foxpro.  There have been several projects sprung up that have attempted to either extend the life of VFP or become an alternative replacement.  The replacements have either totally failed or do not resemble VFP in any such way.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;The logical evolution for desktop development in Windows appears to be with little question the .NET framework.  My biggest bugbear with this is that although I love C# as a language the closest language to VFP is VB.NET and to be honest doesn't come close.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Giving this some long thought I questioned why I would miss VFP.  I have totally accepted .NET and C# yet something was missing.  From time to time I end up cutting some VFP code for legacy systems that have not migrated yet and then it struck me.  Its nothing more than the VFP language itself that I will miss, not VFP.  Looking at the roots of this, VFP was based on the DBase language, my initial searches for VFP language alternatives proved pretty fruitless.  I specifically wanted to find the language reincarnated in .NET, no joy.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I was so disheartened as I was coming to the realisation we may actually be seeing a death of a language.  People could argue the langauge is outdated, but the truth is it isn't really.  It's just a language and it can evolve sensibly like any other.  There are many other successful dynamic languages like VFP about.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I then thought harder.  VFP fell out with Ashton-Tate back in the day over the DBase langauge.  If you look at this single fact, the VFP language is truely a Dbase language at its heart.  This made me look, and what do you know, there it is, DBase.  DBase appears to still exist and under what seems to be something close to its original company.  The website is: &lt;a href="http://www.dbase.com"&gt;http://www.dbase.com.&lt;/a&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;It appears the language still lives on in a more modern way.  It is a shame it is not based on .NET, not sure if this is a disadvantage though.  My biggest concern is why I have not picked up on this in any forums anywhere when people were looking for VFP alternatives?  Is this purely on the basis of the history between VFP and DBase?  You would think those days were gone?  I'm interested in whether people even realised DBase even still existed?  Whether or not I look at this any closer, I'm just humbled by the fact that we have not seen a death of a language.  For me that would be a total tradgedy.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;What are peoples thoughts on this?&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Regards&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Richard&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF0GDBEZ";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF0GDBEZ</link>
			<author>Thierry Nivelet (FoxInCloud)</author>
     </item>
     <item>
			<title>Re: New message board look</title>
			<pubDate>Wed, 8 Feb 2012 15:01:15 GMT</pubDate>
			<guid isPermaLink="false">3FF0F1SRO</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: New message board look&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    Announcements and Chatter
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: New message board look
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           07:01:15 AM&lt;br /&gt;
          3FF0F1SRO
          &lt;a href="default.asp?Thread=3FE0K7SVX&amp;MsgId=3FF0F1SRO"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/8955223c4a4af26b5ecc0d25dd3c1d36?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJG2('ddodge','xmission.com','re%3A%20Re%3A%20New%20message%20board%20look');" &gt;Doug Dodge&lt;/a&gt;&lt;script&gt; function _3FG0HZJG2(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJG3('rstrahl','west-wind.com');" &gt;Rick Strahl&lt;/a&gt;&lt;script&gt; function _3FG0HZJG3(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Rick,&lt;p&gt;I have also been meaning to mention that I like the new look as well. &lt;p&gt;&lt;i&gt;Thanks Michael,&lt;/i&gt;&lt;p&gt;&lt;i&gt;Glad you like it. Simple and simplified from the mess that was there before (pre-CSS mostly :-)&lt;/i&gt;&lt;p&gt;&lt;i&gt;+++ Rick ---&lt;/i&gt;&lt;p&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;I like it. Looks great!&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF0F1SRO";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF0F1SRO</link>
			<author>Doug Dodge</author>
     </item>
     <item>
			<title>Re: Alternatives To Foxpro</title>
			<pubDate>Wed, 8 Feb 2012 14:58:26 GMT</pubDate>
			<guid isPermaLink="false">3FF0EY6EM</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Alternatives To Foxpro&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    FoxPro Programming
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Alternatives To Foxpro
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           06:58:26 AM&lt;br /&gt;
          3FF0EY6EM
          &lt;a href="default.asp?Thread=3FF0F47NU&amp;MsgId=3FF0EY6EM"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/8955223c4a4af26b5ecc0d25dd3c1d36?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJG5('ddodge','xmission.com','re%3A%20Re%3A%20Alternatives%20To%20Foxpro');" &gt;Doug Dodge&lt;/a&gt;&lt;script&gt; function _3FG0HZJG5(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJG6('Marty','customsoftworks.com');" &gt;Marty Cantwell&lt;/a&gt;&lt;script&gt; function _3FG0HZJG6(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Marty, et al&lt;p&gt;Entrepeneurs are what I call 'over the horizon' folks. Always looking for the next great adventure. Typically, after one of these folks has blazed the trail, the next set of folks arrive - the 'farmers', or those who take the trail and make something of it, building cities and infrastructures, etc. They are needed. Sometimes, like in Boston, they leave the old cow trails and you have a mess. *s* Sometimes they tear old 'stuff' down and put in new freeways, but you do lose the old stuff in the process. That's the price we pay to drive faster or get more done. Some choose to keep the old stuff and some want the new stuff more so..&lt;p&gt;I think what a lot of folks are missing is the &lt;b&gt;great sense of adventure&lt;/b&gt; that we all had early on with xBASE. The reality is that the 'pioneers' need the open road, not the settled city. xBASE really had been a great ride and I feel very fortunate to have been there from the start as well - but it's time to find some new adventures, at least for me.&lt;p&gt;What I have always appreciated about Rick is that he's not abandoned the pioneer (read: entrepeneurial) spirit and has helped many of us to look to 'new stuff' as he has shared his particular journey. I read his blogs now for the .NET stuff rather than the FoxPro stuff. As a result of reading his posts I WANT to learn the new technology - really because I want that sense of adventure to be more crisp in my mind. I really appreciate this site for that reason.&lt;p&gt;I also think that many of us miss the camaraderie we have enjoyed in the FoxPro community especially. That doesn't go away because we take that with us. And that's another reason I always visit here each day - to keep plugged in to the (evolving) community. &lt;p&gt;I am REALLY glad and happy to have been a part of all of this and love the dear friends I have made along the way but I am also moving on - selfishly I suppose, but I want to learn some new stuff again. &lt;p&gt;Best,&lt;p&gt;Doug&lt;p&gt;&lt;i&gt;Very nicely put Rick!&lt;/i&gt;&lt;p&gt;&lt;i&gt;IMHO, you were spot on here.&lt;/i&gt;&lt;p&gt;&lt;i&gt;I started coding in xBase back in the Vulcan days, before Ashton-Tate sprung up to be the "dBase" folks.  I've also worked in Condor, dBase and dBaseII on both the CP/M and DOS platforms, as well as dBaseIII and dBaseIII+ on the DOS platform.  Moving from version to version was primarily due to language enhancements that came along which made life in the xBase world a little easier.  When FoxPro2 came out from Fox Software, a demo set of disks showed me that you could have not only blindingly faster data access (and programs), but could also create a system that could be distributed royalty free!  But what hooked me with this line of products was the language enhancements over the next few versions and thus I am still using VFP now.&lt;/i&gt;&lt;p&gt;&lt;i&gt;I agree that dBase has had it's day, especially when I looked at it a few years ago.  Borland had added OOP capabilities to the product after dBaseIV had been out a while, but if felt more like Paradox's OOP system (probably because Borland owned it?) and seemed to me like a step backwards from what I had learned in VFP.  Of course that is probably just due to my limited knowlege.  Who knows what the new group who owns it now came up with but I understand that they did a complete re-write of the product and I've just not been interested enough to take a look yet...&lt;/i&gt;&lt;p&gt;&lt;i&gt;As with spoken languages, programming languages become less used or can die out completely, so for now I am starting to learn .NET and how I can migrate that direction.  Interestingly, I still get the odd job every few years supporting, fixing or modifying dBaseIII+ systems!  That I know of, there is a large publishing company and a leather product manufacturing company in the midwest still running their systems with dBaseIII+ programs!&lt;/i&gt;&lt;p&gt;&lt;i&gt;But I want to thank you and other developers like Richard for having a balanced and realistic view of how things associated with our favorite language is proceeding.  It's refreshing compared to the plethora of nay-sayers that have doomed various xBase dialects for so many years!  It has at times reminded me of the Chicken Little nursery rhyme...&lt;/i&gt;&lt;p&gt;&lt;i&gt;Marty&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Richard,&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I think one way to look at it is that dbase's time has come and gone. We may love FoxPro and what it can do, but the platform it currently running on is getting crumbly for VFP (especially the desktop) and that will only get worse as time goes on.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;While there maybe alternatives that will let you continue to use dBase languages, the question you have to ask yourself is: Do you really want to be in that market niche where few people will be, where there are few peers, support or companies/OOS devs to keep building new features and add-ons? Who will keep extending functionality and innovating with recent market trends to improve the experience? Who will support it? ANd what developers will want to extend it with their own tools? I think you'll find that there are precious few folks who want to be the leaders to take a product forward and not just make it run as other tools have.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;We already know how awkard it is to be in a niche market and jumping off the VFP wagon onto an even less known dBase language solution is only going to aggrevate that. Yes you can use your existing code and skills, but there is not likely to be any community or support worth mentioning.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;There are other solutions out there for dynamic languages that are more like FoxPro (although none have the data richness of VFP of course - and when that's taken out, a lot of the dynamic/static advantages/disadvantages come out a wash IMHO) that are popular and actively developed with large developer communities around them. Especially for the Web there are LOTS of choices. For desktop the choices are there too but they are pretty ugly with runtimes of Web frameworks. &lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Either way I think dBase had its time, but it's not going to come roaring back - ever. And if you stay in that niche then you might as well stick with VFP which I think is still the biggest player in the dBase space (for whatever that's worth).&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;+++ Rick ---&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Hi all,&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Over the last few years there have been many discussions to the eventual end of MS Visual Foxpro.  There have been several projects sprung up that have attempted to either extend the life of VFP or become an alternative replacement.  The replacements have either totally failed or do not resemble VFP in any such way.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;The logical evolution for desktop development in Windows appears to be with little question the .NET framework.  My biggest bugbear with this is that although I love C# as a language the closest language to VFP is VB.NET and to be honest doesn't come close.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Giving this some long thought I questioned why I would miss VFP.  I have totally accepted .NET and C# yet something was missing.  From time to time I end up cutting some VFP code for legacy systems that have not migrated yet and then it struck me.  Its nothing more than the VFP language itself that I will miss, not VFP.  Looking at the roots of this, VFP was based on the DBase language, my initial searches for VFP language alternatives proved pretty fruitless.  I specifically wanted to find the language reincarnated in .NET, no joy.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I was so disheartened as I was coming to the realisation we may actually be seeing a death of a language.  People could argue the langauge is outdated, but the truth is it isn't really.  It's just a language and it can evolve sensibly like any other.  There are many other successful dynamic languages like VFP about.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;I then thought harder.  VFP fell out with Ashton-Tate back in the day over the DBase langauge.  If you look at this single fact, the VFP language is truely a Dbase language at its heart.  This made me look, and what do you know, there it is, DBase.  DBase appears to still exist and under what seems to be something close to its original company.  The website is: &lt;a href="http://www.dbase.com"&gt;http://www.dbase.com.&lt;/a&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;It appears the language still lives on in a more modern way.  It is a shame it is not based on .NET, not sure if this is a disadvantage though.  My biggest concern is why I have not picked up on this in any forums anywhere when people were looking for VFP alternatives?  Is this purely on the basis of the history between VFP and DBase?  You would think those days were gone?  I'm interested in whether people even realised DBase even still existed?  Whether or not I look at this any closer, I'm just humbled by the fact that we have not seen a death of a language.  For me that would be a total tradgedy.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;What are peoples thoughts on this?&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Regards&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;Richard&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF0EY6EM";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF0EY6EM</link>
			<author>Doug Dodge</author>
     </item>
     <item>
			<title>Re: Alternatives To Foxpro</title>
			<pubDate>Wed, 8 Feb 2012 14:23:25 GMT</pubDate>
			<guid isPermaLink="false">3FF0DP4IK</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Re: Alternatives To Foxpro&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    FoxPro Programming
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Re: Alternatives To Foxpro
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           06:23:25 AM&lt;br /&gt;
          3FF0DP4IK
          &lt;a href="default.asp?Thread=3FE04D84H&amp;MsgId=3FF0DP4IK"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/7f802b1f30239f5c07893f4346ab205e?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJGC('Marty','customsoftworks.com','re%3A%20Re%3A%20Alternatives%20To%20Foxpro');" &gt;Marty Cantwell&lt;/a&gt;&lt;script&gt; function _3FG0HZJGC(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJGD('rstrahl','west-wind.com');" &gt;Rick Strahl&lt;/a&gt;&lt;script&gt; function _3FG0HZJGD(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Very nicely put Rick!&lt;p&gt;IMHO, you were spot on here.&lt;p&gt;I started coding in xBase back in the Vulcan days, before Ashton-Tate sprung up to be the "dBase" folks.  I've also worked in Condor, dBase and dBaseII on both the CP/M and DOS platforms, as well as dBaseIII and dBaseIII+ on the DOS platform.  Moving from version to version was primarily due to language enhancements that came along which made life in the xBase world a little easier.  When FoxPro2 came out from Fox Software, a demo set of disks showed me that you could have not only blindingly faster data access (and programs), but could also create a system that could be distributed royalty free!  But what hooked me with this line of products was the language enhancements over the next few versions and thus I am still using VFP now.&lt;p&gt;I agree that dBase has had it's day, especially when I looked at it a few years ago.  Borland had added OOP capabilities to the product after dBaseIV had been out a while, but if felt more like Paradox's OOP system (probably because Borland owned it?) and seemed to me like a step backwards from what I had learned in VFP.  Of course that is probably just due to my limited knowlege.  Who knows what the new group who owns it now came up with but I understand that they did a complete re-write of the product and I've just not been interested enough to take a look yet...&lt;p&gt;As with spoken languages, programming languages become less used or can die out completely, so for now I am starting to learn .NET and how I can migrate that direction.  Interestingly, I still get the odd job every few years supporting, fixing or modifying dBaseIII+ systems!  That I know of, there is a large publishing company and a leather product manufacturing company in the midwest still running their systems with dBaseIII+ programs!&lt;p&gt;But I want to thank you and other developers like Richard for having a balanced and realistic view of how things associated with our favorite language is proceeding.  It's refreshing compared to the plethora of nay-sayers that have doomed various xBase dialects for so many years!  It has at times reminded me of the Chicken Little nursery rhyme...&lt;p&gt;Marty&lt;p&gt;&lt;i&gt;Richard,&lt;/i&gt;&lt;p&gt;&lt;i&gt;I think one way to look at it is that dbase's time has come and gone. We may love FoxPro and what it can do, but the platform it currently running on is getting crumbly for VFP (especially the desktop) and that will only get worse as time goes on.&lt;/i&gt;&lt;p&gt;&lt;i&gt;While there maybe alternatives that will let you continue to use dBase languages, the question you have to ask yourself is: Do you really want to be in that market niche where few people will be, where there are few peers, support or companies/OOS devs to keep building new features and add-ons? Who will keep extending functionality and innovating with recent market trends to improve the experience? Who will support it? ANd what developers will want to extend it with their own tools? I think you'll find that there are precious few folks who want to be the leaders to take a product forward and not just make it run as other tools have.&lt;/i&gt;&lt;p&gt;&lt;i&gt;We already know how awkard it is to be in a niche market and jumping off the VFP wagon onto an even less known dBase language solution is only going to aggrevate that. Yes you can use your existing code and skills, but there is not likely to be any community or support worth mentioning.&lt;/i&gt;&lt;p&gt;&lt;i&gt;There are other solutions out there for dynamic languages that are more like FoxPro (although none have the data richness of VFP of course - and when that's taken out, a lot of the dynamic/static advantages/disadvantages come out a wash IMHO) that are popular and actively developed with large developer communities around them. Especially for the Web there are LOTS of choices. For desktop the choices are there too but they are pretty ugly with runtimes of Web frameworks. &lt;/i&gt;&lt;p&gt;&lt;i&gt;Either way I think dBase had its time, but it's not going to come roaring back - ever. And if you stay in that niche then you might as well stick with VFP which I think is still the biggest player in the dBase space (for whatever that's worth).&lt;/i&gt;&lt;p&gt;&lt;i&gt;+++ Rick ---&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Hi all,&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Over the last few years there have been many discussions to the eventual end of MS Visual Foxpro.  There have been several projects sprung up that have attempted to either extend the life of VFP or become an alternative replacement.  The replacements have either totally failed or do not resemble VFP in any such way.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;The logical evolution for desktop development in Windows appears to be with little question the .NET framework.  My biggest bugbear with this is that although I love C# as a language the closest language to VFP is VB.NET and to be honest doesn't come close.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Giving this some long thought I questioned why I would miss VFP.  I have totally accepted .NET and C# yet something was missing.  From time to time I end up cutting some VFP code for legacy systems that have not migrated yet and then it struck me.  Its nothing more than the VFP language itself that I will miss, not VFP.  Looking at the roots of this, VFP was based on the DBase language, my initial searches for VFP language alternatives proved pretty fruitless.  I specifically wanted to find the language reincarnated in .NET, no joy.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I was so disheartened as I was coming to the realisation we may actually be seeing a death of a language.  People could argue the langauge is outdated, but the truth is it isn't really.  It's just a language and it can evolve sensibly like any other.  There are many other successful dynamic languages like VFP about.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;I then thought harder.  VFP fell out with Ashton-Tate back in the day over the DBase langauge.  If you look at this single fact, the VFP language is truely a Dbase language at its heart.  This made me look, and what do you know, there it is, DBase.  DBase appears to still exist and under what seems to be something close to its original company.  The website is: &lt;a href="http://www.dbase.com"&gt;http://www.dbase.com.&lt;/a&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;It appears the language still lives on in a more modern way.  It is a shame it is not based on .NET, not sure if this is a disadvantage though.  My biggest concern is why I have not picked up on this in any forums anywhere when people were looking for VFP alternatives?  Is this purely on the basis of the history between VFP and DBase?  You would think those days were gone?  I'm interested in whether people even realised DBase even still existed?  Whether or not I look at this any closer, I'm just humbled by the fact that we have not seen a death of a language.  For me that would be a total tradgedy.&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;What are peoples thoughts on this?&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Regards&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;i&gt;Richard&lt;/i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;/i&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;p&gt;&lt;CENTER&gt;&lt;/CENTER&gt;&lt;/i&gt;&lt;p&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;img src="http://www.west-wind.com/images/wcmvp.gif"&gt;&lt;br&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF0DP4IK";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF0DP4IK</link>
			<author>Marty Cantwell</author>
     </item>
     <item>
			<title>Capturing mousedown on my pages</title>
			<pubDate>Wed, 8 Feb 2012 10:30:47 GMT</pubDate>
			<guid isPermaLink="false">3FF05DY6E</guid>
			<description>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Capturing mousedown on my pages&lt;/title&gt;
    &lt;base href='http://www.west-wind.com/wwThreads/' /&gt;
    &lt;link rel="Stylesheet" type="text/css" href="wwThreads.css?i=1" /&gt;
    &lt;style type="text/css"&gt;
    body { background-color: #ffffdd; }
    .data { font-weight: bold; }
    .label {float: left; content`: #505050; width: 85px; }
    #rightheader { color: #505050; float: right; text-align: right; }   
    &lt;/style&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"/&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="" style="min-width:600px;"&gt;

&lt;div class="messageheader"&gt;
    .NET  Development
&lt;/div&gt;    

&lt;div class="messagetitle"&gt;
  Capturing mousedown on my pages
&lt;/div&gt;

&lt;div class="messagedetailheader"&gt;
    &lt;div id="rightheader"&gt;
          02/08/2012&lt;br /&gt;
           02:30:47 AM&lt;br /&gt;
          3FF05DY6E
          &lt;a href="default.asp?Thread=3FF05DY6D&amp;MsgId=3FF05DY6E"
                  target="_blank"&gt;
             &lt;img src="http://www.west-wind.com/wwThreads/images/folder.gif" border="0" alt="Show this entire thread in new window"
                  width="16" height="16"&gt;
          &lt;/a&gt;
    &lt;/div&gt;  
    
    &lt;div id="leftheader" style="width: 50%;height: 60px"&gt;
        &lt;img src="http://www.gravatar.com/avatar/8bb21f4b8d4ed0f02aa274467cb951a0?s=80&amp;r=pg" 
             style="float: left; margin: 0 10px 0 0;width: 60px; height: 60px; border-radius: 4px; box-shadow: 2px 2px 3px #535353" 
             alt="Gratar Image based on email address"/&gt;
        
        &lt;div class="label"&gt;From:&lt;/div&gt;
        &lt;div class="data"&gt;&lt;a href="javascript:_3FG0HZJGH('pietrorecchilongo','email.it','re%3A%20Capturing%20mousedown%20on%20my%20pages');" &gt;pincoo&lt;/a&gt;&lt;script&gt; function _3FG0HZJGH(eValue,Text,Subject,Body) { var c1 = 'ma'; var c2 = 'ilto:'; var Link = c1 + c2 + eValue + '@' + Text;if (Subject) { Link = Link + '?Subject=' + Subject; } if (Body) { Link = Link + '&amp;Body=' + Body; } window.open(Link);}&lt;/script&gt;&lt;/div&gt;
        
        &lt;div class="label"&gt;To:&lt;/div&gt;
        &lt;div class="data"&gt;All&amp;nbsp;&lt;/div&gt;
        
        &lt;div class="label"&gt;Attachments:&lt;/div&gt; 
        &lt;div class="data" style="color: darkred"&gt;None&lt;/div&gt;        
    &lt;/div&gt;

   
&lt;/div&gt;    



&lt;article class="msgtextbody"&gt;
    Hi, I'm using MouseDown event to get HTMLElement information at runtime.&lt;br&gt;To avoid the click freeze I used the solution described in this site and it works very well.&lt;p&gt;The solution can be summarized as follow:&lt;p&gt;After defining&lt;p&gt;    public delegate void DHTMLEvent(IHTMLEventObj e);&lt;p&gt;    public class DHTMLEventHandler&lt;br&gt;    {&lt;br&gt;        public DHTMLEvent Handler;&lt;br&gt;        HTMLDocument Document;&lt;p&gt;        public DHTMLEventHandler(HTMLDocument doc)&lt;br&gt;        {&lt;br&gt;            this.Document = doc;&lt;br&gt;        }&lt;br&gt;        [DispId(0)]&lt;br&gt;        public void Call()&lt;br&gt;        {&lt;br&gt;            Handler(Document.parentWindow.@event);&lt;br&gt;        }&lt;br&gt;    }&lt;p&gt;&lt;br&gt;we can summon a clickHandler in this way:&lt;p&gt;doc = axDocument.Document as HTMLDocument;&lt;br&gt;DHTMLEventHandler Handler = new DHTMLEventHandler(doc);&lt;br&gt;Handler.Handler += new DHTMLEvent(ClickEventHandler);&lt;br&gt;((mshtml.DispHTMLDocument)doc).onmousedown = Handler;&lt;p&gt;defining the clickEventHandler to do all we want.&lt;p&gt;This is perfect and works, but it doesn't work in some situations: &lt;p&gt; - if I try to detect my mouseClick when I use Outlook Web Access the event doesn't fire.&lt;br&gt; - if I try to detect my mouseClick when I use my personal mail in &lt;a href="http://www.email.it"  target="top" &gt;www.email.it&lt;/a&gt; the event doesn't fire.&lt;p&gt;Why not? Are there any features in those pages that can break the event handler mechanism above?&lt;p&gt;Thank you very much for any help,&lt;p&gt;Pietro&lt;p&gt;&lt;br&gt;&lt;!-- BEGIN SIGNATURE --&gt;&lt;p&gt;&lt;!-- END SIGNATURE --&gt;

    
    &lt;div style="margin: 30px auto;text-align: center;"&gt;
    &lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "ca-pub-2013123155768157";
/* wwThreads_Bottom_Message */
google_ad_slot = "1476055606";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;p&gt;&lt;!-- END BANNER --&gt;    
	&lt;/div&gt;
&lt;/article&gt;

&lt;/div&gt;

&lt;script type="text/javascript"&gt;
    if (parent.Toolbar)
        parent.Toolbar.location = "UpdateToolbar.wwt?MsgId=3FF05DY6E";
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;
</description>
			<link>http://www.west-wind.com/wwThreads/default.asp?msgid=3FF05DY6E</link>
			<author>pincoo</author>
     </item>
</channel>
</rss>
