ASP.NET MVC sayfasının ASP.NET WebForms ile karşılaştırıldığında 'sayfa yaşam döngüsü' nedir?


158

ASP.NET MVC sayfasının ASP.NET WebForms ile karşılaştırıldığında 'sayfa yaşam döngüsü' nedir?

Ben (çok) basit bir sitede var olan sayfaları kolayca ASP.NET WebForms dönüştürülebilir olup olmadığını belirlemek için bu 'basit' soruyu daha iyi anlamaya çalışıyorum.

Ya aşağıdaki sürecin bir 'dönüşümü' ya da alternatif bir yaşam döngüsü aradığım şey olurdu.

Şu anda ne yapıyorum:

(evet, sorumu cevaplayabilen herkesin zaten tüm bunları bildiğini biliyorum - sadece 'yaşam döngüsü' nin bir karşılaştırmasını almaya çalışıyorum, bu yüzden zaten bildiğimiz şeyleri doldurarak başlayacağımı düşündüm)

Sayfa oluşturuluyor:

  • Temel şablonumu içeren bir ana sayfam var
  • İçeriği koyduğum kalıp sayfadan bana adlandırılmış bölgeler veren içerik sayfalarımız var.
  • Her içerik sayfası için bir olay işleyicisinde veri tabanından veri yüklerim (çoğunlukla salt okunur).
  • Bu verileri ızgaraları, açılanları veya tekrarlayıcıları temsil eden ASP.NET denetimlerine bağlarım. Bu verilerin tümü, oluşturulan HTML içinde 'yaşıyor'. Bazıları ViewState'e giriyor (ama buna çok fazla girmeyeceğim!)
  • Sayfadaki Image veya TextBox denetimleri gibi belirli öğelere özellikler ayarladım veya veri bağladım.
  • Sayfa, yeniden kullanılamayan HTML olarak işlenen istemciye gönderilir.
  • Sayfanın asgari olarak gerekenden başka ViewState kullanmamaya çalışıyorum.

İstemci tarafı (ASP.NET AJAX kullanmıyor):

  • Sayfadaki kontrolleri bulmak ve üzerlerinde işlemler yapmak için JQuery ve bazı hileler kullanabilirim.
  • Kullanıcı bir açılır menüden seçim yaparsa - kodumda bir C # olayını tetikleyen bir geri gönderme oluşturulur. Bu olay veritabanına gidebilir, ancak ne yaparsa yapsın tamamen yeni bir HTML sayfası istemciye geri gönderilir.
  • Daha sonra yeniden kullanmam gereken anahtar / değer çiftlerini saklamak için Page.Session öğesini kullanabilirim

MVC ile bu 'yaşam döngüsü' nasıl değişir?


2
Bir ASP.NET MVC'de istek kanalının nasıl çalıştığını vurgulayan yer imlerimden bazı referanslar. Bu genellikle yardımcı olacaktır 1. ASP.NET MVC kendisini anlamak için 2. MVC tarafından sağlanan farklı enjeksiyon noktaları neler olduğunu anlamak ve anlamak için. https://docs.google.com/open?id=0B0_EIyBZvSQsOTU3N2Q2NDEtMWNjMS00ZTc0LWJmMjUtM2I0M2I5NDY2ZDNl [ simple-talk.com/content/article.aspx?article=1358](https://...
humblelistener


sayfa çevrimi aşağıdaki gibidir: stackoverflow.com/questions/15066770/…
Insan

Yanıtlar:


39

Bahsettiğiniz mermi noktalarının her biri hakkında yorum yapmaya çalışacağım:

Kalıp sayfalarınız hala MVC'de bulunur ve siteye tutarlı bir düzen sağlamak için kullanılır. orada çok yeni değil.

İçerik sayfalarınız MVC dünyasında görüntülenecek. Kalıp sayfalarınız için hala aynı içerik alanlarını sağlarlar.

Web formlarının olay işlenmesi MVC'de kullanılmamalıdır, bunun yerine Controller sınıflarınız ve eylem yöntemleri verilerinizi görünüme geçirilen bir "modele" yüklemeyi işleyecektir.

MVC'de webform tarzı veri bağlama mümkün olsa da, bunun en uygun çözüm olmadığını düşünüyorum. Verilerinizi bir model sınıfına yerleştirmek ve o modele doğrudan erişebilmek için görünümünüzü güçlü bir şekilde yazın. Daha sonra, <%= ViewData.Model.SomeProperty %>verilerinize erişmek ve istenen konumlarda görüntülemek için sözdizimini kullanmak meselesidir . Görüş durumu gelince, benim tavsiyem bile var olduğunu unutmak.

MVC kullanmanın avantajlarından birinin, istemciye gönderdiğiniz HTML üzerinde kontrol sahibi olmanız olduğunu unutmayın. Bu gücü benimseyin ve bu kontrolü sürdürmenize izin veren çözümler bulmaya çalışın. Webform denetimleri, html'yi sizden gizlemeye çalışır ve bu nedenle, gerektiğinde html'yi özelleştirmeyi zorlaştırır.

JQuery veya diğer benzer güçlü javascript kitaplıklarından birini tavsiye. Ancak, HTML DOM'ye doğrudan erişmek ve web formu denetimlerinin kimlik yönetimi sorunlarından kaçınmak için bunları kullanmayı öğrenin.

İstemci tarafındaki açılır seçime bağlanmak ve standart veya ajax stili istekleri göndermek için jquery kullanabilirsiniz. Bu istek, yeni sayfaları, yönlendirmeleri, html parçalarını ve hatta mevcut sayfayı güncellemek için kullanılabilecek JSON verilerini döndürebilir.

Asp.net Oturumu gerektiği gibi kullanılabilir.


ayrıntılı cevabınız için teşekkürler. MVC'ye geri dönmemi sağlayan şey aslında JQuery idi. Kısaca baktım ve işten çıkardım (en azından şimdilik). JQuery ile oynamak ve sadece DOM şeyler bulmaya çalışırken çok fazla acı çekiyordu, bu yüzden
MVC'ye

MVC sayfaları Modelmodele erişmek için bir özelliğe sahip, üzerinden gitmek zorunda değilsiniz ViewData.
Tsahi Asher
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.