ASP.Net veya WPF (C #)? [kapalı]


31

Ekibimiz bu konuda ayrıldı ve bazı üçüncü taraf görüşlerini almak istedim.

Bir uygulama oluşturuyoruz ve .WCF sunucusuyla .Net WPF Masaüstü Uygulaması'nı veya jQuery kullanarak ASP.Net web uygulamasını kullanmak isteyip istemediğimize karar veremiyoruz. Buradaki soruyu bazı özelliklerle birlikte soracağımı ve her iki tarafı da kullanmanın artılarının / eksilerinin ne olacağını göreceğimi düşündüm. Kendi favorim ve önyargılı olduğumu hissediyorum.

İdeal olarak, yazılımın ilk sürümünü mümkün olduğunca hızlı bir şekilde oluşturmak istiyoruz, daha sonra yavaşlatıyoruz ve daha sonra istediğimiz ek özellikleri / bileşenleri oluşturmak için zaman ayırıyoruz. Her şeyden önce yazılımın hızlı olmasını istiyoruz. Kullanıcılar gün boyu kayıtlardan geçerler ve kayıt yükleme veya yenileme ekranlarındaki gecikmeler verimliliklerini düşürür.

Başvuru Detayları:

  • İlk sürüm için yaklaşık 100 farklı ekran tahmin ediyorum, ilk sürümden sonra da birçok ek ekran için planlar ekleniyor.
  • Hatırlatma ve etkinlik sistemleri için iki yönlü iletişimi kullanmak istiyoruz
  • Şu anda yaklaşık 100 kullanıcıyı desteklememize rağmen, 500 kullanıcıya kadar büyümeye izin vermemize rağmen
  • Birden fazla yerimiz var

Göz önünde bulundurulması gerekenler (belki başlangıçta bazı durumlarda değil, gelecek sürümlerde):

  • İlk piyasaya sürüldükten sonra eklenecek ilave bileşenlere yer vardır (bunlardan birçoğu vardır ... belki de ilk uygulamadan daha fazla işe yarar)
  • Klavye gezintisi
  • Performans bir zorunluluktur
  • İlk sürüme Üretim Hızı
  • Düşük bakım giderleri
  • Gelecek destek
  • Softphone / Tarayıcı entegrasyonu

Geliştiricilerimiz:

  • Son birkaç aydır WPF öğrenen ve bunun için WPF kullanmanızı öneren 1 programcımız var.
  • ASP.Net'e aşina olan ve gelecekte projeye yardım edebilecek 2. bir programcımız var, ancak mevcut yazılımımızı korumak için harcadığı zamandan bu yana ilk sürümüne kadar fazla çalışmayacak.
  • İkisiyle de çalışan ve her ikisinde de rahat olan ben varım.
  • Proje yönetimi yapan bir dış şirketimiz var ve onlar bir ASP.Net şirketi.
  • 1-2 kişi daha işe almayı planlıyoruz, ancak ilk önce hangi yöne gittiğimizi bilmemiz gerekiyor

Çevre:

  • Genel kullanıcılar, Terminal Hizmetleri olan Windows 2003 sunucusundadır. WYSE ince istemciler kullanarak bir RDP bağlantısı üzerinden bağlanırlar. Yönetici personelin kendi PC'leri XP veya daha yüksek olan. Kullanıcılar, IE’yi web tarayıcısı olarak kullanmakla sınırlı olmakla birlikte, kendi çözünürlüklerini belirleme hakkına sahiptir.
  • Diğer yerler ağımıza bir MPLS bağlantısı üzerinden bağlanır

Buna dayanarak, neyi seçersiniz ve neden?


Tüm oyları çok seviyorum, ama bu konuda biraz daha fikir almak istiyorum :)
Rachel

3
başlangıçta 100 ekran gerektiren bu iş ne ?
Steven A. Lowe

Bu tahminde birçok kısmi ekran var. Örneğin, ana ekran, kullanıcının gereksinimlerine göre eklenebilen / kaldırılabilen / taşınabilen / yeniden boyutlandırılabilen bir grup "parçaya" bölünmüştür. Her birinin kendi veri seti, kendi düzenleme görünümü ve gerçekleştirilebilecek kendi eylemleri vardır. Bunları tek ekran yerine ayrı olarak sayıyorum çünkü her biri çok farklı.
Rachel

.NET MVC 3, JQuery ve HTML5'i kullanın
Oliver Picton

1
Merhaba @ kmote, WPF ile devam ettik ve karardan oldukça memnun kaldık. Kullanıcı arayüzü oluşturmada çok daha fazla esneklik sağladı ve web tabanlı bir çözüme göre daha hızlı bir yapı oluşturduğunu gördüm. Ne yazık ki, diğer öncelikler nedeniyle proje bir yıl sonra iptal edildi, ancak yine aynı seçimi sunsaydım aynı kararı verirdim.
Rachel

Yanıtlar:


17

Kesinlikle bir WPF uygulaması gibi, kullanıcı etkileşimi ve donanım ile etkileşime girme gibi geliyor. Uygulamayı Click-Once yoluyla dağıtabilirsiniz, böylece dağıtım çoğunlukla sorun çıkarmaz. WPF uygulamanız bir WCF servisine erişebilir ve verileri ikili olarak dağıtabilir, böylece performans mükemmel olur. WPF hakkında okumaya ve en kısa sürede tanımaya başlayacağım.


1 Ayrıca, TÜM bu ekranlarla, muhtemelen app (kod ve GUI her ikisi) içine mümkün olduğu kadar yeniden kullanımı gibi yapı isteyeceksiniz
Jon Onstott

+1 Gerekli "Softphone / Tarayıcı entegrasyonu" ile sanırım, tek yol WPF. Ya da belki Silverlight'ı kullanmak mümkün olabilir
Jiew Meng

15

Sesli saçak cevabı: ikisi de. Servis katmanını doğru yapın, her şeyi yapan kalın bir müşteriye (WPF) ve en yaygın işleri yapmak için hızlı bir web istemcisine (ASP.NET) sahip olmak kolaydır. Kapıyı yolun aşağısındaki mobil müşteriye vb. Açık bırakır.


Yapmayı düşündüğümüz şey bu .... WPF istemci uygulaması, raporlar veya sınırlı erişim için hafif bir web sürümüyle çoğu kullanım için.
Rachel

2
Buna + 1'le, ne rahatlıkla konuşursanız olun. NET dilinde ne olursa olsun sunum cesaretini yazın - sonra her sunum görevi için en iyi aracı kullanın (örneğin: web uygulaması bu uygulamaya ASP.NET arabirimini kullanın, masaüstü WPF / Winforms / vb).
heretik

Başlangıçta kullanıcılar, özellikle uygulamanın daha fazla parçasını daha erken almak anlamına gelirse, ASP.NET'i yeterince iyi bulabilirler.
JeffO

8

Eğer sadece WPF öğrenen bir programlayıcınız varsa ve ekibinizin WPF'e atladığını düşünüyorsanız, neden Silverlight'ı kullanmıyorsunuz? WPF'in avantajlarından birçoğunu elde edersiniz, ancak yine de projenizi web uygulaması olarak bırakma yeteneğinizi korursunuz. Büyük bir modülerleştirilmiş projeyi sahip bakıyor beri kullanmak mantıklı olur PRISM MVVM daha basit hale getirmek için WPF veya Silverlight ile.

Son zamanlarda ekibim Silverlight'ı asp.net üzerinden kullanmayı tercih etti. Bizim için harika bir seçim oldu. Başlangıçta herhangi bir Silverlight'ı bilen tek bir geliştiricimiz vardı. Sonra hepimiz çoğunlukla işe yaramaz olan, ancak en azından ayaklarımızı ıslattığımız bir haftada bir antrenman dersi aldık. Sonunda, UI çerçevemizin büyük bölümünün oluşturulmasında bize yardımcı olmak için iki müteahhit kiralamak zorunda kaldık. Ekibimizin çoğunluğu hala silverlight yeteneklerinden emin değil. Kendim, silverlight bilgisine sahip ilk ekip üyesi ve iki müteahhit SL'nin gelişiminin büyük kısmını yapanlar. Bundan sonra iki özel arka uç üyemiz var. Silverlight'a geçme kararını verdikten 2 ay sonra bize gerçekten somut bir şey hazırladığımızı söyleyebilirim. Ancak, Şimdi bir web tarayıcısının içinde çalışan ve yerel olarak herhangi bir makineye kurulmayan bir istemci tarafı uygulaması gibi hisseden harika bir ürünümüz var. Geliştirme, toplamda bir yıldan az oldu ve serbest bırakılma veya ilk serbest bırakma adayını almaya hazırız.

Dikkate alınması gereken bazı şeyler:

  • WPF veya silverlight, hangisini seçerseniz seçin, geliştiricilerinizin öğrenmesi gereken makul bir miktar olacaktır.

  • Silverlight, gerekirse tarayıcıyı çalıştırabilir. Bunu yaparsanız, ayarlamak oldukça kolaydır, böylece yeni bir sürüm çıkarırsanız, yüklenen tarayıcı SL programının otomatik olarak kendisini güncelleyeceği şekilde ayarlayabilirsiniz.

  • Silverlight, WPF'nin sahip olduğu tüm kontrolleri içermez.

Son notum, kodu olabildiğince hızlı bir şekilde dağıtmak istiyorsanız, oldukça açık bir şekilde ASP.NET'e gitmeniz gerektiğidir. ASP ile ilgili temel hedeflerim, ekibinizi disipline etmediğiniz sürece bir ASP.NET projesinin darmadağın ve dağınık hale gelmesinin kolay olmasıdır. Teknolojilere ayak uydurmanın ilk yükü ile başa çıkabileceğinizi düşünüyorsanız, o zaman Silverlight veya WPF size birçok harika imkan sunacaktır.


Çok benzer bir durumdayız ve hikayenizi dinlemeyi ilginç buldum, teşekkürler. Silverlight'ı düşüneceğim, ancak şu ana kadar sadece WPF kullandım. Eğer WPF ile gidersek, Silverlight'ta Raporlama bölümümüzü yapmayı planladık, bu yüzden sonunda öğrenmeyi planlamıştım
Rachel

Silverlight'ta bir ASP.NET uygulamasını dönüştürme (okuma yeniden yazma) ortasındayım - temel olarak ASP.NET ne yapmak istediğimizi ölçeklendirmiyor.
ChrisF

1
Sadece Bilginize: Unutmayın ki, Silverlight MS'in ana ürünü olmayacak ve bazı durumlarda insanlar bundan vazgeçilebileceğini söylüyor. Göz önünde bulundurmanın iyi olacağını kabul ediyorum, bu bilgiyi olası eksiler listenize ekleyin.
Paige Watson,

1
Bu tür bir uygulama için WPF'yi Silverlight üzerinden düşünürdüm. WPF kolayca bir XBAP (xaml tarayıcı uygulaması) olarak konuşlandırılabilir, genellikle yapılandırma dosyasında sadece birkaç değişiklik kodu ile. WPF, Silverlight'ın yaptığı her şeye sahiptir ve ayrıca WPF, çok daha fazla destek almaktadır. Dezavantajı, Silverlight'ın potansiyel olarak daha fazla işletim sistemine (Moonlight projesiyle Linux bile) yerleştirilebilmesine rağmen, WPF'nin istemcide Net'e ihtiyacı var, bu yüzden kesinlikle Windows.
Morgan Herlocker

2
Silverlight'ın kesilip kesilmeyeceğini bilmiyorum ama ilgili bir şey Microsoft'un Silverlight'tan HTML5'e kaydırdığı Müttefik makalesidir . Şahsen, eğer mümkün olduğunda masaüstü veya tescilli eklentiler üzerinden mümkün olduğunda Pure Web Apps’i ciddiye
alacağım

7

Bu bölüm tamamen ilgili:

Genel kullanıcılar, Terminal Hizmetleri olan Windows 2003 sunucusundadır. WYSE ince istemciler kullanarak bir RDP bağlantısı üzerinden bağlanırlar. Yönetici personelin kendi PC'leri XP veya daha yüksek olan. Kullanıcılar, IE’yi web tarayıcısı olarak kullanmakla sınırlı olmakla birlikte, kendi çözünürlüklerini belirleme hakkına sahiptir.

WPF, Uzak Masaüstü / İnce istemci bağlantıları üzerinden mükemmel değildir. Animasyonlar düzgün olmayacak ve karmaşık görüntüler (degradeler bile) UI yanıtını sürünmeye yavaşlatacaktır. Tipik bir retro XP makineli yönetici kadrosu, büyük olasılıkla karmaşık WPF uygulamalarında (küçük miktarlarda RAM ve kötü GPU'lardan dolayı) performans sorunları yaşar.

Zengin grafikler için WPF yoluna giderseniz, hedef makinelerin on yaşında olduğunu öğrendiğinizde son dakika performans hacklerine hazır olun. Statik ekranlara bağlı kalın ve WPF performansı 3.5'ten bu yana çarpıcı bir şekilde arttığından .NET 4.0'ı kullanın.


Teşekkürler ... bu benim için büyük bir endişe kaynağı olsa da, kullanıcı bir RDP bağlantısı varsa ve testler iyi sonuç verdiyse grafikleri geri ölçekleyebildiğimiz gibi gözükse de.
Rachel

2

Teknik olarak, WPF / WCF kombinasyonunun daha iyi bir çözüm olduğuna inanıyorum.

Ancak, mevcut WPF programcınızın bu proje için gerçekten bir deneyime sahip olduğuna ikna olmadım. WPF, Winform programlamasının düşünce süreçlerini programlamada oldukça bir kaymadır ve bu yüzden uzun ve zor düşünmeniz gerekir, bu rotayı uygulamak için takımda gerçekten yeterli beceriniz var mı?


1
+1 'Birkaç ay öğrenmek' herhangi bir şey ifade edebilir - dik bir öğrenme eğrisi için hazırlıklı olun.
Kirk Broadhurst

1

İlginç. Bu , şirketimde henüz yeni başlattığımız bir uygulamaya (tanıdık telefon ve tarayıcı entegrasyonu) dikkat çekici bir şekilde tanıdık geliyor .

SOA'ya odaklanan silverlight'ı seçtik, böylece ihtiyaç duyulursa daha sonra bir WPF uygulaması yapılabilir.

İlk piyasaya sürüldükten sonra eklenecek ilave bileşenlere yer vardır (bunlardan birçoğu vardır ... belki de ilk uygulamadan daha fazla işe yarar)

Hizmet katmanında MEF kullanıyoruz ve uzatma noktaları oluşturuyoruz (genişletilebilirlik veya diğer sistemlerle entegrasyon planladığımız belirli noktaları açıklayan eklenti arayüzleri)

Klavye gezintisi

Problem değil.

Performans bir zorunluluktur

Ne tür bir performans? Algılanan performans (çabukluk) veya sayı çatırdama performansı? İkincisi, bir web / silverlight uygulamasıyla ilgili bir sorun olabilir. Eskiler için, bizim uygulamamız sizinkiler gibi birçok kayıttan geçer, ancak kullanıcılar güncel olanlar üzerinde çalışırken onları önceden tahmin edebilir ve kayıtları ön-çekebiliriz. Uygulamamızın bu bölümü için 'yükleme' süreleri sıfırdır.

İlk sürüme Üretim Hızı

Yeteneğe bağlı. Fakat gerçekçi olarak, herkes her zaman mümkün olduğunca hızlı bir şekilde pazara girmek ister, bu nedenle tartışılmaz.

Düşük bakım giderleri

Üretim hızı gibi, aynı zamanda bir argüman değildir ve tasarım ve kodlama uygulamalarına inecektir. Donanım bakımı konusunda konuşuyorsanız, bir bulut uygulamasıyla gitmek isteyebilirsiniz.

Gelecek destek

Bunun ne anlama geldiğinden emin değilim.

Softphone / Tarayıcı entegrasyonu

Silverlight 4 şimdi web kamerası / mikrofon erişimine izin veriyor (uygulama içi video konferansı ve yudum entegrasyonu yapmayı umuyoruz), böylece bir telefon sunucusu kullanıyorsanız, kendiniz yazabilirsiniz. Mevcut olanları bilmiyorum ama bu yardımcı olabilir.

Aksi takdirde, çirkin bir bilgisayar korsanlığı yapmanız gerekebilir (artık makaleye / makalelere atıfta bulunmadım, üzgünüm) veya başka bir seçeneğiniz yok, ancak dosya sistemiyle etkileşime girebilecek bir WPF uygulaması olması. SL4 tarayıcıdan çıkabilir, ancak dosya sisteminin yalnızca belirli bölümlerine erişebilir. Bunların hiçbiri bir sip telefon ile etkileşime girmeniz gereken parçalar olacaktır.

Belge tarayıcı mı demek istiyorsun? Bunun hakkında emin değilim. El / barkod tarayıcıları kullanıyoruz ve bunlar diğer tüm giriş aygıtları gibi çalışıyorlar ve sorun değiller.


1

İnsanların gün boyu kullanabilmesi için son derece duyarlı bir uygulamaya ihtiyacınız var mı? WPF kullanın; GUI bileşenlerini WPF'de ASP / MVC üzerinden de yeniden kullanmayı daha kolay bulacaksınız (IMHO)

evet, jquery et al harika, silverlight harika, ancak masaüstü uygulamaları hala daha verimli

arka uç için WCF iyidir


0

Ölçeklenebilirlik ve güvenlik nedeniyle servis katmanınız için WCF kullanmanızı tavsiye edeceğim. Sunum katmanı için Silverlight veya ASP.NET'i kullanabilirsiniz, Silverlight Flash'a benzer, ancak ilk başta, çoğunlukla verilerle çalışırken, yüksek bir öğrenme eğrisi anlamak ve anlamak zordur. ASP.NET'in kullanımı daha kolaydır ancak etkin bir şekilde kullanabilmeniz için çok fazla ince ayar ve javascript gerekir.


1
Plan, UI katmanı için ne yapmayı seçtiğimizden bağımsız olarak bir WCF servis katmanına sahip olmaktır. İstemci uygulaması için WPF / Masaüstü veya ASP / Web isteyip istemediğimize karar vermeye çalışıyoruz. Bir masaüstü uygulaması ile gidersek bile, raporlar gibi bir öğe alt kümesine erişmek için bir web portalına sahip olma ihtimalimiz yüksek.
Rachel
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.