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?
Jawaban:
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.
sumber
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.
sumber
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.
sumber
Bagian ini cukup memprihatinkan:
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.
sumber
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.
sumber
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.
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)
Bukan masalah.
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.
Tergantung pada skillet. Tapi secara realistis, semua orang selalu ingin pergi ke pasar secepat mungkin, jadi ini bukan argumen.
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.
Saya tidak yakin apa artinya itu.
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.
sumber
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
sumber
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.
sumber