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,
źródło
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,
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.
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:
<div>Name is @Model.Name</div>
Podczas gdy w plikach aspx piszesz:
<div>Name is <%= Human.Name %></div>
Jak widać, @
znak brzytwy znacznie ułatwia mieszanie kodu i znaczników.
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.
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.