Výhody platformy .NET ukáže Windows 8

Václav Dajbych       20. 5. 2011       .NET       6665 zobrazení

Zatímco dosud moc nezáleží na tom, jestli je aplikace napsaná v C++ nebo v C#, Windows 8 nám začíná ukazovat, že využití multiplatformního frameworku zabudovaného v přímo v operačním systému dává velký smysl. Jen aplikace v .NET totiž půjde spustit na všech třech platformách, které Windows 8 podporuje. Aplikace v C++ se sice může překompilovat, musí tak ale učinit i výrobci knihoven třetích stran, které aplikace využívá.

Windows 8 běží i na procesorech architektury ARM, která se v hojné míře používá v přenosných kapesních počítačích. Stejně jako se liší architektury procesoru Itanium, AMD64 a ARM, liší se i jejich instrukční sady. Aplikace v C++ se tedy musí kompilovat cíleně na jednu z nich. Potíž není ani v tom, že by aplikace nešla překompilovat pro jinou instrukční sadu. Potíž nastává ve chvíli, kdy z nějakých důvodů není k dispozici překompilovaná knihovna, kterou spravuje někdo jiný.

Podobné problémy nastaly už v minulosti a řešením byla abstrakce nad instrukční sadou, které se říká MSIL. Do tohoto instrukčního jazyka se překládají všechny vyšší jazyky platformy .NET jako například C# nebo PHP. JIT překládá MSIL do konkrétní instrukční sady procesoru. Veškeré knihovny, které jsou zkompilovány do MSIL, jsou tedy multiplatformní. Výjimku tvoří pouze případy, kdy assembly volá nějaké jiné knihovny, které jsou platformě závislé.

Nastávají případy, kdy se nabízí více instrukčních sad a aplikace funguje jen v jedné z nich. Například kompilace pro AMD64 na 64bit Windows se může provést jak do x86-32, tak i do x86-64. V případě x86-32 se využije emulátor WOW64, který zajišťuje běh nativních 32bit aplikací na 64bit operačním systému. Aplikace tak může volat 32bitové nativní knihovny. Proto se dá do assembly vložit příznak, který vyžaduje kompilaci pro konkrétní instrukční sadu. To se v praxi využívá pro vynucení běhu .NET aplikace na 64bitových Windows v 32bitovém režimu. Knihovny, které mají příznak nastaven špatně či zcela zbytečně, se dají snadno upravit pomocí nástroje CorFlags.

 

hodnocení článku

0       Hodnotit mohou jen registrované uživatelé.

 

Mohlo by vás také zajímat

Co je to .NET Framework 4.5?

V tomto článku se snažím nastínit rozdíl mezi .NET 4 a .NET 4.5 z pohledu zpětné kompatibility.

Windows 10 GameJam: konference a herní hackathon

asp mvc – from zero to hero (4), MVC architektura, view-viewmodel-controller, razor

 

 

Nový příspěvek

 

Příspěvky zaslané pod tento článek se neobjeví hned, ale až po schválení administrátorem.

                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

Příspěvky zaslané pod tento článek se neobjeví hned, ale až po schválení administrátorem.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback