|
|
 |
 |
Übungsaufgabe 7: Library - .NET
In dieser Aufgabe soll eine vereinfachte Client/Server-Anwendung ähnlich
Aufgabe 2 in C# für die .NET-Architektur implementiert werden.
Teilaufgabe a)
Als erster Schritt soll die Klasse Library.LibraryDB
implementiert und als Bibliothek erstellt werden (LibraryDB.dll):
> mcs -target:library ILibrary.cs LibraryDB.cs
Zur Vereinfachung werden Items nur durch einen string (ihr Titel)
repräsentiert (eine eigene Klasse Item ist nicht notwendig).
Die Klasse LibraryDB soll das Interface ILibraryDB (in
/proj/i4mw/pub/aufgabe7) implementieren. Die Methoden sollen
jeweils true zurückgeben, wenn die Operation erfolgreich
war, und im Fehlerfall false. Getestet werden kann die Bibliothek
mit der Klasse LibraryDBTest (ebenfalls im pub-Verzeichnis):
> mcs -r:LibraryDB.dll LibraryDBTest.cs
Teilaufgabe b)
Nun soll die Klasse LibraryFrontend implementiert werden, mit der
man ähnlich wie in Aufgabe 1 über ein einfaches Benutzerinterface
auf die Bibliotheksfunktionen zugreifen kann. Insbesondere soll es
möglich sein, neue Items zu registrieren, auszuleihen und
zurückzugeben und sich alle Items anzeigen zu lassen.
Teilaufgabe c)
In dieser Teilaufgabe soll die Bibliothek nun in einen Client und einen Server
aufgespalten werden. Schreiben sie die Klasse LibraryServer, die
einen TCP- oder HTTP-Channel erzeugt. Als Port können sie ihre User-Id
verwenden (Befehl id). Die Klasse Library.LibraryDB
soll als "well-known" Serverobjekt (mit beliebigen Namen)
registriert werden. Achten sie darauf, dass der Server sich nicht sofort
beendet (z.B. durch Warten auf eine Tastatureingabe). Sorgen sie auch
dafür, dass die Klasse LibraryDB als Remote-Objekt verwendet
werden kann. Da im Interface ILibraryDB keine expliziten
lock/unlock-Operationen vorgesehen sind, muss die Datenbank intern für
gegenseitigen Ausschluss beim Ausleihen und Zurückgeben von Items
sorgen.
Die Klasse LibraryFrontend (der Client) muss noch um die
Aktivierung der serverseitigen LibraryDB ergänzt werden.
Erzeugt werden können Client und Server mit den Befehlen:
> mcs -r:LibraryDB.dll,/local/mono/lib/System.Runtime.Remoting.dll
LibraryFrontend.cs
> mcs -r:LibraryDB.dll,/local/mono/lib/System.Runtime.Remoting.dll
LibraryServer.cs
Bearbeitung: bis zum 12.02.2004/18:00 Uhr
Alle Dateien sollen im Verzeichnis
/proj/i4mw/loginname/aufgabe7/ abgelegt und mit dem
abgabe-Programm abgegeben werden.
Die Bearbeitung in 2er Gruppen möglich.
| |