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
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.
- 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.
- EXPORT also is now implemented featuring CSV, DELIMITED, VFP9 Tables, OpenDocument Format Sheets, like those used in OpenOffice Calc and more formats.
- Several improvements in Activex and COM Support.
- The IDE Debugger has been enhanced to support Expandable TreeLists for THIS, Member Variables
- 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.
- 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%.
- 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:
- Spanish
- German
- Romanian
- Italian
- French
- Czech
- Portuguese
- Russian
- Chinese simplified and Chinese traditional
- Polish
- And you can get more translations at Google Translate
New for December 2008
A new update is out this marks the first debut of the VFP Developer Studio a powerful IDE this update brings the following enhancements over what was shown in DevCon Germany in November 2008.
- Speed the compiler now runs between 2x to 3x times faster than the previous versions. As we approach the version 1.0 we are starting to optimize the compiler. And when we will introduce the new parallel compiling features the performance will get a boost in multi core machines, for example 3x-4x times faster in a 4 cores machine.
- Better error reporting. The compiler now displays more friendly error messages to let you know when you are doing mistakes as THIS.MethodNonExistant() or THIS.Method(wrong number of parameters)
- Type Inference. Now when using the optional strong typing capabilities you can let the compiler to automatically infer the type of a variable as this:
TLOCAL eVar = THIS.MyMethod() && eVar will have the same type as the return type of MyMethod
And the type inference is automatically available in the IDE so eVar will have all the Intellisense available.
- Now you can declare and intialize a variable in the same line as this
LOCAL myVar = SomeExpression()
TLOCAL myVar = SomeExpression()
- Debugging enhancements. Now when debugging are available tooltips for LOCAL (or PRIVATE) vars, fields and aliased expressions (MyWorkArea.MyField), just move your mouse over the field or variable name to see the current value. Check the sample TestDatabase to see this feature in action. And of course you can add to the debugger watches LOCAL vars, fields and aliased expressions and see them as normal. This is a major feature that makes debugging database or table handling code really simple and powerful.
- Stay tuned for even more features as conditional breakpoint in LOCAL, fields and aliased references. That is something to debut in January.
- Runtime completion. Now we are over 70% and quickly approaching completion. Here is a partial list of the functions implemented this month:
- Several Samples are available including one doing Visual Design of a WPF Form and binding with VFP Data in the VFP Way.
- .NET Extender now includes additional samples as doing advanced Image Manipulation using ImageMagick. A new function CLRCreateCallback is available and allows you to expose VFP Code to Win32 functions as if it was a native pointer, check the sample Function_Pointers_enum_windows.prg.
AClass, AGetFileVersion, ASessions, APrinters, GetEnv, ANetResources, AStackInfo, ASQLHandles, ATCC, ATagInfo, AUsed, BinToc, CHRTRANC, SETRESULTSET, CLEARRESULTSET, CURVAL, COL, ROW, CTOBIN, DIRECTORY, DRIVETYPE, FLCOUNT, FLDLIST, FONTMETRIC, GETCOLOR, GETDIR and more.
News for October 2008
We wil be at SWFox and attendants will get several prizes courtesy of Boudewijn Lutgerink.
At SWFox Toni Feltman will be showing Cool Samples using the .NET Extender and she will give some of the prizes. That is a Session you can't miss and we feel very happy to have such a great presenter doing demos of our products.
Boudwijn Lutgerink also will be Demoing what has kept us busy the last months: the new VFP Developer Studio, a new IDE for VFP / .NET that has lots of powerful features
- Supports for VFP Code and .NET Coding including Code Completion, Intellisense for class members and method overloads.
- Code Folding and Syntax Highlighting
- Can compile VCXs, SCXs, PRGs.
- Visual Designers for Winforms.
- Coming soon are the Visual Designers for SCXs, VCXs, so the world most powerful designers, the VFP Designers, will be available under .NET
- Web Projects including:
- Web Pages / ASP.NET pages coded in VFP Language
- Web Services.
- ASP.NET pages
- JSON Invocation of VFP Code
- Several project types as Web, Console, Win Exes and Class Libraries.
- Powerful Debugging, including attaching to running process or starting your current project.
- This IDE does not depends on VFP IDE. It is fully independant of the VFP IDE.
And still more features coming: be sure to attend DevCon Germany in November where Markus Winhard will give tremendous sessions about .NET Extender and the VFP Developer Studio.
Also in DevCon Germany, Boudwijn Lutgerink will be giving some prizes.
Update for March 2008
You can read the March news letter to get all the exciting details about the new functionality available. This update expands the ASP.NET abilities introduced in the November Update. With the new functionality Visual FoxPro is now the best language for dealing with Data in ASP.NET
These are the major improvements
- ASP.NET. Significantly improved functionality including new Web Site project type, Ajax funcitonality for your WebPages, JSON WebServices and general WebServices.
- A new Simple Page Editor, let you code WebPages inside VFP and then it exports them to ASPX pages for .NET. You have WysIWyg HTML Editing, Simple Tag Completion and Syntax highlighting. And of course all this inside is Visual FoxPro code.
- Multithreading support even for local variables. The TableLayer64 and the runtime has been improved to deal with Multithreaded code. This is very important for ASP.NET apps that are multithreaded in nature.
- Database Support several new commands related to Databases are available.
- Automatic ORM from Tables to Objects. Now we compile your Databases and Tables to .NET and enable several exciting scenarios. Including Compile time checking that your database dealing code is ok.
- CALCULATE and related functions implemented and now you can define your own aggregatable functions.
- SCATTER / GAHER also implemented
- Run "!" button in the .NET Extender Toolbar give you one click access to run your prg under .NET. This is simply easier than the way in .NET things are done.
- SQL Passthrough improved with the ability to call stored procedures returning RecordSets and tested with SQL Server, PostgreSQL, Oracle 8i and 10g (thanks to D.P.) and MySQL 5.x (thanks to J.D.)
- More commands and functions.
- Several new samples and walkthroughs for the new funcitonality.
Updates November II
We were in DevCon Germany and We were the most attended session!. Thanks to Markus Winhard for working so hard to make such a great presentations. His sessions were really great! and he has allowed us to post here his notes and presentations so check soon to see them translated to English. His work is so great that looks like a Technical Manual so it is really a must read.
There is a new update available. Our November NewsLetter gives you the juicy details about what is debuting in the compiler:
- ASP.NET you can code ASP.NET pages in Visual Foxpro language!
- C# and VB.NET language conversion to Visual Foxpro
- Data Session support
- & Macro support now available!
- SQL Passthrough
- CursorAdapter is debuting
- Generalizated tables
- Generalizated Indexes
- Visual Foxpro forms enhancements including Data Environment functionality for automatically opening your tables.
- Table 64 Layer enhancements
Updates November I
We have great news to share this month.
- We are debuting a new great site built by the Smart and Creative people of Design Und Development. Big thanks to Deborah and Michael Bickel for bringing us such a nice site, They really love VFP as shown by the great effort put into this site and the really nice touches seen every where here.
- We'll be featured in DevCon Germany. Markus Winhard will give sessions about .NET Extender and the .NET Compiler for VFP. He will be showing cool stuff debuting into the compiler this month so be sure to check his sessions.
- VFP with our .NET Compiler beat the competition. In a recent contest ran by the German Magazine DotNet Pro the solution using VFP ran faster than all the others contenders, beating SQL Server, SQLite, Access and others.. Markus Winhard, the smart guy behind this has all the details here. It is in German a translation will appear soon in our site. In the meantime you can check an automatic translation by Google here.
What is amazing is that we ran faster than the others even when:
- We used the disk for all the work. Other contesters ran most ot the hard work in pure memory. If we had done this in memory we'll have outperformed even more the competition.
- The other winning solutions all skipped using ADO.NET DataTables, as they are really slow. We used the great Table Layer of VFP.
- Really smart people participated in this contest as shown by the Algorithms used to check for duplicates. To run faster that those great programs means a lot to us because we were in Alpha at that time
Updates October
Now the compiler can compile very complex forms with no change at all. It is really great to have all the power of VFP forms as Visual Inheritance, powerful extensibility and Object model in .NET.
Check other updates in early october here.
Updates September
Now Visual Foxpro Forms and Controls compilable to .NET as shown below. Check our September Newsletter for details about this update release.