Wolfram Library Archive

Courseware Demos MathSource Technical Notes
All Collections Articles Books Conference Proceedings

.NET/Link: Controlling the Kernel from .Net

Andreas Lauschke
Organization: Andreas Lauschke Consulting

2005 Wolfram Technology Conference
Conference location

Champaign IL

The talk will highlight some of the features that .NET/Link provides for calling into the Mathematica kernel from a C# program. Several examples of instant visualizations in .Net, Java, and applet windows will be shown, as well as using the Mathematica kernel as the computation engine for data-intensive computation tasks that hand the results back to the controlling C# program.

.NET/Link makes it very easy to pop up .Net windows of various types with user-defined properties in a highly flexible manner. Only a few lines of code are required to display typeset, graphical, and animated results/calculations. These can run in either the same .Net runtime (for manipulation of the objects by the controlling C# program) or in a separate one. Additionally, by linking to a Java runtime via J/Link, it becomes very easy and straightforward to make use of applets found on the web to instantly display output of results using features the applets provide. Several interfaces/wrapper functions, both in C# and in Mathematica, will be shown.

With .NET/Link, the C# program can effectively be used as the controlling program for the Mathematica kernel, while still using .Net or Java methods from the kernel in a separate .Net or Java runtime to make use of their methods, or applets. That way, the Mathematica kernel can be thought of as a huge math library that integrates seamlessly with the controlling C# program or as a controlling program itself that manages .Net or Java output. Mathematica packages extend these functionalities even more and, with the GUIKit package as an example, additional user-interface elements can be used from the .Net program in a very flexible and code-efficient manner.

*Wolfram Technology > Linking Technology > .NET/Link