Anmelden

Allgemeines

Aufgabe eine Microkernel ist die Auflösung von Interfaces auf Implementationen (der Kernel kann für ein von einem Client angefragtes Interface einen Server lokalisieren bzw. instanziieren)

Demo-Projekte

Das DNP-Demo-Suite bietet folgende Erkenntnisse/Features:

  • Contract-First-Design auf Basis .NET-Interfaces (VB, keine WSDL)
  • liefert einen eigenen Micro-Kernel mit beachtlichen Konfigurationsmöglichkeiten
  • Hosts-Konzept (Anwendung besteht nur aus DLLs)
  • Unterstützung von .NET-Remoting
  • alles in VB implementiert

Die Ordnerstruktur der DNP-Projekte ist sehr unübersichtlich. Außerdem gibt es noch Probleme mit Exceptions bei einigen Startprojekten (Hauptproblem war dass die beiden Hosts ind dnp.hosts neu kompiliert werden mussten). Hier die Erkennnisse, einzelne Konfigurationen zu beleuchten und auszuführen (WinXP-Pro + VS2005):

  • dnp.microkernel
    • dnp.microkernel: enthält den Mikrokernel-Code
    • tests: einfacher Test des Kernel funktioniert: 1 Anwendung und 2 Serverobjekte in einer Datei. Microkernel listet verfügbare Server auf (App.config)
    • Testprojekt: Projektmappe
      • Interfaces
      • Domainlogic: ist die Server-Komponente
      • test microkernel (Startprojekt) eine bloße Anwendung für DomainLogic (ohne Verwendung von Hosts und Remoting), funktioniert nach Modifikationen:
        • in MyDomainlogic _GetRoles Problem, ListCurrentRoles() auskommentiert
        • App.config: Berechtigungen der Roles auskommentieren
      • Client ist eine Anwendung als DLL für Remoting-Server konfiguriert (dnp.host.console.exe neu kompilieren und kopieren) funktioniert
      • ApplicationPortal: die Domainlogic als Remoting-Server TCP Port 8000 konfiguriert(dnp.host.console.exe neu kompilieren und kopieren) funktioniert
  • dnp.hosts (Hosts zum Abblauf von Client und DomainLogic mit/ohne Remoting)
    • die Projekte sind nicht als Startprojekte zu sehen (unvollständige konfiguration):
    • dnp.host.console ohne Remoting konfigurieren, Änderungen:
      • lokale microkernel-konfiguration ergänzen in dnp.host.console.exe.config;
      • < local keyType="dnp.microkernel.IMain"
        assembly="Client"
        implementationType="Client.Main"
        singleton="false" /> 

        < local keyType="Interfaces.IDomainlogic"
        assembly="Domainlogic"
        implementationType="Domainlogic.MyDomainlogic"
        singleton="false" />

      • DLLs Client, Domainlogic und Interfaces in bin-Ordner kopieren
      • Socket-Fehler (DomainLogic nicht gestartet localhost:8000) ->
      • system.runtime.remoting auskommentieren

  • dnp.contest.hugefiles (komplexere Anwendung zum Scannen von Dateien, häufigste Begriffe, Console oder Windows, ohne Remoting)
    • test mit console host: alle erforderlichen Runtime-Komponenten Consolen-Version, funktioniert nachdem Projekt dnp.hosts neu kompiliert (dnp.hosts/dnp.host.console/bin/dnp.host.console.exe in diesen Ordner kopieren)
    • test mit winforms host: alle erforderlichen Runtime-Komponenten Windows-Version (ebenso dnp.host.winforms.exe kompilieren und kopieren)
   
Top

Wir arbeiten mit Software von http://www.campus21.de.

Verantwortlich für angezeigte Daten ist der Webdomain-Eigentümer laut Impressum.

Suche