.Net 3.0 und 3.5
Contents
Windows Workflow Foundation .NET FX 3.0
Hello World
Hello World für Windows Workflow Foundation (.NET FX 3.0). Kein XAML, kein Designer, nur Code. WFSample1.cs.
Die referenzierten Assemblies befanden sich bei mir (Windows XP SP2) nach der Installation von .NET 3 unter C:\Programme\Reference Assemblies\Microsoft\Framework\v3.0.
Es sind: System.Workflow.Activities.dll, System.Workflow.ComponentModel.dll und System.Workflow.Runtime.dll.
Listener Sample
Windows Communication Foundation
Hello World
WCFSample.cs Hello World Hello World für Windows Communication Foundation (WCF), Code Name Indigo. WCFSample.cs. Das WSDL kann dann unter der URL http://localhost/mex abgerufen werden. Kein Config File nötig für dieses Sample, die Endpoints werden programmatisch gesetzt. Das Binding ist http basic (einfacher Webservice ohne Transaktionen und ohne Verschlüsselung und Integrität).
Multiple Endpoints
Sample mit mehreren Endpoints Service mit mehreren Endpoints und einem Client, welcher diese Endpoints nutzt. Hosting des Services ist im Prozess selbst. Um den Client zu generieren braucht es nicht nur das .net 3 Runtime, sondern auch das Vista SDK. Das Utility heisst SvcUtil.exe Der generierte Client kann so verwendet werden:
WCFSample2ServiceClient clientBasic = new WCFSample2ServiceClient("BasicHttpBinding_IWCFSample2Service"); clientBasic.DoTask(); clientBasic.Close();
Files:
- Service: WCFSample2Server.cs
- Service-Konfiguration: WCFSample2.exe.config
- Generierter client: WCFSample2Service.cs
- Client-Konfiguration: WCFSample2Client.exe.config
Per Session-Service
Per Session-Service Hier ein Beispiel eines Services mit SessionMode.Required. Reliable Bindings sind Voraussetzung. Im Beispiel wird verschlüsselt und signiert. Files:
- Service: WCFSample3Server.cs
- Service-Konfiguration: WCFSample3.exe.config
- Generierter client: WCFSample3Service.cs
- Client-Konfiguration: WCFSample3Client.exe.config
Custom Authentication
Custom Authentication In diesem Sample wird Custom Authentication demonstriert. Es handelt sich um einen Self-hosted-service mit wsHttpBinding. Zuerst muss ein Zertifikat installiert werden. Dazu kann man das Tool MakeCert.exe verwenden. Der Aufruf ist wie folgt:
makecert -pe -n "CN=localhost" -ss My -sr LocalMachine -a sha1 -sky exchange -r "localhost.cer" certmgr.exe -add -r LocalMachine -s My -c -n "localhost" -r CurrentUser -s TrustedPeople
Der zweite Befehl kopiert das Zertifikat in einen anderen KeyStore. Es muss auch in einem Trustes Store sein, sonst ist es nicht gültig. Geht auch im User Interface (mmc.exe) mit copy paste. Das Zertifikat ist dann automatisch im Keystore My (Eigene Zertifikate) installiert. Mit dem Tool mmc.exe (SnapIn muss noch hinzugefügt werden) kann man dann schauen, ob es funktioniert hat. Zum Kompilieren des Services braucht es noch die Assemby-Referenzen System.IdentityModel.dll und System.IdentityModel.Selectors.dll. Bei mir wurden die in Programme/Reference Assemblies/Microsoft/Framework/v3.0 installiert (XPSP2). In der Konfigurationsdatei des Servers muss man noch den AssemblyNamen angeben für die Implementation der Autentisierung. Hier die Dateien: Files:
- Service: WCFSample2Server.cs
- Service-Konfiguration: WCFSample2.exe.config
- Generierter client: WCFSample2Service.cs
- Client-Konfiguration: WCFSample2Client.exe.config
- Client-Programm: WCFSample2Client.cs
Custom Authorization
Custom Authorization Dieses Beispiel erweitert das vorherige mit einer eigenen Implementation der Authorisierung. Es wird geprüft, ob der User einer Rolle hat. Der Client bleibt unverändert.
- Service: WCFSample2Server.cs
- Service-Konfiguration: WCFSample2.exe.config