ASP.Net atau WPF (C #)? [Tutup]

31

Tim kami terbagi dalam hal ini dan saya ingin mendapatkan pendapat pihak ketiga.

Kami sedang membangun sebuah aplikasi dan tidak dapat memutuskan apakah kami ingin menggunakan .Net WPF Desktop Application dengan server WCF, atau aplikasi web ASP.Net menggunakan jQuery. Saya pikir saya akan mengajukan pertanyaan di sini, dengan beberapa spesifikasi, dan melihat apa pro / kontra dari penggunaan kedua belah pihak. Saya punya favorit sendiri dan merasa saya bias.

Idealnya kita ingin membangun rilis awal perangkat lunak secepat mungkin, kemudian memperlambat dan meluangkan waktu untuk membangun fitur / komponen tambahan yang kita inginkan nanti. Yang terpenting, kami ingin perangkat lunak menjadi cepat. Pengguna menelusuri catatan sepanjang hari dan keterlambatan memuat catatan atau layar yang menyegarkan membunuh produktivitas mereka.

Detail aplikasi:

  • Saya memperkirakan sekitar 100 layar berbeda untuk versi awal, dengan rencana untuk banyak layar tambahan ditambahkan kemudian setelah rilis awal.
  • Kami mencari untuk menggunakan komunikasi dua arah untuk sistem pengingat dan acara
  • Saat ini harus mendukung sekitar 100 pengguna, meskipun kami telah diberitahu untuk memungkinkan pertumbuhan hingga 500 pengguna
  • Kami memiliki banyak lokasi

Item yang perlu dipertimbangkan (mungkin tidak pada awalnya dalam beberapa kasus tetapi dalam rilis mendatang):

  • Ruang untuk komponen tambahan ditambahkan setelah rilis awal (ada banyak ini ... mungkin bekerja di sini daripada aplikasi awal)
  • Navigasi keyboard
  • Kinerja adalah suatu keharusan
  • Kecepatan Produksi ke versi awal
  • Biaya perawatan rendah
  • Dukungan masa depan
  • Integrasi softphone / pemindai

Pengembang Kami:

  • Kami memiliki 1 programmer yang telah belajar WPF beberapa bulan terakhir dan adalah orang yang menyarankan kami menggunakan WPF untuk ini.
  • Kami memiliki programmer ke-2 yang akrab dengan ASP.Net dan yang dapat membantu proyek di masa depan, meskipun ia tidak akan mengerjakannya sampai rilis awal karena waktunya dihabiskan untuk memelihara perangkat lunak kami saat ini.
  • Ada saya, yang telah bekerja dengan keduanya dan merasa nyaman dalam keduanya
  • Kami memiliki perusahaan luar yang melakukan manajemen proyek, dan mereka adalah perusahaan ASP.Net.
  • Kami berencana merekrut 1-2 orang lain, namun kami harus tahu arah apa yang akan kami tuju pertama kali

Lingkungan Hidup:

  • Pengguna umum ada di server Windows 2003 dengan Layanan Terminal. Mereka terhubung menggunakan thin-client WYSE melalui koneksi RDP. Staf admin memiliki PC mereka sendiri dengan XP atau lebih tinggi. Pengguna diizinkan untuk menentukan resolusi mereka sendiri meskipun mereka dibatasi untuk menggunakan IE sebagai browser web.
  • Lokasi lain terhubung ke jaringan kami melalui koneksi MPLS

Berdasarkan itu, apa yang akan Anda pilih dan mengapa?

Rachel
sumber
Saya suka semua suara, tetapi benar-benar ingin mendengar lebih banyak pendapat tentang ini :)
Rachel
3
apa yang Anda lakukan yang awalnya membutuhkan 100 layar ?
Steven A. Lowe
Perkiraan itu mencakup banyak layar parsial. Sebagai contoh, layar utama dipecah menjadi banyak "potongan" yang dapat ditambahkan / dihapus / dipindahkan / diubah ukurannya sesuai dengan kebutuhan pengguna. Masing-masing memiliki set data sendiri, tampilan pengeditan sendiri, dan serangkaian tindakan sendiri yang dapat dilakukan. Saya menghitung ini sebagai terpisah daripada satu layar karena masing-masing sangat berbeda.
Rachel
Gunakan .NET MVC 3, JQuery dan HTML5
Oliver Picton
1
Hai @kmote, kami akhirnya menggunakan WPF dan cukup senang dengan keputusan itu. Itu memungkinkan untuk lebih banyak fleksibilitas dalam membangun antarmuka pengguna, dan saya menemukan itu cukup cepat untuk membangun dibandingkan dengan solusi berbasis web. Sayangnya, proyek dibatalkan setelah satu tahun karena prioritas lain, tetapi jika saya disajikan pilihan yang sama lagi saya akan membuat keputusan yang sama.
Rachel

Jawaban:

17

Bagi saya, ini terdengar seperti aplikasi WPF, dengan banyak interaksi pengguna dan berpotensi berinteraksi dengan perangkat keras. Anda dapat mengirimkan aplikasi melalui Klik-Sekali sehingga penyebaran sebagian besar tidak menjadi masalah. Aplikasi WPF Anda dapat mengakses layanan WCF dan mengirimkan data sebagai biner sehingga kinerjanya menjadi sangat baik. Saya akan mulai membaca di WPF dan membiasakan diri dengannya sesegera mungkin.

Walter
sumber
+1 Juga, dengan SEMUA layar itu, Anda mungkin ingin membangun sebanyak mungkin penggunaan ulang ke dalam aplikasi Anda (baik kode dan GUI)
Jon Onstott
+1 Saya kira dengan "Integrasi Softphone / Pemindai" diperlukan, saya kira satu-satunya cara adalah WPF. Atau mungkin mungkin menggunakan Silverlight
Jiew Meng
15

Jawaban orang gila: keduanya. Dapatkan lapisan layanan dengan benar, mudah untuk memiliki klien tebal yang melakukan segalanya (WPF) dan klien web cepat untuk melakukan hal-hal yang paling umum (ASP.NET). Meninggalkan pintu terbuka untuk klien seluler, dll., Di ujung jalan.

Wyatt Barnett
sumber
Itulah yang kami pikirkan untuk dilakukan .... Aplikasi klien WPF untuk sebagian besar kegunaan dengan versi web yang ringan untuk laporan atau akses terbatas.
Rachel
2
+1 untuk ini, tulis nyali non-presentasi dalam bahasa NET apa pun. Anda merasa nyaman - lalu gunakan alat terbaik untuk setiap tugas presentasi (yaitu: aplikasi web menggunakan antarmuka ASP.NET untuk aplikasi ini, gunakan desktop WPF / Winforms / dll).
heretik
Awalnya pengguna mungkin menemukan ASP.NET 'cukup baik' terutama jika itu berarti mendapatkan lebih banyak bagian dari aplikasi lebih cepat.
JeffO
8

Jika Anda hanya memiliki satu programmer yang telah mempelajari WPF dan Anda sedang mempertimbangkan untuk meminta tim Anda beralih ke WPF, mengapa tidak menggunakan Silverlight saja? Anda mendapatkan banyak keuntungan dari WPF tetapi tetap mempertahankan kemampuan untuk meninggalkan proyek Anda sebagai aplikasi web. Karena Anda ingin memiliki proyek besar yang termodulasi, masuk akal untuk menggunakan PRISM dengan WPF atau Silverlight untuk membuat MVVM lebih sederhana.

Tim saya baru-baru ini membuat pilihan untuk menggunakan Silverlight di atas asp.net. Itu merupakan pilihan yang fantastis bagi kami. Kami awalnya hanya memiliki satu pengembang yang mengetahui informasi penting. Kemudian kami semua mengambil kelas pelatihan minggu yang sebagian besar tidak berguna, tetapi setidaknya membuat kaki kami basah. Pada akhirnya kami harus merekrut dua kontraktor untuk membantu kami dalam pembuatan sebagian besar kerangka UI kami. Mayoritas tim kami masih tidak percaya diri dengan keterampilan perak mereka. Saya sendiri, anggota tim awal dengan pengetahuan tentang cahaya perak, dan dua kontraktor adalah yang melakukan sebagian besar pengembangan SL. Setelah itu kami memiliki dua anggota back-end yang berdedikasi. Saya akan mengatakan bahwa kami membutuhkan sekitar 2 bulan setelah membuat keputusan untuk pindah ke Silverlight bahwa kami benar-benar memiliki sesuatu yang konkret disatukan. Namun, sekarang kami memiliki produk luar biasa yang terasa sangat mirip dengan aplikasi sisi klien yang berjalan di dalam browser web dan tidak diinstal pada mesin apa pun secara lokal. Pengembangan sudah di bawah satu tahun secara total dan kami hampir siap untuk merilis atau merilis kandidat pertama.

Beberapa hal yang perlu dipertimbangkan:

  • WPF atau silverlight, mana pun yang Anda pilih akan ada jumlah yang adil yang perlu dipelajari pengembang Anda.

  • Silverlight dapat kehabisan peramban jika perlu. Jika Anda melakukan ini, cukup mudah untuk mengaturnya sehingga jika Anda pernah meluncurkan versi baru maka program SL browser yang terinstal secara otomatis akan memperbarui sendiri.

  • Silverlight tidak termasuk semua kontrol yang dimiliki WPF.

Catatan terakhir saya adalah bahwa jika Anda ingin mengeluarkan kode secepat mungkin maka cukup jelas Anda harus menggunakan ASP.NET. Kekhawatiran utama saya dengan ASP adalah bahwa kecuali Anda mendisiplinkan tim Anda, mudah bagi proyek ASP.NET menjadi berantakan dan berantakan. Jika Anda pikir Anda akan dapat menangani overhead awal untuk mempercepat dengan teknologi maka Silverlight atau WPF akan memungkinkan Anda banyak kemungkinan luar biasa.

Kavet Kerek
sumber
Kami berada dalam situasi yang sangat mirip dan saya merasa menarik untuk mendengarkan kisah Anda, terima kasih. Saya akan mempertimbangkan Silverlight, meskipun sampai sekarang saya hanya menggunakan WPF. Jika kami menggunakan WPF, kami berencana melakukan bagian Pelaporan di Silverlight, jadi saya telah merencanakan untuk mempelajarinya pada akhirnya
Rachel
Saya di tengah mengkonversi (baca menulis ulang) aplikasi ASP.NET di Silverlight - pada dasarnya karena ASP.NET tidak skala untuk apa yang kita inginkan.
ChrisF
1
Hanya FYI: ingatlah bahwa Silverlight tidak akan menjadi produk utama MS, dan dalam beberapa kasus, orang-orang mengatakan itu mungkin tidak disukai. Saya setuju bahwa itu baik untuk dipertimbangkan, cukup tambahkan informasi ini ke daftar kemungkinan kontra Anda.
Paige Watson
1
Saya akan sangat mempertimbangkan WPF di atas silverlight untuk aplikasi semacam ini. WPF dapat dengan mudah digunakan sebagai XBAP (aplikasi browser xaml), biasanya hanya dengan beberapa perubahan kode ke file konfigurasi. WPF memiliki semua yang Silverlight lakukan dan banyak lagi, ditambah WPF mendapat lebih banyak dukungan. Satu-satunya downside adalah bahwa sementara Silverlight berpotensi dapat digunakan pada lebih banyak OS (bahkan Linux dengan proyek Moonlight), WPF memerlukan. Net pada klien, jadi itu benar-benar Windows.
Morgan Herlocker
2
Saya tidak tahu apakah Silverlight akan dihentikan tetapi sesuatu yang terkait adalah artikel Mashable Microsoft Shifts From Silverlight ke HTML5 . Secara pribadi, saya serius akan mempertimbangkan Aplikasi Web Murni jika memungkinkan melalui desktop atau plugin berbasis kepemilikan di mana mungkin
Jiew Meng
7

Bagian ini cukup memprihatinkan:

Pengguna umum ada di server Windows 2003 dengan Layanan Terminal. Mereka terhubung menggunakan thin-client WYSE melalui koneksi RDP. Staf admin memiliki PC mereka sendiri dengan XP atau lebih tinggi. Pengguna diizinkan untuk menentukan resolusi mereka sendiri meskipun mereka dibatasi untuk menggunakan IE sebagai browser web.

WPF tidak bagus untuk koneksi Remote Desktop / Thin client. Animasi tidak akan mulus dan gambar kompleks apa pun (bahkan gradien) akan memperlambat respons UI hingga merangkak. Staf admin dengan mesin retro XP khas juga kemungkinan besar akan memiliki masalah kinerja dengan aplikasi WPF yang kompleks (karena jumlah RAM yang kecil dan GPU yang buruk).

Jika Anda menggunakan rute WPF untuk grafik yang kaya, bersiaplah untuk peretasan kinerja menit terakhir ketika Anda mengetahui bahwa mesin target sudah berumur sepuluh tahun. Tetap menggunakan layar statis dan gunakan .NET 4.0 karena kinerja WPF telah meningkat secara dramatis sejak 3.5.

Ed Andersen
sumber
Terima kasih ... itu sebenarnya salah satu perhatian besar bagi saya, meskipun sejauh ini sepertinya kita dapat mengurangi skala grafis jika pengguna menggunakan koneksi RDP dan tes telah berjalan dengan baik.
Rachel
2

Secara teknis, saya percaya kombinasi WPF / WCF adalah solusi yang lebih baik.

Namun, saya tidak yakin bahwa programmer WPF yang ada benar-benar memiliki pengalaman untuk proyek ini. WPF adalah perubahan dalam proses pemikiran pemrograman dari pemrograman Winform dan karenanya Anda harus berpikir panjang dan keras apakah Anda benar-benar memiliki keterampilan yang cukup dalam tim untuk memberikan rute ini.

Michael Shaw
sumber
1
+1 'Belajar selama beberapa bulan' dapat berarti apa saja - bersiaplah untuk kurva pembelajaran yang curam.
Kirk Broadhurst
1

Menarik. Itu suara mencolok akrab bagi sebuah aplikasi yang kami hanya mulai di perusahaan saya (sip telepon dan integrasi scanner dan semua).

Kami memilih silverlight dengan fokus pada SOA sehingga aplikasi WPF dapat dibuat sesudahnya jika diperlukan.

Ruang untuk komponen tambahan ditambahkan setelah rilis awal (ada banyak ini ... mungkin bekerja di sini daripada aplikasi awal)

Kami menggunakan MEF di lapisan layanan, dan membangun titik ekstensi (antarmuka plugin yang menggambarkan titik-titik tertentu di mana kami merencanakan ekstensibilitas atau integrasi dengan sistem lain)

Navigasi keyboard

Bukan masalah.

Kinerja adalah suatu keharusan

Performa seperti apa? Kinerja yang dirasakan (tajam) atau kinerja angka? Yang terakhir bisa menjadi masalah dengan aplikasi web / silverlight. Untuk yang pertama, aplikasi kami melewati banyak catatan, seperti milik Anda, tetapi kami dapat memprediksikannya dan mengambil lebih dulu catatan saat pengguna sedang mengerjakan yang sekarang. Waktu 'Muat' adalah nol untuk bagian aplikasi kami itu.

Kecepatan Produksi ke versi awal

Tergantung pada skillet. Tapi secara realistis, semua orang selalu ingin pergi ke pasar secepat mungkin, jadi ini bukan argumen.

Biaya perawatan rendah

Seperti kecepatan produksi, ini juga bukan argumen dan akan turun ke desain dan praktik pengkodean. Jika Anda berbicara tentang pemeliharaan perangkat keras, Anda mungkin ingin menggunakan aplikasi cloud.

Dukungan masa depan

Saya tidak yakin apa artinya itu.

Integrasi softphone / pemindai

Silverlight 4 memungkinkan akses webcam / mik sekarang (kami berharap dapat melakukan konferensi video antar-aplikasi serta integrasi sip), jadi jika Anda menggunakan server telepon, Anda dapat menulis sendiri. Saya tidak tahu ada yang sudah ada, tapi ini mungkin bisa membantu.

Jika tidak, Anda mungkin harus melakukan peretasan yang buruk (tidak memiliki referensi ke artikel lagi, maaf) atau Anda tidak punya pilihan selain memiliki aplikasi WPF yang dapat berinteraksi dengan sistem file. SL4 dapat keluar dari browser, tetapi hanya dapat mengakses bagian-bagian tertentu dari sistem file. Tak satu pun dari mereka akan menjadi bagian yang Anda butuhkan untuk berinteraksi dengan telepon sip.

Apakah maksud Anda, pemindai dokumen? Saya tidak yakin tentang itu. Kami menggunakan pemindai tangan / barcode, dan mereka beroperasi seperti perangkat input lainnya dan bukan merupakan masalah.

Steven Evers
sumber
1

apakah Anda memerlukan aplikasi yang sangat responsif untuk digunakan orang sepanjang hari? gunakan WPF; Anda akan merasa lebih mudah untuk menggunakan kembali komponen GUI di WPF melalui ASP / MVC juga (IMHO)

ya, jquery dkk bagus, silverlight keren, tetapi aplikasi desktop masih lebih efisien

untuk back-end, WCF baik-baik saja

Steven A. Lowe
sumber
0

Saya harus merekomendasikan Anda untuk menggunakan WCF untuk lapisan layanan Anda karena skalabilitas dan keamanan. Untuk lapisan presentasi Anda dapat menggunakan Silverlight atau ASP.NET, Silverlight seperti Flash, tetapi sulit untuk dipahami dan memiliki kurva belajar yang tinggi pada awalnya, sebagian besar ketika bekerja dengan data. ASP.NET lebih mudah digunakan tetapi Anda akan memerlukan banyak penyesuaian dan javascript untuk menggunakannya secara efisien.

Victor Gil
sumber
1
Rencananya adalah untuk memiliki lapisan layanan WCF terlepas dari apa yang kami pilih untuk lakukan untuk lapisan UI. Kami mencoba memutuskan apakah kami ingin WPF / Desktop atau ASP / Web untuk aplikasi klien. Bahkan jika kita menggunakan aplikasi desktop, ada kemungkinan besar kita akan memiliki portal web untuk mengakses subset item seperti laporan.
Rachel