2010-08-06 11 views
73

Ktoś tam używa nowej funkcji stron CSHTML i odkrywa, że ​​woli tę nową składnię mechanizmu wyświetlania w istniejącym mechanizmie widoku domyślnego ASP.NET MVC lub przez formularze internetowe, a jeśli tak, dlaczego? A co z CSHTML daje przewagę nad MVC lub formularzami WWW, czy na odwrót?Razor/CSHTML - Jakieś korzyści z tego, co mamy?

Po prostu ciekawi, jak ludzie na to patrzą.

+1

myślę, że to możliwe, aby dać obiektywne odpowiedzi na to pytanie nazewnictwa rzeczywiste (cel) lub postrzegane (subiektywna) świadczenia, ale należy przeformułować pytanie do nich dostać. W obecnej formie jest zbyt subiektywna i kłótliwa. – dtb

+2

Zaktualizowałem nieco pytanie. Ale muszę powiedzieć, że szukam pro i con, a ja wezmę odpowiedź, jaką otrzymam, ponieważ patrzę na ogólny poziom, ale chciałbym usłyszeć także o technicznych szczegółach, więc nie chcę t widzę problem ze sposobem, w jaki to napisałem ... –

+0

Czy jest jakiś arkusz kalkulacyjny/przewodnik dotyczący używania Razor dla programistów FrontEnd? Obecnie pracuję nad projektem Razor, skracając aplikację z Fundacją i chciałbym dowiedzieć się czegoś więcej na temat Brzytwy, która mogłaby mi pomóc. –

Odpowiedz

42

Jedną z korzyści jest to, że widoki Razor mogą być renderowane w testach jednostkowych, to jest coś, co nie było łatwe z poprzednim rendererem ASP.Net.

Od ScottGu's announcement ten jest wymieniony jako jeden z celów projektowych:

Jednostka sprawdzalne: Nowa realizacja widok silnik będzie wspierać zdolność do poglądów testów jednostkowych (bez konieczności kontrolera lub web-server, i może być hostowany w dowolnym projekcie testów jednostkowych - nie jest wymagana specjalna domena aplikacji).

+0

przykład? lub link? – rball

+0

Dodano link do dowodu potwierdzającego :) Jeszcze nie używałem Brzytwy, więc nie mam kodu, który mógłbym teraz udostępnić. Daj mu kilka miesięcy, a może będę miał czas na grę z wersją beta! –

+2

Nie zgasić żadnych wskazówek na temat poglądów testowanie Razor ale blogu o hostingu silnika Razor poza ASP.Net: http://blog.andrewnurse.net/2010/07/22/UsingTheRazorParserOutsideOfASPNet.aspx –

3

Największą korzyścią jest to, że kod jest bardziej zwięzły. Edytor VS będzie miał także obsługę IntelliSense, której nie posiadają inne silniki widoku.

Declarative HTML Helpers również wyglądają całkiem fajnie, ponieważ wykonywanie helperów HTML w kodzie C# przypomina mi o niestandardowych kontrolkach w ASP.NET. Myślę, że wzięli stronę z częściowych, ale z wbudowanym kodem.

Więc niektóre określone korzyści w stosunku do silnika widoku asp.net.

W przeciwieństwie do silnika widok jak iskra jednak:

Spark jest jeszcze bardziej zwięzłe, można zachować if i pętle w obrębie samego tagu html. Znaczniki wciąż są dla mnie bardziej naturalne.

Możesz kodować cząstki dokładnie tak, jak zrobiłbyś deklaratywnego pomocnika, wystarczy przekazać zmienne do częściowego i masz to samo. Od jakiegoś czasu jest to spowodowane iskrą.

7
  1. Wszystko jest domyślnie kodowane !!! To jest dość ogromne.

  2. Deklaratywni pomocnicy mogą być kompilowani, więc nie trzeba robić nic specjalnego, aby je udostępniać. Myślę, że w pewnym stopniu zastąpią one kontrolki .ascx. Musisz przejść przez kilka obręczy, aby użyć kontrolki .ascx w innym projekcie.

  3. Możesz utworzyć wymaganą sekcję, co jest miłe.

43

Opinia Ex Microsoft Program

pracowałem w zespole podstawowej na stronie MSDN. Teraz używam maszynki do golenia C# do serwisów e-commerce z moim zespołem programistycznym i koncentrujemy się mocno na przednim końcu jQuery z back-endowymi maszynami do golenia C# i bazą danych LINQ-Entity, więc strony mają czas odpowiedzi 1-2 milisekund, nawet w zagnieżdżonych dla pętli z zapytaniami i bez buforowania strony. Nie używamy MVC, tylko zwykłego ASP.NET z mapami maszynki mapowanymi z modułem URL Rewrite dla IIS 7, bez stron ASPX lub ViewState lub programowaniem zdarzeń po stronie serwera. Nie ma dodatkowych (niepotrzebnych) warstw, które MVC umieszcza w konstruktach kodu dla zakwestionowanego wyrażenia regularnego. Mniej znaczy więcej dla nas. To wszystko jest szczupłe i podłe, ale daję MVC rekwizyty ze względu na jego testowalność, ale to wszystko.

Strony maszynki do golenia nie mają cyklu życia zdarzeń, takich jak strony ASPX. To tylko renderowanie jako jedna żądana strona. C# jest świetnym językiem, a Razor gładko wychodzi mu z drogi, aby mógł wykonać swoją pracę. Anonimowe pisanie za pomocą generyków i linq sprawia, że ​​życie jest tak łatwe dzięki C# i stronom z ostrzami. Używanie stron Razor pomoże ci myśleć i kodować jaśniej.

Jedną z niedogodności z ostrzami i MVC nie ViewState jak trwałość. Musiałem zaimplementować na to rozwiązanie, dlatego napisałem do tego wtyczkę jQuery ->http://www.jasonsebring.com/dumbFormState, która jest wtyczką obsługiwaną w trybie offline HTML 5 dla stanu formularza, która działa teraz we wszystkich głównych przeglądarkach. Jest to tylko dla stanu formularza, ale możesz użyć window.sessionStorage lub window.localStorage, aby przechowywać stan dowolnego rodzaju w postbackach, a nawet w żądaniach strony. Po prostu nie mogłem zrobić autozapisu i przestrzeni nazw na podstawie adresu URL i indeksu formularza, więc nie musisz o tym myśleć.

+1

Najbardziej imponujące liczby wydajności - nie podoba mi się program ASP.NET ze względu na śmiałą próbę uczynienia programowania WWW jak VB6. Spraw, aby testowalność była dziwką. Z tego powodu też lubię MVC. Czy masz przykład, z którego możesz korzystać z architektury, z której korzystasz? – mozillanerd

+0

Do "mozillanerd", jeśli chodzi o architekturę, jeśli chcesz przetestować to, co opisałem, dosłownie zrób anonimowy obiekt C# z nowym, takim jak var myobj = new {/ * umieść strukturę danych podobną do json * /} i buforowane w pamięci i sprawdzające, jak szybko LINQ jest przeciwko niemu. Wyobraź sobie, że jest to katalog produktów i wypróbuj LINQ przeciwko niemu. Jest super szybki, ale ma swoje miejsce pod względem właściwego dopasowania skali do najlepszych na jednym pudełku, chyba że masz buforowanie lazuru i uruchamiasz go na Windows Blue. –

Powiązane problemy