Main page.

CORBA with MinCor.NET

The IDL-to-C# language mapping used by MinCor.NET (its formal OMG specification is still pending) 
is kept similar to OMGs standard IDL-to-Java language mapping, due to the conceptual similarities 
between C# and Java. Both languages support interfaces with multiple inheritances which require 
explicit implementation by classes. A Java or C# class, on the other hand, can only inherit from 
a single base class. It therefore seems obvious to identify CORBA interfaces with C# interfaces. 
As in Java all administrative functions associated with an IDL interface are made available as part 
of an additional generated 'Helper' class. 


The major difference between the Java- and the C#-language mapping is the absence of 'Holder' classes.  
C# allows for in/out-parameters and call-by-reference as compared to Java. Therefore, C# does not need
special containers for parameters passed by reference.


CORBA types are directly mapped to C# types as far as possible. But the language independent concept 
of the .Net framework allows the use of MinCor.NET with any language supporting the .Net Compact Framework. 


Content

	- Requirements
	- Remarks
	- Mapping for Basic Data Types
	- Mapping for Complex Types

	First steps
	- Hello - Getting started

	Language mapping
	- Attribute - Using IDL Attributes
	- ListArrayStruc - Using IDL Sequences, Arrays & Structs
	- UniEnu - Using IDL Unions & Enums
	- Excep - Using CORBA User Exceptions
	
	Common patterns
	- Callback - Using Callbacks between CORBA Applications
	- Factory - Using Dynamic Creation of CORBA Objects
	
	Special features
	- LongMsg - CORBA Performance with Massive Data Amount
	- Persistent - Using Persistent Server IORs




Requirements

	- Microsoft .Net Compact Framework 1.1
	- Add 'MinCor\bin\MinCorCF.dll' as reference to your .Net projects.


(Back to Content / top)

Remarks

	All the examples are located at 'MinCor\Demo\<NameOfExample>'.

	Every example contains an IDL file at its root directory, and
	two subdirectories containg the code for a client and for a server 
	application.

	For your convenience, there are .Net project files available, too.
	
(Back to Content / top)

Mapping for Basic Data Types

	OMG IDL                  C# / .Net
	-----------------------------------------
	boolean                  bool
	char                     char
	wchar                    char
	string                   string
	wstring                  string
	octet                    byte
	short                    short
	unsigned short           ushort
	long                     int
	unsigned long            uint
	long long                long
	unsigned long long       ulong
	float                    float
	double                   double
	long double              double


(Back to Content / top)

Mapping for Complex Types


	OMG IDL                  C# / .Net
	-----------------------------------------
	interface                interface
	
	struct                   struct
	enum                     enum
	union                    class
	
	array                    array
	sequence                 array
	
	CORBA::ORB               Middsol.CORBA.ORB
	PortableServer::POA      Middsol.PortableServer.POA
	CORBA::Any               Middsol.CORBA.Any
	CORBA::Object            Middsol.CORBA.Object

	


(Back to Content / top)