Bilmek istediğin her şeye ulaş

Asp.Net Mvc ile Modüler bir yapı nasıl oluşturabilirim?

Sorununuz yeterince açıklayıcı olmamış. Modülerlikten kastınız nedir?
  • Paylaş
2

Ahmet Faik, Sorunun açık olduğunu düşünüyorum. Modulerlik her zaman ki tanımıyla, belirli parçaların istenildiğin de eklenip çıkartılabilen bir sistemdir. Proje içerisinde müşteri isteğine bağlı olarak kullanılacak modullerin eklenip çıkartabilmek gerekli. Var olan A,B ve C Modullerini x müşterisi için A ve B, y müşterisi için B ve C , z müşterisi için A,B ve C modullerini içeren sistem oluşturmayı amaçlıyorum. Tek bir sistem üzerinde çalışıp farklı modüller oluşturularak paket program ortaya çıkarmak asıl amaç.

Ahmet Küçükoğlu, Moduler bir uygulama yazmak istiyorsanız Abstraction Based Development, Dependency Injection konularını incelemelisiniz. Sizin için ufak bir demo hazırladım. Aşağıdaki linkten indirebilirsiniz.

sdrv.ms/1bav4jw

Kısaca anlatmak gerekirse;

Modül Hazırlama
ModuleApp.Modules katmanına modülleri tanımlarız. Modüller IModule implement etmek zorundadır.

Müşterilere İstenilen Modülleri Yükleme
ModuleApp.WebUI katmanında Web.config içerisine hangi modüllerin çalıştırılması gerektiğini tanımlarız.

Şu an .Net te kod yazma düzeyiniz nasıl? View lerde entity framework veya linqtosql kodları kullanıyor musunuz?
  • Paylaş
2

Ahmet Faik, View ler de entity framework kullanma konusunu pek anlamayamadım ama şunu söylesem yeterli olurmu bilmiyorum; Piyasada büyük firmaların hali hazırda kullandığı bir kaç proje var.

Kadircebel, ileri seviye modüler işlemler yapmak istiyorsan eğer; .NET MVC nin mimarisi senin için yeterli olmayacaktır. Yazılım Mimari konusunu biraz araştırmanı öneririm. Ben mesela view lerde hiç klasik db kodu, entity framwork nesnesi,linqtosql nesnesi kullanmıyorum. çok büyük projelerde .net mvc ye ekstradan mimari oluşturuyorum. normalde evet .net mvc çok katmanlı mimariye uygun ama default olarak o şekilde gelmiyor aslında. Entity-dal yapılarını eklemen lazım. Data transfer objelerini eklemen lazım. Bu bahsettiğim durum tam modülerlik durumu. biraz vaktini alıyor fakat view kısmında sadece varlık dediğimiz elementler ile işlem yapıyorsun.

Basit olarak belirtmem gerekirse ; mesela ben boş bir solution ile projeme başlıyorum. daha sonrasında
*Entity
*Data Service (içerisinde interface data service ler bulunuyor)
*Repository (bu kısımda linqtosql class veya entity class ekleyebilirsin)
*Data Transfer Object
*Globalization
*Common (hata mesajları ve kullanıcıya yansayacak mesajların library si)

olmak üzere toplam 6 adet class library oluşturuyorum. daha sonrasında Mvc yapısını ekleyip içine oluşturduğum kütüphanenin dll dosyalarını referans geçiyorum.

asıl çoklu mimari bu oluyor zaten. ki windows un alt yapısıda bu şekildedir aslında.

view kısmında da örnek olarak şu şekilde haberleşiyorum. hiç bir model kullanmadan.
-------------------------
Result<IList<PradaList>> result = _pr.ListData();

foreach (var item in result.TransactionResult)
{
<ol>@item.Name</ol>
}
-----------------------

büyük projelerde mvc nin klasik model yapısı sorun teşkil edebiliyor bazen. bu arada controller kısmında da çok büyük kodlar kullanmıyorum. basit işler için kullandıklarım var. atıyorum session larla işim varsa controller a yazıyorum o kodu.

performans artışında %80 lik bir artış çok rahat oluyor. PHP kullananlar .NET'in dibini bilseler dizlerini döverler tahminim.

internette data transfer object , data service gibi konularını araştırmanı tavsiye ederim.

Sonraki Soru
HESAP OLUŞTUR

İstatistikler

946 Görüntülenme4 Takipçi2 Yanıt