3.3.2.4 Creating an Assembly for .Net
In Figure 39 – Create Library, we have a create assembly example with the same
class used in the CLR examples for .Net
Figure 39 – Create Library
CREATE LIBRARY "myPoint" as 'temp_dll_stor\\Point.dll')
WITH PERMISSION_SET = UNRESTRICTED
WITH AUTOREGISTER;
3.3.2.5 Sandboxes and Security
Hosted .Net code can run in two modes: Restricted and unrestricted.
3.3.2.5.1 Restricted Mode
In the restricted mode, the default, the code cannot take out of process connections,
access the file system or perform any other possibly dangerous operations.
3.3.2.5.2 Unrestricted Mode
In the unrestricted mode, the .Net code will run with the privileges of a Windows account
associated to the SQL account that is invoking the code. This defaults to the operating
system account on behalf of which the Virtuoso server is running.
With Java, the code may be confined into a Java sandbox, as Java applets in browsers
run or the code can run with the privileges of the OS account on which the Virtuoso
server is running.
With both Java and .Net, the security setting is specified when importing the classes into
Virtuoso.
3.3.3 Web Service Deployment
3.3.3.1 Virtuoso Hosted Services
3.3.3.2 3
rd
Party Web Services (e.g. asmx based services from Visual Studio)
Virtuoso provides the ability to host Microsoft .Net web services .asmx files without any
programming. By inserting, an .asmx file in an executable virtual directory in either
WebDAV or the file system will make its web services accessible to clients and will
publish a WSDL file describing them. The mechanism used for exposing these files is
similar to Virtuoso's ASP .Net hosting. This makes Virtuoso a viable alternative to
Microsoft’s IIS for .asmx hosting. Additionally, .asmx services can be hosted on Unix
platforms through Virtuoso's integration of the Mono CLR run time providing alterative
options for platform deployment for applications.
More Information
For complete details on setting up an environment to experiment with hosting and
Writing ASP.Net Web Applications, see:
• Virtuoso Web Application Development Documentation