Windows GUI: WPF atau WinRT (2015+)


94

Saya mencoba untuk mendapatkan gambaran umum tentang teknologi yang berbeda, untuk digunakan saat membangun GUI di Windows World.

Untuk konteksnya, saya sedang membangun sebuah game multiplayer platform 2d. (Hanya untuk tujuan pembelajaran ..)

Guru saya mengatakan bahwa menurutnya WPF adalah cara yang tepat, tetapi tampaknya dia hanya membandingkannya dengan Formulir Windows.

Pemahaman saya adalah, bahwa di tahun 2015 ini, Formulir Windows benar-benar mati?

Dalam pertanyaan stackover lainnya, mereka mengatakan WinRT + XAML adalah untuk gedung Metro GUI (hal ubin Window 8!), Dan tampaknya WPF adalah sesuatu yang digunakan hanya untuk desktop di Window 7/8 dan terkait erat dengan Silverlight ..

Bagaimana Windows 8 Runtime (aplikasi WinRT / Windows Store / Aplikasi Universal Windows 10) dibandingkan dengan Silverlight dan WPF?

  • Desktop adalah tempat tinggal aplikasi lama (merah. WFP).
  • Aplikasi kelas baru, aplikasi Metro, dapat dibangun dengan berbagai cara, termasuk dengan VB.NET, C # atau C ++. Ketiga opsi bahasa ini dapat menggunakan XAML untuk membangun UI. Alternatifnya adalah menggunakan JavaScript / HTML5 / CSS untuk pengembangan UI dan kode aplikasi.

Pertanyaan saya yang sebenarnya adalah: Bukankah ada SATU cara yang baik untuk membangun GUI di Window World?

Dan jika tidak, teknologi mana yang harus digunakan di Window 7, Window 8 (Desktop dan Metro), Window Phone, (Dan Windows 10!), Dan bahkan x-box ..

Apakah dengan teknologi yang berbeda dibandingkan dengan cara ini?

Menurut Anda, apa hal yang tepat untuk menginvestasikan waktu?


5
"WPF atau WinRT?". Pelajari keduanya, WPF untuk desktop, Windows Runtime untuk perangkat seluler. Teknologi ini memiliki banyak kesamaan, seperti XAML dan kerangka kerja yang sangat mirip. Anda bahkan dapat menulis kode yang mendukung kedua platform, sebagai Perpustakaan Kelas Portabel.
Clem

2
@Clemens Bit terakhir agak menyesatkan. Pustaka .NET standar harus dibangun ulang / ditargetkan untuk bekerja dengan aplikasi WinRT, yang mungkin memerlukan perubahan kode untuk kelas tertentu.
BradleyDotNET

3
Formulir Windows tidak sepenuhnya mati tetapi Anda mungkin tidak ingin menggunakannya kecuali Anda sudah terbiasa dengannya.
Casey

2
Menurut saya, tujuan Anda untuk "tetap terkini di Windows GUI" agak berbahaya. Ada sedikit masa depan untuk pengembang rata-rata dalam jangka panjang. MS telah mengubah alatnya untuk GUI berkali-kali sementara JavaScript dan HTML5 terus berkembang. Jika Anda berkembang untuk mencari nafkah, lupakan semua yang lain. Beberapa pengecualian untuk ini, jika Anda bekerja untuk MS, atau vendor pihak ketiga GUI atau ingin tetap mempertahankan kode lama.
NoChance

3
Bahkan MFC tidak mati total, dan juga bukan Win32. Tapi MFC untuk permainan adalah apa yang orang gila akan memilih
Lothar

Jawaban:


132

Ada banyak hal di sini, tapi begini:

  • Apakah Windows Forms (Winforms) mati ? Tidak. Ini masih didukung secara aktif. Konon, ini adalah teknologi yang mengerikan untuk dikerjakan (setidaknya setelah Anda mengetahui keajaiban WPF)
  • Jika Anda ingin membangun aplikasi desktop (klasik, bukan Metro) yang tampak bagus dan dirancang dengan baik , WPF adalah jawabannya dalam istilah NET murni. Anda dapat menggunakan WinRT API (seperti kelas soketnya) tetapi Anda tidak dapat menjalankannya di OS sebelum Windows 8. UI-nya masih WPF.
  • Aplikasi WinRT untuk Windows 8 Store (mereka juga tersedia di Windows 10 Store). Anda tidak dapat menggunakan WPF di sini, atau WinRT di desktop, jadi tempat Anda menerapkan menentukan apa yang Anda gunakan. Anda benar dalam pemahaman Anda tentang bahasa / teknologi yang tersedia.
  • Windows Phone 8 (sekarang tidak digunakan lagi) menggunakan runtime WinRT yang dimodifikasi (ini telah berubah di Windows 10). Untuk Win8 / WP8, Anda dapat menggunakan aplikasi "Universal" untuk berbagi sebagian besar kode antara aplikasi WinRT standar dan aplikasi Windows Phone.
  • Windows 10 menggunakan Universal Windows Platform (UWP) yang didasarkan pada .NET Core. Kode yang dikembangkan untuk Windows 10 juga dapat digunakan di Xbox One, Windows Phone 10, dan HoloLens. WPF masih untuk aplikasi desktop "standar".
  • XBox itu rumit. XNA telah hilang, dan Microsoft tampaknya akan meninggalkan konten yang dibuat komunitas untuk platform tersebut. Yang mengatakan, Unity3D dapat menerapkan ke XBox, dan saya percaya pengembangan DirectX (C ++) standar berfungsi untuk itu. Aplikasi Universal Windows Platform juga dapat digunakan di Xbox One, dan ini tampaknya menjadi strategi Microsoft ke depan.

Sejauh apa untuk menghabiskan waktu, itu tergantung pada apa yang Anda targetkan :). Mempelajari WPF / UWP + XAML akan memberi Anda banyak manfaat jika Anda ingin tetap "terkini" dalam pengembangan GUI .NET, jadi itulah yang akan saya lakukan. WPF memiliki fitur paling banyak, jadi dengan memulai dari sana Anda hanya perlu mencari solusi untuk apa yang hilang di UWP (atau teknologi berbasis XAML lainnya).

Jika Anda melakukannya, pastikan untuk mempelajari pola MVVM (Model-View-View Model). Ini bekerja sangat baik dengan teknologi berbasis XAML, dan memungkinkan Anda untuk berbagi banyak logika antara aplikasi WPF dan UWP Anda. Logika yang sama juga dapat digunakan jika Anda akhirnya mengembangkan aplikasi Xamarin untuk iOS / Android, dll.

Perhatikan bahwa untuk pengembangan game yang sebenarnya , Anda menginginkan kerangka kerja game yang sebenarnya (seperti Unity3D atau bahkan XNA). Anda dapat melakukannya di WPF, dan itu adalah pilihan yang lebih baik daripada Winforms, tetapi keduanya tidak dimaksudkan untuk game.


Terima kasih atas jawabannya, saya punya untuk mini game saya dimulai dengan XNA, jadi saya menyesal mendengar mereka akan menghapusnya. Tapi saya tidak sabar untuk melihat apa yang akan dihadirkan Windows 10 kepada kita.
Alf Nielsen

@AlfNielsen Saya tidak yakin kapan berakhirnya dukungan, tetapi tampaknya mereka tidak akan memperbaruinya dalam waktu dekat.
BradleyDotNET

2
Sepertinya VS akan mendukung penuh Unity, jadi pujian untuk memprediksi itu! :)
BK

2
Kecepatan rendering WPF menggunakan kelas WPF seperti Visual sangat buruk untuk game atau apapun secara realtime.
Winger Sendon

2
@WingerSendon Lihat RenderTransform, Viewport3Ddan sejenisnya. Mereka adalah akselerasi perangkat keras.
BradleyDotNET

26

Ini adalah utas yang cukup lama, tetapi seperti saya menemukan ini melalui google (karena tertarik), mungkin orang lain juga dapat menjangkau di sini. Ini adalah pertanyaan yang sering ditanyakan oleh programmer baru. Jadi saya ingin menjawab beberapa hal juga, sekarang Windows 10 dirilis secara resmi.

Pertama, seseorang tidak boleh memulai dengan Formulir Windows lagi. Ini adalah teknologi paling matang untuk saat ini, tetapi tidak akan ada pengembangan Windows Forms lebih lanjut, ini hanya dalam tahap pemeliharaan sekarang. WPF secara aktif dikembangkan (terakhir saya baca). Tetapi sekarang, Aplikasi Universal Windows (WinRT satu) tidak lagi perlu digunakan dalam layar penuh, dan dapat digunakan dalam mode berjendela seperti aplikasi desktop lainnya (WPF & WinForms). Ini sangat meningkatkan kegunaannya pada komputer non-tablet. Saya yakin ini juga akan menjadi masa depan untuk aplikasi desktop. Meskipun, perangkat lunak WPF adalah aplikasi desktop tradisional (tanpa izin, hanya UAC). Apa pun itu, tidak peduli Anda mempelajari pengembangan WPF atau WinRT (menggunakan .Net), Anda akan mempelajari keduanya. Keduanya adalah XAML + C # (atau bahasa .Net lainnya). Saya baru saja belajar WPF ketika WinRT keluar dengan Windows 8. Saya merasa seperti di rumah sendiri, hanya sedikit perubahan kecil yang Anda akan segera terbiasa. Tidak yakin tentang skenario MVVM (pengikatan data) di WinRT. Saya sendiri masih mempelajari aspek WPF itu.

Window 10 baru saja diluncurkan. Windows 8 / 8.1 tidak melihat kesuksesan sebanyak Windows 7. Jadi jika Anda ingin membangun aplikasi yang memiliki audiens yang lebih luas, Anda harus menggunakan WPF untuk saat ini. Namun dalam waktu dekat, WinRT akan menjadi cara yang tepat.

Untuk pertanyaan Anda, "teknologi mana yang harus digunakan di Window 7 , Window 8 (Desktop dan Metro), Window Phone, (Dan Windows 10!), Dan bahkan x-box.", Jawabannya adalah Windows Universal Apps. Inilah alasan pasti mengapa kerangka kerja ini dikembangkan. Satu teknologi yang akan digunakan untuk mengembangkan aplikasi untuk semua perangkat. Desktop, Tablet, Ponsel (termasuk Android yang menggunakan Xamarin yang dibundel dengan Visual Studio 2015), Xbox, dan IoT (Internet of Things).


19
Aplikasi Universal sepertinya tidak berfungsi di Windows7 atau Windows8. "Aplikasi universal" hanya "universal" untuk perangkat Win10.
Dragontamer5788

Xamarin masih miliknya sendiri (tidak ada Aplikasi Universal) dan saya juga tidak yakin mereka dapat menerapkannya ke Xbox.
BradleyDotNET

2
@PrateekJain: TIDAK saat menjalankan aplikasi UWP di Windows 8: stackoverflow.com/a/30317960/199364
ToolmakerSteve

6
WinForms masih bagus untuk GUI cepat-dan-kotor - WPF bagus, tetapi membutuhkan banyak kode boilerplate (dan kurva belajar yang curam) untuk menggunakan "dengan benar", bahkan tanpa MVVM. Sungguh menyebalkan bahwa WPF tidak memiliki kapabilitas RAD yang sebenarnya - dan XAML sangat bertele- tele .
Dai

1
Untuk semua perangkat pantatku. Ini microsoft berbicara lagi pada yang terbaik. Sama seperti di masa lalu ketika mereka menyebutnya cross-platform karena berjalan pada Windows95 dan Windows2000. Hal lainnya adalah saya tidak pernah ingin aplikasi Desktop memiliki ukuran tombol yang sama jeleknya dan terutama pohon dan daftar yang harus saya gunakan untuk sentuhan. Karenanya tidak ada UWP bagi saya
Lothar

23

Saya akan mencoba menjawab hanya satu dari pertanyaan Anda:

Apakah Formulir Windows benar-benar mati?

Tidak, teknologi bentuk Windows tidak mati. Saya akan memberi tahu Anda alasannya. WPF dan XAML adalah teknologi yang sangat komprehensif dan kompleks dan Anda dapat membangun UI yang sangat bagus. Tapi! Teknologi ini membutuhkan pengetahuan yang mendalam. Untuk tata letak dasar, Anda tidak memerlukan begitu banyak pengetahuan, tetapi untuk beberapa tata letak lanjutan Anda harus memiliki pengetahuan yang mendalam dan ketika saya mulai dengan teknologi ini dan menghabiskan banyak waktu mencari beberapa tip di google. Jadi ketika saya membutuhkan beberapa Formulir sederhana untuk input pengguna, saya selalu memilih teknologi Windows Forms yang sangat sederhana dan mudah. Ini juga alasan mengapa teknologi ini sangat sukses ketika datang ke dunia. Saat Anda memulai dengan WPF, Anda juga perlu tahu apa itu pola desain MVVM dan beberapa programmer yang tidak berpengalaman bingung dengan itu.


3
Ini adalah jawaban favorit saya. Untuk aplikasi kecil, saya menggunakan Formulir Windows karena sangat cepat dan mudah untuk dijalankan. Untuk kode produksi yang kompleks saya menggunakan C ++ (dengan WTL) dan sisi-langkah .NET seluruhnya.
Robinson

8
Untuk pembaca yang tidak terbiasa dengan WPF beberapa klarifikasi - untuk tata letak aplikasi dasar, WPF membutuhkan upaya yang kurang lebih sama. Templat aplikasi VS WPF default memberikan titik awal yang sama dengan WinForms. MVVM sama sekali tidak wajib untuk bekerja dengan WPF tetapi sebenarnya menggunakan Binding tanpa kerangka MVVM juga mudah untuk aplikasi sederhana. WPF secara teknologi lebih dekat dengan WinRT dan UWP jadi mohon untuk Anda sendiri anggap Windows Forms sudah mati untuk hal lain selain mempertahankan aplikasi lama.
juga

3
Winforms sangat bagus untuk membangun aplikasi "konsol" zaman baru. Misalnya, kontrol tab yang sangat dasar dengan sekumpulan tombol dan masukan pengguna yang secara efektif memberi tampilan pada apa yang biasanya menjadi aplikasi konsol.
memutar

16

Sekarang sudah April 2016 dan masih belum ada jawaban yang jelas untuk ini. Kami sedang mengembangkan aplikasi desktop pemantauan kinerja waktu nyata yang sangat modern yang harus merender beberapa bagan dan tampilan, bercampur dengan teks dan berbagai grafik lainnya. Aplikasi kami adalah C #, WPF dengan .NET Framework 4.5.2 tetapi kami masih menulis beberapa komponen menggunakan WinForms dan GDI + untuk mendapatkan kinerja yang dapat diterima. Kami hanya belum mencapainya dengan WPF. Kami bahkan telah mengembangkan beberapa tampilan dalam aplikasi dengan DirectX tetapi itu menambahkan banyak kerumitan yang hanya dapat didukung oleh beberapa tim. Kesederhanaan dan kecepatan murni yang bisa kita dapatkan dari hosting tampilan WinForms dalam WPF dan kecepatan GDI + memberi kita apa yang kita butuhkan dengan mahalnya struktur View / ViewModel murni dan harus berurusan dengan berbagai masalah ruang udara. Aplikasi kami cukup ahli dan saya ingin menyingkirkan WinForms sama sekali, tetapi sayangnya hal ini belum memungkinkan dalam kasus kami. Untuk performa murni, Anda harus menggunakan DirectX atau WinForms.


1
Saya akan memberi tahu Anda bahwa beberapa hal lebih berkinerja di WinForms. Ada hal-hal lain (khususnya animasi) yang kebalikannya benar. Memang, langsung ke DirectX mungkin akan lebih baik tetapi tidak ada yang mau melakukan ini seperti yang Anda tunjukkan.
BradleyDotNET

1
Setelah WinRT, saya memutuskan untuk mulai mencari di tempat lain. Klien saya dan saya tidak dapat terlalu mengandalkan apa yang diinginkan Microsoft karena hal itu mempengaruhi keuntungan saya dan klien saya. Saya sekarang melihat aplikasi yang dihosting sendiri yang menggunakan server web lokal untuk menyajikan halaman aplikasi secara lokal ke browser pengguna atau kontrol browser yang disematkan di aplikasi WinForm / WPF. Ini menyederhanakan pengembangan, mendekatkan saya ke kompatibilitas lintas platform, dan jelas mengurangi biaya.
TheLegendaryCopyCoder

6

Dua sen saya ... jika Anda menginginkan aplikasi universal sejati, yang berarti program yang dapat berjalan di sistem operasi desktop APA PUN termasuk Windows, WinForms masih merupakan cara yang tepat. Pastikan Anda tetap kompatibel dengan CLR, dan Anda dapat menerapkan di Mac dan Linux melalui Mono. Manfaat yang sangat besar. XAML mungkin keren, tetapi tidak akan di-porting ke sistem operasi lain.

Menurut saya pribadi, model bisnis UWP sandbox (quicksanded?) Menakutkan; itu melawan keterbukaan yang telah dipertahankan Windows sejak awal.


4

Saya telah bekerja dengan teknologi Microsoft selama 10 tahun. Hal terpenting yang saya pelajari adalah tidak hanya mendengarkan apa yang ditawarkan Microsoft kepada Anda. Saat Microsoft mengatakan ini adalah masa depan, ada kemungkinan 50% untuk melakukan kesalahan. Microsoft pasti akan melakukan yang terbaik yang mereka bisa untuk mempromosikan produk yang telah mereka investasikan, tetapi itu tidak berarti Anda harus mengikuti. Lihat apa yang terjadi pada WCF dan Silverlight.

Meskipun WPF adalah platform yang sangat bagus untuk dipelajari, ia memiliki kurva belajar yang sangat besar. Saya tidak berpikir pengembang mana pun dengan pengalaman pemrograman kurang dari 5 tahun dapat melakukan WPF dengan benar.

Dengan mengikuti pola MVVM, Anda akan menemukan bahwa melakukan sesuatu yang relatif mudah di WinForm bisa menjadi sangat menantang di WPF. Seperti mewarnai sel berdasarkan beberapa kondisi setelah pembaruan, atau gulir baris dalam tampilan dan sorot.

Tentu saja Anda dapat mengatakan bahwa Anda tidak perlu melakukan MVVM. Letakkan saja kode Anda di belakang kode dan buat berfungsi. Ya itu akan berhasil, tapi apa gunanya menggunakan WPF? Mengapa tidak menggunakan Formulir Menang saja?


1
Saya setuju bahwa WPF memiliki kurva pembelajaran yang intens, tetapi begitu Anda melewatinya, tidak ada cara untuk kembali ke WinForms ... selamanya.
Krythic

4

Ini adalah utas lama tetapi utas penting dengan kemajuan kerangka .NET saat ini, fitur c #, dan peningkatan fokus pada c # sebagai pilihan pengembangan game.

WPF hampir tidak pernah dipilih sebagai platform game ac # dalam semua kejujuran. Masalah wilayah udara WPF membuat orang takut dengan cukup cepat. Saya tidak berpikir banyak (jika ada) judul utama atau mesin permainan arus utama mendukung WPF sebagai platform target baik karena ini. WPF menjadi platform yang bagus untuk peluncur game!

WinForms, sementara sekarang dalam mode pemeliharaan, masih akan menjadi pilihan yang valid untuk tahun-tahun mendatang. Sudah teruji waktu dan stabil. Dari apa yang saya lihat, bahkan di tahun 2017, WinForms masih menjadi platform paling umum yang dipilih untuk pengembangan game berbasis c #.

Melihat data Survei Perangkat Keras Steam Anda dapat melihat bahwa pada saat menulis jawaban ini (Juli 2017), Windows 10 64-bit sekarang mendominasi platform game PC dengan pangsa pasar 50%, diikuti oleh Windows 7 64-bit pada 32% dan Windows 8.1 64-bit hampir 7%. Semua pangsa pasar platform OS lainnya sangat kecil sehingga hampir tidak layak untuk mempertimbangkan apa pun selain ketiganya.

Dengan kondisi game PC saat ini, WinForms adalah penyebut paling umum yang menargetkan semua 3 platform PC teratas. Melihat ke masa depan, UWP akan menjadi platform target terbaik untuk pengembangan game c # karena Windows 7 dan 8 kehilangan pangsa pasar yang signifikan ke Windows 10, kecuali ada platform baru yang menggantikannya. Jadi itu hanya berdasarkan angka.

Jika memilih berdasarkan tingkat kompatibilitas terbaik per platform OS daripada mendukung pangsa pasar maksimum, pilihannya akan lebih seperti:

  • Windows 10: UWP
  • Windows 8.1: WinRT atau Windows Store
  • Windows 7: WinForms

Sebagian besar jawaban lain berpusat di sekitar pengembangan aplikasi windows standar tetapi pengembangan game adalah ranah yang sangat berbeda dan faktor yang berbeda akan memengaruhi pilihan Anda, seperti OS target dan pilihan API grafis atau mesin game apa yang paling Anda dukung.


Meskipun memiliki sudut pandang tentang gamedev sangat menarik, saya tidak mengerti mengapa Anda memilih kerangka GUI untuk gamedev di mana Anda memiliki mesin permainan berfitur lengkap untuk C # seperti Unity. Hanya beberapa game yang saya lihat dengan GUI klasik di dalamnya untuk edisi data game (seperti edit peta / aset)
Uwy

2
Untuk alasan yang sama mereka memilih mesin permainan: Cukup merepotkan untuk membuat dan mengelola jendela asli secara efektif dari kode terkelola Anda sendiri.
Mike Johnson

3

WinRT telah ada di desktop untuk waktu yang lama, saya menulis WinRT, yang berjalan di atas meja saya. Dan di bawah Windows 10, aplikasi tersebut akan mendukung lokasi non-dok (berjendela seperti yang mungkin Anda kenal secara tradisional).

Saya tidak akan merekomendasikan WinForms atau WPF kepada siapa pun yang memulai hari ini. Mereka harus mempelajari WinRT / XAML terutama. Dan pelajari beberapa Win32 / .net saat mereka membutuhkannya, bergantung pada bahasa pilihan mereka ..

"mereka mengatakan WinRT + XAML adalah untuk gedung Metro GUI (hal ubin Jendela 8!)" - Ini adalah abstraksi yang berlebihan, sehingga tidak berguna. WinRT adalah runtime, seperti Win32, ini bukan hanya untuk GUI, jadi apa yang "mereka katakan" adalah BS lengkap. XAML adalah lapisan UI (seperti XAML di WPF) tetapi untuk mengatakan itu Metro GUI juga salah, tidak ada yang namanya Metro GUI lagi. XAML adalah Lapisan UI Windows. Dan "ubin Windows 8!" adalah ekspresif dari visi terowongan orang-orang tertentu. Ini akan seperti saya mengatakan Win32 adalah menu start. Anda bisa melihat betapa konyolnya pernyataan itu.


8
Untuk memperjelas pernyataan asli saya, WinRT tidak dapat digunakan untuk membuat aplikasi desktop "tradisional". Oleh karena itu, ada banyak sekali alasan untuk mempelajari WPF (WinForms, tidak terlalu banyak). Jika tidak ada yang lain, Anda akan mempelajari WinRT secara efektif pada saat yang sama (seperti yang saya catat dalam jawaban saya). Selain itu, kami sama sekali tidak mendekati titik aplikasi WinRT yang menguasai pasar (terutama lini aplikasi bisnis). WPF masih sangat berharga.
BradleyDotNET

7
Jika WinRT tidak terikat untuk membangun aplikasi layar penuh, dapatkah Anda memberi tahu saya bagaimana Anda dapat menggunakannya untuk membangun aplikasi berjendela yang berjalan pada versi Windows yang benar-benar dirilis? Atau bagaimana cara menggunakannya untuk menulis aplikasi yang berjalan di lebih dari 10% komputer Windows (yaitu Windows 7 dan XP)? Saya rasa sebagian besar pengembang ingin dapat menargetkan lebih dari 10% pengguna Windows. Hingga Windows 8 atau 10 mendapatkan pangsa pasar yang serius, WPF masih akan dibutuhkan untuk banyak aplikasi. WinRT mungkin merupakan lapisan runtime, tetapi itu tidak mengubah fakta bahwa ia tidak dapat mengakses banyak hal (lengkap) yang dapat dilakukan oleh Win32.
John Colanduoni

1
@JohnColanduoni seperti yang dikatakannya, untuk siapa pun mulai hari ini (Mar14) WinRT adalah cara terbaik, win10 adalah dan gratis sebagai pembaruan untuk beberapa bulan sekarang, dan akan untuk beberapa bulan lagi, jadi ya, win10 meraih a pangsa pasar yang besar. ya tidak semua orang pindah ke win10, tetapi juga beberapa hari yang lalu kami menemukan bahwa bandara di Prancis masih menggunakan win3.1
John Demetriou

3
@GavinWilliams Oke, di mana statistik Anda yang menempatkan Windows 10 pada pangsa pasar yang cukup besar di segmen pasar mana pun? Apakah Anda mengatakan bahwa mod menghapus komentar Anda dengan tautan ke sumber Anda, tetapi mereka membiarkan Anda memasang yang ini? Saya tidak percaya itu. Saya setuju XP tidak layak untuk didukung, tetapi aplikasi universal Windows 10 bahkan tidak mendukung Windows 8.1, apalagi Windows 7. Adopsi tidak perlu dilakukan untuk membenarkan jendela universal, dan ini melambat .
John Colanduoni

3
@GavinWilliams Oke, abaikan bahwa 30% jauh lebih kecil dari 97% (dukungan yang akan Anda dapatkan jika menggunakan WPF), dan bahwa data ini hanya berguna untuk pemrogram video game. Untuk gim video, cukup mudah menargetkan keduanya; kecuali Anda melakukan sesuatu yang sangat sepele, Anda akan ingin menggunakan DirectX / OpenGL, yang berarti Anda hanya perlu menyimpannya di jendela / layar penuh. Jika Anda tidak ingin menggunakannya, Anda benar - benar akan menginginkan WPF karena UI WinRT tidak mengizinkan gambar mode langsung tanpa dihosting DirectX / OpenGL (seperti halnya WPF). Jadi bagaimana dengan WinRT yang membenarkan pengurangan 70% dalam ukuran pasar?
John Colanduoni

1

Saya mengalami pertanyaan ini sekitar satu tahun yang lalu. Saya menyimpulkan bahwa XAML, WPF atau WinRT adalah lingkungan pengembangan yang benar untuk memulai.

Saya sangat merekomendasikan penggunaan .Net Framework untuk lapisan data (termasuk Layanan Web dan lapisan RESTful (JSON)) dan HTML5 / CSS3 murni serta Javascript untuk lapisan presentasi web Anda.

Di dalam Windows 10 Anda dapat mengintegrasikan aplikasi web apa pun sebagai aplikasi metro di luar kotak.

WinRT, XAML, WPF dan hal-hal ms serupa hanya berjalan di windows dan memiliki banyak batasan.

Jadi setelah satu tahun saya masih sangat senang dengan keputusan saya untuk tidak menggunakan WinRT atau XAML untuk proyek baru saya.


3
Apa yang kamu bicarakan? Ya, itu pilihan yang bagus jika Anda ingin membuat aplikasi Web. Jika Anda ingin membuat aplikasi desktop, tidak. Anda dapat menggunakan Katana dan memiliki WebApi yang dihosting secara lokal dan membuat aplikasi desktop, yang menurut saya akan membuat jawaban ini lebih relevan.
Casey

1
OP bertanya tentang Windows GUI dan WPF atau Winrt - bukan aplikasi Web.
ezaspi

6
Juga, saya pribadi menemukan teknologi itu jauh lebih sulit untuk dikerjakan (sistem tata letak yang tidak dapat dipahami, tidak ada pemeriksaan waktu kompilasi pada kode, dll.) Desktop belum mati :)
BradleyDotNET

1
Saya setuju, HTML adalah UI universal dan seharusnya juga untuk desktop. Saya merasa kita perlu menyederhanakan semua kerangka kerja yang berbeda ini, dan berhenti memperkenalkan lebih banyak dan lebih banyak lagi dan lebih banyak lagi. Sebagian besar tidak dibutuhkan. Cukup pelajari HTML dan ASP, lalu host sendiri situs web Anda di aplikasi WinForm. Aplikasi WinForm berisi kontrol server web dan browser web Anda. Hasilnya adalah, Anda menghemat waktu, Anda fokus pada penguasaan satu bahasa dan teknologi, Anda mengembangkan lebih cepat, Anda menghemat uang klien Anda, aplikasi Anda adalah bukti masa depan dan jauh lebih portabel.
TheLegendaryCopyCoder
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.