Bir istemci için bir ASP.NET WebForms portalı yazdım. Proje, başlangıçtan itibaren düzgün bir şekilde planlanmak ve yapılandırılmak yerine bir tür evrim geçirmiştir. Sonuç olarak, tüm kod aynı proje içinde ve herhangi bir katman olmadan birlikte ezilir. İstemci şimdi işlevsellikten memnun, bu yüzden projeyi serbest bırakmak konusunda emin olacağım şekilde kodu yeniden düzenlemek istiyorum. Mimariyi tasarlamanın birçok farklı yolu var gibi göründüğü için, alınacak en iyi yaklaşım hakkında bazı görüşler istiyorum.
İŞLEVSELLİĞİ
Portal, yöneticilerin HTML şablonlarını yapılandırmasına izin verir. İlişkili diğer "ortaklar", sitelerine IFrame kodu ekleyerek bu şablonları görüntüleyebilir. Bu şablonlarda müşteriler ürün kaydı ve satın alma işlemi gerçekleştirebilir. WCF kullanılarak harici şirketlerin sistemle arayüz kurmasına izin veren bir API uygulanmıştır. Yönetici bölümü, Yöneticilerin her bir iş ortağı için çeşitli işlevleri yapılandırmasına ve raporları görüntülemesine olanak tanır. Sistem müşterilere faturalar ve e-posta bildirimleri gönderir.
GÜNCEL MİMARLIK
Şu anda veritabanını okumak / yazmak için EF4 kullanıyor. EF nesneleri doğrudan aspx dosyalarında kullanılır. Bu siteyi yazarken hızlı gelişimi kolaylaştırdı, ancak db'yi UI ile sıkıca bağladığı için muhtemelen böyle tutmak kabul edilemez. EF nesnelerinin kısmi sınıflarına belirli iş mantığı eklendi.
SORULARI
Yeniden düzenleme işleminin amacı, siteyi ölçeklendirilebilir, kolay korunabilir ve güvenli hale getirmektir.
Bunun için ne tür bir mimari en iyi olurdu? Lütfen DTO / POCO / Aktif Kayıt modelini kullanmam gerekip gerekmediğini, her katmanda ne olması gerektiğini açıklayın.
DTO'ları / BO'ları otomatik olarak oluşturmanın sağlam bir yolu var mı, böylece ekstra katmanlara rağmen gelecekteki geliştirmelerin uygulanması basit olacak mı?
Projeyi WebForms'tan MVC'ye dönüştürmek faydalı olur mu?