Welcome To The Home Of The Visual FoxPro Experts  
home. signup. forum. archives. search. google. articles. downloads. faq. members. weblogs. sponsors. rss.
 From: Boudewijn Lutgerink
  Where is Boudewijn Lutgerink?
 Paalbalk Huissen
 Netherlands
 Boudewijn Lutgerink
 Tags
Subject: Q and A on VFP.Net / NetCompiler
Thread ID: 233407 Message ID: 233407 # Views: 101 # Ratings: 0
Version: Not Applicable Category: VFP and .NET
Date: Thursday, July 02, 2009 9:35:22 AM         
   


It so seems that there are quite a few questions on what this VFP.Net is and what its abilities are.
Also, questions about the future possibilities are asked.
So Camil Ghircoias made a list. I added some things and the eTecnologia people also send some information:

This can be a lengthy read, here's "some" info:
VFP.Net is "the other name" for the "NetCompiler from eTecnologia"

Already done:
- of course native access to the .net framework like any other .net language Vb or C#

using the "Using nameSpace" command opens the namespace AND you can give it an alias
USING NAMESPACE System::Windows::Forms AS Winforms

Later on in your code you can then refer to this alias as in:
partial DEFINE CLASS Form1 AS WinForms::Form
this greatly limits the typing to the absolute neccesary, thus increasing your productivity.

- A new TableLayer with 64 bits support.

-no 2gb barier (it has 16 exabytes (6,000,000,000 GB))
-more than 255 fields (more than a 1000 actually)
-Object oriented, the tables are objects,fields are objects

- Winform designers

- About 90% of vfp commands and functions done.
- New IDE based on SharpDevelop, with code folding and IntelliSense similar to VS
- Command window

(in the future will support block code execution or scan …. endscan commands like)
The output will be in a console (now it is in the command window itself)

- macrosubstitution, the old & friend
- support for ActiveX controls

- a new type for local variable TLOCAL.

This local strong typed variable will increase the speed dramatically as this movie shows
(http://www.youtube.com/watch?v=3FnnmEDWoi0)

- Function overload.
- Function override.
- Better handling of NULL values.
You can now do something like:
if Table.Field = NULL
	* do something
endif


Inline assigment of variables:
TLOCAL iSomeInteger as integer = 2, ;
       oSomeObject as object = CreateObject("Classname"), ;
       oSomeOtherObject as aFormByName =  aFormByName()  
* The latter is another way of creating an instance.


Early stage development (Pretty much Beta)
- Scx designers in early beta stage, started in May.

We will be able to save them back in scx format.
We will have vfp controls with all methods and properties we are used to.
Also, in future version the textdisplay controls (like listbox, editbox, textbox...) will be able to show unicode data like doublebyte character sets.
Of course the tables created with the TableLayer will be able to store DBCS as-is.

- more flexibility as we can add a method to an embedded object like this

Procedure cmdCancel.MyNewProc
	TParameters lpParam
EndProc
Removing the object also removes all properties and methods from the property sheet.

- Visually design controls like in vfp (In "Visual" Studio this is rather UnVisualStudio)
- You can design Visually a Form and then create a derived class from the Form.
The difference between a form class and a form is gone. Both can be subclassed.
- You can design forms visually using the design tab or by code switching between the design and the code tab.

Features to come

- The ability to treat any remote table like vfp cursors.

We will be able to open a remote database (sql server,oracle,etc) like we do with vfp tables. We will be able to use them like this:
use mysqlservertabel fields x,y,z fetchsize 100 records.
then replace x with 1
tableupdate()

IntelliSense for tables.

When working in VFP you can open a table in the command window and type the name followed by a dot (TableName.).
This gives you a list with the fieldnames.
In VFP this only happens in the commandwindow but not in the codesnippets where it should be really useful.
VFP.Net in a future release will have this intellisense available in all code windows.
A table can also have assigned an alias to it in the DataEnvironment or in the Project Manager, it defaults to the table’s name.
After Typing MyTableAlias and dot, you will get the list of fields available.
With the optional strong typing functionality you can get even better results like:
? LEFT(myTable.MyNumericField,4)
You will get an error at compile time because LEFT(), or any other string manipulation function for that matter, expects a string and you are using a numeric field.
Of course you can catch wrong assignments.

You can also do: MyTable.MyNumericField = someValue This works faster than a REPLACE command.
Mind you, when you apply buffering you still should do a tableupdate().
HEY you are expected to do still a bit of work for your money!

When browsing this table the backend will fetch automatically the next block of records when you reach the end of the buffered records.
All this without having to build the updatable fields like in a remote view.
The only thing that is needed is the connection handle and the remote table to have a unique identifier field. (which goes along with GOOD database design, and God only knows how much crap I have seen from so called database designers and DBA's).

- You can alter table add column xxx c(3) and this will add the column into the remote database.
- drop table, create table, "index on" are reflected in the remote database
- create view will do the same
- user defined types for tables (CREATE TYPE command)
? MyAlias.MyFieldComposite.MySubField
? MyAlias.MyFieldComposite.MySubField.MyUserMethod()

VISUAL INHERITANCE EXTENDED FOR TABLES.
Think about a table like a Designer Surface, you get a list of all the properties of the table.
The events, methods and so forth.
You customize the behavior of your table by changing or overriding events / methods in your table.
In your table surface you can layout fields, whether those fields are created for your table or inherit from a fields library.
A field is just a struct (a class of a special kind) and therefore in your table surface you can customize or extend them according to your new tables.
This is subclassing taken to a level that is unseen yet in any development tool.
(OK, promise here, the eTecnologia team will not break their hands while tapping on their shoulders.)

Some user scenarios:
You create a Zip Field or postal code field that stores the Zipnumber/Postal code, so it will always have some layout predefined, Input Mask and a validation method, and some utility methods.

Think of this as having the ability to plot the related address in a map using Google Map.
With that you just put your field in your table and it inherits all the functionality that you wrote on its class. You can extend and override its functionality. This way you can add a button to a form and in the click event have some code like: MyTable.MyZipField.ShowGoogleMap() provided you coded that at the field level.
You can create a composite type field integrating two fields: Cost and SalesPrice. You can create a rule like SalesPrice must always be greater than or equal to Cost. You can display and error or a warning when the rule is broken.

By Dragging the composed type to your table you get the two fields and the relation(s) between them that you can reuse or extend in other tables.
So the visual designer for fields is like a huge repository of fields, bith as we know them now as well as custom types. And they have Events, properties and Methods. Data Access taken to a newer level.

This is expected somewhere late fall 2009.

- More levels of transaction support for dbf's
- Better data integrity for vfp tables like having support for log files and data recovery.
- Reporting:
Reports will be object oriented and will be designed in forms.
The frx files will be imported in the new format.

YOUR VFP FORMS AS WEBCONTROLS
Would it not be nice AND useful if you simply could drag your forms on a ASPX page and run that page.
With that you would have to write the business logic only once and have it running on the desktop and on webpages.
This would be developers’ heaven, wouldn’t it.
Well, heaven is in sight. eTecnologia is working on the Gateways to it.
So stay tuned, we’ll be back after the commercials.

Things partially done
SQL select commands are not included in the compiler yet.
They have them already but without the Rushmore optimization.
They will put them into the compiler only after Rushmore will be finished.
Expected in the next two months. (July or August)

There is more, much more, to tell. But a teaser like this (because that is what it basically is) will appear here every now and then. If I would tell everything then I would be writing a book.

Boudewijn Lutge®ink
The difference between genius and stupidity is that genius has its limits, which is rather stupid.



COMPLETE THREAD
Q and A on VFP.Net / NetCompiler Posted by Boudewijn Lutgerink @ 7/2/2009 9:35:22 AM
RE: Q and A on VFP.Net / NetCompiler Posted by Ciprian Zaharia @ 7/2/2009 1:55:02 PM
RE: Q and A on VFP.Net / NetCompiler Posted by Camil Ghircoias @ 7/2/2009 5:16:33 PM
RE: Q and A on VFP.Net / NetCompiler Posted by Ciprian Zaharia @ 7/2/2009 5:24:43 PM
RE: Q and A on VFP.Net / NetCompiler Posted by Boudewijn Lutgerink @ 7/2/2009 5:26:59 PM
RE: Q and A on VFP.Net / NetCompiler Posted by Ciprian Zaharia @ 7/2/2009 6:17:17 PM
RE: Q and A on VFP.Net / NetCompiler Posted by Bernard Bout @ 7/3/2009 3:26:26 AM
RE: Q and A on VFP.Net / NetCompiler Posted by Camil Ghircoias @ 7/3/2009 9:43:40 AM
RE: Q and A on VFP.Net / NetCompiler Posted by Bernard Bout @ 7/3/2009 2:14:16 PM
RE: Q and A on VFP.Net / NetCompiler Posted by Boudewijn Lutgerink @ 7/3/2009 5:05:53 PM
RE: Q and A on VFP.Net / NetCompiler Posted by Camil Ghircoias @ 7/3/2009 6:22:47 PM
RE: Q and A on VFP.Net / NetCompiler Posted by Boudewijn Lutgerink @ 7/3/2009 10:07:07 AM
RE: Q and A on VFP.Net / NetCompiler Posted by Camil Ghircoias @ 7/3/2009 10:26:38 AM
RE: Q and A on VFP.Net / NetCompiler Posted by Boudewijn Lutgerink @ 7/3/2009 11:39:53 AM
RE: Q and A on VFP.Net / NetCompiler Posted by Tom Saddul @ 7/3/2009 5:01:17 AM
RE: Q and A on VFP.Net / NetCompiler Posted by Boudewijn Lutgerink @ 7/3/2009 10:19:39 AM
RE: Q and A on VFP.Net / NetCompiler Posted by Tom Saddul @ 7/3/2009 12:21:52 PM
RE: Q and A on VFP.Net / NetCompiler Posted by Bernard Bout @ 7/3/2009 3:14:16 PM
RE: Q and A on VFP.Net / NetCompiler Posted by Juan Antonio Santana @ 7/3/2009 5:19:24 PM
RE: Q and A on VFP.Net / NetCompiler Posted by Camil Ghircoias @ 7/3/2009 6:38:27 PM