Lescasse Consulting
 Home    Company    News    Prices    Download    Buy    Forums   
Read Me
Buy
Forums
Resume
AntiSpam 1.2
wBackup 1.11
NetAccess 2.0
Visual APL 1.0 
APL+Win 8.0 
APL+Win Products 
APL+Win Objects™ 
APL+Win Training 
APL+Web Services
APL+Web Component 
APL+ History
Dyalog.Net Tutorial
Conferences 
Powerpoint
White Papers
Web Hosting
References
Links
 
APL+Win Objects™ 6.0

TADO5
TADO5 Tutorial
TAPLDraw5
TAPLEdit5
TAPLSession5
TAbale5
TAboutBox5
TAccess5
TAgent5
TBlatMail5
TButton5
TCDO5
TCRC5
TCancelButton5
TCheck5
TCheckGroup5
TChildForm5
TChooseColor5
TChooseFont5
TClipBoard5
TClock5
TCodeStats5
TColors5
TCombo5
TComboDrive5
TComboFilter5
TComboList5
TComboTree5
TCommandBar5
TCommandButton5
TControlClass5
TCueCard5
TDHTML5
TDHTMLEditor5
TDateTime5
TDateTimeFr5
TDates5
TDemoHandlers5
TDisplay5
TDOS5
TDualSelect5
TEdit5
TEditAmount5
TEditDir5
TEditEnter5
TEditFile5
TEditGrid5
TEditList5
TEditListview5
TEditMenu5
TEditNum5
TEditSelect5
TEditSpin5
TEmail5
TError5
TExampleForm5
TExcel5
TExcel5 Tutorial
TFindReplace5
TFOne5
TFTP5
TFTP5 Tutorial
TFileCompare5
TFileMenu5
TFileMenuDef5
TFlatButton5
TForm5
TFormClass5
TFormEditor5
TFrame5
TGetDir5
TGif5
TGifForm5
TGifWb5
TGoMenu5
TGraphX5
TGrid5
TGridDisplay5
TGridPrint5
TGUID5
THLine5
THTML5
THTML5 Tutorial
THTTP5
THelp5
THelpMenu5
TImagelist5
TInfo5
TIniFile5
TInstall5
TInternet5
TJpg5
TJpgWb5
TLabel5
TList5
TListview5
TLock5
TLogs5
TMAPI5
TMath5
TMDIForm5
TMSOutlook5
TMaskEdit5
TMedia5
TMenu5
TMessage5
TModalCall5
TMsgBox5
TNavigator5
TNetwork5
TNonVisualClass5
TODBC5
TOKButton5
TObject5
TOpenFile5
TOption5
TOptionGroup5
TOutlook5
TOutlookMail5
TOWCSpread5
TPDF5
TPFKeys5
TPage5
TPassword5
TPicture5
TPing5
TPopupMenu5
TPowerpoint5
TPowerpoint5 Tutorial
TPrinter5
TProgress5
TProgressDlg5
TQuestion5
TRegistry5
TRegistryKey5
TResource5
TRichEdit5
TSPX5
TSQLDMO5
TScheduler5
TScroll5
TSelector5
TSpinner5
TSplitter5
TStatus5
TStopWatch5
TTest5
TTestError5
TTextFile5
TTimer5
TTip5
TTipForm5
TTLI5
TToolBar5
TToolbox5
TToolsMenu5
TTrackbar5
TTranslate5
TTree5
TVLine5
TViewMenu5
TWebBrowser5
TWebServer5
TWebSite5
TWebSiteNet5
TWinMenu5
TWord5
TYesNo5
    Visits:  6011 (50 on line) Last Update: Mar 5, 2006  
    NetAccess 2.0    Printer Friendly  
NetAccess 2.0 allows you to write C# DLLs and to use them from third parties development systems like APL+Win, exactly as if they were ActiveX.
This means that, with NetAccess 2.0, you can write a C# DLL, "prepare" it to be used by products like APL+Win, compile it and then use it as if it were an ActiveX, using ŒWI.
This also means, with NetAccess 2.0, APL+Win users will now be able to exploit the full power of the .Net Framework and its thousands of classes.
 
NetAccess 2.0 is a major Release including important enhancements which make NetAccess easier and nicer to use in conjunction with Visual Studio 2005


 Prerequisites


To be able to use NetAccess 2.0, you need:

  • APL+Win v4 (or later)
  • Microsoft Visual Studio 2005

You do not need to know how to use Visual Studio or know how to program with C#: a 100 pages detailed documentation full of examples, teaches you on a step by step basis, how to write a DLL in C# and how to prepare it so that it can be used as an ActiveX from APL+Win.

 What's new in NetAccess 2.0  


Here are the NetAccess v2.0 enhancements:

  • Syntax Coloring
    - the C# generated code is now syntax colored (with the same default colors as used by Visual Studio 2005)
  • Grid Colors
    - the Properties, Methods and Events grids now use colors
  • Automatic Link to the Visual Studio C# Source File
    - a new field and button lets you link the current NetAccess project to the corresponding Visual Studio C# file
  • 2-way C# Code Changes Detection Between the NetAccess RichEdit Control and the NetAccess Grids
    - all changes you make to the NetAccess Properties, Methods and Events grids are automatically reflected in the C# code
    - all changes you make to the C# code are automatically reflected in the NetAccess Properties, Methods and Events grids
  • 2-way C# Code Changes Detection Between NetAccess and Visual Studio 2005
    - when you change and save C# code in NetAccess, Visual Studio automatically detects the changes and prompts you to load the NetAccess version of the file
    - when you change and save C# code in Visual Studio, NetAccess automatically detects the changes and prompts you to load the Visual Studio version of the file
  • C# Code Preservation
    - NetAccess now preserves C# code you may have written under Visual Studio
    - This means that you can work back and forth between NetAccess and Visual Studio without losing code even though code is generated every time you make changes under NetAccess.
  • Automatic C# Code Adjustment and Generation from Changes in Properties, Methods and Events Grids
    - NetAccess now uses more than 100 regular expressions to perform automatic and secure adjustments to the generated C# code whenever you add, remove, rename properties, methods, events, arguments, etc. through the various NetAccess grids
  • Font and Font Size Selection
    - it is now possible to change the font you use and the font size
  • Miscellaneous
    - new toolbar buttons
    - new menu options
    - many shortcuts have been added to speed up working with NetAccess
    - tooltips have been added to all buttons
    - a new shortcut (Ctrl+Tab) to cycle thru all the NetAccess "tabs"
    - a new C# Code button to return mode easily to the generated C# Code "tab"
  • NetAccess ScreenCasts Tutorials
    - Tutorial #1 shows how to create a C# DLL including a Person object, how to define several properties and a method, and how to work back and forth between NetAccess and Visual Studio 2005: then the C# DLL is used from APL+Win
    - Tutorial #2 shows how to exploit the Microsoft .Net Regular Expressions classes from APL+Win: the Tutorial starts by creating a C# DLL with a Replace method allowing you to replace strings in a given text according to Regular Expressions; it then shows how to use the DLL from APL+Win. Finally a more complex method is added to the DLL using NetAccess: the method code is written under Visual Studio and after the DLL is compiled, it is used again under APL+Win. This Tutorial also demonstrates how to write some simple Regular Expressions.

 What was new in NetAccess 1.2  

NetAccess has been improved and includes the following enhancements:

  • now remembers the last directory used for loading or saving a NetAccess script file
  • a toolbar has been added with buttons for most menu options
  • a few improvements have been made in the way the C# DLL was built

 Product content


NetAccess 2.0 includes the following:

  • an APL+Win workspace containing the NetAccess 2.0 C# Code Generator and various utilities
  • several C# sample DLLs (complete C# Solutions with source code), among which:
    • a DLL showing how to use the various C# types
    • a DLL allowing to send Email asynchronously
    • a DLL showing how to exploit the C# DateTime object
    • a DLL showing how to use a C# visual control from APL+Win (MaskedTextBox)
  • a 100 pages NetAccess 2.0 Manual

 The NetAccess 2.0 C# Code Generator


Although the NetAccess 2.0 documentation gives you all the information you might need to write and prepare C# DLLs yourself for use by APL+Win, NetAccess 2.0 also includes a complete C# Code Generator which does almost all the work for you.

Not only does this mean much faster development, but also much simpler development and a way to avoid the various errors and typos which would result from manual development.

The C# Code Generator is invoked by loading the INTEROP.W3 delivered workspace and callling the Generate function as follows:

      Generate''

The following screen shot shows a sample C# Code Generator session where part of the C# generated code is visible.

C# Code Generator

You can now change the font and the font size as desired:

C# Code Generator

 Using the C# Code Generator


Using the C# Code Generator is very simple:

  • you type a NameSpace name (any character string using only letters will do)

  • you type a class name (any character string using only letters will do)
     
  • you decide if you want to create a C# DLL including a visual User Control or not by checking the User Control check box
     
  • you click on Properties to define the properties you want your C# DLL to include (see below)

    Defining Properties

     
  • you click on Methods to define the methods you want your C# DLL to include (see below)

    Defining Methods

     
  • you click on Events to define the methods you want your C# DLL to include (see below)

    Defining Events

     
  • you finally click on the Generate button and the C# generated code (partly shown in the first screen shot above) gets displayed and is also automatically copied to the clipboard: all you need to do from there on, is to paste the generated code into your Visual Studio C# project and possibly complete some of your generated properties, methods, events with some additional C# code, if you need so.

  • you can later on add, remove, rename properties, methods, events and arguments or change their types using the Properties, Methods and Events buttons: changes are immediately and automatically reflected in the C# code
Note that you can easily save your C# Generated Code projects using the File menu:

File Menu

You can thus save a C# Generated Code project complete with its properties, methods, events definitions, C# generated code, namespace and class names and then reload it later on to complete it by adding more properties, methods, or events.

You can also start a new project by loading a previously saved project as a starting point for you new project, rename it and adapt it.

C# Generated Code projects have .CCG extension.

 Using your C# DLL from APL+Win


Here is a sample APL+Win Session showing how to use the C# DLL generated in the above example:

      'person'Œwi'Create' 'LescasseConsulting.NetAccess.Person'
  ot
      'person'Œwi'xName' 'Lescasse'
      'person'Œwi'xBirthDate'(1951 3 5)
      'person'Œwi'xName'
Lescasse
      'person'Œwi'xBirthDate'
1951 3 5
      Œdr'person'Œwi'xBirthDate'
323
      'person'Œwi'onXComputedAge' 'Œ„"I have computed that ",(2œŒwarg)," is ",(•1œŒwarg)," years old!"'
      'person'Œwi'XAge'
I have computed that Lescasse is 56 years old!
55
      Œdr'person'Œwi'XAge'
I have computed that Lescasse is 56 years old!
323
In the above example, we start by creating an instance of the Objects.TestCodeGen C# object (available to APL+Win after the C# DLL has been successfully compiled): we then use the xName and xDateBirth properties defined in the C# DLL, define a handler for the onXComputedAge event defined in the C# DLL and call the XComputeAge method defined in the C# DLL. The C# code for the ComputeAge method is:

Age method

As you can see, this method fires the ComputedAge event on the 4th line, passing it 2 arguments (result and Name) and, as you can see, not only does the ComputedAge event fire in APL, but we do get the arguments passed by C#, through the regular ŒWARG mechanism.

Here is another one showing an APL function which uses a C# DLL developed to allow sending Emails asynchronously:

        ’ TestMail2;R;Z;html;text;recipients
    [1]   ©’ R„TestMail2 -- Sample function sending many E-mails from APL+Win
    [2]   ©’ asynchronously using the OBJECTS.DLL C# 2.0 Assembly
    [3]   ©’ Note: before using Objects.Mail, you must register the
    [4]   ©’ OBJECTS.DLL C# 2.0 Assembly.  To do so:
    [5]   ©’ 1. be sure to have installed Microsoft .Net Framework 2.0 on your computer
    [6]   ©’ 2. copy OBJECTS.DLL anywhere on your computer (say in C:\TEMP)
    [7]   ©’ 3. register it running the following command from the
    [8]   ©’    "c:\windows\microsoft.Net\framework\v2.0.50727" directory
    [9]   ©’
    [10]  ©’    regasm /tlb /codebase "c:\temp\objects.dll"
    [11]  ©’
    [12]  ©’ One needs to run this <regasm> command only once for a given computer.
    [13]  ©’ Requires: (F) AV2ANSI
    [14]  ©’ Copyright (c) 2006 Eric Lescasse
    [15]
    [16]  html„'<HTML><BODY>'
    [17]  html„html,'<FONT SIZE="14"><B>'
    [18]  html„html,'This is my first test sending a mail from APL<br/>'
    [19]  html„html,'using a .Net C# Assembly'
    [20]  html„html,'</B></FONT>'
    [21]  html„html,'</BODY></HTML>'
    [22]
    [23]  recipients„›'"Eric Lescasse" <eric@lescasse.com>'     © for test purposes only
    [24]  recipients„recipients,›'recipient2@domain2.com'
    [25]  recipients„recipients,›'recipient3@domain3.com'
    [26]  recipients„recipients,›'recipient4@domain4.com'
    [27]  © etc. There maybe thousands of recipients: their E-mail
    [28]  © addresses would generally nbe retrieved from a database
    [29]
    [30]  Z„'mail'Œwi'*Create' 'Objects.Mail'
    [31]  Z„'mail'Œwi'*xServer' 'smtp.easynet.fr'
    [32]  Z„'mail'Œwi'*xPort'25
    [33]  Z„'mail'Œwi'*xFrom' '"Eric Lescasse" <eric@lescasse.com>'
    [34]  Z„'mail'Œwi'*xReplyTo' 'info@lescasse.com'
    [35]  Z„'mail'Œwi'*xSubject'(AV2ANSI'Lescasse Consulting Newsletter')
    [36]  Z„'mail'Œwi'*xBodyHTML'(AV2ANSI html)
    [37]
    [38]  :for I :in ¼½recipients
    [39]      Z„'mail'Œwi'*xTo'(Iœrecipients)
    [40]  ©   Z„'mail'Œwi'*xCC'(Iœrecipients)
    [41]      Z„'mail'Œwi'*xBCC' 'info@lescasse.com'  © useful to get a copy of the mail
    [42]      Z„'mail'Œwi'*onXCompletedCallback' 'Œ„Œwarg'
    [43]      Z„'mail'Œwi'*xPriority' 'High'   © or 'Low' or 'Normal'
    [44]
    [45]      R„'mail'Œwi'*XSendAsync'
    [46]      :if R¬0
    [47]          Œ„'mail'Œwi'*xError'
    [48]      :endif
    [49]
    [50]  :endfor
    [51]
    [52]  Z„'mail'Œwi'*Close'
    [53]  Z„'mail'Œwi'*Delete'
    [54]
       ’

This example shows the use of a more complete C# DLL containing a number of properties, methods and events. This DLL and its source code is delivered with NetAccess 2.0.

It helps send E-mailings from APL+Win to a large number of recipients in no time! 

It is a good example of the use of C# to solve a problem that APL+Win could not solve easily or solve at all since APL+Win does not natively support threads.

Using C# visual objects from APL+Win


NetAccess 2.0 even allows you to use C# visual objects from APL+Win.

For example, with NetAccess 2.0, you could easily generate the C# code for a DLL containing a MaskedTextBox user control and then use this DLL from APL+Win and populate some APL+Win forms with the MaskedTextBox control and use all of its .Net properties, methods, events.

This is particularly interesting since C# includes so many powerful visual objects which suddenly become available to APL+Win.

FAQ


Who can use NetAccess 2.0?

NetAccess 2.0 can be very useful to any APL+Win developer. But the usefulness of NetAccess 2.0 is not limited to APL+Win: NetAccess 2.0 can be successfully used by users of such development systems as Visual Basic 6, and in general of any development system which can call ActiveX.

Do I need to own a copy of Visual Studio 2005 to use NetAccess 2.0?

Yes. You will need to write some C# code and Visual Studio 2005 is the best development environment for C#.

Do I need to know C# to use NetAccess 2.0?

You don't need to know C# to create some C# DLLs repeating the documentation examples or to write simple C# DLLs of your own mimicing what's described in the documentation. The NetAccess 2.0 documentation explains with a lot of details how to write a C# DLL, on a step by step basis. Moreover, the NetAccess 2.0 C# Code Generator can do most of the job automatically for you, without errors. However the C# Code Generator can only write the C# Code skeleton, with all the required attributes and with your defined properties, methods and events. You will generally have to complete the generated code with some additional code for your C# methods and with your C# events argument definitions. The NetAccess 2.0 documentation has been written for people having never used Visual Studio 2005 or C#: it is a good tutorial on how to start with C#. If you work in an environment where there are C# developers you may also hand up to them the NetAccess 2.0 C# generated code and ask them to write the C# complement code for you.

How difficult is C# to master?

You may decide to become a C# expert and it will take a long time (just as long as it may take to become an APL expert), but frankly you will not need to become a C# expert to successfully use NetAccess 2.0. There are thousands and thousands of useful free C# classes to be found on Internet, which you are allowed to copy/paste: this will often be enough to solve your problem. You will definitetly need to learn the basics though.

Is the NetAccess 2.0 generated code complete?

Yes, it is a complete skeleton of your C# class with:

  • all the required interfaces set up for you
  • all the required attributes set up for you
  • all the desired properties, methods and events
  • an additional method already setup to test your events
However it obviously does not contain your application proprietary code. For example, the ComputeAge method is generated by the C# Code Generator as:

Age method

and to make it do something interesting, you may want to change it to:

Age method

Does NetAccess 2.0 really gives access to the full .Net Framework from APL+Win?

Yes.

I own an old version of APL+Win: can I use NetAccess 2.0?

Yes, as long as the APL+Win version you have can call ActiveX.

You may need to request to us a file version of the INTEROP.W3 workspace which you will be able to recreate using the FILETOWS utility found in the WFCARE.W3 workspace delivered with APL+Win (see the TOOLS subdirectory)

Is the C# DLLs I created usable (from APL+Win) on other computers than mine?

Yes. You need to do 2 things:

  • copy the C# DLL on the other computer
  • register the DLL with the following DOS Command:

    regasm /tlb /codebase "c:\pathname\dllname.dll"

    (the .Net 2.0 Framework, a free 21 MBytes download from Microsoft, must have been installed on the target computer and this command needs to be run in the c:\windows\microsoft.Net\framework\v2.0.50727 directory)

Do you provide Training classes or sessions?

Yes, 2 kinds of Traning:

  • C# training to teach you the basics you need to know in order to get started developing your own C# DLLs
  • training on how to most successfully use NetAccess with APL+Win
If you feel you need any of these, please contact me.

What is the cost of NetAccess 2.0?

500 USD (or 400 €)

 This entire Web site has been dynamically generated by APL+Win Objects™ 6.0
 For all questions contact:  info@lescasse.com
 Copyright © 2003-2005 Lescasse Consulting. All rights reserved.