Ne, neden veya ne zaman cshtml'yi seçmenin daha iyi olduğunu ve ne, neden veya ne zaman aspx teknolojilerini seçmenin daha iyi olduğunu bilmek istiyorum. Bu iki teknolojinin amacı nedir?
Teşekkür ederim,
Ne, neden veya ne zaman cshtml'yi seçmenin daha iyi olduğunu ve ne, neden veya ne zaman aspx teknolojilerini seçmenin daha iyi olduğunu bilmek istiyorum. Bu iki teknolojinin amacı nedir?
Teşekkür ederim,
Yanıtlar:
Diğer insanların da yanıtladığı gibi .cshtml
(ya .vbhtml
da sizin tarzınız buysa), MVC motorunu yüklemek için bir işleyici eşlemesi sağlar. .aspx
Uzatma basitçe Aspnet_isapi.dll o gerçekleştirdiği derleme yükler ve web formları hizmet vermektedir. İşleyici eşlemesindeki fark, basitçe, hem MVC uygulamalarının hem de WebForms uygulamalarının ortak bir kök altında yaşamasına izin vererek ikisinin aynı sunucu üzerinde bir arada bulunmasına izin verme yöntemidir.
Bu, http://www.mydomain.com/MyMVCApplication'ın geçerli olmasına ve MVC kurallarıyla birlikte sunulmasına ve http://www.mydomain.com/MyWebFormsApplication'ın standart bir web formu olarak geçerli olmasına izin verir .
Düzenleme:
Teknolojilerdeki farklılıklara gelince, MVC (Razor) şablon oluşturma çerçevesi, .Net sayfalarını model arasındaki kod mantığını (iş / veri nesneleri) ayıran daha RESTful "web tabanlı" şablon görünümler platformuna döndürmeyi amaçlamaktadır. , görünüm (kullanıcının gördüğü) ve denetleyiciler (ikisi arasındaki bağlantı). WebForms modeli (aspx), Microsoft tarafından, olaylarla tamamlanmış bir WinForms uygulamasına benzer daha durum bilgisi olan bir uygulamayı ve sayfadan sayfaya kendi durumunu koruyabilecek bir sayfa yaşam döngüsünü simüle etmek için karmaşık javascript yerleştirmeyi kullanma girişimiydi.
Birini veya diğerini kullanma seçimi her zaman tartışmalı olacaktır çünkü her iki sistem lehinde ve aleyhinde argümanlar vardır. Ben, MVC mimarisindeki basitlik (yönlendirme basitten başka bir şey olmasa da) ve Razor sözdiziminin kolaylığı gibi. WebForms mimarisinin etkili bir web platformu olamayacak kadar ağır olduğunu düşünüyorum. Bununla birlikte, WebForms çerçevesinin iyi tanımlanmış zengin bir olay yapısına sahip çok kısa ve kullanışlı bir model sağladığı birçok örnek vardır. Her şey uygulamanın ihtiyaçlarına ve onu oluşturanların tercihlerine bağlı.
Razor, ASP.NET MVC için bir görünüm motorudur ve ayrıca bir şablon motorudur . Razor kodu ve ASP.NET satır içi kodu (kodla karıştırılmış kod) önce derlenir ve yürütülmeden önce geçici bir derlemeye dönüştürülür. Bu nedenle, tıpkı C # ve VB.NET gibi, her ikisi de IL'ye derlenir ve bu da onları birbirinin yerine kullanılabilir kılar, Razor ve Inline kodlarının ikisi de değiştirilebilir.
Bu nedenle, daha çok bir stil ve ilgi meselesi. ASP.NET satır içi kod yerine jilet konusunda daha rahatım, yani Razor (cshtml) sayfalarını .aspx sayfalarına tercih ederim.
Bir Human
ders almak ve onu işlemek istediğinizi hayal edin . Gelen cshtml dosyaları Yazdığınız:
<div>Name is @Model.Name</div>
İken aspx dosyaları yazdığınız:
<div>Name is <%= Human.Name %></div>
Gördüğünüz gibi @
, ustura işareti kodu karıştırmayı ve işaretlemeyi çok daha kolay hale getiriyor.
Model
kullanarak en üstte tanımladığınız güçlü yazılmış görünümler için kullanılır model
.
Sözdizimi Razor ( .cshtml
/ .vbhtml
) ve WebForms ( .aspx
/ .ascx
) arasında kesinlikle farklı olsa da (Razor ikisinden daha özlü ve moderndir), hiç kimse her ikisinin de Görünüm Motorları / Şablon Oluşturma Motorları, geleneksel ASP.NET olarak kullanılabileceğinden bahsetmedi. Web Forms denetimleri, herhangi bir .aspx veya .ascx dosyasında kullanılabilir (bir MVC mimarisiyle uyumlu olsa bile).
Bu, bir soruna uzun süredir devam eden çözümlerin kurulduğu ve takılabilir bir bileşen (örn. Büyük dosya yükleme kontrolü) halinde paketlendiği ve bunu bir MVC sitesinde kullanmak istediğiniz durumlarda geçerlidir. Razor ile bunu yapamazsınız. Ancak, Web Formu görünümüyle geleneksel bir ASP.NET mimarisiyle kullanacağınız tüm arka uç işlemlerini yürütebilirsiniz.
Ayrıca, ASP.NET web form görünümlerinde, görünümle birlikte derlenen ayrı bir dosyaya mantığın yerleştirilmesine olanak tanıyan Code-Behind dosyaları olabilir. Yazılım geliştirme topluluğu, birbirine sıkı sıkıya bağlı mimarileri ve Akıllı İstemci modelini kötü bir uygulama olarak görmek için büyürken, eskiden işleri yapmanın ana yoluydu ve .aspx / .ascx dosyalarıyla hala çok mümkün. Razor, kasıtlı olarak böyle bir niteliğe sahip değildir.
Cshtml dosyaları Razor tarafından kullanılan dosyalardır ve bu soruya cevap olarak belirtildiği gibi , temel avantajları birim testler içinde işlenebilmeleridir. Bu diğer konuya verilen çeşitli cevaplar, başka birçok ilginç noktayı da beraberinde getirecektir.