WPF için Prizma nedir?


137

Son zamanlarda Prism adında bir şeyle karşılaştım . Projeyi yürüten Microsoft, projeyi şu şekilde açıklar:

WPF ve Silverlight'ta kompozit uygulamalar için yönergeler.

Orada daha ayrıntılı açıklamaları okuduktan sonra bile, aslında ne hakkında olduğu hakkında hiçbir fikrim yok, korkarım.

Burada, birinin bana Prizmanın gerçekte ne olduğunu ve neden öğrenmem gerektiğini açık bir özlü açıklama yapabileceğini umuyorum. Birkaç yıldır bir WPF geliştiricisi oldum, MVVM'yi adil payımı kullandım ve son zamanlarda Prism kullanan insanlarla karşılaştım, ancak kişisel olarak burada biraz döngüden uzak hissediyorum.

Özellikle, aşağıdaki noktaları merak ediyorum:

  • Prizma tam anlamıyla (veya esas olarak) MSDN sitesinde verilen bir kitapçık mıdır? Tam olarak ne için varsa, herhangi bir kütüphane içeriyor mu?

  • Prizma bir MVVM çerçevesi mi? Ben orada veya kendim diğerleri üzerinde "resmi Microsoft MVVM çerçeve" olarak mı kullanmalıyım?

  • Bağımlılık enjeksiyonu sağlıyor mu? Bu şekilde MEF ile ilgili mi?

  • WPF / Silverlight geliştiricisi olarak Prism'in ne yaptığı hakkında bilmem gereken başka bir şey.


5
Aslında oldukça karmaşık bir şey - Prizma çok fazla ihtiyacı karşılamaya çalışıyor, bu yüzden amacını anlamaya çalışıyorsanız tek bir "doğru" cevap almak zor. Gerçekten çok şey yapıyor.
Reed Copsey

1
Benim tarafımdan sorulan bu benzer soru da bu soruya iyi cevaplar veriyor - stackoverflow.com/questions/6251821/…
akjoshi

9
P&P'den bir başka karanlık bataklık. böyle bir şeyi her serbest bıraktıklarında kendimin gerçekte ne olduğunu öğrenmek için SO veya wikipedia'ya gitmek zorunda olduğumu görüyorum. neden her zaman bu kadar şifreli olmak zorunda?
Adam Ralph

1
İsterseniz, MVPM kalıbını WPF / Silverlight uygulamalarınıza nasıl uygulayacağınız konusunda size rehberlik eden bir belge türüdür. Ayrıca tam olarak ne için emin değilim codePlex bir kütüphane var. PRISM hakkında iyi bir belge aşağıdaki linkte yaşıyor, bir göz atmaya değer: Prism 4.1 - Microsoft Prism için Geliştirici Kılavuzu - MSDN
user3353518

Yanıtlar:


92

Prism, WPF ve Silverlight'ta "kompozit uygulamalar" oluşturmak için Microsoft Patterns and Practices Team resmi kılavuzudur.

Geliştirme ve sürdürülebilirlik açısından esnek olan büyük ölçekli uygulamalar oluşturmak için en iyi uygulamalar hakkında rehberlik sağlamayı amaçlamaktadır.

Buna bağımlılık enjeksiyonu (Unity veya MEF aracılığıyla), düzen (MVVM kullanımı dahil), bileşik olay işleme vb.


Prizma tam anlamıyla (veya esas olarak) MSDN sitesinde verilen bir kitapçık mıdır? Tam olarak ne için varsa, herhangi bir kütüphane içeriyor mu?

Bir kitaptır, ancak destek için kütüphaneleri de içerir ( GitHub sitesinde).

Prizma bir MVVM çerçevesi mi? Ben orada veya kendim diğerleri üzerinde "resmi Microsoft MVVM çerçeve" olarak mı kullanmalıyım?

Evet ve hayır. MVVM kullanımı için rehberlik içerir, ancak bir MVVM çerçevesinden çok daha fazlasıdır. MVVM rehberliğini içermesine rağmen, kendi başına bir "MVVM çerçevesi" değildir.

Bağımlılık enjeksiyonu sağlıyor mu? Bu şekilde MEF ile ilgili mi?

Evet. Başlangıçta Unity'yi içeriyordu, ancak en son sürüm DI için MEF kullanımını içeriyor.

WPF / Silverlight geliştiricisi olarak Prism'in ne yaptığı hakkında bilmem gereken başka bir şey.

Bir şeyleri nasıl yaptıklarına bir göz atmaya değer. Çok ayrıntılı bir "bölge" konseptinin yanı sıra iyi bir olay toplama desteği de var. Aynı zamanda WPF, Silverlight ve Windows Phone'a karşı geliştirmek için iyi uygulamalar içerir.


1
Cevap için teşekkürler. Bu bana iyi bir genel bakış sunuyor. Açık olmak gerekirse: aslında MVVM ile ilgili herhangi bir kod veya bir kütüphane DLL var mı?
Noldorin

4
@Noldorin: Prism'in içini sorduğunuzu varsayıyorum ... MVVM için bazı destek var, ama açıkçası MVVM, bir model olarak, neredeyse hiç kütüphane desteği gerektirmiyor. Prizma iyi bir bildirim nesnesine ve komuta desteğine sahiptir, bu da gerçekten MVVM için ihtiyacınız olan BCL'de eksik olan tek şeydir. Ayrıca, VM <-> VM iletişimi için DI / paylaşılan hizmetleri kullanmak istiyorsanız yardımcı olan servis bulucu desteğine de sahiptir. Mesajlaşma çerçevesi vb.Gibi bazı MVVM "çerçeveleri" tarafından sağlanan bazı "ekstra" şeyler yoktur
Reed Copsey

1
Prizma rehberini takip etmek için kütüphanelerin kurulmuş olması zorunlu mudur?
dios231

18

WPF ve Silverlight uygulamaları oluşturmak için bir çerçeve.

http://compositewpf.codeplex.com/

Microsoft, "CompositeWPF" olarak yeniden adlandırmadan önce "Prism" olarak adlandırılırdı.

Yanıtlar:

1) Prizma, uygulamalarınız için bir temel olarak kullanılacak bir MVVM çerçevesidir

2) Ben sizin özel gereksinimlerine bağlı olarak öneririm. Belirli yanıtlar alabilmek için belirli ayrıntılarla başka bir soru göndermelisiniz.

3) Prizma bağımlılık enjeksiyonu (Unity) kullanır ancak bunu "sağlamaz"

4) Imo, Prism çok fazla işlevsellik sağlar ancak öğrenme eğrisinde ağırdır. Tek geliştirici olarak sizinle birlikte küçük projeler için, sağladığı soyutlamaya ve araçlara ihtiyacınız olmayabilir.


3
İfadenize bir şekilde katılmıyorum - Prizma MVVM rehberliği içeriyor, ancak rehberlik LOT (çoğu örnek) hiç MVVM değil. Daha çok, kompozit uygulamalar oluştururken kullanılabilecek bir seçenek olarak sunulur.
Reed Copsey

1
Sanırım her zaman MVVM deseni ile kullandım
rboarman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.