Chciałbym wiedzieć co, dlaczego lub kiedy lepiej wybrać cshtml i co, dlaczego lub kiedy lepiej wybrać technologie aspx? Do czego służą te dwie technologie?
Dziękuję Ci,
asp.net
asp.net-mvc
razor
Bastien Vandamme
źródło
źródło
Odpowiedzi:
Jak odpowiedzieli inni ludzie
.cshtml
(lub.vbhtml
jeśli to twój gust) zapewnia mapowanie obsługi do załadowania silnika MVC..aspx
Przedłużenie po prostu ładuje Aspnet_isapi.dll wykonującej kompilacji i serwuje formularzy. Różnica w mapowaniu programu obsługi jest po prostu metodą pozwalającą na współistnienie obu na tym samym serwerze, co pozwala zarówno aplikacjom MVC, jak i aplikacjom WebForms żyć pod wspólnym katalogiem głównym.Dzięki temu witryna http://www.mydomain.com/MyMVCApplication może być ważna i obsługiwana z regułami MVC wraz z http://www.mydomain.com/MyWebFormsApplication jako standardowy formularz internetowy.
Edycja: jeśli
chodzi o różnice w technologiach, struktura szablonów MVC (Razor) ma na celu zwrócenie stron .Net do bardziej RESTful „internetowej” platformy widoków szablonów oddzielających logikę kodu między modelem (obiekty biznesowe / dane) , widok (co widzi użytkownik) i kontrolery (połączenie między nimi). Model WebForms (aspx) był próbą firmy Microsoft do wykorzystania złożonego osadzania javascript do symulacji bardziej stanowej aplikacji podobnej do aplikacji WinForms wraz ze zdarzeniami i cyklem życia strony, który byłby w stanie zachować własny stan ze strony na stronę.
Wybór jednego lub drugiego zawsze będzie sporny, ponieważ istnieją argumenty za i przeciw obu systemom. Podoba mi się prostota architektury MVC (chociaż routing nie jest prosty) i łatwość składni Razor. Uważam, że architektura WebForms jest po prostu zbyt ciężka, aby być efektywną platformą internetową. Biorąc to pod uwagę, istnieje wiele przypadków, w których struktura WebForms zapewnia bardzo zwięzły i użyteczny model z bogatą strukturą zdarzeń, która jest dobrze zdefiniowana. Wszystko sprowadza się do potrzeb aplikacji i preferencji osób ją budujących.
źródło
Razor to aparat widoku dla ASP.NET MVC, a także aparat szablonów . Kod Razor i kod wbudowany ASP.NET (kod zmieszany ze znacznikami) są najpierw kompilowane i przekształcane w zestaw tymczasowy przed wykonaniem. Tak więc, podobnie jak C # i VB.NET, kompilują się do IL, co sprawia, że są wymienne, kod Razor i Inline są wymienne.
Dlatego jest to bardziej kwestia stylu i zainteresowania. Bardziej czuję się z maszynką do golenia niż z kodem wbudowanym ASP.NET, co oznacza, że wolę strony Razor (cshtml) od stron .aspx.
Wyobraź sobie, że chcesz dostać
Human
klasę i wyrenderować ją. W plikach cshtml piszesz:Podczas gdy w plikach aspx piszesz:
Jak widać,
@
znak brzytwy znacznie ułatwia mieszanie kodu i znaczników.źródło
Model
jest używany do silnie wpisanych widoków, w których definiujesz swój typ u góry za pomocąmodel
słowa kluczowego.Chociaż składnia z pewnością różni się między Razor (
.cshtml
/.vbhtml
) i WebForms (.aspx
/.ascx
), (Razor jest bardziej zwięzły i nowoczesny z tych dwóch), nikt nie wspomniał, że chociaż oba mogą być używane jako silniki widoku / szablony, tradycyjne ASP.NET Kontrolki formularzy sieci Web mogą być używane w dowolnych plikach .aspx lub .ascx (nawet w spójności z architekturą MVC).Jest to istotne w sytuacjach, w których ustalono długotrwałe rozwiązania problemu i spakowano je do podłączanego komponentu (np. Elementu sterującego wysyłaniem dużych plików) i chcesz go użyć w witrynie MVC. Z Razorem nie możesz tego zrobić. Można jednak wykonywać wszystkie te same operacje, które byłyby używane w tradycyjnej architekturze ASP.NET z widokiem formularza sieci Web.
Ponadto widoki formularzy sieci Web ASP.NET mogą mieć pliki związane z kodem, co umożliwia osadzanie logiki w oddzielnym pliku, który jest kompilowany razem z widokiem. Podczas gdy społeczność programistów rośnie, aby postrzegać ściśle powiązane architektury i wzorzec Smart Client jako złą praktykę , był to główny sposób robienia rzeczy i nadal jest bardzo możliwy w przypadku plików .aspx / .ascx. Brzytwa celowo nie ma takiej jakości.
źródło
Pliki Cshtml są plikami używanymi przez Razor i jak stwierdzono jako odpowiedź na to pytanie , ich główną zaletą jest to, że można je renderować w testach jednostkowych. Różne odpowiedzi na ten inny temat przyniosą wiele innych interesujących punktów.
źródło