Welcome to eTecnologia.net

We are the creators of .NET Extender for VFP and VFP Developer Studio. Two products targeted to you the Visual FoxPro Programmer, which enable you to integrate Visual FoxPro with the .NET Framework.

Find out more about these two powerful solutions:

  • .NET Extender for VFP. Basically turns the whole .NET Framework into a Visual FoxPro Extension. Several included samples show you how you can have all the power of the .NET Framework in the powerful app you already know: Visual FoxPro.
  • VFP Developer Studio. A powerful IDE for Development of Visual FoxPro Code, that makes you more productive whether you code pure VFP Code or VFP + .NET Code.
    • Compiles prgs, VCXs, SCXs and DBCs to .NET
    • Complete as you type: Type m. and see all the local variables or just type a letter to see the current local variables.
    • Code folding to expand or collapse regions of your code for easier code browsing.
    • Full Intellisense for both VFP Classes and all the .NET Framework.
    • Code tips, Debugger Tooltips for variables, fields and alias expressions
    • Command Window
    • And lots more
  • VFPCompiler for .NET. This product has been incorporated into the VFP Developer Studio it is at the heart of the Functionality provided by the IDE. This Next Generation compiler, actually in beta stage, lets you program to the .NET Framework in Visual Foxpro Code and create pure IL, .NET Assemblies, which run natively in the .NET Framework

New update for the next week

We are stilll working in fixing some bugs in the Buffering support, the next week, April 21, we will be sending the update. We know you are waiting this update, so give us a few days more to fix those bugs.

April 2010 notice

We received several reports about an intermittent glitch in the Contact Form this is related to a bug in ASP.NET while in our tests it happens in a minority of cases, some customers are reporting that for them it happens 90% of the time, so it is very important to fix it. We are aware of this issue and we will put a workaround this week. This bug surfaced after the recent upgrate to Win Server 2008.

Because of the above we are delaying the update for 6 days, it should be available by April 12, after the fix in the Contact form that is used by our customer for inquiries, also the delay will be useful to iron out some bugs remaining in the buffering support for dbs that will appear in this update.

March 2010 update

This update brings exciting new functionality that enables the creation of more complex applications:

  • A Powerful Grid Control is making its debut, this way you can recompile your one to many Visual Foxpro Forms into .NET without changes. This Grid supports the advanced features found until now only in the VFP Grid like Dynamic Controls, Dynamic Colors, Complex Controls, amazing extensibility at the Column / Control level and also brings several new features that our customers have requested:
  • Macros and related functions as CompileExpression have been improved to allow including the THIS clause on it, this is a feature used commonly when setting dynamic properties in the grid as DynamicBackColor, DynamicControl and for dynamically evaluating expressions in your code.
  • A few new samples dealing with Remote Cursors are available for SQL Server and PostgreSQL server. Those samples show how dynamic and easy is to connect to remote data in .NET, because the functionality is the same as in VFP, in fact reading the code you would think those are just normal VFP programs.
  • Table and Record buffering is now available for DBF tables and with it the related functions are making its debut:
    • GETFLDSTATE
    • SETFLDSTATE
  • SET RELATION command has been fixed and the associated functions RELATION() and TARGET() are now available.

In December 2009 we upgraded our servers to Windows Server 2008 and you could have noted some glitches related to the Web Forms like the Contact form displaying errors, those issues have been fixed.

You should have received this update by April 6, if not please use our Contact form to inquiry about.

Stay tuned for the next update that will make public our current implementation of index based optimizations, known in the VFP Jargon as Rushmore, and the enhanced SELECT - SQL that is smarter and yet more powerful than the one you knew in VFP.

September 2009 update

  • The Property Sheet now has a Combo Tree that display the nested controls like VFP did.
  1. Several fixes in the VFP Forms designer, including improved Visual Inheritance.
  2. The VFP Forms now can host .NET Controls, and Visual inheritance is supported for those .NET Controls. Auto event binding for .NET Controls is automatic. See the sample VFPNetControls01
  • IDE improvements. Attaching and Detaching to process not longer confuses the Call Stack window. The error (squiggles) markers now are more useful for diagnosing bad syntax.
  • Debug Stepping into IF, FOR, DO WHILE has been improved.
  • Abbrevs now work too for the command window.
  • PARAMETERS are now supported in top level procedures (those appearing first in the prg without PROCEDURE or FUNCTION declaration), also you can invoke a prg just by doing SomePrg([params]). This means more of your code compiles ok.
  • Catched (with CATCH TO) exceptions now are VFP Exceptions with the same properties. Also a new property InnerException in the Exception object, gives you access to the underlying .NET Exception object.
  • LOCAL now supports dot syntax for types to be more compatible with VFP. LOCAL oInfo as MsGraph.Chart, that syntax is valid only in LOCAL, TLOCAL only supports NameSpace::Type syntax for consistency with the rest of the language.
  • PUBLIC vars are now working.
  • A new command ADD PROPERTY is available in classes that let you add at design time a new property to an inner object. The added property becomes an structural property associated with the object, and therefore is inherited by any subclass.

    The syntax is in the body of a DEFINE CLASS:

    ADD PROPERTY [Container1.Container2[.OtherContainer]]Object.NewProperty [AS SomeType] [= expression]

June news

The next week (June 23 and June 24) our products will be presented at DevCon Prague by Boudewijn Lutgerink. He will give great sessions about how you can preserve all your investment in FoxPro code, and also take advantages of the new capabilities provided by the Compiler for .NET and the .NET Extender for Visual FoxPro.

The Visual Designers, Advanced IDE capabilities, IDE Extensibility, Real Visual Inheritance, Powerful new capabilities and lots more are just a few of the things Boudewijn will present. You will need to be there to believe all of what is possible using your FoxPro skills.

May Update

This update brings new functionality in the VFP Developer Studio IDE, new Commands and functions and new language features. As a registered customers you should receive the new update by June 7.

Also we are happy to announce that in DevCon Prague, Boudewijn Lutgerink will give a Full Session about the VFP Developer Studio, featuring the VFP Capabilities available, how you can improve existing code by introducing a few new features and a Deep Review of all the Features available now in the VFP Developer Studio. This is a must to see session that will give you several WOW! moments when you see the power of the FoxPro language in action.

The new functionality is:

  • The Visual Designers for VFP Forms and Visual Classes are here, featuring advanced capabilities that were not possible previously in Visual FoxPro and of course that are not available in the other .NET Languages.
    • Visual Inheritance, real Visual Inheritance. You can design your controls Visually and then reuse it in other Controls and Forms. And in the derived class / form you can still extend the objects methods and events. No other .NET Language has this capability and we know this is a Favorite Feature for VFP Programmers (as one VFP programmer screams for it in this post), certainly it is for us.
    • You can design Visually a Form and then create a derived class from the Form. The Difference between a Form and a Form Class is now gone as both gives you the possibility to extend it Visually and subclass Visually.
    • Visual design for classes and forms in prgs. The Visual Designers now can work the same either with SCX or with PRGs, you even may want to work just with prgs, like those give you some more features that the SCX.
    • Two way synchronization. Change a property, ADD OBJECT in the prg and it will show automatically when you switch to the new [Design] Tab in the prg. Add or change an object Visually and see the changes in the prg just by switching to the [Source] Tab.
    • Even more object level extensibility. Do you need a new method or a new property in an embedded object. No trouble just declare it in the prg and it will available to you now. No other language neither Visual FoxPro give you that kind of object level extensibility.
        	*  Introducing a new method in an embedded object		
      PROCEDURE cmdCancel.MyNewMethod
      LPARAMETERS tcInfo
      ENDPROC
  • IMPORT Command is implemented and supports the [TYPE] ODS1_2 clause to import from OpenDocument Sheets as those produced by OpenOffice 3.x. The ODS1_2 is also available for APPEND FROM
  • APPEND FROM and variants like APPEND FROM ARRAY are now available
  • BLANK command now implemented. Previously it was available only as a command clause.
  • COPY STRUCTURE, COPY STRUCTURE EXTENDED have been implemented.
  • DECLARE DLL is implemented. Also now you can call not only WINAPI functions, using the optional CALLCONV CDECL | FASTCALL | THISCALLyou can even call other functions that previously were not possible to call with VFP.
  • ADLL Function is now implemented to support DECLARE DLL.
  • CREATE CURSOR was implemented with the capability to use long field names in the cursor declaration.
  • The & Macro functionality has been improved to need significantly less memory when doing thousands of macro expansions. Also for optimizations purposes you can use the new CompileExpression(cMacro,lStatement) function that returns a delegate, this way you can cache expressions to increase the performance at runtime, because as in VFP, macro expansion is an expensive operation.
  • The IDE now stores breakpoints in files not in the current project, so when you reopen the project, you can keep doing cross project debugging.
  • A new project template for Winforms is available: UserControl. This enables you to build Visually a Composite Control that then can be used from .NET Extender. For example you can Visually Design a UserControl with a MenuStrip embedded on it and using the COM Functionality handle the events in .NET by calling methods of your passed VFP Object.
  • Now you can implement explicitly interfaces and reexpose previously implemented interfaces just by inheriting from it again.
  • There are two new short videos posted by Boudewijn Lutgerink showing features of the Developer Studio, you can see them in YouTube. See one about faster code and other about Forms.

March 12, 2009

We updated our documents to include the last features available in the Compiler and Developer Studio. Check the section about the Language Extensions, the features available for Com and Activex, how to Debug your VFP Code with full support for data fields, alias expressions. Also check the updated samples for CLRExtender including Screenshots of the Ribbon UI we are including with the CLRExtender.

March Update

As a registered customer you should have receive an update in the first 7 days of the month. There are new commands and functions in this update. Now the Commands are over 91% percent and the Functions over 92%.

Between the new functionality available is:

  • WITH / ENDWITH support so now you can use those commands and nest them as in VFP. That makes several libraries compile without changes on .NET.
  • Global System Variables. All of the VFP System Variables are now available on .NET, like _TEXT, _PRETEXT and you can use them like in VFP.
  • Text Merge functionality. One of the strengths in VFP had always been the text merge functionality that makes really easy generate code and text files according to your needs. A useful application has been that of generate Web Pages and code. Now that functionality is available with the implementation of:

    TEXT / ENDTEXT. Including TO varName, PRETEXT, FLAGS and all of the other clauses available in VFP. The current implementation even allow you to Debug step by step every line between the TEXT and ENDTEXT commands.

    \, \\ commands to output text in the middle of your programs.

    DIR, DIRECTORY, TYPE, are implemented and can output to FILE

    PRINTJOB / ENDPRINTJOB and several System Variables now works under VFP.

    With the new TextMerge capabilities, code that is too cumbersome to write using .NET TextWriters and .NET Methods is so easy and straight in VFP requring a lot less effort and time to achieve nice results.

  1. Now you can make any window handle a control usable from your forms. The control reacts to all the events like if it was a VFP Control including MouseOver, Click, Double Click and all the normal VFP Controls. This functionality enables powerful capabilities for your VFP Forms, because now you can host Arbitrary Controls coming from C, C++ and even Java Controls inside VFP Forms. If you can get a Handle then you can use it like a normal VFP Control. See the new class VFP::Runtime::Classes::VFPNativeWindow and the attach method. Compared to the Old Way of using BINDEVENT(hWnd) it is big leap forward as that brings full OOP to Native Window Handling.
  2. EXPORT also is now implemented featuring CSV, DELIMITED, VFP9 Tables, OpenDocument Format Sheets, like those used in OpenOffice Calc and more formats.
  3. Several improvements in Activex and COM Support.
  4. The IDE Debugger has been enhanced to support Expandable TreeLists for THIS, Member Variables
  5. Now in the IDE you can right click in your VFP Program and Choose Copy As HTML and your code is exported, with Syntax Hightlighting as Web Content that can be easily pasted in Web Pages as HTML. That make easy to put Code Snippets in Web Pages.

Also in February Update

  • The compiler now supports declaring and intializing arrays using the notation {element1, element2, element3} see below for an example.
  • The SET MARK OF command also supports the clause DYNAMIC so your menu check mark automatically changes depending of some application state.
  • We have updated our Implemented Functionality status to reflect the available functions (over 91%) and Commands (over 80%) available in this update. The ASP.NET sample VFPStatus now also includes a page for Commands (VFPCommandsStatus.aspx)

New for February 2009

This update brings Major features in terms of both Runtime Completion and new Language Additions. As a registered customer you should have received an email with the download link for this update.

  1. Major feature. We are now over 91% percent of Implemented Functions and the Commands are over 80%. In March the functions will get closer to 100% and the Commands will be over 90%.
  2. This update brings support for COM and OLEControl / Activex programming to VFP Forms and programs. Now you can create COM Objects using CREATEOBJECT() as in VFP and fully automate it like:

    LOCAL oApp, oWorkBook, oSheet

    oApp = CreateObject("Excel.Application") &&Dynamic creation

    oWorkBook = oApp.Workbooks.Add() && optional parameters in action

    oApp.Visible = .T.

    oSheet = oWorkBook.Sheets(1) && Default member in action

The COM Support is better than the provided by .NET because we are reusing some parts of the Advanced Dynamic Capabilities from .NET Extender, so you can do things that you can't in C# or VB.NET

See the included sample ComExcelDemo. To see pure VFP Code (SCAN included) dealing with COM as previously, except that this time it is compiled into .NET.

And now your VFP Forms containing Activex Controls can be compiled and run under .NET without changes. See the sample OleControls_Treeview, showing a VFP Form hosting a TreeView (mscomctl.ocx) and adding items with optional parameters, event handling in VFP just by overriding NodeClick and other features.

  • Major feature. Remember that for years we VFP Programmers wished to have OOP Menus. Well now we are debuting a whole new group of classes (VFP::Runtime::Classes::Menu) handling Menus, Menu Pads, Menu Popup, Menu Bars and related utilities. And this update also includes support for almost all the Menu Related commands as DEFINE MENU, DEFINE PAD, DEFINE POPUP, DEFINE BAR, ON BAR, ON PAD, ON SELECTION and of course all the menu related functions as CNTBAR(), CNTPAD(), PROMPT() and more. See the samples Menu01_Sample and ControlsDemo to see them in action.

With this new functionality you can mix menu commands and OOP Menu programming and interop seamlessly between command based menus and OOP menus. To access the Menu object declared with DEFINE BAR for example use the new functions GETMENUOBJECT, GETBAROBJECT, GETPADOBJECT and GETPOPUPOBJECT.

And this is just the beginning in the next updates we will be expanding the menu functionality to include Cool Features as Intelligent Menus, VFP Controls inside Menu Popups, your own drawn menu items and even better features that surely you will love.

  • Major feature. We are introducing a powerful feature enabling you to define default values for parameters. As you know VFP treats all the parameters as optional by default, and pass a .F. (false) value when you invoke the method with less parameters than specified.

Now you can define what will be the default values for not passed parameters and with that you can simplifiy a lot your code. And inside your procedure you can use PCOUNT() to know how many parameters were passed, this is a feature not available in other .NET Languages. It works both in Compiled Code and in dynamic code even in code called from other .NET Languages.

The following is a snippet of the Sample OptionalParameters_Demo showing how easy is to define default values for VFP procedures.

DEFINE CLASS TestingOptional

 

      PROCEDURE TestVFPStyleWithDefault

      LPARAMETERS tcInfo, tnValue = 19

 

 

      PROCEDURE TestParamArray

      TPARAMETERS tnValue as integer, teInfo as integer = 5, toArgs() ...

 

In March we will introduce yet another new feature related to parameters that will make your life easier when invoking functions with several parameters as those like CursorToXML, that feature also will make our programming better for implementing Commands with lot of clauses.

  • Now you can declare arrays using the following notation

LOCAL oInfo

oINfo = {1,2,3,4,5}

 

instead of

DIMENSION oInfo(5)

oInfo(1) = 1

oInfo(2) = 2

oInfo(3) = 3

oInfo(4) = 4

oInfo(5) = 5

  • IDE enhancements. Now you can use Ctrl-J to list the parameters in the current procedure / method invocation. Also with Ctrl+K you can list the clauses for the current command.
    • Now you can define what is the Project Home for your project. That is very important to full support DO Proc IN SomeProg and other commands that depends of the relative path.
    • And now you can also define what is your Main program, so it is invoked automatically when your app runs. To see this feature choose Project - Options - Compiling.
  • As you know .NET Extender for VFP let you treat the whole .NET Framework as a VFP Extension. A comon question we receive is if it supports new features in the .NET Framework 3.5. the answer is yes and we have some demos of that:

    WPFHost showing how to host Windows Presentation Foundation controls inside VFP Forms (requires .NET 3.5)

    Charting01 sample displaying a Chart available in the brand new MSChart package (requires .NET 3.5), you should take a look at the MsChart package because it provides really nice charts for your VFP Apps.

    Also .NET Extender now contains a sample displaying an OpenSource Ribbon inside a VFP Form as explained here.

New for January 2009

We are starting the year with a new update that has the following major features

  • Nearly 50 more VFP Runtime functions implemented we are now getting close to 90% of completion.
  • Between the new functions is AddProperty. With this your code is more dynamic than ever as you can:

    LOCAL oCustom

    oCustom = CREATEOBJECT("custom")

    oCustom.AddProperty("MyProperty",.F.)

    oCustom.MyProperty = 19

    ? oCustom.MyProperty

    And with that dynamic functionality now you can also dynamically add New Methods to your objects. And it works not only with dynamic typing also you can add new properties and methods to strong typed objects, so you get the best of both worlds. Not other language in .NET has this level of dynamic power.

  • Speaking of dynamic functionality. Something we sorely miss in .NET is the amazing VFP Command Window that let us change objects, execute VFP Functions or Commands and more. As you know, there is not equivalent functionality in the other .NET Languages. We are proud to say that now that amazing functionality is in the IDE check here to see it in action.
  • FoxCode Intellisense.  Part1.  Now the Complete as you type functionality has been extended to VFP Commands.  We are using most of FoxCode VFP Intellisense, to enable support as Commands Tool Tips and Complete as you type for VFP Commands.  With this new functionality we are more productive coding in the VFP Developer Studio than in VFP.

 In February even more FoxCode Functionality will be integrated.  As VFP Intellisense is coded in VFP (FoxCode.pjx), we will be recompiling that and incorporating it into the VFP Developer Studio.  The above functionality was taken directly from FoxCode, with no changes.

  • Almost 100% of SET COMMANDS has been implemented, the compiler parses and generates code to register their state.  This makes possible compile more code and makes more happy the parser.

 Syntax highlighting for COMMANDS and CLAUSES, now the commands and their clauses are displayed in different color to give you a better view of your code.  The syntax highlighting will continue to be enhanced to make you more productive.

  • Also debugging ASP.NET code has been enhanced to support complex scenarios as multithreading.
  •  ASP.NET samples, now show how to code an ASP.NET WebControl using VFP tables and just VFP Code.  Check the sample VFPStatus, that shows how your skills as USE-ing tables, SCAN-ning them can be transferred with no changes to the Web.
  • Maybe you had seen Hank Fay's video showing some features of the VFP Developer Studio. In case you don't, take a look at YouTube. Let us know what you think about.
  • We know that your language maybe not English, in fact most of our visitors come from non english speaking countries so now courtesy of Google we have automatic translations in several languages:

See more news in the news Archive.