Szukałem w SO i Google podziału różnych silników widokowych dostępnych dla ASP.NET MVC, ale nie znalazłem nic więcej niż proste opisy wysokiego poziomu tego, czym jest silnik widoku.
Niekoniecznie szukam „najlepszego” lub „najszybszego”, ale raczej kilka porównań rzeczywistych zalet / wad głównych graczy (np. Domyślnego WebFormViewEngine, silników widoku MvcContrib itp.) Dla różnych sytuacji. Myślę, że byłoby to bardzo pomocne w ustaleniu, czy przejście z domyślnego silnika byłoby korzystne dla danego projektu lub grupy programistycznej.
Czy ktoś napotkał takie porównanie?
Odpowiedzi:
ASP.NET MVC View Engines (Community Wiki)
Ponieważ wydaje się, że wyczerpująca lista nie istnieje, zacznijmy ją tutaj na SO. Może to mieć wielką wartość dla społeczności ASP.NET MVC, jeśli ludzie dodadzą swoje wrażenia (szczególnie każdy, kto przyczynił się do jednego z nich). Cokolwiek implementujące
IViewEngine
(np.VirtualPathProviderViewEngine
) Jest tutaj uczciwą grą. Po prostu ułóż alfabetycznie nowe silniki widoków (pozostawiając WebFormViewEngine i Razor na górze) i postaraj się być obiektywny w porównaniu.System.Web.Mvc.WebFormViewEngine
Cele projektu:
Plusy:
Cons:
Przykład:
System.Web.Razor
Cele projektu:
Plusy:
Cons:
Brak udokumentowanego API, http://msdn.microsoft.com/en-us/library/system.web.razor.aspxPrzeciw Przykład 1 (zauważ umieszczenie „string [] ...”):
Bellevue
Cele projektu:
Zwijać
Cele projektu:
Plusy:
Cons:
Przykład:
Hasic
Plusy:
Cons:
Przykład:
NDjango
Cele projektu:
Plusy:
WebFormViewEngine
NHaml
Cele projektu:
Plusy:
Cons:
Przykład:
NVelocityViewEngine (MvcContrib)
Cele projektu:
Plusy:
Cons:
Przykład:
SharpTiles
Cele projektu:
Plusy:
Cons:
Przykład:
Silnik Spark View
Cele projektu:
Plusy:
Cons:
Przykład:
StringTemplate Wyświetl silnik MVC
Cele projektu:
Plusy:
Cons:
Wing Beats
Plusy:
Cons:
XsltViewEngine (MvcContrib)
Cele projektu:
Plusy:
Cons:
źródło
Mój obecny wybór to Razor. Jest bardzo czysty i czytelny, a strony przeglądania bardzo łatwe w utrzymaniu. Istnieje również wsparcie intellisense, które jest naprawdę świetne. ALos, w połączeniu z pomocnikami internetowymi, jest też naprawdę potężny.
Aby podać prostą próbkę:
I masz to. To jest bardzo czyste i łatwe do odczytania. To prawda, że jest to prosty przykład, ale nawet na skomplikowanych stronach i formularzach jest nadal bardzo łatwy do odczytania i zrozumienia.
Co do wad? Jak do tej pory (jestem w tym nowy) przy korzystaniu z niektórych pomocników do formularzy brakuje wsparcia dla dodawania odwołania do klasy CSS, co jest nieco denerwujące.
Dzięki Nathj07
źródło
Wiem, że tak naprawdę nie odpowiada na twoje pytanie, ale różne silniki widokowe mają różne cele. Na przykład silnik Spark View Engine ma na celu usunięcie twoich poglądów na temat „zupy tagowej”, starając się, aby wszystko było płynne i czytelne.
Najlepiej byłoby po prostu spojrzeć na niektóre implementacje. Jeśli wygląda to atrakcyjnie dla intencji twojego rozwiązania, wypróbuj to. Możesz mieszać i dopasowywać silniki widoku w MVC, więc nie powinno to stanowić problemu, jeśli zdecydujesz się nie używać określonego silnika.
źródło
Sprawdź to SharpDOM . Jest to wewnętrzny dsl ac # 4.0 do generowania html, a także silnik widoku asp.net mvc.
źródło
Lubię ndjango . Jest bardzo łatwy w użyciu i bardzo elastyczny. Możesz łatwo rozszerzyć funkcjonalność widoku o niestandardowe tagi i filtry. Myślę, że „bardzo związany z F #” jest raczej zaletą niż wadą.
źródło
Myślę, że ta lista powinna również zawierać próbki każdego silnika przeglądania, aby użytkownicy mogli poznać smak każdego z nich bez konieczności odwiedzania każdej witryny.
Zdjęcia mówią tysiąc słów, a próbki znaczników są jak zrzuty ekranu dla przeglądarek :) Więc oto jeden z moich ulubionych Spark View Engine
źródło