MonoRail (oprogramowanie)
Deweloperzy | Projekt zamku |
---|---|
Wersja stabilna | 2.1 RC / 17 marca 2011
|
System operacyjny | Międzyplatformowe |
Typ | Struktura aplikacji |
Licencja | Apache 2.0 |
Strona internetowa |
MonoRail (wcześniej znany jako Castle on Rails ), składnik projektu Castle , to platforma aplikacji internetowych typu open source zbudowana na platformie ASP.NET . Zainspirowany Ruby on Rails Action Pack, MonoRail różni się od standardowego programowania ASP.NET Web Forms wymuszając separację problemów przy użyciu architektury model-widok-kontroler (MVC). Framework jest powszechnie używany w połączeniu z Castle ActiveRecord , zbudowaną warstwą ORM NHibernate . W styczniu 2010 roku została wydana wersja 2.0 MonoRail, jednak wiele projektów korzysta z wersji głównej źródła, aby skorzystać z nowych funkcji bez czekania na oficjalne wydania.
Chociaż nazwa projektu to MonoRail, nie ma on żadnego powiązania z projektem Mono .
Jak to działa
Struktura mapuje żądania sieci Web na „akcję”, która jest zwykłą metodą .NET na kontrolerze. Kontroler jest odpowiedzialny za wywoływanie usług biznesowych i kontrolowanie przepływu aplikacji. Kiedy nadchodzi czas wysłania odpowiedzi sieciowej do klienta, kontroler ustawia szablon widoku do renderowania, umieszczając dane w specjalnym obiekcie słownika znanym jako „Torba właściwości” i deleguje renderowanie szablonu do mechanizmu widoku.
Mechanizm widoku renderuje szablon do strumienia odpowiedzi, wykorzystując dane w pakiecie właściwości podanym przez kontroler. Na tym etapie widok nie może uzyskać dostępu do żadnej innej warstwy aplikacji, izolując widok od logiki aplikacji.
Zobacz silniki
Głównym silnikiem widoku używanym w MonoRail jest NVelocity , oparty na bibliotece Apache Velocity . NVelocity jest dostarczane z prostymi blokami sterującymi, takimi jak instrukcje if i pętle foreach . Szablony widoku NVelocity to pliki tekstowe z rozszerzeniem „.vm”.
Inne używane silniki widoków:
- Brail , oparty na języku Boo . Będąc językiem .NET, silnik widoku brajlowskiego ma większe możliwości, ponieważ programista widoku może korzystać z biblioteki klas podstawowych . Jednak moc ma swoją cenę, ponieważ otwiera możliwość zrobienia zbyt wiele w widoku, pozostawiając część odpowiedzialności za Rozdzielenie problemów w rękach programisty. Szablony widoków to pliki tekstowe z rozszerzeniem „.brail”.
- AspView , aparat widoku, który używa języka C# jako języka skryptowego i używa wstępnie skompilowanego podejścia, w którym wszystkie widoki są wstępnie kompilowane do zestawu .NET przed wdrożeniem. Szablony widoków to pliki tekstowe z rozszerzeniem „.aspx”.
- WebForms ViewEngine umożliwia wykorzystanie niektórych możliwości formularzy internetowych w aplikacjach MonoRail. Korzystanie z mechanizmu widoku WebForms jest dość rzadkie i jest zalecane tylko w fazie migracji z istniejącej aplikacji Web Forms do aplikacji MonoRail. Szablony widoków to pliki tekstowe z rozszerzeniem „.aspx”.
- StringTemplate to najbardziej rygorystyczny silnik widoku pod względem MVC.
- Spark View Engine to nowy silnik widoku popularny wśród programistów ASP.NET MVC, obsługuje również MonoRail.
Inne silniki widoków
Budowa innych silników widoków jest dość prosta i bezpośrednia. Brail , StringTemplate i AspView zostały stworzone przez niezależnych programistów na potrzeby ich własnych potrzeb.
Inne silniki widoków to:
- ASPX
- Iskra
- NHaml
- NDjango
- Hasic
- Gejtaw
- Bellevue
- Ostre płytki
- Szablon ciągu
- Uderzenia skrzydeł
- SharpDOM
- Brzytwa
- Lazur
Dalsza lektura
- James Avery, Jim Holmes, Power Tools dla programistów Windows , O'Reilly Media, 2006, ISBN 0-596-52754-3 , s. 963–972 (18.6 Uproszczenie tworzenia stron internetowych za pomocą Castle MonoRail)
- Steven Sanderson, Pro ASP.NET MVC Framework , Apress, 2009, ISBN 1-4302-1007-9 , s. 12 (porównania z MonoRail)
Linki zewnętrzne
Zasoby
Blogi na MonoRail
- Blog Hamiltona Verissimo , założyciela Castle Project
- Blog Ayende Rahien (Oren Eini) , twórcy silnika widoku Braila
- Blog Eleucjana
- .net i inne rozważania
- Blog Kena Egozi , twórcy AspView ViewEngine
- Blog Adama Esterline'a