Theme:
v
NetAccess™

Description

The NetAccess™ product helps you generate C# DLLs ActiveX which can be used by any development system supporting ActiveX.

This means for example that, with NetAccess™, you can write a C# DLL and directly use it from products like Visual Basic 6 or from APL+Win with ⎕wi.

This also means that you'll now be able to exploit the full power of the .Net Framework from any development system supporting ActiveX.

Features

Here are the main features of the NetAccess™ product:

  • NetAccess™ is a C# Code Generator: it generates the code of your C# DLL for you at the click of a mouse
  • NetAccess™ can generate entire Visual Studio Solutions automatically
  • you can interactively define your DLL properties, methods and events without writing any code
  • you can Alt+Tab from NetAccess™ to Visual Studio and both systems automatically prompts you to update the code if you have changed it in the other system
  • NetAccess™ can generate DLLs containing C# User Controls which you can embed and directly use in forms developed with your development system (watch the screencast)
  • NetAccess™ can generate DLLs containing C# Forms which you can directly use in your development system (watch the screencast)

Screencasts

NetAccess 4.0 Video Tutorial: learn how to use the latest version of NetAccess to use C# Classes, C# User Controls and C# Forms from APL+Win

Tutorial

Tutorial: create a C# DLL containing a C# WebBrowser User Control and use this control in APL+Win, embedding it in an APL+Win form

Prerequisites

To be able to use NetAccess™, you need:

  • APL+Win v6.4 (or later)
  • Microsoft Visual Studio 2005, Visual Studio 2008 or Visual C# Express (free)

Upon request we can send a version of NetAccess™ that would work with APL+Win 4.x or 5.x.

You do not need to know much about how to use Visual Studio or how to program with C#: a 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.

Product content

NetAccess™ includes the following:


  • an APL+Win workspace with unlocked APL code containing the NetAccess™ C# Code Generator and various utilities
  • a C# ActiveX DLL allowing you to use Regular Expressions from APL+Win
  • several sample C# ActiveX 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)
  • the 100 pages NetAccess™ Manual

Price

NetAccess™ costs 450 €

NetAccess™ is free for active APLDN Subscribers

Example

Here is an example showing how to use a C# OBJECTS DLL to send asynchronously send Emails from APL+Win:

      ∇ 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" <sender@domain1.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" <sender@domain1.com>'
[34]  Z←'mail'⎕wi'*xReplyTo' 'sender@domain1.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' 'recipientN@domainN.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™.

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

Thanks to the XSendAsync .Net Framework method, the above function can send an Emails to 1000 recipients about 100 times faster than what we could do in pure APL without using C#: that's a good example demonstrating why NetAccess™ and C# can be useful to APL developers!

NetAccess™ FAQ

Who can use NetAccess™?

NetAccess™ can be very useful to any APL+Win developer. But the usefulness of NetAccess™ is not limited to APL+Win: NetAccess™ can be successfully used by any system supporting ActiveX (Visual Basic 6, Dyalog APL, etc.).

Do I need to own a copy of Visual Studio 2005/2008 to use NetAccess™?

Yes. You will need to write some C# code and Visual Studio is the best development environment for C#. You can perfectly use Visual C# Express which is a free version of Visual Studio downloadable from the Microsoft Web Site.

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

Yes, you'll have to learn a little bit of Visual Studio and of C#: however the NetAccess™ documentation explains with a lot of details how to write a C# DLL, on a step by step basis. Moreover, the NetAccess™ C# Code Generator does most of the job automatically for you, without errors. The C# Code Generator can only write the C# Code skeleton though, with all the required attributes, properties, methods and events. You will have to complete the generated code with some additional code for your C# methods, properties and events. The NetAccess™ documentation has been written for people having never used Visual Studio or C#: it is also a good C# tutorial in itself.

How difficult is C# to master?

You may decide to become a C# expert and it will take quite some 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™. You also get more help since there are thousands and thousands of C# examples you can find on Internet allowing you to copy/paste code in your DLLs. You will definitely need to learn the basics though.

Is the NetAccess™ 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 set up for you
  • an additional method already setup to test your events

However it obviously does not contain the internal code for your methods and properties For example, an Age method generated by the C# Code Generator would typically read:

public int Age(DateTime dbirth)
{
    int result = new int;
    return result;
}

but to make it do something interesting, you would complete it to something like:

public int Age()
{
    int result;
    result = DateTime.Now.Year - (int)Math.Floor((decimal)(dbirth / 10000));
    return result;
}

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

Yes.

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

Yes, as long as the APL+Win version you own supports using ActiveX.

You may need to request us a version of the NetAccess™.W3 workspace compatible with your version of APL+Win.

Is the C# DLLs I created with NetAccess™ usable 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 /codebase "c:\pathname\dllname.dll"
        
    (this assumes that the .Net Framework 2.0+ is installed on the target computer: the .Net Framework is a free 21 MBytes or so download from Microsoft Web Site. Note that the above command must be run from the c:\windows\microsoft.Net\framework\v2.0.50727 directory)