-
Notifications
You must be signed in to change notification settings - Fork 38
Was ist neu in Zyan 2.0_
Zyan 2.0 führt einen neuen Transportkanal ein. Er heißt TcpExChannel und implementiert ein bi-direktionales Protokoll. Das macht es für Clients möglich, Ereignisse und Callbacks vom Server zu empfangen, sogar bei eingeschalteter clientseitiger NAT-Firewall. Einfach TcpDuplexClientProtocolSetup und TcpDuplexServerProtocolSetup verwenden, um die Vorteile des neuen Features in eigenen Anwendungen nutzbar zu machen.
+Beispiel:+ {code:c#} // Duplex-Kanal am Server mit Anschluss 8080, ohne Authentifizierung und mit eingeschalteter Verschlüsselung konfigurieren. TcpDuplexServerProtocolSetup protocol = new TcpDuplexServerProtocolSetup(8080, new NullAuthenticationProvider(), true); using (ZyanComponentHost host = new ZyanComponentHost("YourApp", protocol)) { ... }
// Duplex-Kanal am Client einstellen TcpDuplexClientProtocolSetup protocol = new TcpDuplexClientProtocolSetup(true); ZyanConnection connection = new ZyanConnection("tcpex://server:8080/YourApp",protocol); // Präfix 'tcpex' beachten! {code:c#}
Zyan 2.0 enthält ein neues Feature, um Aufrufe clientseitig abzufangen. Dies ist sher nützlich, wenn bestimmte Aufrufe unter bestimmten Bedingungen abgebrochen oder überwacht werden sollen. Außerdem für Caching Szenarien.
+Beispiel:+ {code:c#} // Filter für anstößige Wörter in einer Chat-Anwendung, mit Zyan Call Interception implementiert connection.CallInterceptors.For().Add( (IMiniChat chat, string nickname, string message) => chat.SendMessage(nickname, message), (data, nickname, message) => { if (message.Contains("fuck") || message.Contains("sex")) { System.Console.WriteLine("TEXT CONTAINS FORBIDDEN WORDS!"); data.Intercepted = true; } }); {code:c#}
Zyan 2.0 ermöglicht einfache Verwendung von LINQ-Abfragen in verteilten Anwendungen. Die LINQ-Unterstützung ist in der Assembly Zyan.InterLinq implementiert. Fügen Sie diese Assembly als Verweis Ihrem Projekt zu. So wird eine LINQ-Datenquelle mit einem eindeutigen Namen am Server veröffentlicht:
{code:c#} // LINQ-Datenquelle registrieren host.RegisterQueryableComponent("YourSourceName", t => GetYourLinqSource(t));
...
///
// LINQ-Abfrage ausführen (wird serverseitig verarbeitet) var result = from item in proxy.Get() where item.Name.StartsWith("Hello World") orderby item.Name select item; {code:c#}
.NET Remoting kennt sog. OneWay-Methoden. Das sind Methoden, welche mit einem OneWay Attribut dekoriert werden. OneWay-methoden blockierend den Aufrufthread nicht. Deshalb sind sie nützlich für Fire & Forget Szenarien. Zyan 2.0 erkennt und verarbeitet diese OneWay-Attribute nun auch. Sie können sie ganz normal verwenden, wie Sie es von .NET Remoting gewohnt sind.