Name der Bibliothek:
Lotus.NET
Beschreibung:
Mit Lotus.NET lassen sich sehr einfach verteilte Anwendungen erstellen, bei denen Methoden nativ auf dem Server ausführbar sind, als wären sie im Client selbst. Um das ganze besser verständlich zu machen, habe ich mir mal die Zeit genommen, ein kleines Beispiel vorzubereiten.
Beispiel:
Spoiler anzeigen
Beispielprojekt herunterladen (120KB)
Verwendete Programmiersprache:
Visual Basic .NET (IDE: Visual Studio 2010 Professional)
Systemanforderungen:
.NET Framework 4.0
Download:
Download Lotus.NET (17 KB)
Lizenz/Weitergabe:
Closed Source, Mergen ist nicht erlaubt, nur für nicht-kommerzielle Projekte.
Lotus.NET
Beschreibung:
Mit Lotus.NET lassen sich sehr einfach verteilte Anwendungen erstellen, bei denen Methoden nativ auf dem Server ausführbar sind, als wären sie im Client selbst. Um das ganze besser verständlich zu machen, habe ich mir mal die Zeit genommen, ein kleines Beispiel vorzubereiten.
Beispiel:
Zuerst muss für einen Netzwerkservice ein gemeinsames Interface definiert werden, dass Client und Server kennen.
Dabei werden im Interface alle Methoden definiert, die gemeinsam genutzt werden. Anschließend implementieren wir die Methode in den Server:
Soweit so gut, um die Methode im Client nutzen zu können, ist das ganze etwas komplizierter.
Das ist im Prinzip auch schon alles, um einen gemeinsamen Service zu erstellen. Der Client kann jetzt auf den Server connecten und anschließend die Methoden in der Client-Klasse aufrufen, die dann auf dem Server ausgeführt werden.
Dazu ein Beispielmodul:
Eine vollständige Dokumentation wird die Tage folgen, inklusive einem Tutorial, mit dem man Shared Properties erstellen kann, die dann im Client nativ genutzt werden können.
Dabei werden im Interface alle Methoden definiert, die gemeinsam genutzt werden. Anschließend implementieren wir die Methode in den Server:
VB.NET-Quellcode
- Imports Lotus
- Public Class ServiceHost : Inherits HostBase(Of IService) : Implements IService
- 'SayHello-Methode auf Serverseite. Durch das NetworkMethod Attribut
- 'weiß Lotus, dass diese Methode als Netzwerkmethode gekennzeichnet ist.
- <NetworkMethod()> _
- Public Function SayHello(a As String) As String Implements IService.SayHello
- Return "Hello " & a
- End Function
- 'Host initialisieren und auf Port 8000 starten
- Public Sub New()
- MyBase.Initialize(Me)
- MyBase.Host.Start(8000)
- End Sub
- End Class
Soweit so gut, um die Methode im Client nutzen zu können, ist das ganze etwas komplizierter.
VB.NET-Quellcode
- Imports Lotus
- Public Class ServiceClient : Inherits ClientBase(Of IService) : Implements IService
- 'SayHello Methode auf Client-Seite
- Public Function SayHello(ByVal a As String) As String Implements IService.SayHello
- '
- ' Die Methode "SayHello" mit den Argumenten "a" und
- ' dem Rückgabewert vom Typ String auf dem Server ausführen.
- '
- ' Alle Konfigurationsmöglichkeiten im Überblick:
- '
- ' .Method: Methodenname der auszuführenden Methode
- ' .WithArguments: Argumente, die der Methode übergeben wurden
- ' .WithGeneric: Falls generische Parameter mit angegeben werden, diese übergeben
- ' .Return(Of T): Methode ausführen und Rückgabewert vom Typ T zurückgeben
- ' .Execute: Methode ausführen, kein Rückgabewert
- '
- Return MyBase _
- .Method("SayHello") _
- .WithArguments(a) _
- .Return(Of String)()
- End Function
- 'Client initialisieren und auf 127.0.0.1:8000 verbinden
- Public Sub New()
- MyBase.Initialize(Me)
- MyBase.Client.Connect("127.0.0.1", 8000)
- End Sub
- End Class
Das ist im Prinzip auch schon alles, um einen gemeinsamen Service zu erstellen. Der Client kann jetzt auf den Server connecten und anschließend die Methoden in der Client-Klasse aufrufen, die dann auf dem Server ausgeführt werden.
Dazu ein Beispielmodul:
VB.NET-Quellcode
- Imports Lotus
- Imports Lotus.Authentification
- Module LotusTest
- Sub Main()
- 'Unsere Servicekomponenten initialisieren
- Dim serviceHost As New ServiceHost
- Dim serviceClient As New ServiceClient
- 'Protokoll und Transfermodus auf Standardwerte setzen
- Network.Protocol = Protocol.TCP
- Network.TransferMode = TransferMode.Default
- 'Wichtig, um das Authentifizierungssystem zu deaktivieren,
- 'das für unsere Zwecke nicht nötig ist.
- serviceHost.Host.SecurityManager.SecurityMode = SecurityMode.None
- 'Die Methode "SayHello" wird im Server ausgeführt und der Rückgabewert
- 'an den Client zurückgesendet
- Dim helloWorld As String = serviceClient.SayHello("World")
- 'Ergebnis ausgeben
- Console.WriteLine(helloWorld)
- Console.ReadLine()
- End Sub
- End Module
Eine vollständige Dokumentation wird die Tage folgen, inklusive einem Tutorial, mit dem man Shared Properties erstellen kann, die dann im Client nativ genutzt werden können.
Beispielprojekt herunterladen (120KB)
Verwendete Programmiersprache:
Visual Basic .NET (IDE: Visual Studio 2010 Professional)
Systemanforderungen:
.NET Framework 4.0
Download:
Download Lotus.NET (17 KB)
Lizenz/Weitergabe:
Closed Source, Mergen ist nicht erlaubt, nur für nicht-kommerzielle Projekte.
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Krissel095“ ()