2010-12-02 16 views
30

Prism v4 yükledim ve yükleyiciyi çalıştırdım. İki Aşağıdaki toplu iş dosyaları dizine gidip ran: - Mef QuickStart.bat Prism v4: Unity veya MEF?

  • Desktop sadece Birlikte Aç modülerlik -

    • Desktop sadece Birlik QuickStart.bat

    Birlikte Aç Modülarite zaman Bu uygulamaları derlemek, gerçek bir fark görmüyorum. MEF ile Birlik arasında arama yaptım ve bazı eksiler/eksiler buldum, ama özellikle Prism'de kullanımın “daha ​​iyi” (ve subjektif olduğunu biliyorum) olup olmadığını belirten hiçbir şey yok. Belki de benim taleplerimi listeleyirsem, birisinin beni doğru teknolojilere yönlendirebileceğini sanırım (Prism 4 olmasa bile).

    • uygulama WPF (DEĞİL Silverlight) yazılacaktır olmaktır.
    • Ana uygulama son derece ince olacaktır.
    • Ana uygulama, bir kişinin erişimi olan "uygulamalar/modüller" menüsünü oluşturmak için bir Web Hizmeti kullanacaktır.
    • "Uygulamalar/modüller" diğer yönetilen kitaplıklarda tamamen yer alacak.
    • Ana uygulama, bu DLL'lere yansıtarak görünüm ve görünüm modülleri alır. Ana uygulama, bu "uygulamalar/modüller" içine kayıt vb. Için servislerde beslenmelidir. Örneğin

    : Bir temel kullanıcı seçenekleri olabilir

    :

    • ViewOnly Adres kaydının

    Tüm öğeler ilgili Adresi Address.dll içindedir.

    gelişmiş bir kullanıcı seçenekleri olabilir:

    • Yeni Adres kaydı
    • Açık Adres kaydının

    Tüm öğeler olan alakalı Adres kullanıcıları yönet (güncelleme/silme) Address.dll içinde.
    Tüm öğeler İlgili yönetme Admin.dll içinde bulunur.

    Uygulama gerçekte Bu DLL birini referans olmamalı, orada 100 farklı modül ve bir kullanıcı sadece 2 tanesi erişimi varsa, bunlardan sadece 2 indirilen ve kullanılan böylece içlerine yansıtmak planlıyoruz. Onlara 10 erişimi olan bir kullanıcı 10

    WebService aracılığıyla indirme DLL'sini zaten çözdüm. :)

  • +0

    Unity ve WPF ile birlikte Prism 2.1'in kullanılması ... şimdiye kadar mutluydu, kişisel olarak MEF kullanmamış olsa da ... –

    +0

    Neler oluyor? Benzer bir kapsamdaki projeye bakıyorum, böylece girdiniz harika olurdu. – John

    +0

    @ John: Saf MEF. –

    cevap

    21

    Hiçbiri "daha iyi" değildir: onlar farklı şeylerdir.

    IMO seçiminiz yalnızca gereksinimlerinize göre yapılmalıdır. Burada yayınladığınız gereksinimlere dayanarak, MEF'yi kullanmanızı öneririm çünkü DLL'lerde bulunan modülleriniz var ve ana uygulama yüklenecek modüllerden habersiz. Bu görevler, MEF'in neden var olmasının nedeni.

    Neyse bunları ikisini kullanabilirsiniz: bağımlılık enjeksiyon avantajları almak modülerlik ve Birlik MEF (test edilebilirlik, tekrar kullanılabilirlik, ...)

    +0

    Birbirlerine iyi davranıyorlar mı yoksa birlikte çalışmak için (MEF/Unity) çok kötü büyüyen ağrıları olacaklar. –

    +10

    Onlarla birlikte çalışıyorum. Tamamen bağımsızlar. Tek acı, yeni bir şey tasarladığınızda ve enjekte edilebilir bir bağımlılık mı yoksa harici bir bileşen mi olduğunu belirtmeniz gerektiğidir. Ama çoğu zaman kolaydır. – onof

    +6

    Yorumunuzdaki +1'imi açıklamak: Birlik veya mefet tarafından sunulacak olanı ayırt etmek için ** enjekte edilebilir bağımlılığı ** vs ** harici bileşen ** ifadesini beğeniyorum. – odalet

    4

    tüm modüller uygulamayla aynı anda çekirdekler değilseniz, daha sonra MEF, ana uygulamadaki değişen arayüzlerle başa çıkmanın birçok yolunu sunar. Aksi halde MEF daha karmaşık olabilir.

    2

    PRISM ile bir yıl boyunca Unity kullanıyorum ancak bazı ciddi bellek sızıntı sorunları fark ettim. Bu yüzden PRISM 4 ve MEF'i kullanmaya karar verdim. Yaptığım şey, öncelikle uygulamanızı Unity ile PRISM 4'ü kullanmaya dönüştürmektir. Sonra MEF kullanmak için bir şube dönüştürdüm. Komik görünebilir ancak MEF bellek tüketimini ele alıyor ve bir şekilde Unity'den daha iyi çıkıyor.

    Başkalarının aynı deneyimi yapıp yapmadığını duymak güzel olur mu?

    +0

    ilginç geliyor – Shimmy

    +9

    Bu cevabın niçin yorum yapmadan 3 + olduğunu anlayamıyorum. Ya bu başka insanlara da oldu (bu yüzden +1 VE yorum yapmalılar), ya da bellek sızıntısı Birlik ile tamamen ilgisiz. Ben hiç böyle bir şeyle karşılaşmadım. –

    2

    MEF ve UNITY'nin birbiriyle iyi çalışıp çalışamayacağı sorusuna gelince, birbirleriyle çok iyi çalıştığını söyleyebilirim. PRISM, Unity ve MEF kullanılan bir kavram uygulaması kanıtı geliştirdim.

    +5

    Bu uygulamayı bizimle paylaşabilir misiniz? – John