Silverlight / silverlight tarayıcı dışı / wpf arasında karar vermek için yardıma ihtiyacım var


10

Yeniden yazma projesinin ilk planlama aşamasındayım ve silverlight / silverlight oob / wpf arasında karar veriyorum. TL; sonunda DR.

Olası satışlar / müşteriler / randevu takvimlerini işleyen bir LOB uygulaması. Çok karmaşık değil. Bu seçenekleri başka bir yerde bağımsız olarak araştırıyorum, ama etrafa soracağımı düşündüm. Bazı kaba başlangıç ​​gereksinimleri / öngörülebilir sorunlar şunlardır:

Komut satırı argümanları (sip telefon) ile sistemde bir exe çağırabilmeliyim.

SL'yi bir problem haline getirir

Kullanıcı tabanı dağıtıldı ve tel üzerinden geçen trafiği olabildiğince sınırlamak ve bazı kötü eşzamanlılık sorunlarından kaçınmak istiyorum

Bu WPF kullanarak bir sorun olduğunu görebilirsiniz

Yazılım dağıtımı / güncellemesi son derece basit olmalıdır . Bazı kullanıcılar son derece teknik değildir (bkz: 70 yaşında, bilgisayarda ilk kez)

Değiştirdiğimiz ClickOnce uygulamasıyla bu büyük bir sorun değil ve üzerinde kullanıldığı makineler üzerinde kontrolüm var. Ancak, "Yükle" düğmesine tıklamak zorunda kalmadıkları takdirde kullanıcılar için daha basittir. Bunun Silverlight OOB ile nasıl ele alındığını bilmiyorum.

Şirket 12 ayda sert bir genişleme planlıyor, bu yüzden donanım dağıtımının hızlı / kolay olması gerekiyor. Buradaki fikir, yeni bir konuma internet bağlantısı kurmak, bazı bilgisayarları takmak ve özel BT çalışanlarına veya sunucu kurulumuna gerek kalmadan çalışabilmektir.

SL'yi cazip hale getirir

Diğer hizmetlerle (finansal yazılım, asterix sunucusu) entegrasyon hemen bir hedef değildir, ancak sistemin bir parçası olmak nihai bir hedeftir. Tek bir hizmet bu ikincil hizmetler ile entegre olacak şekilde ayarlandıysa ve tüm bu verilerin kablo üzerinden aktarılması gerekmiyorsa, bu çok daha basit / daha verimli hale getirilir

SL'yi cazip hale getirir

Birden fazla 'sürüm' yapmak pencereden çıkar. Silverlight + silverlight oob versiyonunu korumanın nasıl bir şey olduğunu bilmiyorum (hatta herhangi bir sorun varsa)

WPF'yi daha iyi bir seçenek haline getirebilir.

TL; DR: Benim bakış açımdan, bir gümüş ışık uygulaması kullanıcıların% 90'ı için en iyi mantıklı - diğer% 10'u bir exe çalıştırmaları gerektiğinden kullanamıyor. Silverlight OOB mutlu bir orta alan olabilir ama şu anda bunun için yürütme modelinin nasıl olduğunu bilmiyorum (hala sunucu tarafı kod kavramı var mı? Öyleyse, bu muhtemelen ideal olacaktır) ve bilmiyorum dağıtım / güncellemenin bunun için nasıl çalıştığını bilir.


Neden ilk etapta ClickOnce uygulamasını değiştirmek istiyorsunuz? ClickOnce, Uygulamanın başlangıcında kullanılabilir bir güncellemeyi otomatik olarak kontrol etme ve indirme seçeneğine sahiptir. Bunu gördüm replayer.codeplex.com
Marcel

Yanıtlar:


6

İlginç bir sorun. SL4'ten itibaren Silverlight tam güven uygulamasına sahip olabileceğinizi belirtmeyi unuttunuz, bu nedenle WPF'yi düşünüyorsanız bunun yerine bunu düşünmek isteyebilirsiniz. Yüklenmesi gerekir (ClickOnce), ancak bundan uzaklaşıyor gibi görünüyorsunuz.

Henüz OOB ile hiçbir şey yapmadım, ancak aynı ikili programın hem broswer hem de tarayıcı dışında kullanılabileceğinden eminim, çünkü ayrı bir inşa hedefi yerine bir proje ayarıdır.

"Uygulamanın tarayıcıdan çalıştırılmasını etkinleştir"

Silverlight projesinin Silverlight sekmesinde.

Yani ayrı bir bakım sorunu olmayacaktı.

Silverlight uygulamasını barındıran web uygulamasına makul miktarda kod oluşturabilir ve WCF RIA Hizmetlerini kullanarak iletişim kurabilirsiniz - yine bunun 1.0 sürümünü almak için .NET 4 ve SL 4 ile devam etmeniz gerekir. .NET 3.5 ve SL 4 yalnızca WCF RIA hizmetleri beta sürümünü destekler. Bu, a) indirmenin boyutunu ve b) istemcide yürütülmesi gereken, ancak ağ trafiğini artıracak kod miktarını azaltacaktır.

Bu puanda Silverlight kodunuzu birkaç meclise bölebilirsiniz ve Prism gibi bir şey kullanarak bunları isteğe bağlı olarak yüklenmeye ayarlayabilirsiniz. Bu, kullanıcının uygulamanın gerçekte kullandığı kısımlarını indirdiği anlamına gelir. İndirilen tutarı,

"Uygulama kitaplığı önbelleğini kullanarak XAP boyutunu küçültme"

seçeneği.

Herhangi bir harici dll (üçüncü taraf veya .NET) ile gitmek için bir "extmap" dosyanız varsa, bu bir zip dosyasına paketlenmiş ve projenizdeki tüm xap dosyaları arasında paylaşılmak üzere ayrı ayrı indirilir anlamına gelir. Bu, tek tek xap dosyalarını minimum boyutuna kadar tutar ve istemci makinede bu diğer dll'lerin yalnızca bir kopyasına sahip olmanızı sağlar.


1
+1: @ChrisF girişiniz için teşekkürler. Keşke beynini alabilmem için seni IRL tanıyordum.
Steven Evers

2

Analiziniz çok iyi.

Bahseteceğim tek şey, Silverlight uygulamasında çerçevenin TÜMÜNÜN mevcut olmamasıdır. Bu kısıtlama seçiminizi WPF'ye doğru eğebilir, ancak bu kısıtlamanın uygulama gereksinimleriniz için nasıl geçerli olup olmadığını görmeniz gerekir.


Bu uygulama exe + args üzerinden bir SIP telefonu arama ihtiyacı hariç, çoğunlukla bir crud app, bu yüzden eksik çerçeve parçalardan herhangi birini özleyeceğim sanmıyorum.
Steven Evers

2

Sadece birkaç hızlı şey:

Dağıtım ve "sunucu tarafı kodu": Silverlight uygulaması, basit ve basit bir istemci tarafı uygulamasıdır. Tarayıcı üzerinden teslim edilmesinin sizi karıştırmasına izin vermeyin - bir tarayıcı içi SL uygulamasını çalıştırdığınızda, bu uygulamanın derlemelerini sıkıştırılmış bir pakette indirir, çıkarır ve eklentiyi kullanarak çalıştırırsınız. Silverlight'ın kendi başına "sunucu tarafı kodu" nosyonu yoktur - kodun uzak bir sunucuda çalışmasını istiyorsanız bir WCF hizmeti yazın.

Uygulamanın güncellenmesi: Bu, OOB uygulamaları için yaygın bir senaryodur ve SL yerleşik desteğe sahiptir. CheckAndDownloadUpdateAsync için Google.

Düzenleme: Bahsetmeyi unuttum - uygulamayı yükleme uygulama içinden yapılır. Varsayılan olarak, yüklenebilir bir SL uygulamasının onu yüklemek için bir bağlam menüsü eylemi olacaktır. Bununla birlikte, yükleme işlemi kullanıcının bir düğmeyi tıklatmasıyla programlı olarak da yapılabilir. Yükleme durumu programlı olarak da algılanabilir, bu nedenle yalnızca OOB do'yı çalıştırmayı amaçlayan bazı SL uygulamalarını gördüm, ilk önce yüklü olup olmadıklarını algılar. Öyleyse, uygulamayı çalıştırın. Değilse, uygulamayı yükleyen bir düğmeyle bir açılış ekranı gösterin.

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.