C# (C Sharp) & .NET

C#

C# är lättanvänt och väldigt användbart. När C# skapades var tanken att språket skulle vara next gen, de skulle plocka det bästa från C++ och Java; det skulle vara OOP, snabbt och inte vara operativsystemspecifikt, dessutom skulle man slippa uppfinna hjulet på nytt när man skapar applikationer och spel. Så vad blev det? C# är snabbt och givetvis objektorienterat, och vi slipper upptäcka hjulet på nytt. C# är inte operativsystemspecifikt (native code) utan ett Intermediate Language (IL) vilket innebär att det måste ha tillgång till Microsofts .NET-Framework (.NET uttalas dot net). Styrkan med detta gör att spelet/programmet som skapas kan köras PDA/SMARTPHONE/XBOX/ WINDOWS/WebApps så länge .NET finns tillgängligt.

.NET

Så vad är .NET då? .NET är en lösning på de problem man ofta ställs inför när man utvecklar applikationer (speciellt spel) då spelet ska kunna spelas på ALLA PC-datorer vilket innebär att det finns massor av variation gällande hårdvara. Dessutom begränsar man sig som oftast till ett operativsystem (Windows 98, Vista, 7) då man var tvungen att kompilera mot just 1 OS. Detta löser .NET då kod kompileras till ett Intermediate Language (IL) som varje Operativsystem (OS) kan tolka och köra. Det innebär att OS mer eller mindre kompilerar koden från IL ”on the fly” eller ”jitted” medan programmet körs. Detta gör att det blir en optimering av hårdvaran då vi slipper instruera in i minsta detalj.

Summering:

Vi kodar i valfritt språk och miljö (OS) -> kompilerar till IL -> Common Language Runtime (CLR) kompilerar on the fly (“jitted”) för miljön (OS) när programmet du kodat körs.

Mono Project

Men vafan tänker ni säkert det skulle ju inte vara operativsystemspecifikt, men det är ju sjukt begränsat till Windows. Ja. Däremot finns det en lösning på detta som kallas för Mono Projekt som bryggar problematiken att porta spelen till OSX, Linux, Andriod, etc. Är det bra då? Ja, Mono Project används av Spelmotorn Unity 3D. Vill ni läsa mer om Mono Project är det bara att surfa in på: http://www.mono-project.com/