Laden...

Diskussion: modulares Software-Konzept

Erstellt von M@TUK vor 19 Jahren Letzter Beitrag vor 19 Jahren 2.395 Views
M
M@TUK Themenstarter:in
402 Beiträge seit 2005
vor 19 Jahren
Diskussion: modulares Software-Konzept

Hi!

Vor meinem 1. Post erstmal ein großes "Hallo".
Ich beschäftige mich erst seit kurzem mit C# und .net
(lesender weise schon etwas länger 😉 ) Hauptsächlich
hab bzw. beschäftige ich mich mit Webapps im PHP-Umfeld.

Nun hab ich mir aber eine neue Challenge gegeben.
Eine meiner Webapps soll als Applikation mit c# neu
programmiert und verbessert werden. Und nun kommts.

Die Webapp besteht aus mehreren "Modulen", die mehr oder weniger
miteinander zu tun haben. Alle nutzen aber die Grundfunktinalitäten (Berechtigungssystem, Datenzugriff,...).
Als guter Vergleich für den Aufbau könnte Outlook dienen. Navbar mit den Buttons und daneben im "Hauptbereich" werden die
"Module" angezeigt (Kontakte, Kalender,...)

Ich möchte nun eine C#-Applikation entwerfen, die nur eine gewisse Grundfunktionalität hat
und für die eigentlichen "Haupt-Bereiche" (wie es bei Outlook der Kalender wäre) "Module" verwendet. Ziel wäre es Module für
die Applikation entwickeln zu können, die dann irgendwo registriert werden und dann verwendet werden können.

Wie könnte so eine Applikation und die Module rein konzeptionell aussehen??
Ich komm einfach nicht weiter...

Thx!

E
63 Beiträge seit 2003
vor 19 Jahren

du koennstest es so machen, dass jedes modul
eine eingene (bzw eine gruppe von) dlls darstellt.
die kannst du dynamisch zur laufzeit laden.

ist z.b. dll "kalender.dll" da, gibts nen menuepunkt
kalender mit den entsprechenden funktionen.
die seiten die zu den dlls gehoeren kannst du ja in
unterordner mit den namen der dlls legen.

oder jede dll koennte dann z.b. eine eigenschaft anbieten
die dir den relativen pfad zu den seiten liefert.

4.207 Beiträge seit 2003
vor 19 Jahren

Du könntest einen Loader verwenden, der beim ApplicationStart in der global.asax ausgeführt wird, alle Module in einem bestimmten Verzeichnis sucht (erkennbar zB am Dateinamen ... zB alle Dateien, die auf *-plugin.dll matchen) ...

Diese verfügen dann über ihre gekapselte Funktionalität, und über einige standardisierte Interface-Methoden, um sie zu initialisieren, um den Button für die Navbar links zu erstellen und ähnliches ...

Eventuell mit Factories arbeiten, falls Du mehrere Module für einen Zweck hast, von denen aber nur eins benötigt wird.

Ansonsten ... die zentrale Verwaltung könnte auch als Singleton realisiert werden.

Für die Kommunikation zwischen den einzelnen Modulen bietet sich ein Mediator an, da sich dann die einzelnen Module nicht kennen müssen.

Just my 2 cents ...

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

M
M@TUK Themenstarter:in
402 Beiträge seit 2005
vor 19 Jahren

Ich glaub ich hab mich etwas unklug ausgedrückt.

Ich möchte nicht die Webapplication von php nach asp.net portierten.

Ich möchte gerne die Webapplikation als Standalone-Applikation (also nicht
mehr webbasiert) mit c# "nachbauen" bzw neu bauen.

4.207 Beiträge seit 2003
vor 19 Jahren

Dann nimmst halt statt der global.asax einen echten Loader ... der Rest bleibt.

Ob Du das von PHP portierst oder in C# neu schreibst, spielt für das von mir vorgeschlagene Design keine Rolle ...

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

B
189 Beiträge seit 2004
vor 19 Jahren

Deine Idee mit den Modulen klingt nach einem herkömmlichen Plugin-System. Kannst du dazu mal bei CodeProject.com umschauen, da werden verschiedene Lösungen vorgestellt.

M
M@TUK Themenstarter:in
402 Beiträge seit 2005
vor 19 Jahren

Danke erstmal für die Antworten...

Werd mich mal durch die "Literatur" wälzen... 🙂