2008-08-30 26 views
9

Yani bir ASP.NET MVC projeye başlamadan ediyorum ve iyi bir deneyim genel olmuştur ederken, benim denetleyicileri haline gelmiştir spagetti karmaşa ile oldukça olarak memnun değilim. Ben çevrimiçi (CodeCampServer, vb ...) etrafında baktım ve hepsi oldukça tutarlı kontrolör yöntemleri SRP (tek sorumluluk ilkesi) ihlal burada aynı sorunu muzdarip görünüyor - Böyle istek ise sadece görünüm oluşturur bir kontrolör yöntemi olarak bir GET ancak bir POST ise modeli günceller. Artık uygulama boyunca birden çok mantıksal rotadan sorumlu kontrolör yöntemleri var - hangi tuşun forma tıklandığını kontrol edip buna göre hareket ettiğini varsayalım. Her bir butona tıklatarak JavaScript'i kullanarak farklı bir form eylemine yönlendirebilirim, fakat bir şey şu anda orada hissetmiyor ... Diğer büyük sorun ise sihirli dizelerin çoğalmasıdır - ViewData ["foo"] = blah; Uzun lafın kısası, kontrolör mantığını nasıl yapılandırıyorsunuz? Görünüm başına bir dev model nesne? Çok küçük kontrolör yöntemleri ve JavaScript yönlendiricidir? Amacım sürdürebilir bir koddur - özellikler kazandıkça o kaygan eğimi aşağı doğru kaymaya başlıyorum ...ASP.NET MVC: Yapılandırma Kontrolörler

cevap

8

ASP.NET Önizleme 5 (CodePlex modelinde bulunabilir) bunun için bir cevaba sahiptir: [AcceptVerbs] özniteliği. Phil Haack'in nasıl kullanıldığını bir blog post tartışması vardır. görünümü veri sihirli anahtar soruya gelince

, ilginç bir problem. Eğer bir görünümü yarı bağımsız bileşenlerden oluşan bir grup olarak düşünürseniz (özellikle yeni kısmi görüş desteğinin ışığında), daha önce yazılan bir modelin daha az ideal hale gelmesini sağlayın; bir başka.

0

Farklı insanlar bu sorunu nasıl ele alıyorlar? Model klasörünün içindeki kargaşayı inceleyen birkaç saat geçirdiğimi biliyorum. Oluşturma klasörleri bulma, görsel dağınıklığı azaltmada yardımcı olur, eşleşen ad alanlarını kullanarak da yardımcı olur.

Ama kontrolörleri şu anda monolitlerin vardır. Sorun şu ki, projede bu noktaya kadar öğrenmeye odaklandım (yine de iyi bir şekilde çözülecek çok şey var).

şimdi MVC iyi bir kolu alıyorum, yüzden karmaşıklığını gözden geçirmek ve adlandırılmış daha iyi ve daha temiz fonksiyonlarına denetleyicileri kadar değiştirerek dikkate almak zamanıdır.

alt kontrolörleri içine kendi denetleyicileri kesiliyor diğer insanlar mı? (Eğer böyle bir şey varsa)

+0

Denetleyicilerinizi kodlama hilesi onlara bakıp 'her eylem yöntemi 20 veya 30 satıra veya nispeten az sayıya ulaşıyorsa, onu nasıl azaltabilirim?' Temel olarak, DRY'yi koruyun ve yaptığınız şeyi yeniden düşünün ve bu mantığı yeniden kullanılabilen uygun bir SERVICE katmanına taşıyın. –

+0

Ayrıca, ROB CONERY StoreFront MVC Başlangıç ​​Kitini indirin ve çözümünü nasıl katmanlandırdığını görün -> çok uber awesomesauce. (google, sabahın bu geç saatinde (erken ?!) saatte bağlantıyı bulmaktan rahatsız olamam ... hth! –