Vad har hänt. Vilka typer av applikationer kan byggas på plattformen

Vad har hänt. Vilka typer av applikationer kan byggas på plattformen

God dag. Alexey Gulynin är i kontakt. I den förra artikeln lärde vi oss om sätt att skicka argument till en metod i C#. I den här artikeln skulle jag vilja berätta igen (mer med enkla ord), vilket är .Net Framework och Visual Studio. Den här artikeln är en fortsättning på Visual Studio-beskrivningen och .Net Framework-artiklarna .Net Frameworkär en CLR-miljö (Common Language Runtime). kärnkomponenten i .Net Framework), som säkerställer exekvering av hanterad kod. CLR hanterar denna kod. Vad är hanterad kod? Kod skriven för plattformen. NET Framework kompileras inte till slutlig maskinkod, utan till ett mellanspråk (det så kallade IL - Intermediate Language). Därefter överförs denna sammansättning till användaren (maskinen måste ha .Net Framework installerat), laddas in i minnet och översätter IL-kommandon till åtgärder som måste utföras.

Vad är poängen med mellanspråk IL?

För det första är den plattformsoberoende, inte knuten till en specifik processor.

För det andra tillåter dess närvaro CLR att styra driften av ditt program, dvs. låt henne inte göra några oacceptabla saker (till exempel minnesmanipulation).

Andra viktiga komponenten efter CLR är Klassbibliotek. .NET Framework inkluderar Ett stort antal klasser, uppdelade i namnutrymmen, som tillhandahåller all grundläggande funktionalitet. Detta är den funktionalitet som ditt program kan kräva, till exempel att arbeta med filer, nätverket, processer och det grafiska undersystemet.

Tredje komponentenär Development Frameworks (med andra ord utvecklingsbibliotek). Detta inkluderar bibliotek som WPF (Windows Presentation Foundation), ASP.NET, Entity Framework, WCF (Windows Communication Foundation), Windows Store, etc. I själva verket är dessa också klasser. Skillnaden är att dessa klasser är designade för att lösa specifika problem:

  • WPF - för att arbeta med grafiska applikationer
  • ASP.NET - för att arbeta med webbapplikationer
  • WCF - för att arbeta med nätverket och skapa distribuerade (klient-server) applikationer
  • Entity Framework - för att arbeta med databasen.

Vid tidpunkten för att skriva denna artikel senaste versionenär .Net Framework 4.6

Den huvudsakliga utvecklingsmiljön som rekommenderas av Microsoft är Visual Studio. Microsoft har vanligtvis denna situation: hur blir det? en ny version.NET Framework, sedan kommer en ny version av Visual Studio efter ett tag. Vad som ingår i Visual Studio (grundläggande):

  1. Textredigerare med syntaxkodmarkering
  2. IntelliSence hjälpsystem (kan anropas automatiskt eller med kortkommandot Ctrl + Mellanslag (mellanslag)
  3. Kompilatorer från olika språk
  4. Rapid Application Development (RAD)
  5. Visuell designer av gränssnitt, diagram
  6. Komponent för att arbeta med servrar och databaser
  7. Alternativ för IIS-webbserver och SQL-server Express
  8. Debuggers, profilerare, komponenter som låter dig hantera fel
  9. MSDN hjälpsystem

När detta skrivs är den senaste versionen Visual Studio 2015.

Hur konceptet med program fungerar i Visual Studio. I studion finns konceptet ”Project” och ”Solution”. Ett projekt är en sammanställningsenhet. Den består av en uppsättning filer. Hela projektet är vanligtvis sammanställt till en assembly (exe-fil eller dll-fil). Projekt kan grupperas i Solution. En lösning är helt enkelt en samling projekt som kan eller kanske inte är relaterade till varandra (vanligtvis är de det).

Eftersom den. NETTO Framework är en kraftfull plattform för applikationsutveckling, den gör det möjligt att utveckla applikationer av helt andra typer.

Skrivbordsapplikationer (applikationer som körs på lokal dator användare);

· webbapplikationer (applikationer som körs inom en webbserver och är tillgängliga för användaren via en webbläsare under HTTP/HTTPS-protokollet);

· webbapplikationer med ett rikt användargränssnitt (applikationer som levereras till användaren via HTTP/HTTPS-protokollet i webbläsaren och exekveras på klientsidan);

· webbtjänster (programkod som körs på serversidan och kan anropas från klienten för att ta emot data eller utföra en operation);

· mobilapplikationer (applikationer som körs på mobila enheter).

För var och en av följande typer av applikationer i kompositionen. NETTO Framework det finns motsvarande tekniker som låter dig skapa applikationer. Förutom, . NETTO Ramverket innehåller vanliga bibliotek som kan användas i olika typer av applikationer. Dessa bibliotek inkluderar följande bibliotek:

· för att arbeta med strängar;

· för att arbeta med matematiska funktioner;

· för att arbeta med grafik;

· tillgång till data;

· för att arbeta med filer och andra in-/utdataoperationer;

· att utföra kryptografiska operationer;

· att organisera datasynkronisering mellan datakällor;

· och ett stort antal andra bibliotek.

Låt oss ta en översikt över varje typ av applikation. Som nämnts ovan, för varje typ av applikation inom plattformen. NETTO Ramar det finns speciella projektmallar.

Desktop-applikationer skiljer sig genom att de startas direkt på användarens dator. Detta är den vanligaste typen av applikation. Skrivbordsapplikationer har vanligtvis tillgång till användarens datorresurser, som t.ex HDD, ljudutrustning osv. Fördelarna med denna typ av applikation inkluderar interaktivitetanvändargränssnitt och möjligheten att använda applikationen oavsett nätverksanslutning Internet och andra resurser. Men för att sådana applikationer ska fungera måste de installeras på den lokala dator.

Desktopapplikationer kan delas in i tre typer - fönsterapplikationer, konsolapplikationer och tjänster Windows. Fönsterprogram har ett grafiskt gränssnitt. Konsolapplikationer brukar se ut kommandorad, A gränssnitt Sådana applikationer är textuella snarare än grafiska. Till sist, tjänsterna Windows har inget användargränssnitt alls, utan fungerar i bakgrunden.

Att bygga applikationer med ett grafiskt gränssnitt med fönster inom plattformen. NETTO Ramteknik kan användas Windows Formulär (tillgängliga från. NETTO Framework 1.0) och Windows Presentation Foundation(tillgänglig från. NETTO Framework 3.0). Den senaste tekniken är nyare och mer lovande.


Webbapplikationer De skiljer sig från stationära sådana genom att de arbetar på distans på en webbserver. Användare använder funktionerna hos webbapplikationer via webbläsare och protokoll HTTP/HTTPS. Fördelen med den här typen av applikationer är att det inte finns något behov av att installera dem på dator varje användare – Ansökan måste installeras på webben server, varefter den blir tillgänglig för alla användare. Nackdelen med sådana applikationer är dock den begränsade förmågan att bygga användargränssnitt. Detta händer pga användargränssnitt baseras på format HTML, CSS och JavaScript, som är ganska begränsade. Därför är funktionaliteten hos användargränssnitt vanligtvis ganska begränsad.

Eftersom webbapplikationer har en allvarlig nackdel - begränsad kapacitet Förbi bildandet av användargränssnittet - en ny typ av applikation har dykt upp, som kallas rika internetapplikationer eller Internetapplikationer med ett rikt användargränssnitt (Rich Internet Applications, RIA). Ideologin för dessa applikationer är att i webbläsare särskild integration tillägg(plugin), som kan visa ytterligare Typ av innehåll. Efter detta, när användareöppnar sidan i webbläsaren, programkoden som körs inom ramen för detta tillägg överförs till klientsidan. Eftersom i det här fallet all kod körs på klientsidan har utvecklare fler alternativ Förbi skapa användargränssnitt.

Det finns flera tekniker tillgängliga för att bygga denna typ av applikation. En av de mest kända teknikerna är Adobe-tekniken Blixt. Utöver det finns även Microsoft Silverlight-teknik, som möjliggör den bekvämaste integrationen med andra teknologier inom ramverket. NETTO Ramverk.

En annan typ av applikation är Tjänster(eller webbtjänster). Tjänster är en viss programkod som finns på servern och körs Förbi begäran från användaren. Du kan till exempel skapa en uppsättning tjänster Förbi arbetar med data från Databas, lagrad på servern. Vanligtvis kommer andra typer av applikationer (skrivbordsapplikationer, webbapplikationer, etc.) åt tjänster för att utföra någon operation på servern eller hämta data från servern.

Inom plattformen. NETTO Ramverk det finns ett antal tekniker som gör att du kan skapa tjänster. Den äldsta tekniken är ASP..NET webb Tjänster. Det låter dig skapa enkla webbtjänster som fungerar Förbi protokoll HTTP/HTTPS. Vidareutveckling var tekniken Windows Communication Foundation(WCF). Denna plattform är det mest kraftfulla och flexibla verktyget som stöder Olika typer kanaler ( HTTP, TCP, namngivna rör, etc.) och utökar utvecklarens möjligheter avsevärt Förbi skapande av tjänster.

Det finns också ytterligare grenar av WCF-projektet - det här är WCF Syndikering Tillägg (WCF REST) ​​och VÄSEN.NET-data Tjänster. Dessa projekt är utformade för att göra det möjligt att enkelt bygga dataåtkomsttjänster.

Slutligen är den sista typen av applikation mobilapplikationer. Mobila applikationer arbeta inom mobila enheter baserade på operativsystemet Windows Mobile . Det finns också implementeringar för en delmängd av funktioner för mobila enheter. NETTO Framework, som kallas. NET Compact Ramverk.

Alltså hela utbudet av teknologier inom plattformen. NETTO Ramverk kan representeras av följande diagram.

Introduktion

En PLATTFORM är åtminstone en programexekveringsmiljö och... något annat som bestämmer egenskaperna för utveckling och exekvering av programkod - programmeringsparadigm, programmeringsspråk, många basklasser.

Microsoft.NET (.NET Framework) är en mjukvaruplattform. Innehåller följande huvudkomponenter: Common Language Runtime (CLR) och .NET Framework-klassbiblioteket (.NET FCL).

CLS (Common Language Specification) är en allmän specifikation för programmeringsspråk. Det är en uppsättning konstruktioner och begränsningar som ger vägledning till skapare av bibliotek och kompilatorer i .NET Framework. Bibliotek byggda enligt CLS kan användas från alla programmeringsspråk som stöder CLS. CLS-kompatibla språk (inklusive Visual C#, Visual Basic, Visual C++) kan integreras med varandra. CLS är grunden för interspråkig kommunikation inom Microsoft.NET-plattformen.

CLR (Common Language Runtime) – Runtime Environment eller Virtual Machine. Säkerställer att bygget är klart. Kärnkomponent i .NET Framework. Under Virtuell maskin förstå abstraktionen av ett inkapslat (separat) hanterat operativsystem på hög nivå, vilket säkerställer exekvering av programkod och involverar att lösa följande uppgifter:

§ kodhantering (laddning och exekvering),

§ minneshantering vid placering av objekt,

§ isolering applikationsminne,

§ kodsäkerhetskontroll,

§ konvertering av mellanspråk till maskinkod,

§ tillgång till metadata (utökad information om typer),

§ undantagshantering, inklusive undantag på flera språk,

§ interaktion mellan hanterad och ohanterad kod (inklusive COM-objekt),

§ stöd för utvecklingstjänster (profilering, felsökning etc.).

Kort sagt, CLR är en uppsättning tjänster som krävs för att utföra ett bygge. I det här fallet kan assembly-programkoden antingen hanteras (kod, när den exekveras, aktiverar i synnerhet CLR minneshanteringssystemet) eller ohanterad (”gammal” programkod).

Själva CLR består av två huvudkomponenter: kärnan (mscoree.dll) och basklassbiblioteket (mscorlib.dll). Närvaron av dessa filer på disken är ett säkert tecken på att åtminstone ett försök gjordes att installera .NET-plattformen på datorn.

Runtime-kärnan implementeras som mscoree.dll-biblioteket. När en assembly länkas byggs speciell information in i den, som när applikationen startas (EXE) eller när biblioteket laddas (anropar en DLL från en ohanterad modul - anropar LoadLibrary-funktionen för att ladda en hanterad assembly) leder till att laddning och initialisering av CLR. När CLR har laddats in i processens adressutrymme, utför runtime-kärnan följande åtgärder:

§ hittar monteringsplatsen,

§ laddar sammansättningen i minnet,

§ analyserar sammansättningens innehåll (identifierar klasser, strukturer, gränssnitt),

§ analyserar metadata,

§ tillhandahåller sammanställning av mellanspråkskod (IL) till plattformsberoende instruktioner (monteringskod),

§ Utför kontroller relaterade till säkerställa säkerhet,

§ med hjälp av huvudapplikationstråden överför kontrollen till ett fragment av assembly-koden som konverterats till processorkommandon.

FCL (.NET Framework Class Library) är ett CLS-kompatibelt objektorienterat bibliotek med klasser, gränssnitt och typsystem (värdetyper) som ingår i Microsoft .NET-plattformen.

Detta bibliotek ger tillgång till funktionalitet system och är tänkt som en grund för utveckling av .NET-applikationer, komponenter, kontroller.

NET-klassbiblioteket är den andra komponenten i CLR.

NET FCL kan användas av ALLA .NET-applikationer, oavsett syfte, arkitektur som används för att utveckla programmeringsspråket. I synnerhet innehåller den:

§ inbyggda (elementära) typer, presenterade som klasser (på .NET-plattformen är allt byggt på strukturer eller klasser),

§ klasser för att utveckla ett grafiskt användargränssnitt (Windows Form),

§ klasser för utveckling av webbapplikationer och webbtjänster baserade på ASP.NET-teknik (Web Forms),

§ klasser för att utveckla XML och Internetprotokoll (FTP, HTTP, SMTP, SOAP),

§ klasser för att utveckla applikationer som fungerar med databaser (ADO.NET),

§ och mycket mer.

NET-applikationen är en applikation utformad för att köras på Microsoft.NET-plattformen. Implementerat i programmeringsspråk som överensstämmer med CLS.

MSIL (Microsoft Intermediate Language, även känt som IL - Intermedia Language) är ett mellanspråk för Microsoft.NET-plattformen. Källkoden för .NET-applikationer är skriven på programmeringsspråk som överensstämmer med CLS-specifikationen. För programmeringsspråk som överensstämmer med CLS-specifikationen kan en omvandlare till MSIL byggas. Således kan program på dessa språk översättas till mellankod i MSIL. Tack vare CLS-efterlevnad resulterar översättning av programkod skriven på olika språk i kompatibel IL-kod.

Faktum är att MSIL är en virtuell processormontör.

METADATA - vid konvertering av programkod till MSIL genereras även ett METADATA-block som innehåller information om data som används i programmet. I själva verket är dessa uppsättningar tabeller som innehåller information om de datatyper som definieras i modulen, om de datatyper som refereras till. denna modul. Tidigare lagrades sådan information separat. Till exempel kan en applikation innehålla information om gränssnitt som beskrivs i Interface Definition Language (IDL). Metadata är nu en del av den hanterade modulen.

Specifikt används metadata för att:

§ spara information om typer. Vid kompilering behövs inte längre header- och biblioteksfiler. Allt nödvändig information kompilatorn läser direkt från hanterade moduler,

§ kodverifiering under modulkörning,

§ dynamisk minneshantering (frigör minne) under modulkörning,

§ när man utvecklar ett program med standardverktyg (Microsoft Visual Studio.NET)

§ Dynamisk tips (IntelliSense) tillhandahålls baserat på metadata.

Språk för vilka översättning till MSIL har implementerats:

och många andra språk.

Körbar - Oavsett kompilator (och inmatningsspråk) är utdata från en .NET-applikationsöversättning en hanterad körbar (hanterad modul). Detta är en standard Windows bärbar körbar (PE - Portable Executable) fil.

Elementen i den hanterade modulen presenteras i tabellen.

En hanterad modul innehåller hanterad kod.

Hanterad kod är kod som körs i CLR. Koden är uppbyggd på basis av strukturer och klasser deklarerade i källmodulen som innehåller metoddeklarationer. Hanterad kod måste ha en viss nivå av information (metadata) för runtime-miljön. C#-, Visual Basic- och JScript-kod hanteras som standard. Visual C++-kod hanteras inte som standard, men kompilatorn kan producera hanterad kod genom att ange ett kommandoradsargument (/CLR). En av funktionerna i hanterad kod är närvaron av mekanismer som låter dig arbeta med MANAGED DATA.

Hanterad data är objekt som, under exekvering av modulkod, placeras i hanterat minne (på den hanterade högen) och förstörs av CLR-sopsamlaren. C#-, Visual Basic- och JScript .NET-data hanteras som standard. C#-data kan också markeras som ohanterat.

Assembly är den grundläggande byggstenen för en applikation i .NET Framework. Hanterade moduler kombineras till sammanställningar. En sammansättning är en logisk gruppering av en eller flera hanterade moduler eller resursfiler. Hanterade moduler inom sammansättningar exekveras i Runtime Environment (CLR). En sammansättning kan antingen vara ett körbart program (i en fil med filtillägget .EXE) eller en biblioteksmodul (i en fil med filtillägget .DLL). Samtidigt har sammansättningen ingenting gemensamt med vanliga (gammaldags!) körbara applikationer och biblioteksmoduler.

En monteringsdeklaration (Manifest) är en integrerad del av en sammanställning. En annan uppsättning metadatatabeller som:

§ identifierar sammansättningen i form av ett textnamn, dess version, kultur och digital signatur (om sammansättningen delas mellan applikationer),

§ bestämmer vilka filer som ingår (med namn och hash),

§ anger de typer och resurser som finns i sammansättningen, inklusive en beskrivning av de som exporteras från sammansättningen,

§ listar beroenden av andra församlingar,

§ anger uppsättningen rättigheter som krävs för att sammansättningen ska fungera korrekt.

Denna information används under körning för att hålla applikationen igång korrekt.

Processorn KAN INTE exekvera IL-kod. Och översättningen av IL-kod utförs av en JIT-kompilator (just in time), som aktiveras av CLR vid behov och exekveras av processorn. Samtidigt sparas resultaten från JIT-kompilatorn i random access minne. En mappning upprättas mellan ett fragment av översatt IL-kod och motsvarande minnesblock, vilket därefter tillåter CLR att överföra kontroll till processorinstruktioner skrivna i detta minnesblock, förbi ett upprepat anrop till JIT-kompilatorn.

Det är tillåtet i CLR samarbete och interaktion mellan komponenter programvara, implementerad i olika programmeringsspråk.

Baserat på ett tidigare genererat metadatablock säkerställer CLR EFFEKTIV interaktion mellan körande .NET-applikationer.

För CLR är alla sammansättningar desamma, oavsett vilka programmeringsspråk de skrevs på. Huvudsaken är att de följer CLS. Faktum är att CLR bryter gränserna för programmeringsspråk (interoperabilitet över flera språk). Således, tack vare CLS och CTS, är .NET-applikationer faktiskt MSIL (IL)-applikationer.

CLR tar sig an många problem som traditionellt har varit i fokus för applikationsutvecklare. Funktioner som utförs av CLR inkluderar:

§ verifiering och dynamisk (JIT) kompilering av MSIL-kod till processorinstruktioner,

§ minne, process och trådhantering,

§ organisering av interaktion mellan processer,

§ lösa säkerhetsproblem (inom ramen för befintlig säkerhetspolicy i systemet).

En AppDomain är en logisk assembly-behållare som används för att isolera en applikation inom en processs adressutrymme. Alla föremål skapad av applikationen, skapas inom en specifik applikationsdomän. Flera applikationsdomäner kan finnas inom en enda operativsystemprocess. CLR isolerar applikationer genom att hantera minne inom applikationsdomänen.

Kod som körs i CLR (CLR-processen) är separat från andra processer som körs på datorn samtidigt.

En normal process startas av systemet inom det adressutrymme som specifikt tilldelats processen. CLR ger möjlighet att köra flera hanterade applikationer i EN PROCESS. Varje hanterad applikation associerar med applikationens egen domän (förkortat AppDomain). Utöver huvuddomänen kan flera ytterligare domäner skapas i applikationen.

Strukturen för CLR-körtiden visas på bilden.

Domänegenskaper:

§ domäner är isolerade från varandra. Objekt skapade inom en domän är inte tillgängliga från en annan domän.

§ CLR kan avlasta domäner tillsammans med alla sammansättningar som är associerade med dessa domäner,

§ ytterligare konfiguration och domänskydd är möjligt,

§ En speciell säker åtkomstmekanism (marshaling) är implementerad för datautbyte mellan domäner.

§ .NET Framework har utvecklat sin egen komponentmodell, vars element är .NET-sammansättningar (.NET-assembly), och för direkt och bakåtkompatibilitet med COM/COM+-modellen har CLR inbyggda mekanismer (COM Interop ) som ger åtkomst till COM-objekt enligt .NET-regler och till .NET-sammansättningar enligt COM-regler. .NET-applikationer kräver dock inte registrering av komponenter i systemregistret Windows.

För att köra en .NET-applikation räcker det att placera den relaterade den här applikationen sammanställningar i en katalog. Om sammansättningen kan användas i flera applikationer så placeras och registreras den med särskild nytta i GAC (Global Assembly Cache).

CTS - Common Type System Standardsystem Typer. Stöds på alla plattformsspråk. På grund av det faktum att .NET är ett barn till OOP, talar vi här om elementära typer, klasser, strukturer, gränssnitt, delegater och uppräkningar.

Common Type System är en viktig del av runtime-miljön, som definierar strukturen för syntaktiska konstruktioner, sätt att deklarera, använda och tillämpa VANLIGA runtime-typer. CTS innehåller grundläggande information om systemet med ALLMÄNNA FÖRdefinierade typer, deras användning och hantering (regler för värdeomvandling). CTS spelar en viktig roll för att integrera flerspråkiga hanterade applikationer.

Ett namnområde är ett sätt att organisera ett typsystem i en enda grupp. Det finns ett gemensamt språkbibliotek med basklasser. Och namnutrymmeskonceptet ger effektiv organisation och navigering inom detta bibliotek. Oavsett programmeringsspråk tillhandahålls åtkomst till vissa klasser genom att gruppera dem inom gemensamma namnutrymmen.

Namnutrymme Syfte
Systemet
System.Data För att komma åt databaser
System.Data.Common
System.Data.OleDb
System.Data.SqlClient
System.Samlingar Klasser för att arbeta med containerobjekt
System.Diagnostik Klasser för spårning och felsökning av kod
System.ritning Klasser grafiskt stöd
System.Drawing.Drawing2D
System.Ritning.Utskrift
System.IO I/O-stöd
System.Net Stöd för dataöverföring över nätverk
System.Reflektion Arbeta med anpassade typer vid Runtime
System.Reflection.Emit
System.Runtime.InteropServices Stöd för interaktion med "vanlig kod" - DLL-filer, COM-servrar, Fjärranslutning
System.Runtime.Remoting
System.Säkerhet Kryptografi, behörigheter
System.Trådning Arbeta med trådar
System.WEB Arbeta med webbapplikationer
System.Windows.Form Arbeta med element Windows-gränssnitt
System.XML Stöd för XML-data

Exekveringen av ohanterade körbara moduler (vanliga Windows-applikationer) tillhandahålls direkt av Windows-systemet. Ohanterade moduler körs in Windows-miljö som "enkla" processer. Det enda kravet som sådana moduler måste uppfylla är att de fungerar korrekt i Windows-miljön. De måste fungera "korrekt" (inte krascha systemet, undvika minnesläckor, inte blockera andra processer och korrekt använda själva operativsystemet för att arbeta för processer). Det vill säga motsvarar det mesta generella regler arbeta under Windows.

Samtidigt är de flesta problemen med korrekt exekvering av en ohanterad modul (problem med interaktion, minnesallokering och frigöring) problem för applikationsutvecklare. Till exempel är den välkända COM-tekniken ett sätt att organisera interaktionen mellan heterogena komponenter i en applikation.

Objekt - in i vidare mening Detta är ett minnesområde (stack eller heap) som tilldelas under programkörning för att skriva eventuella värden. Det kännetecknas av typen (en fast uppsättning egenskaper som bestämmer storleken på det ockuperade området, metoden för att tolka värdet, värdeintervallet, uppsättningen av åtgärder som tillåts när man manipulerar ett objekt) plats i minnet (adress).

Sophämtning är en mekanism som gör att CLR kan avgöra när ett objekt inte längre är tillgängligt i ett programs hanterade minne. Under sophämtning frigörs hanterat minne. För applikationsutvecklaren innebär att ha en sopsamlingsmekanism att han inte längre behöver oroa sig för att frigöra minne. Detta kan dock kräva ändringar i programmeringsstilen, till exempel bör särskild uppmärksamhet ägnas åt proceduren för att frigöra systemresurser. Det är nödvändigt att implementera metoder som frigör systemresurser under applikationskontroll.

En stack är ett speciellt organiserat minnesområde designat för tillfällig lagring av objektvärden (variabler och konstanter), för att skicka parametrar vid anrop av metoder och för att lagra returadressen. Stackhantering är ganska enkel jämfört med heap. Det är baserat på att ändra värdet på motsvarande register på toppen av stacken. När stackstorleken minskas går objekt helt enkelt förlorade.

Program i C#

Ett program är en korrekt konstruerad (som inte ger invändningar från C#-kompilatorn) sekvens av meningar, på basis av vilken en sammansättning bildas.

I allmänhet skapar programmeraren en fil som innehåller klassdeklarationer, som tillhandahålls som indata till kompilatorn. Sammanställningsresultatet presenteras av översättaren som en sammansättning och bestäms av programmerarens preferenser. I princip kan monteringen vara av två typer:

§ Bärbar körbar fil (PE-fil med .exe-tillägg), lämplig för direkt exekvering av CLR,

§ Dynamic Link Library File (DLL-fil med .dll-tillägg), avsedd för återanvändning som en komponent som en del av alla program.

I vilket fall som helst, baserat på inmatningskoden, bygger översättaren en IL-modul, ett manifest och genererar en sammansättning. I framtiden kan monteringen antingen utföras efter JIT-kompilering, eller kan användas som en del av andra program.

Miljöbegreppet. Miljöfaktorer och deras klassificering

Termen "miljö" inom ekologi används brett och i snäv mening ord. I ordets vidaste bemärkelse är miljö miljön. Miljön är helheten av alla livsvillkor som finns på planeten jorden. Den amerikanske biologen P. Ehrlich beskrev i sin bok "The Population Explosion", som publicerades i slutet av 60-talet, miljön så här: "Vår miljö är ett unikt "skinn" av jord, vatten och gaser. atmosfär, mineralnäringsämnen och levande organismer som täcker en annars omärklig planet." Miljön i ordets snäva bemärkelse är livsmiljön. Livsmiljön är den del av naturen som omger organismen och som den direkt interagerar med. Varje organisms livsmiljö är varierande och föränderlig. Den är sammansatt av många element av levande och livlös natur och element som införts av människan som ett resultat av hennes ekonomiska aktiviteter.
Alla delar av miljön är ojämlika i förhållande till organismen: vissa av dem påverkar dess livsaktivitet, medan andra är likgiltiga för den. I detta avseende är alla delar av miljön grupperade enligt följande.
1. Neutrala faktorer är de delar av miljön som inte påverkar kroppen och inte orsakar någon reaktion i den.
2. Miljöfaktorer är de delar av miljön som kan direkt eller indirekt påverka organismen under åtminstone en av faserna av dess individuella utveckling och orsaka en specifik adaptiv reaktion i den.
Miljömässiga miljöfaktorer är olika de har olika karaktär och specifika handlingar. Beroende på deras betydelse för kroppen är de indelade i två grupper:
1. Existensvillkor eller levnadsförhållanden är de miljöfaktorer utan vilka organismen inte kan existera och som den är i oupplöslig enhet. Frånvaron av minst en av dessa faktorer leder till att organismen dör.
2. Sekundära faktorer är de miljöfaktorer som inte är livsnödvändiga, men som kan modifiera en organisms existens, förbättra eller förvärra den.
Analys av det enorma utbudet av miljöfaktorer beroende på deras ursprung gör att vi kan dela upp dem i tre stora grupper, som var och en i sin tur kan delas in i undergrupper:
I. Abiotiska faktorer är faktorer av livlös natur som direkt eller indirekt påverkar organismen. De är indelade i fyra undergrupper:
a) klimatfaktorer är alla faktorer som bildar klimatet och kan påverka organismers liv (ljus, temperatur, fuktighet, Atmosfärstryck, vindhastighet, etc.);
b) edafiska, eller jordmån, faktorer är egenskaper hos jorden som påverkar organismernas liv. De är i sin tur indelade i fysikaliska (mekanisk sammansättning, klumpning, kapilläritet, porositet, luft- och fuktpermeabilitet, luft- och fuktkapacitet, densitet, färg etc.) och kemiska (surhet, mineralsammansättning, humushalt) egenskaper hos jord;
c) orografiska faktorer, eller relieffaktorer, är påverkan av reliefens art och specificitet på organismernas liv (områdets höjd över havet, områdets latitud i förhållande till ekvatorn, brantheten hos area är lutningsvinkeln för området mot horisonten, exponeringen av området är områdets position längs förhållande till kardinalriktningarna);
d) hydrofysiska faktorer är inverkan av vatten i alla tillstånd (flytande, fast, gasformig) och fysiska miljöfaktorer (buller, vibrationer, gravitation, magnetisk, elektromagnetisk och joniserande strålning) på organismers liv.
II. Biotiska faktorer är faktorer för levande natur, levande organismers inflytande på varandra. De är av den mest skiftande karaktär och verkar inte bara direkt, utan också indirekt genom den omgivande oorganiska naturen. Beroende på vilken typ av organism som påverkar dem delas de in i två grupper:
a) intraspecifika faktorer är påverkan av individer av samma art på organismen (hare på hare, tall på tall, etc.);
b) interspecifika faktorer är påverkan av individer av andra arter på kroppen (varg på hare, tall på björk, etc.).
Beroende på deras tillhörighet till ett visst rike delas biotiska faktorer in i fyra huvudgrupper:
a) fytogena faktorer är växternas inverkan på kroppen;
b) zoogena faktorer är djurens inverkan på kroppen;
c) mikrogena faktorer är påverkan av mikroorganismer (virus, bakterier, protozoer, rickettsia) på kroppen;
d) mykogena faktorer är svamparnas inverkan på kroppen.
III. Antropogena faktorer är den totala mänskliga påverkan på organismers liv. Beroende på effekternas art delas de in i två grupper:
a) Faktorer av direkt påverkan är en persons direkta påverkan på kroppen (klippa gräs, hugga ner skog, skjuta djur, fånga fisk, etc.);
b) faktorer av indirekt påverkan - detta är en persons inflytande av det faktum att han existerar (varje år, när människor andas, kommer 1,1x1012 kg koldioxid in i atmosfären och från miljö 2,7x1015 kcal energi avlägsnas i form av mat) och genom ekonomisk verksamhet (jordbruk, industri, transport, hushållsverksamhet, etc.).
Beroende på konsekvenserna av påverkan delas båda dessa grupper av antropogena faktorer i sin tur upp ytterligare i positiva faktorer (plantering och utfodring av växter, uppfödning och skydd av djur, miljöskydd etc.), som förbättrar organismernas liv eller öka deras antal och negativa faktorer (trädhuggning, miljöföroreningar, förstörelse av livsmiljöer, byggande av vägar och andra kommunikationer) som förvärrar organismernas liv eller minskar deras antal.
En ursprunglig klassificering av miljöfaktorer efter graden av deras beständighet, dvs. enligt deras frekvens, föreslog A.S. Monchadsky. Enligt denna klassificering särskiljs följande tre grupper av faktorer.
1. Primära periodiska faktorer är faktorer vars verkan började före uppkomsten av liv på jorden och levande organismer var tvungna att omedelbart anpassa sig till dem (daglig periodicitet av belysning, säsongsbetonad periodicitet av årstiderna, månrytmer, etc.).
2. Sekundära periodiska faktorer är faktorer som är en konsekvens av primära periodiska faktorer (fuktighet, temperatur, livsmedelsdynamik, gasinnehåll i vatten etc.).
3. Icke-periodiska faktorer är faktorer som inte har korrekt periodicitet eller cyklicitet (edafiska faktorer, antropogena faktorer, innehåll av föroreningar i vatten, atmosfär eller mark, etc.).
Beroende på karaktären av förändringar över tid delas miljöfaktorer också in i tre grupper:
1. Regelbundet periodiska faktorer är faktorer som ändrar sin styrka beroende på tid på dygnet, årstid eller rytmen i tidvattnets ebb och ström (belysning, temperatur, längd på dagsljustimmar, etc.).
2. Oregelbundna faktorer är faktorer som inte har en tydligt definierad periodicitet (klimatfaktorer under olika år, faktorer av katastrofalt ursprung till följd av översvämningar, orkaner, jordbävningar etc.).
3. Riktningsfaktorer är faktorer som under lång tid verkar i en riktning (kylning eller uppvärmning av klimatet, överväxt av en reservoar, bete på ett ställe, etc.).
Baserat på arten av kroppens svar på påverkan av en miljöfaktor, särskiljs följande grupper av miljöfaktorer:
1. Irriterande ämnen är faktorer som orsakar adaptiva förändringar i fysiologiska funktioner och biokemiska reaktioner.
2. Modifierare är faktorer som orsakar adaptiva anatomiska och morfologiska förändringar i kroppen.
3. Begränsare är faktorer som gör det omöjligt att existera under givna förhållanden och begränsar en organisms utbredningsmiljö.
4. Signaleringsmedel är faktorer som indikerar förändringar i andra faktorer och fungerar som en varningssignal.
Beroende på möjligheten till konsumtion när man interagerar med kroppen delas miljöfaktorer in i två kategorier:
1. Förhållanden är miljömässiga miljöfaktorer som förändras i tid och rum, som kroppen reagerar olika på beroende på faktorns styrka (temperatur, luftfuktighet, atmosfärstryck, jordens fysiska egenskaper etc.). Tillstånden konsumeras inte eller utmattas av kroppen.
2. Resurser är alla miljöfaktorer i miljön som organismen konsumerar, konsumerar i den meningen att deras kvantitet (tillgänglig tillgång) kan minska som ett resultat av interaktion med organismen. Resurser är i första hand de ämnen som utgör en organisms kropp, energin som är involverad i dess livsprocesser, såväl som de platser där vissa faser av dess aktivitet äger rum. livscykel.
Utöver ovanstående klassificeringar av miljöfaktorer används andra klassificeringar inom ekologin, baserade på olika kriterier beroende på forskarens intressen.

.NET Framework är en av komponenterna Windows-system. Det låter dig skapa och använda nästa generations applikationer. Syftet med plattformen .NET Framework :

  • skapande av en holistisk objektorienterad programmeringsmiljö tillåter olika implementeringsalternativ: koden kan lagras och exekveras lokalt; utföras lokalt och distribueras över Internet; eller utförs på distans;
  • Tillhandahålla en kodexekveringsmiljö som minimerar programvarudistribution och versionskonflikter;
  • säkerställa säkerheten för kodexekvering i miljön - inklusive kod skapad av en okänd eller delvis betrodd utvecklare;
  • tillhandahålla en kodruntimemiljö för att hantera prestandaproblem i skript- eller tolkningsbaserade miljöer;
  • förening av utvecklarnas arbete i helt andra applikationer: som i Windows-applikationer, och i webbapplikationer;
  • användningen av industristandarder inom alla områden av datautbyte och, som ett resultat, säkerställande av kompatibiliteten för kod skapad i .NET Framework med andra program.