2010-02-21 17 views
8

Sadece yardımcı sınıflarını veya yöntemlerini ayrı bir derlemede saklayıp saklayamadığını bilmek istiyorum ... neden sadece temiz yönetim için? MVC projenizde bir yardımcı klasörün kullanımıyla ilgili pek çok ileti gördüm ve bu da beni ASP.NET'teki dağınık eski günlere geri götürüyor. Burada insanlar bir projeyi fiziksel olarak bunun gibi fiziksel olarak ayırmak yerine bir App_code klasörü kullanıyorlardı. .Yardımcı sınıflarınızı ayrı bir derlemede saklıyor musunuz?

Ve benzer şekilde, hiç kimse gerçek mimari yapmaz MVC web grubunuzdaki bazı klasörlere model koyacaktır. MyApp.DataLayer derlemesine veya MyApp.Models'e veya böyle bir şeye giderlerdi.

+0

Bir şeyi netleştirebilir misiniz: Özellikle HTML Yardımcısı uzantı yöntemleri ve bunları içeren sınıflar hakkında mı konuşuyorsunuz?Ya da bir uygulama oluşturma sürecinde yaratılan çeşitli “yardımcı sınıflar” hakkında daha geniş mi konuşuyorsunuz? Gönderiniz "yardımcı sınıflar" diyor, ancak aynı zamanda birçok kişinin "HTML Yardımcı yöntemleri" (ve bu yöntemleri içeren statik sınıflar) yerleştirdiği "yardımcı" klasöründen de bahsediyor. –

cevap

1

Web sitemdeki farklı katmanları ayırmak veya uygulamalar oluşturmak için projeler kullanıyorum. İş kurallarına daha iyi saygı göstermemi sağlıyor. Ayrıca bir değişiklik yapmak istediğimde nereye gitmem gerektiğini izlemek daha kolay.

Ancak, kullanıcıların çözümde katmanları etiketleyen klasörleri kullandıklarını gördüm, ancak bunun biraz dağınık olduğunu düşünüyorum.

2

Ayrı bir projede ve bazılarında web projesinde bazı yardımcılarımız var. Bazı yardımcılarınızın web projenizde tanımladığınız soyutlamaları kullanması gerektiğini göreceksiniz. Bu da genellikle bu yardımcıları web projesine dahil etmeye zorlayacaktır, çünkü web projesine referans veren başka bir projeye sahip olmanız pek olası değildir. Ben App_Code kullanarak aynı düşünmüyorum. Bunlar, IDE'nizde derleme zamanında derlenmiş olan ve App_Code'a uygulanan özel bir "sihir" olmayan dosyalardır.

+0

App_Code ile aynı anlama gelmeyeceğim Sadece web uygulamanızın armatür olduğu bir alt klasörde gerçekte ayrı bir mecrada bulunması gereken her şeyi koyma kavramını kastediyorum. – PositiveGuy

+1

Anladım. İlk eğilimim onları ayrı bir mecraya koymaktı. Ama bu yanlış yönlendirildi. Web projemde bir sınıf kullanan bir HTML yardımcısı yapmam gerektiğinde, en azından benim durumum için ve muhtemelen birçok durum için yardımcıların en iyi web projesine dahil olduğunu fark ettim. –

3

Evet, ama kuyunun gibi diğer meclisleri ortak olan nedenlerden dolayı

  • başka projeye takmak kolay hale gelir. (Bazı sürümleri gerekebilir).
  • Yeniden kullanılabilir
  • Kolay bir projenin
  • gibi değil parçasını refractor için
  • Kolay geliştirmek için
  • ancak geliştiriciler
  • bazılarını temizler anlamak için proje kendisi, belgeye kolay ve kolaydır tam üstünde bulunan montaj, hazır, bir "aferin iş" olmalıdır

Ama herkes için karışıklık diğer akıllı, o kadar yardımcı sınıflar tutmak için daha iyidir ait oldukları yer.

+0

Sadece belirli bir projeye özgü yardımcılar hakkında konuşuyorum. Onları fiziksel olarak ayırmanın hala bir şeyleri bulmayı (keşfetme yeteneği) ve web uygulamanızdaki karmaşıklığı korumak ve azaltmak için çok daha profesyonel bir yol olduğunu düşünüyorum. – PositiveGuy

+0

Oluşturduğunuz tüm yardımcılar, herhangi bir mvc projesinde yeniden kullanılamaz. – PositiveGuy

1

Evet, çünkü bunlar İş Katmanının bir parçasıdır. İki büyük payoffs:

  • Testedilebilirlik
  • senin yarar fonksiyonları ve yardımcı sınıflar tüm sistemin en yoğun kullanılan bazı bileşenlerin olması muhtemeldir unutmayın

    • Yeniden kullanılabilirlik. Tam BICEP testi olmadan, gerçekten kabul edilemez bir riskle karşılaşırsınız.

    0

    Oluşturduğum yardımcıların çoğu genellikle katmana özel olduğundan, bunları onlara gereksinim duyan temel düzeneği takma eğilimindeyim. Çok sayıda özel yardımcı sınıfını saklamak için başka bir projeye ekleme yapmak için bir neden göremiyorum.

    İlgili konular