2009-07-07 11 views
1

Ich habe neu angefangen, meine Augen für ASP.Net MVC zu öffnen, aber auf der Website, die wir gerade arbeiten, verwenden wir DotNetNuke, und ich mag die Art und Weise wie Sie kann neue "Module" erstellen und sie einfach mit Ihrer Site verbinden (wenn das Modul richtig codiert ist).Erstellen eines separaten Moduls in MVC wie in DotNetNuke

Können Sie dies erreichen, wenn Sie das Asp.Net MVC-Muster verwenden? Dass Sie einen Mitarbeiter haben, der eine neue DLL erstellt, die der Designer einfach in die Website einbinden kann, ohne viel Code-Behind-Interaktion?

Antwort

1

Warum nicht?

Dies wäre dem "Provider pattern", der im gesamten .net-Framework verwendet wird, sehr ähnlich. Für Module im .net-Framework kann es verschiedene Provider dynamisch laden, ohne den Quellcode zu berühren, alles muss in der XML-Konfigurationsdatei erfolgen.

In der Praxis erstellen Sie eine ModuleProvider-Basisklasse, die alle Module davon erben werden. Im Master-Controller lädt es verschiedene ModuleProvider und lässt sie den Rest erledigen.

Es wäre eine lange Passage zu erklären, was das Providermuster und wie das Design sein soll. Bitte lesen Sie den obigen Link und studieren Sie die im Framework verwendeten Anbieter.

+0

Vielen Dank, ich werde es mir ansehen :) – HerrLiljegren

+0

Wahr, aber warum nicht einfach bei DNN bleiben, dann bietet die MVC nicht die Box Plug + Play-Modul-Unterstützung. – typemismatch

0

Sie werden einige wesentliche Dinge vermissen. Es ist möglich, wiederverwendbaren Code in einer separaten DLL für MVC zu haben, aber weil die Verwendung von Controlls (aka Modulen) begrenzt ist, wird es schwierig sein, eine nützliche Implementierung zu haben. Oldschool ASP.NET ist so viel schöner für diese Art von Anwendungen.

Events

Wenn Sie eine Kontrolle haben oft Sie es benötigen Ereignisse zu empfangen oder Ereignisse senden. Dies ist nur in ASP.NET-Webformularen möglich.

Eigenschaften

Auf dem Behälter einer Kontrolle, die Sie häufig öffentliche Eigenschaften einstellen müssen. Das sind auch ASP.NET Webforms.

Habe ich ViewState erwähnt? Ich sollte ...

Ich möchte Sie nicht von ASP.NET MVC nehmen. Es ist ein wirklich guter Rahmen, aber ich sehe es nicht in einer DotNetNuke-ähnlichen Anwendung.

+0

Während ich Ihnen zustimme, dass Webforms möglicherweise besser zum Erstellen von "Modulen" geeignet ist, müssen Sie etwas mehr aus der Box heraus denken. Nur weil Ereignisse, Eigenschaften und Viewstate der einfachste Weg für uns sind, Module zu konzipieren, heißt das nicht, dass es der einzige Weg ist. –

1

Andrew Nurse (Sohn des leitenden Entwicklers von DNN, Charles Nurse) hat ein grundlegendes Framework für steckbare DNN-ähnliche Funktionen in ASP.NET MVC mit der Bezeichnung Maverick gestartet, das für Sie interessant sein könnte.

0

Schauen Sie sich diesen Blog-Eintrag http://blogs.msdn.com/hammett/.

Zeigt, wie Sie ASPX- und ASCX-Seiten in die DLL einbetten, indem Sie einfach die DLL in das Hauptverzeichnis der Apps Bin ziehen und die Funktionalität hinzufügen. Routing und Navigation. Es verwendet MEF, aber Sie könnten es mit ein wenig Arbeit tun.

Verwandte Themen