Het lijkt er op dat WinRT alleen bedoeld is voor metro-style apps en niet voor reguliere desktop apps (zie:
http://www.readwriteweb.c...%20Platform%20diagram.JPG).
Ik weet niet of ontwikkelaars hier heel blij van gaan worden. De WinRT UI laag is inderdaad een afgeleide van WPF en dus niet backwards compatible. Hij is te gebruiken vanuit native applicaties (C++, ect.), .NET en HTML5+scripttalen (nu is JScript tegenwoordig ook .NET dus ik weet niet of je die twee nog los moet zien).
Bestaande codebases kun je waarschijnlijk dus grotendeels weggooien.
Naast Silverlight, WPF (XBAP of desktop) en Silverlight for Windows Embedded (wat ook al zo'n rare XAML/C++ mix is) hebben we nu dus een vierde niet-compatible framework voor UI op windows platforms (even afgezien van de legacy frameworks zoals WinForms en alles daarvoor).
Overigens ben ik zeer benieuwd hoe ze databinding gaan aanpakken voor native apps (als dat uberhaupt al mogelijk gaat zijn vanwege het ontbreken van reflection).
Ben ook benieuwd hoe ze in WinRT de graphics laag hebben vormgegeven. Wellicht krijgen we naast GDI, GDI+, Direct2D, DirectWrite, Direct3D en XNA *nog* een API?
Al met al lijkt Microsoft de ontwikkelaars voor haar plaforms weer eens aan te geven dat ze niet echt zeker zijn waar ze naartoe willen. In plaats van *een* 'unifying framework' met wisselende features voor afwijkende platforms (bijv. geen telefoonfuncties in desktopapplicaties) moeten we nu gaan kiezen tussen een aantal niet verenigbare frameworks. Of je ontwikkelt parallel voor allemaal, maar dat is nogal een investering.
Als Microsoft wil dat Metro (op wat voor device dan ook) een succes wordt dan is het een pre om het bestaande ontwikkelaars gemakkelijk te maken hun applicaties er voor geschikt te maken. Zoals ze het nu aanpakken wordt het een pijnlijk proces.
Nog een kleine correctie: P/Invoke staat los van Win32 (je kan vanuit .NET elke willekeurige DLL invoken). Ook in metro applicaties (mits in .NET) zal je P/Invokes kunnen doen. Nou zijn P/Invokes meestal niet echt handig vanuit een portability-oogpunt dus of het verstandig is is een andere vraag...
[Reactie gewijzigd door Verwijderd op 24 juli 2024 08:31]