Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Diskussion: modulares Software-Konzept
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

Diskussion: modulares Software-Konzept

beantworten | zitieren | melden

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!
private Nachricht | Beiträge des Benutzers
entelechie
myCSharp.de - Member



Dabei seit:
Beiträge: 63
Herkunft: Saarland

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Golo Roden
myCSharp.de - Member

Avatar #avatar-2167.png


Dabei seit:
Beiträge: 4649
Herkunft: Riegel am Kaiserstuhl

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Golo Roden
myCSharp.de - Member

Avatar #avatar-2167.png


Dabei seit:
Beiträge: 4649
Herkunft: Riegel am Kaiserstuhl

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
bitstream
myCSharp.de - Member



Dabei seit:
Beiträge: 189
Herkunft: Hannover

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

beantworten | zitieren | melden

Danke erstmal für die Antworten...

Werd mich mal durch die "Literatur" wälzen...
private Nachricht | Beiträge des Benutzers