Es sind die beiden Windows-Services, welche die Implementierung des AIAB kompliziert machen. Die Installation von Windows-Services ist noch immer ziemlich komplex und daher für einfache Projekte nicht ratsam. Trotz alledem eignen sich diese Services hervorragend, um Dienstanfragen durchzuführen und deren Beantwortung zu überwachen, so dass diese Funktionalität nicht in der jeweiligen Anwendung ausgeführt werden muss. Bei der Nutzung von StartFunction und EndFunction hingegen bleibt diese Funktionalität in der Anwendung, so dass man selber für deren Programmierung sorgen muss.
Die Klassen
Die vier als Teil des Anwendungsblock-Downloads für die Integration im Beispielcode enthaltenen Klassen werden hier von dem benutzerdefinierten Service-Agenten verwendet. Bei diesem Agenten handelt es sich um die Middleware-Klasse, die auf Ebene der Anwendungsschicht sämtliche Aufrufe übernimmt. In der im Download enthaltenen Beispielanwendung gibt der Code für den CustomizedServiceAgent (CustomizedSA.cs) Aufschluss über die Verwendung der Klassen Command und Dispatcher.
Der Agent implementiert IServiceAgent und ruft, kurz gesagt, die Web Services auf, wobei ein Eintrag bezüglich der Anfrage in der Datenbank gespeichert wird. Alles in allem wirklich ein einfaches und übersichtliches System.
Anwendungsstrategie
Trotz des einfachen Aufbaus dieses Systems ist seine Implementierung etwas mühselig. Für ein Durchschnittsprojekt ist es daher nicht zu empfehlen. Dieser Block ist vermutlich am besten wie von Microsoft vorgesehen einsetzbar, nämlich als Teil einer Implementierung, die Caching Blocks oder Aggregation Blocks umfasst.
Es gibt bestimmte Situationen, in denen sich dieser Block als nützlich erweisen könnte. Beispielsweise würde er bei einem umfangreichen Programm zur Entwicklung und Einrichtung von Geschäftsprozessen – eine Art BizTalk – viele Stunden mühseligen Codierens einsparen. Bei einem Projekt, das dagegen nur einen asynchronen Aufruf eines einzelnen Services benötigt, dürfte die von System.Web.Services übernommene integrierte Start- und Beenden-Funktion ausreichen. Die Status-Daten für diese Implementierung werden im lokalen Projektspeicher erfasst, wogegen dieses System den Status der Anfragen in einer für andere Systeme zugänglichen SQL-Server-Datenbank speichert. Dies bedeutet mehr Leistung, aber auch eine höhere Komplexität.
Schlussbemerkung
Obwohl der AIAB vermutlich für den Alltagsgebrauch eher selten benötigt wird, eignet er sich bestens für die Patterns and Practices-Anwendungen von Microsoft. Der bereitgestellte Beispielcode sowie die Datenbank und der statische Strukturaufbau zeigen anschaulich, wie man „richtig“ für .NET programmiert.
Vor allem muss man sich darüber im Klaren sein, welche Vorgänge bei der Nutzung der Caching Blocks oder Aggregation Blocks im Hintergrund ablaufen. Wenn man Anpassungen vornehmen oder auch nur kompilieren und implementieren will, ist ein gründliches Verständnis dieses Systems eine große Hilfe bei der Lösung potenzieller Probleme.
Ob man nun also den Block als solchen verwendet, weitere Blöcke mit einer AIAB-Integration implementiert oder lediglich asynchrone Abläufe untersucht – der Asynchronous Invocation Application Block bietet eine Vielzahl an Funktionalitäten und Quellcode.
Page: 1 2
Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…
Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…
Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…
Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…
Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.
Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…