Welches Framework für Windows 8 Desktopapplikationen?
-
Hallo,
Ist schon bekannt, welches Framework in Windows 8 für Desktopanwendungen vorherrschen wird? Ich habe bis jetzt nur gelesen, dass sehr wahrscheinlich viele Programme mit JavaScript, HTML und CSS umgesetzt würden; das aber nur auf der Metrooberfläche. Und komplexe Anwendungen werden damit wohl oder übel nicht so einfach schreibbar sein.
Momentan arbeite ich fast nur mit dem Qt-Framework in C++ und mit Windows Forms und dem .NET-Framework unter C#.
Momentan denke ich darüber nach, von Windows Forms-Anwendungen wegzukommen und auf WPF umzulernen. Wie seht ihr das?
Edit: Nach etwas Recherche hat sich die Frage geklärt.
Zitat der Seite http://msdn.microsoft.com/library/windows/apps/br211386:
- Wenn Sie sich mit Webentwicklungstechnologien auskennen, können Sie eine App im Metro-Stil mit HTML5, CSS3 (Cascading Style Sheets, Level 3) und JavaScript entwickeln.
- Wenn Sie Windows Presentation Foundation- oder Silverlight-Anwendungen entwickelt haben, können Sie eine App im Metro-Stil mit XAML, mit CodeBehind in C++, C# oder Microsoft Visual Basic entwickeln.
- Wenn Sie mit Microsoft DirectX vertraut sind, können Sie mit systemeigenen C++ und HLS ein DirectX-Spiel im Metro-Stil entwickeln und die Kapazität der Grafikhardware voll ausschöpfen.
Mit WPF schlage ich zwei Fliegen mit einer Klappe: Metro-Apps und Desktopanwendungen mit einem Framework.
-
Was Desktopanwendungen angeht, wird Windows 8 nicht viel anders sein als Windows 7. Man kann die gleichen Technologien weiterbenutzen.
Was Windows Forms <> WPF angeht: Für neue Anwendungen würde ich keinesfalls mehr auf Windows Forms setzen. Es ist zwar ausgereift, erfährt aber keinerlei Weiterentwicklung mehr und hinkt WPF technisch in vielen belangen hinterher. Bestehende Anwendungen muss man aber sicherlich nicht unbegint auf WPF migrieren, vor allem weil das auch gekonnt sein muss, da ganz andere Konzepte zum tragen kommen.
Und komplexe Anwendungen werden damit wohl oder übel nicht so einfach schreibbar sein.
Wieso sollte man keine komplexen Metroanwendungen schreiben können? Egal ob nun Javascript, C++ oder C# - man hat immer die doch recht mächtige WinRT zur Verfügung. Nur weil die Oberfläche vielleicht ungewohnt einfach aussieht, heißt das nicht, dass ein Programm nicht komplex sein kann.
-
Mit WPF schlage ich zwei Fliegen mit einer Klappe: Metro-Apps und Desktopanwendungen mit einem Framework.
Das stimmt nicht. Mit WPF ist es unmöglich Metro Anwendungen zu schreiben! Man muss da klar unterscheiden: Es gibt WPF wo XAML zur Beschreibung der GUI benutzt wird, C#(VB.Net) für den Code und die Klassen der .Net Framework Klassenbibliothek genutzt werden.
Für Metro Anwendungen kann man ebenfalls die Kombination XAML + C# nutzen, aber nicht mit der Klassenbibliothek vom .Net Framework! Stattdessen wird die Klassenbibliothek von der WinRT benutzt. Da gibt es zwar einige Ähnlichkeiten, aber auch große Unterschiede. Man darf keinesfalls denken, dass man zwei Fliegen mit einer Klappe erwischt sondern muss froh sein, dass die Fliegen sich oberflächlich recht ähnlich sind
-
Für Metro Anwendungen kann man ebenfalls die Kombination XAML + C# nutzen, aber nicht mit der Klassenbibliothek vom .Net Framework!
Ist das nicht wie folgt?
WinRT mit .NET -> XAML + C#
WinRT ohne .NET -> XAML + C++/CX
-
Ist das nicht wie folgt?
Ja, auch
In dem von dir zitierten Satz liegt der Schwerpunkt der Aussage auf
..., aber nicht mit der Klassenbibliothek vom .Net Framework!
Man muss da genau aufpassen. C# Metro Anwendungen benutzen die .Net Runtime, das stimmt natürlich, aber nicht die Klassenbibliothek, da wird wie gesagt WinRT benutzt.
Was das ganze noch ein wenig verwirrender macht, ist die Tatsache das man das oft gar nicht merkt. Es gibt in Metroanwendungen genauso System.String als Typ, wie man es auf .Net Anwendungen gewohnt ist. Aber eigentlich ist das nen völlig anderer Typ, sieht man z.b. wenn man schaut wo die typen definiert sind etc.
-
Zwergli schrieb:
Was Windows Forms <> WPF angeht: Für neue Anwendungen würde ich keinesfalls mehr auf Windows Forms setzen. Es ist zwar ausgereift, erfährt aber keinerlei Weiterentwicklung mehr und hinkt WPF technisch in vielen belangen hinterher.
Solche Aussagen find ich etwas übertrieben. Windows Forms ist mindestens auf demselben Stand wie fast alle anderen GUI Frameworks auch, also MFC, VCL, Qt, WxWidgets, GTK usw. Das einzige Framework, was etwas "anders" ist, ist eben WPF. Und WPF ist halt wirklich hauptsächlich anders und nicht unbedingt besser. Winforms reicht zu 99% völlig aus. Die ganzen WPF Spielereien braucht kein Mensch. Was an WPF interessant ist, ist das mächtigere Binding Framework, aber so groß ist der Unterschied jetzt auch wieder nicht. Ich nehme immer noch meist Winforms wenn ich was neues schreibe, und seh auch keinen Grund, das zu ändern.
-
Worauf ich hinaus wollte war dass Metro Anwendungen AFAIK mit WinRT und C++/CX ohne .NET (Runtime und Library) auskommen.
-
Danke für die Antowrten.
Noch eine letzte Frage:
Kann man das WinRT Framework kombiniert mit C# auch für Desktopanwendungen verwenden?
-
Teile des Frameworks können in Desktopapplikationen benutzt werden. Welche das sind, steht jeweils in der Doku der Klasse. Dss trifft aber für sämtliche Sprachen/Frameworks für Desktop Applikationen zu. Nicht nur C# mit .Net.