Miljø og følelser. Oversigt over NET Framework teknologi Net framework essens hovedformål komponenter fordele

C#
  • Fælles sprog Runtime) og et klassebibliotek...
  • .NET Framework og CTS-specifikationen
    C#-sproget og dets support er i øjeblikket forbundet med .NET Framework udviklet af Microsoft. Den navngivne platform (se) inkluderer: common language runtime (CLR - Fælles sprog Runtime Framework Class Library). Det bør noteres...
    (PROGRAMMERING. GRUNDKURSUS C#)
  • Installation af .NET Framework og Visual Studio
    I Windows 7 og 8 er .NET-platformen allerede tilgængelig, og der er ingen grund til at installere noget. For at udvikle applikationer i .NET platformen skal du installere Visual Development System C# 2012 (eller 2013) Express Edition - en gratis version af Visual Studio-udviklingsmiljøet (kortere, men med næsten...
    (Objektorienteret programmering)
  • C# TYPER OG .NET FRAMEWORK TYPER
    C#-sproget og dets support er i øjeblikket forbundet med .NET Framework udviklet af Microsoft. Den navngivne platform (se) inkluderer: common language runtime (CLR - Fælles sprog Runtime) og et klassebibliotek...
    (PROGRAMMERING. GRUNDKURSUS C#)
  • .NET Framework og CTS-specifikationen
    C#-sproget og dets support er i øjeblikket forbundet med .NET Framework udviklet af Microsoft. Den navngivne platform (se) inkluderer: common language runtime (CLR - Fælles sprog Runtime) og klassebibliotek (FCL - Framework Class Library). Det bør noteres...
    (PROGRAMMERING. GRUNDKURSUS C#)
  • .NET Framework er en integreret Windows-komponent, der understøtter oprettelsen og udførelsen af ​​en ny generation af applikationer og XML-webtjenester. .NET Framework blev designet med følgende mål for øje:

    · Sørg for et konsistent objektorienteret programmeringsmiljø til lagring og eksekvering af objektkode lokalt, til lokal eksekvering af kode distribueret på internettet eller til fjernudførelse.

    · Sørg for et kodeeksekveringsmiljø, der minimerer konflikter i softwareimplementering og versionskontrol.

    · Tilvejebringelse af et kodeeksekveringsmiljø, der garanterer sikker eksekvering af kode, inklusive kode genereret af ukendte eller mindre end fuldt betroede tredjeparter.

    · Sørg for et kodeeksekveringsmiljø, der undgår ydeevneproblemer med scripting eller fortolkede kodeeksekveringsmiljøer.

    · Giv en ensartet udvikleroplevelse på tværs af forskellige typer applikationer, såsom Windows-applikationer og webapplikationer.

    · Udvikle industristandardbaseret interoperabilitet, der sikrer, at .NET Framework-kode integreres med enhver anden kode.

    De to hovedkomponenter i .NET Framework er Common Language Runtime (CLR) og .NET Framework-klassebiblioteket. Kernen i .NET Framework er CLR. Runtime kan opfattes som en agent, der administrerer kode ved runtime og leverer grundlæggende tjenester såsom hukommelsesstyring, trådstyring og fjernstyring. Samtidig pålægges strenge indtastningsbetingelser og andre former for verifikation af kodes nøjagtighed for at sikre sikkerhed og pålidelighed. Faktisk er runtimes hovedopgave at administrere kode. Kode, der får adgang til kørselstiden, kaldes administreret kode, og kode, der ikke får adgang til kørselstiden, kaldes ikke-administreret kode. En anden kernekomponent i .NET Framework, klassebiblioteket giver en komplet objektorienteret samling af typer, der bruges til at udvikle applikationer, lige fra konventionelle, der køres fra kommandolinjen eller med en grafisk brugergrænseflade, til applikationer, der udnytter de seneste ASP.NET-teknologiegenskaber. , såsom Web Forms og XML Web Services.

    .NET Framework kan være vært for ikke-administrerede komponenter, der indlæser Common Language Runtime (CLR) i deres egne processer og kører administreret kode, hvilket skaber et programmeringsmiljø, der tillader både administreret og ikke-administreret eksekvering. .NET Framework giver ikke kun adskillige kernekørselstider, men understøtter også tredjepartsudvikling af kernekørselstider.


    For eksempel hoster ASP.NET kørselstiden for at give et skalerbart serversidemiljø til administreret kode. ASP.NET arbejder direkte med runtime for at aktivere ASP.NET-applikationer og XML-webtjenester, som begge diskuteres senere i dette emne.

    Internet Explorer er et eksempel på et ikke-administreret program, der er vært for runtime (i form af en MIME-type-udvidelse). Brug af Internet Explorer til at være vært for runtime giver dig mulighed for at integrere administrerede komponenter eller Windows Forms-kontrolelementer i HTML-dokumenter. Hosting af runtime på denne måde gør administreret mobilkode (svarende til Microsoft® ActiveX®-kontroller) muligt, men med betydelige forbedringer, som kun administreret kode kan tilbyde, såsom semi-betroet udførelse og isoleret fillagring.

    Den følgende illustration viser forholdet mellem det fælles sprogs runtime og klassebiblioteket til dine applikationer og til det overordnede system. Illustrationen viser også, hvordan administreret kode fungerer i en større arkitektur.

    NET Framework i kontekst

    De følgende afsnit beskriver de vigtigste komponenter og funktioner i .NET Framework mere detaljeret.


    For eksempel er ASP.NET vært for runtime og giver et skalerbart miljø til server-side administreret kode. ASP.NET arbejder direkte med runtime for at muliggøre eksekvering af ASP.NET-applikationerne og XML-webtjenesterne, der diskuteres senere i dette emne.

    Internet Explorer er et eksempel på et ikke-administreret program, der er vært for runtime (i form af MIME-type-udvidelser). Hosting af runtime i Internet Explorer giver dig mulighed for at integrere administrerede komponenter eller Windows Forms-kontrolelementer i HTML-dokumenter. Dette miljølayout gør det muligt at køre administreret mobilkode (svarende til Microsoft® ActiveX®-kontroller), men med de betydelige fordele ved administreret kode, såsom delvis tillidsudførelse og isoleret fillagring.

    Følgende figur viser, hvordan det fælles sprogs runtime og klassebiblioteket interagerer med brugerapplikationer og hele systemet. Figuren viser også, hvordan administreret kode fungerer inden for den bredere arkitektur.

    NET Framework i kontekst

    De følgende afsnit giver en mere detaljeret beskrivelse af kernekomponenterne og funktionerne i .NET Framework.

    Anmærkning: Microsoft .NET Initiative. Problemer med kompatibilitet, pålidelighed og genbrug af komponenter. .NET Framework. Common Language Runtime Environment (CLR). Pseudomaskinesprog CIL (styret af assembler). JIT compiler. Programmeringssprog. Forsamlinger. Metadata. Skraldemand. .NET Framework Class Library

    Problemer med at udvikle moderne informationssystemer

    Integrationsproblemer

    • Moduler skrevet på forskellige sprog, ved hjælp af forskellige API'er (eller API-versioner) eller forskellige datarepræsentationsformater;
    • Programmer udviklet til forskellige platforme inden for en enkelt softwarepakke;
    • Systemer, der bruger forskellige softwaremodeller.

    Integrationsproblemer med ældre kode er særligt almindelige. Ved løsning af integrationsproblemer opstår der inkompatibilitetsproblemer.

    Portabilitetsproblemer

    Der kræves i stigende grad programmer til at understøtte flere platforme (f.eks. evnen til at arbejde med programmet på Windows- og Mac OS-platformene).

    Versionsproblemer

    Windows-udviklere er opmærksomme på et versionskompatibilitetsproblem kendt som DLL-helvede. Dette "helvede" opstår, når komponenter installeret til en ny applikation erstatter komponenter i den gamle applikation. Som følge heraf begynder den gamle applikation at fungere forkert eller holder op med at fungere.

    Ressourcestyring

    En af udfordringerne ved programmering er styring og korrekt frigivelse af ressourcer, filer, hukommelse, skærmplads, netværksforbindelser, databaseressourcer osv. Forkert styring af disse ressourcer kan føre til forkert udførelse af programmet.

    Type sikkerhed

    Når de nævner et typesikkerhedsproblem, mener de forkert håndtering af datatyper: forsøg på at få adgang til hukommelsesområder uden for typens grænse, forsøg på at kalde metoder, der ikke er til stede på typen, eller forsøg på at kalde en metode, der tager type A som en parameter og videregive den som en parameter. objekttype B.

    Fejlhåndtering

    Når du udvikler Windows-applikationer ved hjælp af Win32 API, returnerer nogle funktioner undtagelser, andre returnerer statuskoder, og andre returnerer HRESULTS. Der er således ingen konsekvent mekanisme til håndtering af fejl, og det er muligt at ignorere nogle undtagelser, hvilket gør koden usikker.

    Microsoft .NET-platformen hjælper med at løse disse og andre problemer med udvikling af informationssystem.

    Løsning af problemer med udvikling af informationssystemer i .NET

    En måde at løse problemet med heterogenitet på er at udvikle og understøtte standardsoftwaregrænseflader, der letter opgaven med at overføre applikationer til servere på forskellige platforme. Imidlertid kan applikationer bruge databaser, kommunikation og andre tjenester, hvis grænseflader ikke er komponenter i programmeringssproget eller -miljøet. En anden metode, der anvendes af producenter til at løse problemet med heterogenitet, er at understøtte standardprotokoller. Systemer, der understøtter den samme protokol, kan kommunikere med hinanden, selvom de er afhængige af forskellige maskinarkitekturer og operativsystemer.

    Teknologi. NET er en softwareudviklings- og implementeringsmetode, der bruger udbredte standarder såsom HTTP og XML til at muliggøre programinteroperabilitet og give adgang til adskillige softwaretjenester over internettet. Teknologi omfatter. NET Framework er en platform til udvikling og eksekvering af applikationer, der forenkler og fremskynder udvikling, understøtter fuld objektorienteret programmering til internettet, eliminerer mange typer af de mest almindelige softwarefejl, giver en fælles API for alle sprog.

    Hvad udgør Microsoft .NET

    NET Framework - infrastruktur til applikationsudvikling. Dens hovedkomponenter er Common Language Runtime og et klassebibliotek. NET Framework klassebibliotek.

    Fælles sprog Runtime

    Common Language Runtime (CLR) er en fælles sprog-runtime, der abstraherer operativsystemtjenester og kører administrerede applikationer, hvis enhver handling skal godkendes af CLR.

    Al kode til .NET platformen konverteres af CLR til CIL mellemkode. Derfor kan udviklere nemt integrere kode skrevet til .NET i forskellige programmeringssprog. Alt, der kan gøres på ét .NET-kompatibelt sprog (med sjældne undtagelser), kan gøres på et hvilket som helst andet. Kode på disse sprog er kompileret til kode på ét sprog - CIL.

    CLR sidder oven på operativsystemet og giver et virtuelt miljø til administrerede applikationer. Koden til .NET-platformen udføres enten af ​​CLR eller har tilladelse til at blive eksekveret uden for den.

    Koden til CLR er i form af Common Intermediate Language (CIL) pseudo-maskine sprogkommandoer. Disse instruktioner er kompileret i maskinkode for den relevante processortype på just-in-time basis ved kørsel. Typisk kompileres en metode én gang, første gang den kaldes. Resultatet gemmes derefter i hukommelsen for at undgå forsinkelser i gentagne opkald. JIT-kompileren optimerer kode specifikt til den processor, som koden udføres på.

    Ved at konvertere CIL-instruktioner til processorinstruktioner verificerer JIT-kompileren koden for typesikkerhed.

    Det er praktisk talt umuligt at udføre en kommando, der får adgang til et hukommelsesområde, som kommandoen ikke har tilladelse til at få adgang til. En administreret applikation eliminerer problemet med fejlinitialiserede pointere ved at forhindre en type i at blive konverteret til noget, den ikke er, hvilket er en typesikkerhedsovertrædelse. CLR'en tillader ikke, at metoder kaldes med en ødelagt stakramme.

    Ressourcer tildelt af administreret kode frigives af skraldeopsamleren. Med andre ord tildeler programmøren kun hukommelse, men frigør den ikke - CLR'en gør dette. Skraldesamleren holder styr på alle referencer til objekter skabt af et program og ødelægger disse objekter, når den hukommelse, de optager, er nødvendig et andet sted. Dette løser problemet med hukommelseslækager i administrerede kodeapplikationer.

    Kodebekræftelse er også grundlaget for CLR's evne til at køre flere applikationer inden for en enkelt proces. Processen er opdelt i virtuelle rum - applikationsdomæner. Dette forbedrer effektiviteten af ​​hukommelsen allokeret til processer. Applikationsdomæner er ikke mindre sikre end processer, fordi deres grænser ikke kan overtrædes af administrerede applikationer.

    .NET Framework Class-bibliotek (FCL)

    .NET inkluderer klassebibliotekssamlinger. NET Framework Class-bibliotek (FCL), der indeholder definitioner af flere tusinde typer, som hver især giver en vis funktionalitet. Sæt af "relaterede" typer er samlet i separate navneområder. Systemnavnerummet indeholder således en basisklasse, Object, hvorfra alle andre typer i sidste ende er afledt.

    Således er hver enhed i. NET er et objekt med sine egne felter og metoder.

    Derudover indeholder System typer for heltal, tegn, strenge, undtagelseshåndtering, konsol input/output, en gruppe typer til sikker konvertering fra en type til en anden, dataformatering, generering af tilfældige tal og udføre matematiske operationer. Alle applikationer bruger typer fra systemnavneområdet.

    For at ændre en eksisterende FCL-type kan du oprette din egen afledte type. Du kan oprette dine egne navnerum. Alt dette vil nøje overholde de principper, som platformen foreslår. NET

    Her er nogle af de mest almindelige navnerum og en kort beskrivelse af de typer, de indeholder.

    Grundlæggende FCL-navnerum
    Navneområde Indhold
    System Grundlæggende datatyper og hjælperklasser
    System.Samlinger Hash-tabeller, variable arrays og andre beholdere
    System.Data ADO .NET-klasser til dataadgang
    System.Tegning Klasser til grafikoutput (GDI+)
    System.IO Filer og streamer I/O-klasser
    System.Net Klasser til at arbejde med netværksprotokoller, såsom HTTP
    System.Refleksion Klasser til læsning og skrivning af metadata
    System.Runtime.Remoting Klasser til distribuerede applikationer
    System.ServiceProcess Klasser til oprettelse af Windows-tjenester
    System.Threading Klasser til oprettelse og administration af tråde
    System.Web HTTP-understøttelsesklasser
    System.Web.Services Klasser til udvikling af webtjenester
    System.Web.Services. Klasser til udvikling af webservice-klienter-protokoller
    System.Web.UI Hovedklasser brugt af ASP .NET
    System.Web.UI. WebControls ASP .NET-serverkontrol
    System.Wndows.Forms Klasser til GUI-applikationer
    System.Xml Klasser til læsning og indtastning af data i XML-format

    Alle administrerede applikationer bruger

    Sættet af midler, hvormed programmer skrives, rettes, konverteres til maskinkoder, fejlsøges og startes, kaldes udviklingsmiljø eller skal. Platform.Net eller .Net Framework- det er mere end bare udviklingsmiljø programmer, er dette en ny revolutionerende kombination af tidligere separate teknologier fra Microsoft, som giver dig mulighed for at udvikle forskellige typer applikationer på forskellige programmeringssprog til forskellige operativsystemer.

    NET Framework er en tilføjelse til styresystemet, som kan være enhver version af Windows, Unix og et hvilket som helst OS generelt (ifølge udviklerne), og består af en række komponenter. Så, . NET Framework inkluderer:

    1. Fire officielle sprog: C#, VB.NET, Managed C++ og JScript .NET.
    2. En fælles sprog objektorienteret runtime (CLR) deles af disse sprog for at skabe applikationer.
    3. En række indbyrdes forbundne klassebiblioteker under det fælles navn FCL (Framework Class Library).

    Hovedkomponenten af ​​platformen. NET Framework er et fælles sprog runtime-miljø for CLR-programmer. Navnet på miljøet - "common language runtime" - taler for sig selv: det er et runtime-miljø, der er velegnet til forskellige programmeringssprog. CLR funktioner omfatter:

    1. to-trins kompilering: konvertering af et program skrevet på et af programmeringssprogene til administreret kode i mellemsprog ( Microsoft mellemsprog, MSIL eller bare IL), og derefter konvertere IL-koden til maskinkode for en specifik processor, som udføres ved hjælp af en virtuel maskine eller en Just In Time-kompiler (kompilering just in time);
    2. kodestyring: indlæsning og eksekvering af færdiglavet IL-kode ved hjælp af en JIT-kompiler;
    3. adgang til metadata til verifikationsformål kode sikkerhed;
    4. hukommelseshåndtering ved placering af genstande ved hjælp af skraldeopsamleren (Garbage Collector);
    5. håndtering af undtagelser og ekstraordinære situationer, herunder undtagelser på tværs af sprog;
    6. implementering af interaktion mellem administreret kode (kode skrevet til CLR) og ikke-administreret kode;
    7. support til tjenester til udvikling af forskellige typer applikationer.

    Den næste komponent. Net Framework er et FCL - Platform Class Library. Dette bibliotek er opdelt i flere moduler på en sådan måde, at det er muligt at bruge en eller anden del af det afhængigt af de ønskede resultater. Så for eksempel indeholder et af modulerne "klodserne", hvorfra du kan bygge Windows-applikationer, det andet indeholder de "klodser", der er nødvendige for at organisere arbejdet på netværket osv.

    En del af FCL er afsat til at beskrive grundlæggende typer. En type er en måde at repræsentere data på; at identificere de mest fundamentale gør det nemmere at dele programmeringssprog med hjælp. NET Framework. Samlet kaldes dette Common Type System (CTS - unified type system).

    Derudover omfatter FCL-biblioteket Common Language Specification (CLS - common language specification), som fastlægger: de grundlæggende regler for sprogintegration. CLS-specifikationen definerer minimumskravene til et platformssprog. NET. Compilere, der opfylder denne specifikation, producerer objekter, der kan interagere med hinanden. Derfor kan ethvert CLS-kompatibelt sprog bruge alle funktionerne i FCL-biblioteket.

    Som allerede nævnt er de vigtigste sprog beregnet til platformen. NET Framework er C#, VB. NET, Managed C++ og JScript. NET. Til disse sprog tilbyder Microsoft sine egne compilere, der oversætter programmet til IL-kode, som udføres af CLR JIT-kompileren. Udover Microsoft har flere andre virksomheder og akademiske organisationer lavet deres egne compilere, der genererer kode, der kører i CLR. I øjeblikket er compilere kendt for Pascal, Cobol, Lisp, Perl, Prolog osv. Det betyder, at du kan skrive et program, for eksempel i Pascal, og derefter, ved hjælp af den relevante compiler, oprette administreret kode, der kører i CLR.

    Koncepter for anvendelse, projekt, løsning

    NET Framework pålægger ingen begrænsninger for de typer applikationer, der kan oprettes. Når det er sagt, lad os tage et kig på nogle af de mest almindelige applikationstyper:

    1. Konsolapplikationer giver dig mulighed for at output til "konsollen", det vil sige til et shell-vindue.
    2. Windows-applikationer, der bruger Windows-grænsefladeelementer, herunder formularer, knapper, afkrydsningsfelter osv.
    3. Webapplikationer er websider, der kan ses af enhver webbrowser.
    4. Webtjenester er distribuerede applikationer, der giver dig mulighed for at udveksle stort set alle data over internettet ved hjælp af en enkelt syntaks, uanset hvilket programmeringssprog der blev brugt til at oprette webtjenesten, eller på hvilket system den er hostet.

    En applikation under udvikling kaldes et projekt. Flere applikationer kan kombineres til en løsning.

    Et praktisk applikationsudviklingsmiljø er Visual Studio .Net.

    Visual Studio .Net udviklingsmiljø

    På dette kursus lærer vi C#-sproget. Lad os begynde at lære sproget at kende ved at udvikle konsolapplikationer. Vi vil bruge Visual Studio som vores udviklingsmiljø. Netto (VS).

    Du kan oprette C#-kildekodefiler ved hjælp af en almindelig teksteditor såsom Notesblok og kompilere dem til administrerede moduler ved hjælp af den medfølgende kommandolinjekompiler. NET Framework. Det er dog mest praktisk at bruge VS til disse formål, fordi:

    1. VS udfører automatisk alle de nødvendige trin for at kompilere kildekoden.
    2. VS-teksteditoren er konfigureret til at arbejde med sprog, der understøttes af VS, såsom C#, så den intelligent kan registrere fejl og bede dig, mens du skriver, for at finde præcis, hvilken kode der er nødvendig.
    3. VS inkluderer programmer, der lader dig oprette Windows- og webapplikationer ved hjælp af simple træk-og-slip-brugergrænsefladeelementer.
    4. Mange typer af projekter, der kan laves i C#, kan udvikles ud fra "skelet"-kode, der er inkluderet i programmet på forhånd. I stedet for at starte fra bunden hver gang giver VS dig mulighed for at bruge eksisterende kildekodefiler, hvilket reducerer den tid, der kræves for at oprette et projekt.

    Oprettelse af det første projekt

    For at oprette et projekt skal du starte VS og derefter vælge kommandoen fra VS-hovedmenuen Fil – Ny – Projekt. Derefter åbnes en dialogmenu Nyt projekt(se fig. 1.1).


    Ris. 1.1.

    I marken Projekttyper skal vælge Visuel C#, i marken SkabelonerKonsolapplikation.

    I kø Navn indtast applikationens navn Hej. Bemærk, at det samme navn vises i linjen Løsningens navn. Fjern markeringen i afkrydsningsfeltet Opret mappe til applikation(for nu laver vi en simpel applikation, og der er ingen grund til at komplicere dens struktur).

    I kø Beliggenhed bestemme placeringen på disken, hvor du vil gemme dit projekt. Og tryk på knappen Okay. Et omtrentligt billede af skærmen er vist i fig. 1.2


    Ris. 1.2.

    I øverste højre del er der et projektstyringsvindue Solution Explorer Vis - Solution Explorer. Dette vindue viser alle de ressourcer, der er inkluderet i projektet:

    1. AssemblyInfo.cs – information om montage.

      Som et resultat af dens udførelse opretter compileren en såkaldt montage– en fil med en exe- eller dll-udvidelse, der indeholder IL-kode og metadata.

    2. System, System.Data, System.Xml – links til standardbiblioteker.
    3. Program.cs - programtekst i C#-sprog.

    Kommentar. I andre versioner af VS inkluderer dette også en fil med filtypenavnet ico, som er ansvarlig for udseendet af applikationsgenvejen.

    Nederst til højre på skærmen er der et egenskabsvindue. Ejendomme. Hvis den er lukket, kan du aktivere den med kommandoen Vis - Egenskaber. Dette vindue viser de vigtigste egenskaber for det valgte element.

    Hovedskærmens plads er optaget af editorvinduet, som indeholder programteksten, der er oprettet automatisk af miljøet. Teksten er en ramme, hvori programmøren tilføjer den nødvendige kode. I dette tilfælde vises reserverede ord i blåt, kommentarer i grønt og hovedtekst i sort.

    Teksten er struktureret. Hvis du klikker på minustegnet, skjules kodeblokken, og ved at klikke på plustegnet åbnes den.

    Lad os åbne mappen med projektet og se på dets struktur (se fig. 1.3). Filer med fed skrift vises kun efter kompilering.


    Ris. 1.3.

    På dette stadium vil følgende filer være af særlig interesse for os:

    1. Hej.sln– hovedfilen ansvarlig for hele projektet. Hvis du skal åbne et projekt til redigering, skal du vælge denne fil. De resterende filer åbnes automatisk.
    2. Program.cs– en fil, der indeholder kildekode – kode skrevet i C#. Det er denne fil, vi vil arbejde direkte med.
    3. Hej.exe– en fil, der indeholder den genererede IL-kode og projektmetadata. Med andre ord er denne fil et færdigt program, der kan køres på enhver computer, hvorpå .Net-platformen er installeret.

    Lad os nu se på selve programteksten.

    ved hjælp af System er et direktiv, der tillader brug af standard klassenavne fra navneområdet System direkte uden at angive navnet på det rum, hvor de blev defineret.

    Søgeord navneområde opretter sit eget navneområde til projektet, som som standard kaldes projektnavnet. I vores tilfælde hedder navnerummet Hello. Programmøren har dog ret til at angive et andet navn. Et navneområde begrænser omfanget af et navn, hvilket gør det kun meningsfuldt inden for dette rum. Dette gøres, så du kan navngive softwareobjekter uden at bekymre dig om, at de matcher navne i andre applikationer. Således giver navneområder dig mulighed for at undgå modstridende navne på softwareobjekter, hvilket er særligt vigtigt, når applikationer interagerer.

    C# er et objektorienteret sprog, så et program skrevet i det vil være en samling klasser, der interagerer med hinanden. En klasse ved navn Program blev automatisk oprettet (andre versioner af frameworket kan oprette en klasse ved navn Class1 ).

    Denne klasse indeholder kun én metode - Main() metoden. Main() metoden er indgangspunktet til programmet, dvs. Det er med denne metode, at applikationen begynder at køre. Hvert C#-program skal have en Main()-metode.

    Kommentar Det er teknisk muligt at have flere Main()-metoder i et program, i hvilket tilfælde du skal bruge en kommandolinjeparameter til at fortælle C#-kompileren, hvilken Main()-metode der er indgangspunktet til programmet.

    Debug-Start Debugging Hvis programmet køres uden fejl, vil der blive vist en meddelelse i konsolvinduet, som blinker og lukker hurtigt. For at se beskeden i normal tilstand skal du trykke på Ctrl+F5 eller køre kommandoen Debug-Start uden fejlretning.I vores tilfælde åbnes følgende konsolvindue:

    Hvis programkoden indeholder fejl, f.eks. mangler der et semikolon efter output-kommandoen, så åbnes en dialogboks efter tryk på F5-tasten, hvori der vises en meddelelse om, at der er opdaget en fejl og et spørgsmål om arbejde videre. Hvis du svarer Ja, så vil den tidligere succesfuldt kompilerede version af programmet blive udført. Ellers vil processen blive stoppet, og kontrollen vil blive overført til fejllistevinduet Fejlliste.

    Dyrke motion. Skift teksten i koden, så meddelelsen vises på skærmen: Hurra!!!I dag datalogi!!!

    NET Framework fungerer som et miljø til at understøtte, udvikle og køre distribuerede applikationer, der er baseret på komponenter (kontroller).

    Applikationer (programmer) kan udvikles i forskellige programmeringssprog, der understøtter denne teknologi.

    NET Framework giver:

    • fælles brug af forskellige programmeringssprog;
    • sikkerhed og portabilitet af programmer;
    • generel programmeringsmodel baseret på Windows-platformen.

    2. Hvad er hovedkomponenterne i .NET Framework?

    Fra et programmeringssynspunkt består .NET Framework af to hovedkomponenter:

    • fælles sprog eksekveringsmiljø CLR (Common Language Runtime);
    • basisklassebibliotek.

    Common Language Runtime (CLR) løser problemerne med automatisk at opdage .NET-typer, indlæse disse typer og administrere dem. CLR håndterer hukommelsesstyring, applikationsvedligeholdelse, trådbehandling og implementerer adskillige sikkerhedsrelaterede kontroller.

    Basisklassebiblioteket inkluderer definitionen af ​​forskellige primitiver, som kan være: streams, grafiske API'er, databaseimplementeringer, fil I/O osv.

    3. Hvad er driftsprincippet for Common Language Runtime (CLR)?

    Common Language Runtime (CLR) styrer udførelsen af ​​.NET-kode.

    Efter kompilering af et program i C# (eller et andet sprog), oprettes en fil, der indeholder en særlig slags pseudokode eller bytekode (og ikke en eksekverbar fil, som den var før). Denne pseudokode kaldes (MSIL) eller Common Intermediate Language (CIL). Denne pseudokode er Microsoft Intermediate Language.

    Hovedformålet med CLR er at omdanne mellemliggende MSIL-kode til eksekverbar kode under programafvikling.

    Ethvert program, der er kompileret til MSIL-pseudokode, kan udføres i ethvert miljø, der indeholder en implementering af CLR. Dette gør det muligt for programmer at være bærbare inden for .NET Framework.

    Ris. 1. Processen med at konvertere kildekode til MSIL (CIL eller IL) kode og oprette en assembly fil (*.dll eller *.exe)

    Herefter bliver pseudokoden til eksekverbar kode. Dette gøres af JIT-kompileren. JIT (Just-in-time) kompilering er kompilering på farten.

    CLR er ansvarlig for at bestemme, hvor samlingen skal placeres.

    Den ønskede type, der placeres i samlingen (såsom en ArrayList-klasse eller anden type) bestemmes i den binære fil (*.dll eller *.exe) ved at læse filens metadata.

    CLR placerer derefter typen, der er læst fra samlingen, i hukommelsen.

    CLR'en omdanner derefter CIL-koden til passende instruktioner, der er skræddersyet til den specifikke platform (afhængigt af pc'en, operativsystemet osv.). Derudover finder de nødvendige sikkerhedstjek sted i denne fase.

    Den sidste ting at gøre er at udføre den ønskede programkode.

    4. Hvad er MSIL mellemsprog ( Microsoft mellemsprog) eller CIL (Common Intermediate Language)?

    Først blev det mellemliggende pseudokodesprog kaldt Microsoft mellemsprog(MSIL). Senere (i de seneste versioner af .NET) blev dette navn ændret til Common Intermediate Language (CIL - Common Intermediate Language). Forkortelserne MSIL, CIL og IL (Intermediate Language) betyder det samme.

    Mellemsprog CIL (eller MSIL) dannes efter kompilering af et program i et eller andet programmeringssprog, der understøtter .NET Framework.

    MSIL er pseudokode. MSIL definerer et sæt instruktioner, der:

    • kan overføres til forskellige platforme;
    • er ikke afhængig af en bestemt processor.

    Det er MSIL faktisk bærbart assemblersprog

    5. Hvad er en samling ud fra .NET-teknologiens synspunkt?

    Samlinger er filer med *.dll eller *.exe filtypenavne, der indeholder .NET platform-uafhængige Intermediate Language (IL) instruktioner samt type metadata.

    Forsamlingen oprettes ved hjælp af .NET-kompileren. En samling er et stort binært objekt.

    Forsamlingen er designet til at bevare navnerum. Navneområder indeholder typer. Typer kan være klasser, delegerede, grænseflader, opregninger, strukturer.

    En samling kan indeholde et vilkårligt antal navneområder. Ethvert navneområde kan indeholde et vilkårligt antal typer (klasser, grænseflader, strukturer, opregninger, delegerede).

    6. Hvad indgår i samlinger?

    Samlinger indeholder CIL-kode (MSIL-kode eller IL-kode) og metadata.

    CIL-kode kompileres kun til en bestemt platform, hvis den tilgås fra .NET runtime.

    Metadata beskriver detaljeret funktionerne for hver type, der findes inden for en given .NET binær enhed.

    For eksempel Når du opretter en Windows Forms-applikation i C#, oprettes en Assembly.info-fil. Denne fil er placeret i undermappen Egenskaber i forhold til hovedprogrammappen. Denne fil giver generel information om forsamlingen.

    7. Hvad er et manifest?

    Manifest er en beskrivelse af selve samlingen ved hjælp af metadata.

    Manifestet indeholder følgende oplysninger:

    • om den aktuelle version af forsamlingen;
    • information om kultur (lokalisering af linje- og grafiske ressourcer);
    • en liste over links til alle eksterne samlinger, der er nødvendige for korrekt funktion.

    8. Diagram over interaktionen mellem kildekoden, .NET-kompileren og .NET-runtime-motoren.

    Programmøren opretter kildekoden til applikationen i et sprog, der understøtter .NET-teknologi (C#, C++/CLI, Visual Basic .NET osv.). Applikationen er oprettet i nogle programmeringsmiljøer, såsom Microsoft Visual Studio. Compileren genererer en assembly - en fil, der indeholder CIL instruktioner, metadata og et manifest.

    Efter at have kørt dette program på en bestemt computer (bestemt platform), startes .NET runtime-motoren. Først skal en af ​​versionerne (mindst) af .NET Framework installeres på computeren.

    Hvis kildekoden bruger basisklassebiblioteker (f.eks. fra mscorlib.dll-samlingen), indlæses de ved hjælp af klasseindlæseren.

    JIT-kompileren kompilerer samlingen under hensyntagen til (linker) hardware- og softwarefunktionerne på den computer, som applikationen kører på.

    Herefter kører applikationen.

    Figur 2. Forholdet mellem kildekode, compiler og .NET runtime engine

    9. Hvilke typer samlinger findes der?

    Der er to typer samlinger:

    • enkelt-fil samlinger;
    • multi-fil samlinger.

    En samling, der består af et enkelt modul (*.dll eller *.exe), kaldes single-file. Enkeltfilsamlinger placerer alle de nødvendige CIL-instruktioner, metadata og manifester i én veldefineret pakke.

    En assembly, der består af mange .NET binære kodefiler, kaldes en multi-fil assembly. Hver af disse filer kaldes et modul.

    I en multi-fil-samling er et af modulerne det primære (primære).

    10. Hvilken fil indeholder hovedsamlingen af ​​MS Visual Studio-biblioteket?

    Hovedsamlingen er placeret i filen "mscorlib.dll".

    11. Hvad er det generelle CTS-system?

    CTS (Common Type System) - et typesystem, der indeholder en komplet beskrivelse af alle mulige datatyper og programkonstruktioner, der understøttes af det fælles sprog runtime CLR. Den beskriver også, hvordan disse enheder kan interagere med hinanden.

    Typer kan være klasser, grænseflader, strukturer, opregninger, delegerede.

    12. Hvad er formålet med den fælles sprogspecifikation CLS?

    Som du ved, kan ikke alle programmeringssprog, der er .NET-kompatible, understøtte funktionaliteten af ​​CTS-systemet. Til dette formål anvendes den fælles sprogspecifikation CLS (Common Language Specification).

    Formålet med CLS er kun at beskrive den delmængde af almindelige typer og programmeringskonstruktioner, der er accepteret af absolut alle programmeringssprog, der understøtter .NET.

    13. Hvilke programmeringssprog understøtter .NET-teknologi?

    I MS Visual Studio-applikationsudviklingssystemet understøttes .NET-teknologien af ​​følgende programmeringssprog: C#, Visual Basic .NET, C++/CLI, JScript .NET, F#, J#.

    For at kunne bruge .NET-teknologi skal du installere software på din computer Microsoft .NET Framework Software Development Kit(SDK) eller Microsoft Visual Studio af enhver version.

    14. Hvad er et navneområde?

    Et navneområde er beregnet til at forene en gruppe typer, der er relateret til hinanden fra et semantisk synspunkt. Typer placeres i samlinger (montage). Typer betyder klasser, delegerede, grænseflader, strukturer og opregninger.

    Eksempler på navneområdenavne:

    System System.Data System.IO System.Samlinger System.Threading.Tasks

    System.Data-navneområdet indeholder f.eks. hovedtyperne til at arbejde med databaser, og System.Collections-navnerummet indeholder hovedtyperne til arbejde med samlinger.

    15. Hvordan viser man indholdet af samlinger, navnerum og typer i MS Visual Studio?

    Microsoft Visual Studio-systemet har en værktøjsobjektbrowser, som kaldes fra menuen Vis (Figur 3).

    Ris. 3. Kaldning af objektbrowserværktøjet

    Dette åbner vinduet Objektbrowser, som viser de samlinger, der bruges i en bestemt teknologi.

    Figur 4 viser en liste over samlinger, der vises i ".NET Framework 4"-teknologien. En samling med navnet "mscorlib" er fremhævet.

    Ris. 4. Objektbrowservindue med mscorlib.dll-samlingen fremhævet

    Hvis du udvider indholdet af mscorlib-samlingen (den " + "), så vil en liste over alle navneområder for denne samling blive vist (figur 5). Som du kan se på figuren, omfatter samlingen navneområderne Microsoft.Win32, System, System.Collections, System.Collections.Concurrent og mange andre.

    Ris. 5. mscorlib-samlingen og listen over navneområder, der er inkluderet i den

    Alle navneområderne udvides på samme måde. Navneområder beskriver typer. Typer beskriver metoder, egenskaber, konstanter osv.

    Figur 6 viser BinaryReader-klassen fra System.IO-navneområdet. Tilsyneladende implementerer klassen metoder kaldet BinaryReader(), Close(), Dispose(), FillBuffer() og andre.

    Ris. 6. Indhold af BinaryReader-klassen

    16. Hvordan forbinder man et navneområde i et C#-program?

    For at forbinde et navneområde skal du bruge nøgleordet