Wat is .Net ?

.NET (spreek uit dot NET) is een applicatieframework ontwikkeld door Microsoft.
Het is een verzameling van een runtime, het deel dat applicaties in staat stelt om
taken uit te voeren, en een uitgebreide bibliotheek die de taak van een
ontwikkelaar makkelijker maken door een aantal standaard opdrachten uit te
voeren

.NET wordt gekenmerkt door volgende eigenschappen:

  • Uitbreidbaar
    We kunnen het volledige framework uitbreiden met onze eigen
    modules en componenten.
  • (Programmeer)taalonafhankelijk
    .NET is dialectonafhankelijk. Dit betekent dat we gebruik kunnen maken van zowel C#, Visual Basic als eender welk ander dialect dat voor.NET ontwikkeld is of zal worden.
  • Platformonafhankelijk
    De applicaties die geschreven worden met .NET als platform zijn in theorie platformonafhankelijk. In de praktijk merken we echter dat in 90% van de gevallen.NET gebruikt zal worden voor de ontwikkeling van Windows-gebaseerde toepassingen. Dit is echter niet langer het geval sinds .Net Core. .Net Core staat toe dat ontwikkeling cross platform kan gebeuren. .Net Core wordt voornamelijk gebruikt voor webtoepassingen gecombineerd met een of meerdere front end technologieën zoals Javascript (Angular, react, Vue, ..) en XHTML.

Architectuur

.NET is opgebouwd volgens het principe van een Virtual Machine. Dit wil zeggen dat
applicaties ontwikkeld in .NET niet gecompileerd worden naar machinetaal zoals
dat het geval is met C, of C++-talen. In plaats van het compileren naar een taal die
de processor kan begrijpen, zal .NET de code compileren naar een tussentaal, zijnde
IL (Intermediate Language). Daarna zal de JIT-compiler (Just-In-Time) de IL
omzetten naar machinecode, de taal die de processor kan begrijpen. Deze
architectuur heeft een aantal voordelen:

  • Platform onafhankelijk
    Vermits we de JIT-compiler kunnen vervangen door een andere kunnen
    we ervoor zorgen dat de code die we schrijven uiteindelijk naar een
    andere machinecode kan omgezet worden.
  • Taalonafhankelijkheid
    De Visual Basic compiler en de C#-compiler zullen de geschreven code
    omzetten naar IL-code. Dit zorgt ervoor dat er voor andere talen ook
    compilers kunnen geschreven worden die code omzetten naar IL-code

Hoekstenen van het .Net-framework

  • VB.NET / C# / Jscript.NET / …
    Dit zijn talen die we kunnen gebruiken om code te schrijven voor het .NET-framework. Er zijn nog talen die aangepast zijn aan het .NET framework. Deze zijn echter ontwikkeld door derden.
  • Common Language Specification
    Deze specificatie dicteert de minimum eigenschappen waaraan een taal moet voldoen om door te kunnen gaan voor een .NET-language. Zo moeten ze bijvoorbeeld om kunnen gaan met Strings, Integers, …
  • Common Type System/Specification
    Deze specificatie vertelt hoe een type zijn velden, eigenschappen en methodes naar de buitenwereld open stelt. Ze vertelt ook hoe inheritance bekomen moet worden. Dit zorgt ervoor dat de verschillende .NET-talen perfect kunnen samenwerken. Het zorgt ervoor dat we bijvoorbeeld libraries, geschreven in C#, kunnen gebruiken in Visual Basic.NET en vice versa.
  • Base Common Library (.NET framework class library)
    Het .NET-framework bestaat uit duizenden types, gegroepeerd in verschillende assemblies. Deze types maken een aantal programmeertaken eenvoudig te implementeren. Het zijn stukken code die we zelf niet meer moeten schrijven, maar die reeds ingebakken in het framework zitten. Een aantal voorbeelden: tonen van windows, bestanden uitlezen, e-mails verzenden, …
  • ASP.NET
    Het deel van de library die je in staat stelt geavanceerde webapplicaties te maken. Dit is het onderdeel van het .NET-framework dat instaat voor het genereren van HTML pagina’s. Er zijn ook hogere functies voorzien, die niet rechtstreeks invloed hebben op het genereren van HTML, maar te maken hebben met security van webapplicaties, gebruikersbeheer, … Verder is het ook mogelijk om webservices te maken.
  • Windows Forms
    Dit onderdeel laat je toe om traditionele Windows applicaties te creëren. Je dropt controls op een window en werkt direct met het programma op de PC zelf.
  • ADO.NET
    Het deel van het framework dat instaat voor het werken met databases. Binnen deze sectie heb je de zogenaamde “connected classes”, die op de databaseserver waardes gaan uitlezen en deze teruggeven aan de applicatie. Verder heb je ook nog de “disconnected classes”. Deze gaan een in-memory representatie van de database creëren. Na wijzigingen wordt de operationele database gesynchroniseerd met de in-memory representatie.
  • Common Language Runtime
    Het hart van het .NET-framework. Alle code die onder het .NETframework wordt uitgevoerd draait onder deze context. De Common Language Runtime zorgt ervoor dat code die geschreven wordt veilig is. Met veilig wordt bedoeld dat de code geen memory leaks kan veroorzaken, of andere processen onstabiel kan maken. Het is de Common Language Runtime die uiteindelijk de code zal interpreteren en de calls zal doorsturen naar de Windows API.
    Andere terminologie:
  • Managed & Unmanaged code
    .NET applicaties worden aanzien als managed code omdat ze uitgevoerd worden onder de controle van de CLR (zie hierboven) en daardoor behoed worden voor het uitvoeren van onveilige code. Dit is anders dan bijvoorbeeld Visual Basic 6 die unmanaged of native code produceren. Deze code heet volledige toegang tot alle processen in het systeem en kan zorgen voor instabiliteit van het systeem.