Windows GUI: WPF veya WinRT (2015+)


94

Windows Dünyasında GUI'leri oluştururken kullanmak için farklı teknolojilere genel bir bakış elde etmeye çalışıyorum.

Bağlam için, küçük bir 2d platformlu çok oyunculu oyun geliştiriyorum. (Sadece öğrenme amaçlı ..)

Öğretmenim WPF'nin doğru yol olduğunu düşündüğünü söylüyor, ancak görünüşe göre bunu yalnızca Windows Forms ile karşılaştırıyor.

Anladığım kadarıyla, 2015'te Windows Forms tamamen öldü mü?

Bu diğer yığınlama sorularında, WinRT + XAML'nin Metro GUI oluşturma için olduğunu söylüyorlar (Pencere 8 fayansları!) Ve WPF'nin yalnızca Windows 7 / 8'de masaüstü için kullanılan bir şey olduğu ve Silverlight ile yakından ilişkili olduğu görülüyor ..

Windows 8 Çalışma Zamanı (WinRT / Windows Mağazası uygulamaları / Windows 10 Evrensel Uygulaması) Silverlight ve WPF ile karşılaştırıldığında nasıldır?

  • Masaüstü, eski uygulamaların bulunduğu yerdir (kırmızı. WFP).
  • Yeni uygulama sınıfı Metro uygulamaları, VB.NET, C # veya C ++ dahil olmak üzere çeşitli şekillerde oluşturulabilir. Bu üç dil seçeneği, kullanıcı arabirimini oluşturmak için XAML kullanabilir. Alternatif, hem kullanıcı arayüzünün hem de uygulama kodunun geliştirilmesi için JavaScript / HTML5 / CSS kullanmaktır.

Gerçek sorum şu: Pencere Dünyasında GUI'ler oluşturmanın TEK iyi bir yolu yok mu?

Ve değilse, Windows 7, Windows 8 (Masaüstü ve Metro), Window Phone (Ve Windows 10!) Ve hatta x-box'da hangi teknolojiler kullanılmalıdır ..

Bu şekilde karşılaştırılacak farklı teknolojiler mi?

Zamana yatırım yapmak için doğru şeyin ne olduğunu düşünüyorsunuz?


5
"WPF veya WinRT?". Her ikisini de öğrenin, masaüstü için WPF, mobil cihazlar için Windows Runtime. Bu teknolojilerin, XAML ve çok benzer bir çerçeve gibi birçok ortak noktası vardır. Taşınabilir Sınıf Kitaplıkları olarak her iki platformu da destekleyen kod yazabilirsiniz.
Clemens

2
@Clemens Son kısmı biraz yanıltıcı. WinRT uygulamalarıyla çalışmak için standart .NET kitaplıklarının yeniden oluşturulması / hedeflenmesi gerekir, bu da belirli sınıflar için kod değişiklikleri gerektirebilir.
BradleyDotNET

3
Windows Forms tamamen ölmedi, ancak zaten aşina olmadığınız sürece muhtemelen kullanmak istemezsiniz.
Casey

2
"Windows GUI'de güncel kalma" amacınız bence oldukça zararlı. Uzun vadede ortalama bir geliştirici için bunda çok az gelecek var. MS, GUI için araçlarını pek çok kez değiştirirken, JavaScript ve HTML5 güç kazanmaya devam etti. Yaşamak için gelişiyorsanız, her şeyi unutun. MS veya GUI 3. taraf satıcısı için çalışıyorsanız veya eski kodu sürdürmeye istekliyseniz, bunun birkaç istisnası vardır.
NoChance

3
MFC bile tamamen ölmedi ve Win32 de değil. Ancak bir oyun için MFC, çılgın bir adamın seçeceği şeydir
Lothar

Yanıtlar:


132

Burada çok şey var, ama işte:

  • Windows Forms (Winforms) öldü mü? Hayır. Hala aktif olarak destekleniyor. Bununla birlikte, çalışmak korkunç bir teknoloji (en azından WPF'nin büyüsünü bildiğiniz bir kez)
  • Güzel görünümlü, iyi tasarlanmış bir masaüstü (klasik, Metro değil) uygulaması oluşturmak istiyorsanız , WPF saf .NET terimleriyle cevaptır. Sen olabilir (örneğin kendi soket sınıfları gibi) WinRT API'leri kullanmak ancak Windows 8. UI hala WPF ermeden işletim bunları çalıştıramazsınız.
  • WinRT Uygulamaları Windows 8 Mağazası içindir (Windows 10 Mağazasında da mevcuttur). Burada WPF'yi veya masaüstünde WinRT'yi kullanamazsınız, bu nedenle dağıttığınız yer, ne kullanacağınızı belirler. Mevcut dilleri / teknolojileri anlamada haklısınız.
  • Windows Phone 8 (artık kullanımdan kaldırılmıştır) değiştirilmiş bir WinRT çalışma zamanı kullanır (bu, Windows 10'da değişmiştir). Win8 / WP8 için , kodun çoğunu standart bir WinRT uygulaması ile bir Windows telefon uygulaması arasında paylaşmak için "Evrensel" uygulamaları kullanabilirsiniz .
  • Windows 10, .NET Core tabanlı Evrensel Windows Platformu'nu (UWP) kullanır. Windows 10 için geliştirilen kod, Xbox One, Windows Phone 10 ve HoloLens üzerinde de kullanılabilir. WPF hala "standart" masaüstü uygulamaları içindir.
  • XBox aldatıcıdır. XNA uzaklaştı ve Microsoft, platform için topluluk tarafından oluşturulan içerikten uzaklaşıyor gibi görünüyor. Bununla birlikte, Unity3D, XBox'a dağıtılabilir ve standart DirectX (C ++) geliştirmenin bunun için işe yaradığına inanıyorum. Evrensel Windows Platformu uygulamaları Xbox One'da da dağıtılabilir ve bu, Microsoft'un ileriye dönük stratejisi gibi görünüyor.

Neye zaman harcayacağınıza gelince, bu neyi hedeflediğinize bağlıdır :). NET GUI geliştirmede "güncel" kalmak istiyorsanız, WPF / UWP + XAML'yi öğrenmek size birçok fayda sağlayacaktır, böylece ben de bunu yapardım. WPF en çok özelliğe sahiptir, bu yüzden oradan başlayarak sadece UWP'de (veya XAML tabanlı başka bir teknolojide) eksik olan şeyler için geçici çözümler bulmanız gerekir.

Bunu yaparsanız, MVVM (Model-Görünüm-Görünüm Modeli) modelini öğrendiğinizden emin olun. XAML tabanlı teknolojilerle gerçekten iyi çalışır ve WPF ile UWP uygulamalarınız arasında birçok mantığı paylaşmanıza olanak tanır. Sonunda iOS / Android için Xamarin uygulamaları geliştirirseniz de aynı mantık kullanılabilir.

Söz konusu Not gerçek oyun geliştirme, bir isteyeceksiniz gerçek (Unity3D hatta XNA gibi) oyun çerçevesini. Bunu WPF'de yapabilirsiniz ve bu Winforms'tan daha iyi bir seçimdir, ancak ikisi de oyunlar için değildir.


Cevabınız için teşekkürler, mini oyunum XNA ile başladığı için, onu kaldıracaklarını duyduğuma üzüldüm. Ancak Windows 10'un bize ne getireceğini görmek için sabırsızlanıyorum.
Alf Nielsen

@AlfNielsen Desteğin ne zaman biteceğinden emin değilim, ama kesinlikle yakın zamanda güncelleme yapmayacaklar gibi görünüyor.
BradleyDotNET

2
Görünüşe göre VS, Unity'nin tam desteğini alacak, bu yüzden bunu tahmin ettiğiniz için tebrikler! :)
BK

2
Visual gibi WPF sınıflarını kullanan WPF oluşturma hızı, oyunlar veya gerçek zamanlı herhangi bir şey için korkunçtur.
Winger Sendon

2
@WingerSendon bak RenderTransform, Viewport3Dve benzeri. Donanım hızlandırmalı.
BradleyDotNET

26

Oldukça eski bir ileti dizisi, ancak buna google aracılığıyla (ilgi dışı) rastladığım gibi, belki başka biri de buraya ulaşabilir. Bu, yeni programcılar tarafından tekrar tekrar sorulan bir sorudur. Bu yüzden, Windows 10 resmi olarak piyasaya sürüldüğüne göre, birkaç şeye de cevap vermek istiyorum.

İlk olarak, artık Windows Forms ile başlamamalı. Şimdilik en olgun teknolojidir, ancak Windows Formlarında daha fazla geliştirme olmayacak, şu anda yalnızca bakım aşamasında. WPF aktif olarak geliştirildi (son okuduğumda). Ancak artık Windows Evrensel Uygulamalarının (WinRT one) artık tam ekranda kullanılması gerekmiyor ve diğer masaüstü uygulamaları (WPF ve WinForms) gibi pencereli modda kullanılabilir. Bu, tablet olmayan bilgisayarlarda kullanılabilirliklerini çok artırır. Bunun masaüstü uygulamalarının da geleceği olacağına inanıyorum. Bununla birlikte, WPF yazılımları geleneksel masaüstü uygulamalarıdır (izinler olmadan, yalnızca UAC). Her iki durumda da, WPF veya WinRT (.Net kullanarak) geliştirmeyi öğrenirseniz öğren, her ikisini de öğreneceksiniz. Her ikisi de XAML + C # (veya başka bir .Net dili). WinRT Windows 8 ile çıktığında WPF'yi öğreniyordum. Kendimi evimde hissettim, çok yakında alıştığın sadece birkaç küçük değişiklik. WinRT'de MVVM senaryosu (veri bağlama) hakkında emin değilim. Hala WPF'nin bu yönünü kendim öğreniyorum.

Pencere 10 yeni başladı. Windows 8 / 8.1, Windows 7 kadar başarılı olmadı. Dolayısıyla, daha geniş bir kitleye sahip bir uygulama oluşturmak istiyorsanız, şimdilik WPF ile gitmelisiniz. Ancak yakın gelecekte WinRT gidecek yol olacaktır.

" Windows 7 , Windows 8 (Masaüstü ve Metro), Window Phone (Ve Windows 10!) Ve hatta x-box'da hangi teknolojiler kullanılmalıdır?" Sorunuz için tek cevap Windows Universal Apps. Bu çerçevenin geliştirilmesinin tam nedeni budur. Tüm cihazlar için uygulama geliştirmek için kullanılacak tek teknoloji. Masaüstü, Tablet, Telefonlar (Visual Studio 2015 ile birlikte gelen Xamarin kullanan Android dahil), Xbox ve IoT (Nesnelerin İnterneti).


19
Universal Apps, Windows7 veya Windows8'de çalışmıyor gibi görünüyor. "Evrensel uygulamalar" yalnızca Win10 cihazları için "evrenseldir".
Dragontamer5788

Xamarin hala kendi başına bir şey (Evrensel Uygulama yok) ve Xbox'a da dağıtabileceklerinden emin değilim.
BradleyDotNET

2
@PrateekJain: Windows 8'de UWP uygulamalarını çalıştırmaya YOK: stackoverflow.com/a/30317960/199364
ToolmakerSteve

6
WinForms hızlı ve kirli GUI'ler için hala harikadır - WPF güzeldir, ancak MVVM olmadan bile "doğru" kullanmak için çok sayıda standart kod (ve dik bir öğrenme eğrisi) gerektirir. WPF'nin gerçek RAD yeteneklerine sahip olmaması berbat bir şey - ve XAML'in çok ayrıntılı olması .
Dai

1
Kıçımın tüm cihazları için. Microsoft, en iyi haliyle tekrar konuşuyor. Windows95 ve Windows2000 üzerinde çalıştığı için çapraz platform dedikleri eski günlerdeki gibi. Diğer bir şey de, Masaüstü uygulamalarının aynı çirkin boyutlarda düğmelere ve özellikle dokunmak için kullanmam gereken ağaçlara ve listelere sahip olmasını istememem. Bu nedenle benim için UWP yok
Lothar

23

Sorunuzdan yalnızca birini yanıtlamaya çalışacağım:

Windows Forms tamamen öldü mü?

Hayır, Windows form teknolojisi ölmedi. Sana nedenini söyleyeceğim. WPF ve XAML çok kapsamlı ve karmaşık bir teknolojidir ve çok hoş bir kullanıcı arayüzü oluşturabilirsiniz. Fakat! Bu teknoloji derin bilgi gerektirir. Temel düzenler için çok fazla bilgiye ihtiyacınız yok, ancak bazı gelişmiş düzenler için derin bilgiye sahip olmalısınız ve bu teknolojiye başladığımda ve google'da bazı ipuçlarını aramak için çok zaman harcadım. Bu yüzden, kullanıcı girişi için bazı basit Formlara ihtiyacım olduğunda, her zaman çok basit ve anlaşılır olan Windows Forms teknolojisini seçiyorum. Dünyaya geldiğinde bu teknolojinin çok başarılı olmasının nedeni de budur. WPF ile başladığınızda, MVVM tasarım modelinin ne olduğunu da bilmeniz gerekir ve bazı deneyimli olmayan programcılar bununla karıştırılır.


3
Bu benim favori cevabım. Küçük uygulamalar için Windows Forms kullanıyorum çünkü çok hızlı ve kolay. Karmaşık üretim kodu için C ++ (WTL ile) ve yan adım .NET'i tamamen kullanıyorum.
Robinson

8
WPF'ye aşina olmayan okuyucular için bazı açıklamalar - temel uygulama düzenleri için WPF, az çok aynı çaba gerektirir. Varsayılan VS WPF uygulama şablonu, WinForms ile aynı başlangıç ​​noktasını sağlar. MVVM, WPF ile çalışmak için hiç zorunlu değildir, ancak aslında herhangi bir MVVM çerçevesi olmadan Binding kullanmak da basit uygulamalar için kolaydır. WPF teknolojik olarak WinRT ve UWP'ye daha yakındır, bu nedenle lütfen kendi iyiliğiniz için Windows Forms'un eski uygulamaları sürdürmekten başka herhangi bir şey için öldüğünü varsayın.
çok

3
Winforms, yeni bir "konsol" uygulaması oluşturmak için mükemmeldir. Örneğin, normalde bir konsol uygulaması olana etkin bir şekilde bir dış görünüm oluşturan bir grup düğme ve kullanıcı girdisiyle son derece basit sekme kontrolü.
rulolar

16

Şimdi Nisan 2016 ve buna hala net bir cevap yok. Metin ve diğer çeşitli grafiklerle karıştırılmış birden çok çizelge ve görüntü oluşturması gereken çok modern bir gerçek zamanlı performans izleme masaüstü uygulaması geliştiriyoruz. Uygulamamız .NET Framework 4.5.2 ile C #, WPF'dir, ancak kabul edilebilir bir performans elde etmek için hala WinForms ve GDI + kullanarak bazı bileşenler yazıyoruz. WPF ile bunu başaramadık. DirectX ile uygulamada birkaç ekran bile geliştirdik, ancak bu, ekibin yalnızca birkaçının destekleyebileceği çok fazla karmaşıklık ekliyor. WPF içinde bir WinForms ekranı barındırmaktan elde edebileceğimiz basitlik ve saf hız ve GDI + hızı, bize, çeşitli hava sahası sorunlarının yanı sıra saf View / ViewModel yapısının pahasına ihtiyacımız olanı verir. Uygulamamız oldukça uzmandır ve WinForms'tan tamamen kurtulmayı çok isterim ama maalesef bu bizim durumumuzda henüz mümkün değil. Saf performans için DirectX veya WinForms'a gitmeniz gerekir.


1
WinForms'da bazı şeylerin daha performanslı olduğunu size vereceğim . Bunun tersinin geçerli olduğu başka şeyler (özellikle animasyonlar) vardır. Doğrusu, doğrudan DirectX'e gitmek muhtemelen daha da iyi olurdu, ancak sizin de belirttiğiniz gibi kimse bunu yapmak istemez.
BradleyDotNET

1
WinRT'den sonra başka bir yere bakmaya karar verdim. Müşterilerim ve ben, benim ve müşterilerimin kar hanesini etkilediği için Microsoft'un ne istediğine çok fazla güvenemeyiz. Şimdi, uygulama sayfalarını yerel olarak kullanıcının tarayıcısına veya bir WinForm / WPF uygulamasındaki gömülü tarayıcı denetimine sunmak için yerel bir web sunucusu kullanan kendi kendine barındırılan bir uygulamaya bakıyorum. Bu, geliştirmeyi basitleştirir, beni platformlar arası uyumluluğa yaklaştırır ve açıkça maliyetleri düşürür.
TheLegendaryCopyCoder

6

Benim iki sentim ... Windows dahil HERHANGİ masaüstü işletim sisteminde çalışabilen programlar anlamına gelen gerçek evrensel uygulamalar istiyorsanız, WinForms hala gidilecek yoldur. Yalnızca CLR uyumluluğunu koruduğunuzdan emin olun ve Mono aracılığıyla Mac ve Linux'a dağıtabilirsiniz. Çok büyük bir fayda. XAML harika olabilir, ancak diğer işletim sistemlerine taşınmayacaktır.

Ben şahsen korumalı (hızlı kumlu) UWP iş modelini korkutucu buluyorum; Windows'un en başından beri temsil ettiği açıklığa karşı çıkıyor.


4

10 yılı aşkın süredir Microsoft teknolojileri ile çalışıyorum. Öğrendiğim en önemli şey, Microsoft'un size sunduklarını dinlemek değil. Microsoft diyerek zaman bu gelecek, bu ters gitmeye% 50 şansı var. Microsoft kesinlikle yatırım yaptıkları ürünleri tanıtmak için elinden gelenin en iyisini yapacak, ancak bu takip etmeniz gerektiği anlamına gelmiyor. WCF ve Silverlight'a ne olduğunu görün.

WPF, öğrenmek için çok güzel bir platform olmasına rağmen, büyük bir öğrenme eğrisine sahiptir. 5 yıldan az programlama tecrübesine sahip herhangi bir geliştiricinin WPF'yi doğru yapabileceğini sanmıyorum.

MVVM modelini izleyerek, WinForm'da nispeten kolay bir şey yapmanın WPF'de çok zor olabileceğini göreceksiniz. Bir güncellemeden sonra bir koşula göre bir hücreyi renklendirmek gibi veya görünümde bir satırı kaydırıp vurgulayın.

Elbette MVVM yapmanıza gerek olmadığını söyleyebilirsiniz. Kodunuzu kodun arkasına koyun ve çalışmasını sağlayın. Evet bu işe yarayacak, ancak WPF kullanmanın anlamı nedir? Neden sadece Win Formunu kullanmıyorsunuz?


1
WPF'nin yoğun bir öğrenme eğrisine sahip olduğuna katılıyorum, ancak bunu bir kez aştığınızda, WinForms'a geri dönüş yok ... asla.
Krythic

4

Bu eski bir iş parçacığıdır ancak .NET çerçevesinin mevcut ilerlemesi, c # özellikleri ve oyun geliştirme seçeneği olarak c # üzerinde artan odaklanma ile önemli bir konu.

WPF neredeyse hiçbir zaman ac # oyun platformu olarak seçilmemiştir. WPF hava sahası sorunları insanları oldukça hızlı korkuttu. Pek çok (varsa) büyük başlığın veya ana oyun motorlarının WPF'yi bu nedenle de hedef platform olarak desteklediğini düşünmüyorum. WPF, oyun başlatıcılar için harika bir platform oluşturuyor!

WinForms, şu anda bakım kipindeyken, yıllarca hala geçerli bir seçim olacaktır. Zaman içinde test edilmiş ve kararlı. 2017'de bile gördüğüm kadarıyla, WinForms hala c # tabanlı oyun geliştirme için seçilen en yaygın platformdur.

Steam Donanım Anketi verilerine bakıldığında, bu cevabı yazarken (Temmuz 2017), Windows 10 64-bit'in artık% 50 pazar payıyla baskın PC oyun platformu olduğunu ve onu% 32 ile Windows 7 64-bit'in izlediğini görebilirsiniz. ve Windows 8.1 64-bit neredeyse% 7 oranında. Diğer tüm işletim sistemi platformlarının pazar payı o kadar küçük ki, bu üçü dışında herhangi bir şeyi düşünmeye zar zor değmez.

PC oyunlarının şu anki durumu ile WinForms, en iyi 3 PC platformunun tümünü hedefleyen en yaygın payda. Geleceğe baktığımızda, Windows 7 ve 8, yerini alan yeni bir platform gelmedikçe Windows 10'a karşı önemli pazar payını kaybedeceğinden, UWP c # oyun geliştirme için en iyi hedef platform olacaktır. Yani bu sadece rakamlarla.

Maksimum pazar payını desteklemek yerine işletim sistemi platformu başına en iyi uyumluluk düzeyine göre seçim yaparsanız, seçenekler şu şekilde olacaktır:

  • Windows 10: UWP
  • Windows 8.1: WinRT veya Windows Mağazası
  • Windows 7: WinForms

Diğer yanıtların çoğu standart Windows uygulama geliştirme etrafında odaklanır, ancak oyun geliştirme çok farklı bir alandır ve hedef işletim sistemi ve grafik API veya oyun motoru seçiminizin gerçekte en iyi desteklediği gibi farklı faktörler seçimlerinizi etkileyecektir.


Gamedev hakkında bir bakış açısına sahip olmak ilginç olsa da, Unity gibi C # için tam özellikli oyun motoruna sahip olduğunuz gamedev için neden bir GUI çerçevesi seçeceğinizi anlamıyorum. İçinde klasik GUI Sadece birkaç oyun ben testere (harita / aktifler düzenlemek gibi) oyun verileri baskı için vardı
Uwy

2
Aynı nedenle bir oyun motoru seçerler: Yönetilen koddan kendi başınıza etkili bir şekilde yerel bir pencere oluşturmak ve yönetmek oldukça uzun bir iştir.
Mike Johnson

3

WinRT uzun süredir masaüstünde, masaüstümde çalışan WinRT yazıyorum. Ve Windows 10 altında, bu uygulamalar kenetlenmemiş konumları (geleneksel olarak bildiğiniz gibi pencereli) destekleyecektir.

Bugün başlayan hiç kimseye WinForms veya WPF'yi önermem. Öncelikle WinRT / XAML öğrenmelidirler. Ve istedikleri dile bağlı olarak ihtiyaç duydukları kadar Win32 / .net öğrenin.

"WinRT + XAML'in Metro GUI binası için olduğunu söylüyorlar (Pencere 8 fayansları!)" - Bu o kadar fazla soyutlama ki işe yaramaz. WinRT, Win32 gibi bir çalışma zamanıdır, sadece GUI için değildir, yani "söyledikleri" tam bir BS'dir. XAML bir UI katmanıdır (WPF'deki XAML'ye çok benzer) ancak Metro GUI'nin de yanlış olduğunu söylemek gerekirse artık Metro GUI diye bir şey yoktur. XAML, Windows UI Katmanıdır. Ve "Windows 8 döşemeleri olayı!" bazı insanların tünel vizyonunun ifadesidir. Win32'nin bir başlangıç ​​menüsü şey olduğunu söylemem gibi olur. Bu ifadenin ne kadar saçma olduğunu görebilirsiniz.


8
Orijinal ifademi açıklığa kavuşturmak için, WinRT "geleneksel" bir masaüstü uygulaması yaratmak için kullanılamaz. Bu nedenle, diğerlerinin yanı sıra, WPF'yi (WinForms, o kadar da değil) öğrenmek için tonlarca neden vardır . Hiçbir şey değilse, aynı zamanda WinRT'yi etkili bir şekilde öğrenmiş olacaksınız (cevabımda belirttiğim gibi). Ek olarak, pazarı yöneten WinRT uygulamalarının noktasına yakın değiliz (özellikle iş uygulamaları alanı). WPF hala son derece değerlidir.
BradleyDotNET

7
WinRT tam ekran uygulamalar oluşturmaya bağlı değilse, Windows'un gerçekten yayımlanmış herhangi bir sürümünde çalışan pencereli bir uygulama oluşturmak için bunu nasıl kullanabileceğinizi bana söyleyebilir misiniz? Veya Windows bilgisayarlarının% 10'undan fazlasında çalışan bir uygulama yazmak için nasıl kullanılır (ör. Windows 7 ve XP)? Çoğu geliştiricinin Windows kullanıcılarının% 10'undan fazlasını hedefleyebilmek istediğini tahmin ediyorum. Windows 8 veya 10 ciddi miktarda pazar payı elde edene kadar, WPF birçok uygulama için hala gerekli olacaktır. WinRT bir çalışma zamanı katmanı olabilir, ancak bu, Win32'nin (tam) erişebileceği birçok şeye erişemediği gerçeğini değiştirmez.
John Colanduoni

1
@JohnColanduoni'nin dediği gibi, bugün başlayan herkes için (Mar14) WinRT gitmenin yolu, win10 şimdi bir güncelleme olarak ücretsiz ve birkaç ay daha ücretsiz olacak, bu yüzden evet, win10 büyük pazar payı. evet herkes 10 kazanmak için hareket etmedi, ancak birkaç gün önce Fransa'daki bir havaalanının hala win3.1 kullandığını öğrendik
John Demetriou

3
@GavinWilliams Pekala, Windows 10'u herhangi bir pazar segmentinde kayda değer bir pazar payına getiren istatistikleriniz nerede? Modların yorumunuzu kaynağınıza bir bağlantıyla kaldırdığını, ancak bunu koymanıza izin verdiklerini mi söylüyorsunuz? Ben buna inanmıyorum. XP'nin desteklenmeye değer olmadığına katılıyorum, ancak Windows 10 evrensel uygulamaları Windows 7'yi bir kenara bırakın Windows 8.1'i bile desteklemiyor. Benimseme, Windows evrenselini haklı çıkarmak için olması gereken yerde değil ve yavaşlıyor .
John Colanduoni

3
@GavinWilliams Tamam,% 30'un% 97'den çok daha az olduğunu (WPF kullanırsanız alacağınız destek) ve bu verilerin yalnızca video oyun programcıları için yararlı olduğunu görmezden gelelim . Video oyunları için her ikisini de hedeflemek oldukça kolaydır; gerçekten önemsiz bir şey yapmıyorsanız, DirectX / OpenGL kullanmak isteyeceksiniz, bu da onu bir pencerede / tam ekranda barındırmanız gerektiği anlamına gelir. Bunları kullanmak istemiyorsanız, WinRT'nin kullanıcı arayüzü, barındırılan DirectX / OpenGL (WPF'nin yaptığı gibi) olmadan anında mod çizimine izin vermediğinden , gerçekten WPF'yi isteyeceksiniz. Peki ya WinRT, pazar büyüklüğünde% 70'lik bir azalmayı haklı çıkarır?
John Colanduoni

1

Bu soruyla bir yıl önce karşılaştım. XAML, WPF ve WinRT'nin başlangıç ​​için doğru geliştirme ortamı olduğu sonucuna vardım.

Veri katmanı için .Net Framework (Web Hizmetleri ve RESTful katman (JSON) dahil) ve web sunumu katmanınız için saf HTML5 / CSS3 ve Javascript kullanmanızı şiddetle tavsiye ediyorum.

Windows 10'da herhangi bir web uygulamasını kutudan çıktığı gibi bir metro uygulaması olarak entegre edebilirsiniz.

WinRT, XAML, WPF ve benzeri ms öğeleri yalnızca pencerelerde çalışır ve birçok sınırlaması vardır.

Bu yüzden bir yıl sonra, yeni projem için WinRT veya XAML kullanmama kararımdan hala çok mutluyum.


3
Neden bahsediyorsun? Evet, bir Web uygulaması yapmak istiyorsanız bu harika bir seçim. Bir masaüstü uygulaması yapmak istiyorsanız, öyle değil. Katana'yı kullanabilir ve yerel olarak barındırılan WebApi'ye sahip olabilir ve bir masaüstü uygulaması yapabilirsiniz, ki bu da bu yanıtı daha alakalı hale getirir.
Casey

1
OP, Windows GUI ve WPF veya Winrt hakkında sorular sordu - Web uygulamaları değil.
ezaspi

6
Ayrıca, kişisel olarak bu teknolojilerle çalışmak için çok daha zor buluyorum (anlaşılmaz düzen sistemi, kod üzerinde derleme zamanı kontrolü yok, vb.) Masaüstü henüz ölmedi :)
BradleyDotNET

1
Kabul ediyorum, HTML evrensel kullanıcı arayüzüdür ve masaüstü için de olmalıdır. Tüm bu farklı çerçeveleri basitleştirmemiz ve gittikçe daha fazlasını sunmayı bırakmamız gerektiğini hissediyorum. Çoğuna ihtiyaç yok. Sadece HTML ve ASP'yi öğrenin ve ardından web sitenizi bir WinForm uygulamasında kendiniz barındırın. WinForm uygulaması, web sunucunuzu ve web tarayıcısı kontrolünüzü içerir. Sonuç olarak, zamandan tasarruf edersiniz, tek bir dil ve teknolojide uzmanlaşmaya odaklanırsınız, daha hızlı geliştirirsiniz, müşterilerinizin parasından tasarruf edersiniz, uygulamalarınız geleceğe hazır ve çok daha taşınabilirdir.
TheLegendaryCopyCoder
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.