Dyalog .NET Interface Guide
Total Page:16
File Type:pdf, Size:1020Kb
The tool of thought for expert programming Dyalog .NET Interface Guide Version 14.1 Dyalog is a trademark of Dyalog Limited Copyright © 1982-2015 by Dyalog Limited All rights reserved. Version: 14.1 Revision: 20160701 No part of this publication may be reproduced in any form by any means without the prior written per- mission of Dyalog Limited. Dyalog Limited makes no representations or warranties with respect to the contents hereof and spe- cifically disclaims any implied warranties of merchantability or fitness for any particular purpose. Dyalog Limited reserves the right to revise this publication without notification. TRADEMARKS: SQAPL is copyright of Insight Systems ApS. UNIX is a registered trademark of The Open Group. Windows, Windows Vista, Visual Basic and Excel are trademarks of Microsoft Corporation. Oracle and Java are registered trademarks of Oracle and/or its affiliates. All other trademarks and copyrights are acknowledged. iii Contents Chapter 1: Overview 1 Introduction 1 Prerequisites 3 Files Installed with Dyalog 4 Configuring the .NET Framework 5 Chapter 2: Accessing .NET Classes 7 Introduction 7 Locating .NET Classes and Assemblies 7 Using .NET Classes 10 Browsing .NET Classes 14 Advanced Techniques 24 More Examples 30 Enumerations 34 Handling Pointers with Dyalog.ByRef 35 Chapter 3: Using Windows.Forms 39 Introduction 39 Creating GUI Objects 39 Object Hierarchy 40 Positioning and Sizing Forms and Controls 40 Modal Dialog Boxes 40 Non-Modal Forms 45 Chapter 4: Windows Presentation Foundation 47 Temperature Converter Tutorial 48 Data Binding 67 Syncfusion Libraries 98 Chapter 5: Writing .NET Classes in Dyalog APL 103 Introduction 103 Assemblies, Namespaces and Classes 103 Example 1 104 Example 2 109 Example 2a 112 Example 3 114 Example 4 117 iv Example 5 121 Interfaces 125 Chapter 6: Dyalog APL and IIS 127 Introduction 127 IIS Applications and Virtual Directories 128 Internet Services Manager 129 Chapter 7: Writing Web Services 137 Introduction 137 Web Service (.asmx) Scripts 138 Compilation 139 Exporting Methods 140 Web Service Data Types 141 Execution 141 Global.asax, Application and Session Objects 142 Sample Web Service: EG1 143 Sample Web Service: LoanService 146 Sample Web Service: GolfService 151 Sample Web Service: EG2 169 Chapter 8: Calling Web Services 175 Introduction 175 The MakeProxy function 175 Using LoanService from Dyalog APL 176 Using GolfService from Dyalog APL 177 Exploring Web Services 181 Asynchronous Use 183 Chapter 9: Writing ASP.NET Web Pages 187 Introduction 187 Your first APL Web Page 188 The Page_Load Event 193 Code Behind 196 Workspace Behind 199 Chapter 10: Writing Custom Controls for ASP.NET 217 Introduction 217 The SimpleCtl Control 218 The TemperatureConverterCtl1 Control 222 The TemperatureConverterCtl2 Control 227 The TemperatureConverterCtl3 Control 234 Chapter 11: APLScript 239 v Introduction 239 The APLScript Compiler 240 Creating an APLScript File 242 Copying code from the Dyalog Session 243 General principles of APLScript 244 Creating Programs (.exe) with APLScript 245 Creating .NET Classes with APLScript 248 Creating ASP.NET Classes with APLScript 255 Chapter 12: Visual Studio Integration 259 Introduction 259 Hello World Example 259 Using an Existing Workspace 264 Chapter 13: Implementation Details 267 Introduction 267 Isolation Mode 268 Structure of the Active Workspace 269 Threading 272 Debugging an APL.NET Class 274 Index 277 Chapter 1: Overview 1 Chapter 1: Overview Introduction This manual describes the Dyalog APL interface to the Microsoft .NET Framework. This document does not attempt to explain the features of the .NET Framework, except in terms of their APL interfaces. For information concerning the .NET Frame- work, see the documentation, articles and help files, which are available from Microsoft and other sources. The .NET interface features include: l The ability to create and use objects that are instances of .NET Classes l The ability to define new .NET Classes in Dyalog APL that can then be used from other .NET languages such as C# and VB.NET. l The ability to write Web Services in Dyalog APL. l The ability to write ASP.NET web pages in Dyalog APL Chapter 1: Overview 2 .NET Classes The .NET Framework defines a so-called Common Type System. This provides a set of data types, permitted values, and permitted operations. All cooperating languages are supposed to use these types so that operations and values can be checked (by the Common Language Runtime) at run time. The .NET Framework provides its own built-in class library that provides all the primitive data types, together with higher- level classes that perform useful operations. Dyalog APL allows you to create and use instances of .NET Classes, thereby gaining access to a huge amount of component technology that is provided by the .NET Framework. It is also possible to create Class Libraries (Assemblies) in Dyalog APL. This allows you to export APL technology packaged as .NET Classes, which can then be used from other .NET programming languages such as C# and Visual Basic. The ability to create and use classes in Dyalog APL also provides you with the pos- sibility to design APL applications built in terms of APL (and non-APL) com- ponents. Such an approach can provide benefits in terms of reliability, software management and re-usage, and maintenance. GUI Programming with System.Windows.Forms One of the most important .NET class libraries is called System.Windows.Forms, which is designed to support traditional Windows GUI programming. Visual Studio .NET, which is used to develop GUI applications in Visual Basic and C#, produces code that uses System.Windows.Forms. Dyalog APL allows you to use System.Windows.Forms, instead of (and in some cases, in conjunction with) the built-in Dyalog APL GUI objects such as the Dyalog APL Grid, to program the Graphical User Interface. Web Services Web Services are programmable components that can be called by different applic- ations. Web Services have the same goal as COM, but are technically platform inde- pendent and use HTTP as the communications protocol with an application. A Web Service can be used either internally by a single application or exposed externally over the Internet for use by any number of applications. Chapter 1: Overview 3 ASP.NET and WebForms ASP.NET is a new version of Microsoft Active Server Page technology that makes it easier to develop and deploy dynamic Web applications. To supplement ASP.NET, there are some important new .NET class libraries, including WebForms which allow you to build browser-based user interfaces using the same object-oriented mechanism as you use Windows.Forms for the Windows GUI. The use of these component lib- raries replaces basic HTML programming. ASP.NET pages are server-side scripts, that are usually written in C# or Visual Basic. However, you can also employ Dyalog APL directly as a scripting language (APLScript) to write ASP.NET web pages. In addition, you can call Dyalog APL workspaces directly from ASP.NET pages, and write custom server-side controls that can be incorporated into ASP.NET pages. These features give you a wide range of possibilities for using Dyalog APL to build browser-based applications for the Internet, or for your corporate Intranet. Prerequisites Dyalog APL Version 14.1 .NET Interface requires Version 2.x or greater of the Microsoft .NET Framework. It does not operate with .NET Version 1.0. For Windows Presentation Foundation (WPF) and basic Data Binding, Version 14.1 requires .NET Version 4.0. For full Data Binding support (including support for the INotifyCollectionChanged interface1), and Syncfusion, Version 14.1 requires .NET Version 4.5. 1This interface is used by Dyalog to notify a data consumer when the contents of a variable, that is data bound as a list of items, changes. Chapter 1: Overview 4 Files Installed with Dyalog NET Interface Components The components used to support the .NET interface are summarised below. Different versions of each component are supplied according to the target platform. There are: l developer/debug and runtime versions l 32-bit and 64-bit versions l Classic and Unicode Edition versions For a list of these different versions and their corresponding file names, See User Guide, Chapter 1. l The Bridge DLL. This is the interface library through which all calls between Dyalog APL and the .NET Framework are processed l The DyalogProvider DLL. This DLL performs the initial processing of an APLScript. l The APLScript Compiler. This is itself written in Dyalog APL and packaged as an executable. l The DyalogNet DLL; a subsidiary library l The Dyalog DLL. This is the engine that executes all APL code that is hos- ted by and called from another .NET application. l The dyalogdata4.5.dll provides advanced support for Data Binding and Syncfusion. In particular it provides the INotifyCollectionChanged interface which is required to support data binding of collections and lists. This DLL requires .NET Version 4.5 and is not used unless .NET 4.5 is enabled. Code Samples The samples subdirectory contains several sub-directories relating to the .NET interface: l aplclasses; a sub-directory that contains examples of .NET classes writ- ten in APL. l aplscript; a sub-directory that contains APLScript examples. l asp.net; a sub-directory that is mapped to the IIS Virtual Directory dyalog.net, and contains various sample APL Web applications. l winforms; a sub-directory that contains sample applications that use the System.Windows.Forms GUI classses. Chapter 1: Overview 5 Configuring the .NET Framework If you have more than one version of the .NET Framework installed, you may select which version APL uses from the .NET Framework tab of the Configuration dialog. Chapter 1: Overview 6 This dialog box allows you to specify which version of the .NET Framework you want to use with Dyalog APL.