2010-01-06 26 views
5

Kuruluşum, yeni nesil sistemlerimiz için hangi teknolojilerin kullanılacağını düşünüyor. .NET kullanıyor olacağız, ancak hangi kullanıcı arayüz teknolojisinin en iyi olduğuna karar vermedik. Silverlight ve WPF en uygun seçenek olarak görünüyor. Birisi her yaklaşımın artılarını ve eksilerini paylaşabilir mi?Silverlight vs WPF

+0

Bu soruya bakın: http://stackoverflow.com/questions/944608/wpf-vs-silverlight –

+0

Teşekkürler Meta - bazı nedenlerden dolayı önerilen dups gelmedi –

cevap

7

Gabriel (ve Reed) de bahsettiği gibi, Silverlight WPF'nin zayıflatılmış bir sürümüdür.

WPF öncelikle masaüstü uygulamaları için tasarlanmıştır ve Silverlight'ın henüz sahip olmadığı düzen, animasyon ve veri bağlamasının çevresinde gelişmiş özelliklere sahiptir. WPF bir tarayıcı üzerinden gönderilebilir, ancak tarayıcı eklentisi olarak çalışmaz ve bu nedenle tarayıcıdaki diğer içeriklerle etkileşimde bulunamaz. WinForms denetimlerini ve pencerelerini barındıran WPF uygulamaları oluşturmak mümkündür - bu, mevcut WinForms kodunun bir portföyünü (sizin için önemliyse) geçişini kolaylaştırabilir. WPF ayrıca Silverlight'tan daha gelişmiş 3D yeteneklere sahiptir - pek fazla olmasa da.

Siverlight, Mono çalışma zamanı ve Silverlight'ın Moonlight bağlantı noktası üzerinden birden fazla platformda (Linux ve OSX gibi) kullanılabilir. Gümüş ışık ya tek başına bir uygulama olarak ya da bir tarayıcı ortamında çalışabilir - bu da web tabanlı uygulamaların oluşturulmasını mümkün kılar. Tarayıcı tabanlı bir eklenti olarak çalıştırıldığında, bir Silverlight uygulaması tarayıcıdaki içeriğe müdahale edebilir ve HTML ile yan yana gösterilebilir. Ayrıca, bir yakın Silverlight uygulamasını, neredeyse sorunsuz bir programlama ortamı oluşturarak JavaScript kullanarak da değiştirebilirsiniz. Silverlight uygulamalarında bazı sınırlamalar vardır - örneğin, WCF çağrıları hepsi senkronize değildir (Silverlight/Browser threading modeline bağlı olarak). Ayrıca, tüm .NET framework SDK'ları Silverlight uygulamalarında kullanılamaz.

Her iki teknoloji de işlevsellik sağlamak için bir biçimlendirme ve kod birleşimi kullanmaları bakımından çok benzerdir. Aralarında seçim yapmak için, tarayıcı tabanlı veya bağımsız bir uygulama oluşturup oluşturmadığınızı, diğer platformlara taşınabilir olup olmadığınızı ve .NET'te kullanılabilen tam bir kitaplık paketine ihtiyacınız olup olmadığına karar vermeniz gerekir.

Geliştirme araçları ön tarafında - orada en iyi araç IMHO, Expression Blend'dir - görsel olarak WPF veya Silverlight kullanıcı arabirimleri oluşturmak için zarif ve güçlü bir arayüze sahiptir. Ayrıca, Visual Studio ile de bütünleşir - ki bu da hala üstün bir geliştirme ortamıdır (Blend, sınırlı kod düzenleme özelliklerine sahiptir). Grafik oluşturma ve WPF ve Silveright uygulamalarında kullanılmak üzere video düzenleme konusunda yardımcı olan Expression Design ve Expression Encoder gibi araçlar da vardır.

3

Silverlight, Silverlight tarayıcı eklentisinde kullanılan bir WPF alt kümesidir. Her ikisi de iyidir, ancak bir web tabanlı veya bir windows uygulaması ile sonuçlanıp sonlandırmayacağınıza karar vermelisiniz.

Silverlight, WPF'nin sahip olduğu tüm yeteneklere sahip değildir (güvenlik nedeniyle kısmen - tarayıcıda kullanılır). Bununla birlikte, Silverlight ile, web tabanlı uygulama avantajlarının tümüne (tek yükseltme yeri, vb.) - JavaScript, CSS ve HTML) erişebilirsiniz.

+3

Silverlight şimdi de tükendi -browser –

7

Silverlight bile sürümüne 4.

Bir tarayıcıda veya tarayıcıya tükendi olabilir de, çok daha az yetenekli WPF daha olduğunu ve bazı avantajları vardır - ancak WPF üzerinde Silverlight başlıca avantajları ilgili dağıtım vardır. Bir Silverlight uygulamasını dağıtmak çok kolaydır - sunucunuzda bulunan bir web sayfasındaki XAP'a başvurmanız yeterlidir ve dağıtılır (kullanıcılarınızın Silverlight yüklü olması şartıyla). Tam bir masaüstü uygulaması olduğundan WPF, dağıtım açısından biraz daha fazla çalışma gerektirir.

WPF, söylenenden çok daha fazla özellik sunuyor. Tam .NET çerçevesine ([büyüyen] bir alt kümenin aksine) erişim sağlar.

Kişisel tercihim, Silverlight'ı kullanmaktır. Uygulamanın, eski yazılım, sistemdeki kaynaklara erişim veya Silverlight'ta bulunmayan diğer şeylerle birlikte kullanılması gerekmez. Bununla birlikte, eğer sisteme vergi ödeyecek bir şey yapmanız gerekiyorsa (yani: paralellik istediğiniz yerde yoğun hesaplama, grafik kaynaklarının kullanımı, karmaşık 3B çalışma, vb), sonra WPF gitmenin yoludur.

+0

Teşekkürler Reed. Bu kullanılabilir olmayan fonksiyonların (birlikte çalışma gibi) WCF kullanımıyla Silverlight ile gerçekleştirilebileceğini hayal ediyorum? –

+1

Gerçekten Silverlight kullanmıyorsunuz, o zaman - bunu ayrı bir uygulamaya taşıyor olacaksınız. SL4'te, bazılarını gerçekleştirmek için COM barındırma (sadece tarayıcıdan) kullanabilirsiniz, ancak bu noktada, WPF ile çalışmak sadece çok güzel. Tek bir uygulama istiyorsanız ve birlikte çalışmanız gerekiyorsa, WPF'ye gidin ... –

İlgili konular