2009-09-01 3 views
9

Wstęp: Teraz wiem, że to pytanie może być bardzo szeroki i byłoby zbyt trudno odpowiedzieć bez mnie pytaniem coś konkretnego. Więc wszystko, o co pytam, to tylko jakiś kierunek, albo krótkie wytłumaczenie wysokiego poziomu projektu, albo może jest już jakieś ramy, które mogłyby mi pomóc zacząć ... Nie jestem pewien ... Nigdy nie zaprojektowałem wtyczki architektura wcześniej, więc może jest jakiś zasób/przykład, który możesz wskazać mi w sieci, który pomógłby mi się uczyć, aby móc wymyślić własne rozwiązanie.Jak zaprojektować architekturę wtyczek dla ASP.NET MVC z aplikacji WWW

Szczegóły moje pytanie: Moim zamiarem jest, chciałbym stworzyć architekturę plug-in dla nowej pet-projekt, który buduję w ASP.NET MVC.

Chciałbym zaprojektować go tak, aby miał jakąś zdolność plug-in dla wszystkich lub co najmniej większości składników aplikacji.

Powodem, dla którego chciałbym to zrobić, jest to, że mogę być w stanie wykonywać wdrożenia o niemal zerowym czasie przestoju. Chodzi o to, że kiedy chcę zainstalować najnowszą wersję, wrzucę nowe biblioteki DLL do określonego folderu, a aplikacja załaduje nowe wtyczki i to jest to.

Na przykład, powiedzmy, że dodaję nową funkcję "kontaktów" do mojej aplikacji internetowej, w której użytkownicy mogą wyszukiwać, dodawać i usuwać kontakty. Chciałbym móc wdrożyć to za pomocą wtyczek.

Czy jest coś takiego nawet dla aplikacji internetowych? Czy ja po prostu śnię?

+0

Myślałem o tym samym i mam kilka pomysłów. Skontaktuj się ze mną bezpośrednio na adresie spurious.thought [at] gmail –

Odpowiedz

3

Jest to zdecydowanie możliwe.

Będziesz musiał zdefiniować całkiem obszerny interfejs, który będzie reprezentował wszystko, co będą musiały robić wtyczki. Powinieneś podejść do tego, odróżniając to, co jest "podstawowe" od aplikacji i gdzie znajdują się punkty rozszerzenia. Na przykład, gdzie będą dostępne wtyczki? Czy będą to zakładki na stronie, czy linki na pasku bocznym? Jakie właściwości musi posiadać każda wtyczka, aby zmieścić się w pojemniku wtyczki?

Ogólnie rzecz biorąc, wtyczki są wyliczane poprzez odbicie, szukając złożeń implementujących interfejs wtyczki.

Tylko dla zachęty, zrobiliśmy to z produktem dla przedsiębiorstw, który zapewnia ogólne środowisko dla interfejsów "zarządzania" dla stron internetowych. Programiści muszą po prostu wstawić bibliotekę DLL wtyczki, która buduje określone strony właściwości, i pojawiają się w menu interfejsu zarządzania, cała nawigacja jest zadbana, a ich biblioteka dll po prostu musi martwić się o własną logikę domeny.

1

Zawsze istnieje metoda dll, w której definiuje się niektóre interfejsy, za którymi podążają wtyczki.

Ale do aplikacji internetowych, szczególnie ASP.NET MVC, potrzebny jest kontroler, widoki i tak. Prawdopodobnie mogą one być zawarte w pliku dll za pomocą przygotowanej fabryki kontrolerów, aby je obsłużyć, ale trudno byłoby opracować te wtyczki. Niektóre inspiracje dla wbudowanych treści kodu (lub db): Haacked about that

ASP.NET MVC wersja 2 obsługuje obszary, w których można umieścić niektóre elementy aplikacji w różnych folderach w aplikacji. W ten sposób możesz po prostu przesłać kilka plików, a aplikacja rozpozna te nowe pliki.Przeczytaj więcej tam Haacked blog