Mi történt. Milyen típusú alkalmazások építhetők a platformra

Mi történt. Milyen típusú alkalmazások építhetők a platformra

Jó nap. Alexey Gulynin kapcsolatban áll. Az utolsó cikkben megvizsgáltuk, hogyan adhatunk át argumentumokat egy metódushoz C#-ban. Ebben a cikkben szeretném megismételni (tovább egyszerűen), ami .NET Frameworkés a Visual Studio. Ez a cikk a Visual Studio leírása és a .Net Framework cikkek folytatása .NET Framework a Common Language Runtime (CLR). a .Net Framework fő összetevője), amely a felügyelt kód (managed code) végrehajtását biztosítja. A CLR kezeli ezt a kódot. Mi az a felügyelt kód? A .NET-keretrendszerhez írt kódot nem a végleges gépi kódba fordítják, hanem egy köztes nyelvre (az ún. IL - Intermediate Language). Ezután ez az összeállítás átkerül a felhasználóhoz (a gépnek rendelkeznie kell a .Net Framework-vel), betöltődik a memóriába, és az IL parancsokat végrehajtandó műveletekké alakítja.

Mi értelme van a középfokú nyelvi IL-nek?

Először is platformfüggetlen, nincs konkrét processzorhoz kötve.

Másodszor, jelenléte lehetővé teszi, hogy a CLR irányítsa a programod működését, pl. ne engedje meg, hogy megengedhetetlen dolgokat végezzen (például memóriamanipuláció).

A második fontos összetevő miután a CLR van osztályú könyvtár. A .NET-keretrendszer tartalmazza nagyszámú osztályok névterekre bontva, amelyek az összes alapvető funkciót biztosítják. Ez az a funkció, amelyre a programnak szüksége lehet, mint például a fájlokkal, a hálózattal, a folyamatokkal és a grafikus alrendszerrel való munka.

Harmadik komponens- ezek fejlesztési keretrendszerek (más szóval fejlesztői könyvtárak). Ide tartoznak az olyan könyvtárak, mint a WPF (Windows Presentation Foundation), ASP.NET, Entity Framework, WCF (Windows Communication Foundation), Windows Store stb. Valójában ezek is osztályok. A különbség az, hogy ezeket az osztályokat speciális problémák megoldására tervezték:

  • WPF - grafikus alkalmazásokkal való munkához
  • ASP.NET – webes alkalmazásokkal való munkához
  • WCF - a hálózattal való munkához és az elosztott (kliens-szerver) alkalmazások létrehozásához
  • Entity Framework – az adatbázissal való munkához.

A cikk írásakor a legújabb verzió a .Net Framework 4.6

A Microsoft által ajánlott fő fejlesztői környezet a Visual Studio. A Microsoftnak általában ez a helyzete: hogyan egy új verzió.NET Framework, majd egy idő után megjelenik a Visual Studio új verziója. Mit tartalmaz a Visual Studio (alapszint):

  1. Szövegszerkesztő szintaktikai kód kiemeléssel
  2. IntelliSense súgórendszer (meghívása automatikusan vagy a Ctrl + Space (szóköz) megnyomásával)
  3. Különböző nyelvű fordítók
  4. Rapid Development Tools (RAD – Rapid Application Development)
  5. Interfészek, diagramok látványtervezője
  6. Komponens a szerverekkel, adatbázisokkal való munkához
  7. IIS webszerver és sql szerver Express opció
  8. Hibakeresők, profilozók, komponensek, amelyek lehetővé teszik a hibák kezelését
  9. MSDN súgórendszer

Az írás idején a legújabb verzió a Visual Studio 2015.

Hogyan működik a programok koncepciója a Visual Studio-ban. A stúdió a "Project" (Project) és a "Decision" (Megoldás) koncepcióval rendelkezik. A projekt egy összeállítási egység. Fájlkészletből áll. A projektet egy egészként fordítják le, általában egy összeállításba (exe fájl vagy dll fájl). A projektek a Megoldás alatt csoportosíthatók. A megoldás csak olyan projektek gyűjteménye, amelyek kapcsolódnak egymáshoz, vagy nem (amit általában csinálnak).

Mert a. HÁLÓ A Framework egy hatékony platform az alkalmazásfejlesztéshez, lehetővé teszi teljesen különböző típusú alkalmazások fejlesztését.

asztali alkalmazások (olyan alkalmazások, amelyek a helyi számítógép felhasználó);

webes alkalmazások (olyan alkalmazások, amelyek webszerveren belül működnek, és HTTP/HTTPS protokollt használó böngészőn keresztül érhetők el a felhasználó számára);

Gazdag felhasználói felülettel rendelkező webalkalmazások (olyan alkalmazások, amelyek HTTP/HTTPS protokollon keresztül jutnak el a felhasználóhoz a böngészőn belül, és a kliens oldalon futnak le);

webszolgáltatások (a szerver oldalon futó szoftverkód, amely a klienstől hívható bármilyen adat fogadására vagy művelet végrehajtására);

mobilalkalmazások (mobileszközökön futó alkalmazások).

A készítményben a fenti alkalmazások mindegyikéhez. HÁLÓ Keretrendszerben léteznek megfelelő technológiák, amelyek lehetővé teszik alkalmazások létrehozását. Kívül, . HÁLÓ A Framework általános könyvtárakat tartalmaz, amelyek különböző típusú alkalmazásokban használhatók. Ezek a könyvtárak a következő könyvtárakat tartalmazzák:

· húrokkal dolgozni;

matematikai függvényekkel való munkához;

grafikával való munkához

adatokhoz való hozzáférés;

· fájlokkal és egyéb input-output műveletekkel dolgozni;

kriptográfiai műveletek elvégzésére;

· az adatforrások közötti adatszinkronizálás megszervezése;

és számos más könyvtár.

Tekintsük át az egyes alkalmazások típusait. Amint fentebb megjegyeztük, a platform minden típusú alkalmazásához. HÁLÓ Keretrendszer, vannak speciális projektsablonok.

Asztali alkalmazások abban különböznek, hogy közvetlenül a felhasználó számítógépén futnak. Ez a leggyakoribb alkalmazástípus. Az asztali alkalmazások általában rendelkeznek hozzáférés a felhasználó számítógépének erőforrásaihoz, mint pl HDD, audio berendezések stb. Az ilyen típusú alkalmazás előnyei közé tartozik interaktivitásfelhasználói felületés az alkalmazás működési képessége a hálózati kapcsolattól függetlenül Internetés egyéb források. Az ilyen alkalmazások működéséhez azonban telepíteni kell őket a helyire számítógép.

Az asztali alkalmazások három típusra oszthatók: ablakos alkalmazások, konzolalkalmazások és szolgáltatások. ablakok. Az ablakos alkalmazások grafikus felülettel rendelkeznek. Konzolalkalmazásokáltalában úgy néz ki parancs sor, A felület az ilyen alkalmazások szöveg alapúak, nem grafikusok. Végül a szolgáltatások ablakok egyáltalán nincs felhasználói felületük, hanem a háttérben működnek.

Alkalmazások létrehozása ablakos grafikus felülettel a platformon belül. HÁLÓ Kerettechnológiák használhatók ablakokŰrlapok (elérhető innen. HÁLÓ Framework 1.0) és Windows Presentation Foundation(elérhető ekkortól HÁLÓ Keretrendszer 3.0). A legújabb technológia újabb és ígéretesebb.


Webes alkalmazások abban különböznek az asztali számítógépektől, hogy távolról, webszerveren működnek. Felhasználó böngészőn és protokollon keresztül használja a webes alkalmazások lehetőségeit http/https. Az ilyen típusú alkalmazások előnye, hogy nincs szükség rájuk telepítésre számítógép minden felhasználó - Alkalmazás telepíteni kell a weben szerver, amely után minden felhasználó számára elérhetővé válik. Az ilyen alkalmazások hátránya azonban a felhasználói felületek felépítésének korlátozott lehetősége. Ez annak köszönhető, hogy felhasználói felület formátumok alapján HTML, cssés JavaScript, amelyek meglehetősen korlátozottak. Ezért a felhasználói felületek funkcionalitása általában meglehetősen korlátozott.

Mivel a webes alkalmazásoknak van egy komoly hátránya - korlátozott képességei Által a felhasználói felület alakítása - megjelent egy új típusú alkalmazás, amely az ún gazdag internetes alkalmazások vagy Internetes alkalmazások gazdag felhasználói felülettel (Rich Internet Applications, RIA). Ezen alkalmazások filozófiája az, hogy in böngésző különleges kiegészítés(plugin), amely képes további megjelenítésére A tartalom típusa. Utána mikor felhasználó megnyitja az oldalt a böngészőben, az ezen a kiegészítőn belül működő programkód átkerül a kliens oldalra. Mivel ebben az esetben az összes kód a kliens oldalon fut le, a fejlesztőknek több lehetőségük van. Által felhasználói felületek kialakítása.

Számos technológia létezik az ilyen típusú alkalmazások felépítésére. Az egyik legismertebb technológia az Adobe technológia. Vaku. Ezen kívül van még Microsoft Silverlight technológia, amely lehetővé teszi a legkényelmesebb integrációt a keret többi technológiájával. HÁLÓ keretrendszer.

Az alkalmazások másik típusa Szolgáltatások(vagy webszolgáltatások). A szolgáltatások valamilyen programkód, amely a kiszolgálón található és fut Által kérésére a felhasználótól. Létrehozhat például egy szolgáltatáskészletet Által származó adatokkal dolgozik Adatbázis a szerveren tárolva. Általában más típusú alkalmazások (asztali alkalmazások, webalkalmazások stb.) hozzáférnek a szolgáltatásokhoz, hogy valamilyen műveletet hajtsanak végre a szerveren, vagy adatokat fogadjanak a szerverről.

A platformon belül. HÁLÓ Keretrendszer szerint számos olyan technológia létezik, amely lehetővé teszi szolgáltatások létrehozását. A legrégebbi technológia az ÁSPISKÍGYÓ..NET web szolgáltatások. Lehetővé teszi egyszerű, működő webszolgáltatások létrehozását Által jegyzőkönyv http/https. A következő fejlesztés a technológia volt Windows Kommunikációs Alapítvány(WCF). Ez a platform a leghatékonyabb és legrugalmasabb eszköz, amely különféle típusú csatornákat támogat ( http, TCP, névre keresztelt csövek stb.) és jelentősen bővíti a fejlesztő lehetőségeit Által szolgáltatások létrehozása.

A WCF projektnek további ágai is vannak – ez a WCF Szindikáció Kiterjesztések (WCF REST) ​​és HŰHÓ.NET adatok szolgáltatások. Ezeket a projekteket úgy tervezték, hogy megkönnyítsék az adathozzáférési szolgáltatások létrehozását.

Végül az utolsó típusú alkalmazások mobil alkalmazások. A mobil alkalmazások a mobileszközökön belül működnek operációs rendszer Windows Mobile . A mobileszközök esetében a képességek egy részhalmazának megvalósítása is elérhető. HÁLÓ Keret, amely az ún. NET Compact keretrendszer.

Így a platformon belüli technológiák teljes skálája. HÁLÓ A keretet az alábbi diagrammal lehet ábrázolni.

Bevezetés

A PLATFORM legalább egy programvégrehajtási környezet és... valami más, ami meghatározza a programkód fejlesztésének és végrehajtásának jellemzőit - programozási paradigmák, programozási nyelvek, alaposztályok halmazai.

A Microsoft.NET (.NET-keretrendszer) egy szoftverplatform. A következő fő összetevőket tartalmazza: a közös nyelvi futtatókörnyezet (CLR) és a .NET Framework osztálykönyvtár (.NET FCL).

A CLS (Common Language Specification) a programozási nyelvek általános specifikációja. Ez olyan konstrukciók és megszorítások halmaza, amelyek útmutatást adnak a .NET-keretrendszerben a könyvtár- és fordítóprogram-íróknak. A CLS szerint épített könyvtárak bármely olyan programozási nyelvről használhatók, amely támogatja a CLS-t. CLS-kompatibilis nyelvek (ezek közé tartozik a Visual C#, Visual Basic, Visual C++) integrálhatók egymással. A CLS a Microsoft.NET platformon belüli nyelvek közötti együttműködés alapja.

CLR (Common Language Runtime) – Runtime Environment vagy Virtual Machine. Biztosítja az összeszerelés végrehajtását. A .NET-keretrendszer fő összetevője. A virtuális gép egy beágyazott (külön) magas szintű felügyelt operációs rendszer absztrakciója, amely programkód végrehajtását biztosítja, és a következő feladatok megoldását foglalja magában:

§ kódkezelés (betöltés és végrehajtás),

§ memóriakezelés objektumok elhelyezésekor,

§ elkülönítés alkalmazás memória,

§ kódos biztonsági ellenőrzés,

§ köztes nyelv konvertálása gépi kódra,

§ hozzáférés a metaadatokhoz (bővített típusú információ),

§ kivételkezelés, beleértve a többnyelvű kivételeket is,

§ interakció a felügyelt és a nem felügyelt kód között (beleértve a COM objektumokat is),

§ fejlesztési szolgáltatások támogatása (profilozás, hibakeresés stb.).

Röviden, a CLR egy összeállításhoz szükséges szolgáltatások halmaza. Ebben az esetben egy összeállítás programkódja lehet kezelt (a kód, ha a CLR végrehajtja, különösen aktiválja a memóriakezelő rendszert), vagy nem menedzselt ("régi" programkód).

Maga a CLR két fő összetevőből áll: a magból (mscoree.dll) és az alap osztálykönyvtárból (mscorlib.dll). Ezeknek a fájloknak a lemezen való jelenléte biztos jele annak, hogy a számítógép legalább megpróbálta telepíteni a .NET-keretrendszert.

Az alapvető futási környezet mscoree.dll könyvtárként van megvalósítva. Egy összeállítás csatolásakor speciális információk épülnek be, amelyek egy alkalmazás (EXE) indításakor vagy egy könyvtár betöltésekor (DLL elérése nem menedzselt modulból - a LoadLibrary függvény meghívása egy felügyelt összeállítás betöltéséhez) okoz. a betöltendő és inicializálandó CLR. Miután a CLR betöltődött egy folyamat címterébe, a futásidejű kernel a következőket teszi:

§ megtalálja a gyülekezés helyét,

§ betölti az összeállítást a memóriába,

§ elemzi az összeállítás tartalmát (osztályokat, struktúrákat, interfészeket azonosít),

§ elemzi a metaadatokat,

§ biztosítja a köztes nyelvi (IL) kód platform-specifikus utasításokba történő fordítását (assembler kód),

§-ával kapcsolatos ellenőrzéseket végez Biztonság,

§ az alkalmazás fő szálát használva átadja a vezérlést a processzor utasításokká konvertált assembly kódrészletnek.

Az FCL (.NET Framework Class Library) a Microsoft .NET platformon található osztályok, interfészek és típusrendszerek (értéktípusok) objektumorientált könyvtára, amely megfelel a CLS specifikációnak.

Ez a könyvtár hozzáférést biztosít a rendszer funkcióihoz, és alapul szolgál .NET alkalmazások, összetevők, vezérlők fejlesztéséhez.

NET, az osztálykönyvtár a CLR második összetevője.

A NET FCL-t MINDEN .NET-alkalmazás használhatja, függetlenül a programozási nyelv fejlesztésének céljától, architektúrájától. Különösen a következőket tartalmazza:

§ beépített (elemi) típusok, osztályokként ábrázolva (.NET platformon minden struktúrákra vagy osztályokra épül),

§ osztályok grafikus felhasználói felület fejlesztéséhez (Windows Form),

§ osztályok webalkalmazások és webszolgáltatások fejlesztéséhez ASP.NET technológián (Web Forms),

§ XML és Internet protokollok fejlesztésére szolgáló osztályok (FTP, HTTP, SMTP, SOAP),

§ osztályok adatbázisokkal működő alkalmazások fejlesztéséhez (ADO.NET),

§ és még sok más.

NET alkalmazás egy olyan alkalmazás, amelyet a Microsoft.NET platformon való futtatásra terveztek. A CLS-nek megfelelő programozási nyelveken van megvalósítva.

Az MSIL (Microsoft Intermediate Language, más néven IL – Intermedia Language) a Microsoft.NET platform köztes nyelve. A .NET-alkalmazások forráskódjai olyan programozási nyelveken íródnak, amelyek megfelelnek a CLS-specifikációnak. A CLS specifikációnak megfelelő programozási nyelvekhez MSIL-re konvertáló építhető. Így ezeken a nyelveken a programokat le lehet fordítani MSIL köztes kódra. A CLS megfelelőség miatt a különböző nyelveken írt programkódok fordítása eredményeként kompatibilis IL kódot kapunk.

Valójában az MSIL egy virtuális processzor-összeszerelő.

METADATA - a programkód MSIL-be konvertálásakor egy METADATA blokk is létrejön, amely információkat tartalmaz a programban használt adatokról. Valójában ezek olyan táblakészletek, amelyek a modulban definiált adattípusokról, az általa hivatkozott adattípusokról tartalmaznak információkat. ezt a modult. Korábban ezeket az információkat külön tárolták. Például egy alkalmazás információkat tartalmazhat az interfészdefiníciós nyelvben (IDL) leírt interfészekről. A metaadatok mostantól a felügyelt modul részét képezik.

A metaadatokat konkrétan a következőkre használják:

§ a típusokra vonatkozó információk megőrzése. Fordításkor már nincs szükség fejléc- és könyvtárfájlokra. A fordító minden szükséges információt közvetlenül a felügyelt modulokból olvas be,

§ kódellenőrzés a modul végrehajtása során,

§ dinamikus memóriakezelés (memóriafelszabadítás) a modul végrehajtása során,

§ ha egy programot szabványos eszközökkel fejlesztünk (Microsoft Visual Studio.NET)

§ A metaadatok alapján dinamikus tipp (IntelliSense) biztosított.

Nyelvek, amelyeken az MSIL fordítást megvalósítják:

és még sok más nyelven.

Futtatható – A fordítótól (és a forrásnyelvtől) függetlenül egy .NET-alkalmazás fordításának eredménye egy felügyelt végrehajtható fájl (menedzselt modul). Ez egy szabványos hordozható futtatható (PE - Portable Executable) Windows-fájl.

A kezelt modul elemeit a táblázat mutatja be.

A felügyelt modul felügyelt kódot tartalmaz.

A felügyelt kód olyan kód, amely a CLR-ben fut. A kód a forrásmodulban deklarált struktúrák és osztályok alapján épül fel, amelyek metódusdeklarációkat tartalmaznak. A felügyelt kódnak meg kell felelnie egy bizonyos szintű információnak (metaadatoknak) a futási környezethez. A C#, a Visual Basic és a JScript kódok alapértelmezés szerint kezelve vannak. A Visual C++ kód alapértelmezés szerint nem kezelt, de a fordító képes kezelt kódot előállítani, ha argumentumot ad meg a parancssorban (/CLR). A felügyelt kód egyik jellemzője az olyan mechanizmusok jelenléte, amelyek lehetővé teszik a KEZELTETT ADATOK kezelését.

Felügyelt adatok - olyan objektumok, amelyeket a modulkód végrehajtása során a felügyelt memóriában (a felügyelt kupacban) foglalnak le, és amelyeket a CLR szemétgyűjtő megsemmisít. A C#, a Visual Basic és a JScript .NET adatai alapértelmezés szerint kezelve vannak. A C# adatok nem kezeltként is megjelölhetők.

Az összeállítás a .NET-keretrendszerben található alkalmazások alapvető építőeleme. A felügyelt modulokat összeállításokba egyesítik. Az összeállítás egy vagy több felügyelt modul vagy erőforrásfájl logikai csoportja. Az összeállításokban lévő felügyelt modulok a futási környezetben (CLR) futnak. Az összeállítás lehet végrehajtható alkalmazás (.EXE fájlban) vagy könyvtármodul (.DLL fájlban). Ugyanakkor az összeállításnak semmi köze a közönséges (régi stílusú!) futtatható alkalmazásokhoz és könyvtári modulokhoz.

Az összeszerelési nyilatkozat (Manifest) az összeszerelés szerves részét képezi. Egy másik metaadat-táblázat, amely:

§ az összeállítást szöveges névvel, változatával, kultúrájával és digitális aláírásával azonosítja (ha az összeállítás megosztott az alkalmazások között),

§ határozza meg az összetételben szereplő fájlokat (név és hash alapján),

§ meghatározza az összeállításban létező típusokat és erőforrásokat, beleértve az összeállításból exportált típusok és erőforrások leírását is,

§ felsorolja a más szerelvényektől való függőségeket,

§ Meghatározza az összeállítás megfelelő működéséhez szükséges jogokat.

Ezeket az információkat futás közben használjuk fel az alkalmazás megfelelő működéséhez.

A processzor NEM tud IL kódot végrehajtani. Az IL kód fordítását pedig a JIT fordító végzi (éppen időben - a megfelelő időben), amelyet a CLR szükség szerint aktivál, és a processzor hajt végre. Ebben az esetben a JIT fordító eredményeit a rendszer tárolja véletlen hozzáférésű memória. Megfelelés jön létre a lefordított IL-kód egy töredéke és a megfelelő memóriablokk között, amely később lehetővé teszi a CLR számára, hogy a vezérlést átadja az ebben a memóriablokkban rögzített processzorutasításoknak, megkerülve a JIT-fordító ismételt hívását.

A CLR-ben ez megengedett csapatmunkaés az összetevők kölcsönhatása szoftver különféle programozási nyelveken implementálva.

A korábban kialakított metaadatblokk alapján a CLR HATÉKONY együttműködést biztosít a futó .NET alkalmazások között.

A CLR esetében minden összeállítás azonos, függetlenül attól, hogy melyik programozási nyelven írták őket. A lényeg az, hogy megfeleljenek a CLS-nek. Valójában a CLR lerombolja a programozási nyelvek határait (nyelvek közötti interoperabilitás). Így a CLS-nek és a CTS-nek köszönhetően a .NET alkalmazások valójában MSIL (IL) alkalmazásoknak bizonyulnak.

A CLR számos olyan problémát megold, amelyek hagyományosan az alkalmazásfejlesztők középpontjában állnak. A CLR által ellátott funkciók a következők:

§ az MSIL kód ellenőrzése és dinamikus (JIT) fordítása processzor utasításokká,

§ memória, folyamat- és szálkezelés,

§ a folyamatok közötti interakció megszervezése,

§ biztonsági problémák megoldása (a rendszerben meglévő biztonságpolitika keretein belül).

Az AppDomain egy logikai összeállítási tároló, amely egy alkalmazás elkülönítésére szolgál a folyamat címterében. Minden objektum az alkalmazás által generált, egy adott alkalmazástartományon belül jönnek létre. Egy operációs rendszer folyamatában több alkalmazástartomány is létezhet. A CLR egy alkalmazástartományon belüli memória kezelésével izolálja az alkalmazásokat.

A CLR-ben (CLR-folyamat) futó kód elkülönül a számítógépen egyidejűleg futó többi folyamattól.

A rendszer egy normál folyamatot indít el egy speciálisan a folyamat számára kijelölt címtérben. A CLR lehetővé teszi több felügyelt alkalmazás futtatását EGY FOLYAMATBAN. Minden egyes kezelt alkalmazás kötődik a saját alkalmazástartományához (röviden AppDomain). A fő tartományon kívül több további tartomány is létrehozható az alkalmazásban.

A CLR futási környezet felépítése a képen látható.

Domain tulajdonságai:

§ tartományok el vannak szigetelve egymástól. Az egyik tartományon belül létrehozott objektumok egy másik tartományból nem érhetők el,

§ A CLR képes kirakni a tartományokat az ezekhez a tartományokhoz tartozó összes szerelvénnyel együtt,

§ a domainek további konfigurációja és védelme lehetséges,

§ A tartományok közötti adatcseréhez speciális biztonságos hozzáférési mechanizmust (marshaling) valósítottak meg.

§ A .NET-keretrendszer kifejlesztette saját komponensmodelljét, melynek elemei a .NET-összeállítások (.NET-assembly), a COM / COM + modellel való előre és visszafelé kompatibilitás érdekében pedig a CLR beépített mechanizmusokkal rendelkezik (COM Interop), amelyek hozzáférést biztosítanak a COM objektumokhoz a .NET szabályok szerint és a .NET szerelvényekhez a COM szabályok szerint. Ugyanakkor a .NET alkalmazásokhoz nincs szükség az összetevők regisztrációjára rendszerleíró adatbázis Ablakok.

Egy .NET alkalmazás futtatásához elegendő az alkalmazáshoz kapcsolódó szerelvényeket ugyanabba a könyvtárba helyezni. Ha az összeállítás több alkalmazásban is használható, akkor a használatával kerül elhelyezésre és regisztrálásra speciális segédprogram a GAC-ban (Global Assembly Cache).

CTS – Közös típusú rendszer Az összes platformnyelv támogatja. Tekintettel arra, hogy a .NET az OOP gyermeke, itt elemi típusokról, osztályokról, struktúrákról, interfészekről, delegáltokról és felsorolásokról beszélünk.

A Common Type System a futási környezet fontos része, meghatározza a szintaktikai konstrukciók szerkezetét, az ÁLTALÁNOS futási típusok deklarálását, használatát és alkalmazását. A CTS alapvető információkat tartalmaz az ÁLTALÁNOS ELŐRE DEFINÍTOTT típusok rendszeréről, azok használatáról és kezeléséről (értékkonverziós szabályok). A CTS fontos szerepet játszik a többnyelvű felügyelt alkalmazások integrációjában.

A névtér a típusrendszer egyetlen csoportba szervezésének módja. Van egy közös nyelvi alap osztálykönyvtár. A névtér koncepciója pedig hatékony rendszerezést és navigációt biztosít ebben a könyvtárban. A programozási nyelvtől függetlenül bizonyos osztályokhoz való hozzáférést közös névtereken belüli csoportosítás biztosítja.

Névtér Célja
Rendszer
System.Data Adatbázisok eléréséhez
System.Data.Common
System.Data.OleDb
System.Data.SqlClient
System.Collections Osztályok konténerobjektumokkal való munkavégzéshez
Rendszer.Diagnosztika Osztályok a kód nyomkövetéséhez és hibakereséséhez
Rendszer.Rajz osztályok grafikus támogatás
Rendszer.Rajz.Rajz2D
Rendszer.Rajz.Nyomtatás
System.IO I/O támogatás
System.Net Támogatás a hálózaton keresztüli adatátvitelhez
Rendszer.Reflexió Egyéni típusokkal való munkavégzés futás közben
System.Reflection.Emit
System.Runtime.InteropServices Támogatás a „sima kóddal” való interakcióhoz – DLL-ek, COM-kiszolgálók, távoli hozzáférés
System.Runtime.Remoting
Rendszer.Biztonság Kriptográfia, engedélyek
System.Treading Munkafolyamatokkal
System.WEB Munkavégzés webes alkalmazásokkal
System.Windows.Form Windows interfész elemekkel való munka
System.XML XML adattámogatás

A nem menedzselt futtatható modulok (szokásos Windows alkalmazások) végrehajtását közvetlenül a Windows rendszer biztosítja. A nem kezelt modulok befutnak Windows környezet mint "egyszerű" folyamatok. Az egyetlen követelmény, amelynek az ilyen moduloknak meg kell felelniük, az az, hogy megfelelően működjenek a Windows környezetben. „Helyesen” kell működniük (ne akasztotta le a rendszert, kerülje a memóriaszivárgást, ne blokkoljon más folyamatokat, és magának az operációs rendszernek az eszközeit helyesen kell használnia a folyamatok nevében történő munkához). Azaz, hogy a leginkább megfeleljen Általános szabályok működik Windows alatt.

Ugyanakkor a nem felügyelt modulok helyes végrehajtásával kapcsolatos problémák (interakciós, memóriafoglalási és -felszabadítási problémák) az alkalmazásfejlesztők problémái. Például a jól ismert COM technológia egy módszer a heterogén komponensek interakciójának megszervezésére egy alkalmazáson belül.

Az objektum tágabb értelemben egy memóriaterület (a veremben vagy kupacban), amelyet a program végrehajtása során foglalnak le bármilyen érték írásához. Típus jellemzi (rögzített tulajdonságkészlet, amely meghatározza az elfoglalt terület méretét, az érték értelmezésének módját, az értéktartományt, az objektum manipulálásakor megengedett műveletek halmazát) a memóriában lévő hely (cím) alapján. ).

A szemétgyűjtés egy olyan mechanizmus, amely lehetővé teszi a CLR számára, hogy meghatározza, ha egy objektum már nem érhető el a program felügyelt memóriájában. A szemétgyűjtés felszabadítja a kezelt memóriát. Az alkalmazásfejlesztő számára a szemétgyűjtő mechanizmus jelenléte azt jelenti, hogy többé nem kell aggódnia a memória felszabadítása miatt. Ehhez azonban szükség lehet a programozási stílus megváltoztatására, például különös figyelmet kell fordítani a rendszer erőforrások felszabadításának eljárására. Olyan módszereket kell megvalósítania, amelyek felszabadítják az alkalmazás felügyelete alatt álló rendszererőforrásokat.

A verem egy speciálisan szervezett memóriaterület, amely az objektumok (változók és állandók) értékeinek ideiglenes tárolására, a metódusok hívásakor paraméterek átadására, a visszatérési cím tárolására szolgál. A verem kezelése meglehetősen egyszerű a kupachoz képest. Ez a verem tetején lévő megfelelő regiszter értékének változásán alapul. Ha a verem mérete csökken, az objektumok egyszerűen elvesznek.

Program C# nyelven

A program egy jól formált (a C# fordító által nem kifogásolható) utasítássorozat, amelyből összeállítás jön létre.

Általában a programozó létrehoz egy osztálydeklarációkat tartalmazó fájlt, amelyet bemenetként továbbít a fordítónak. A fordítás eredményét a fordító összeállításként ábrázolja, és a programozó preferenciái határozzák meg. Elvileg az összeállítás kétféle lehet:

§ Hordozható végrehajtható fájl (PE fájl .exe kiterjesztéssel), amely alkalmas a CLR közvetlen végrehajtására,

§ A Dynamic Link Library File (DLL fájl .dll kiterjesztéssel) az alkalmazáson belüli összetevőként való újrafelhasználásra készült.

Mindenesetre a bemeneti kód alapján a fordító IL-re épít egy modult, egy manifestet, és összeállítást alkot. A jövőben az összeállítás elvégezhető a JIT összeállítása után, vagy más programok részeként is használható.

A környezet fogalma. Környezeti tényezők és osztályozásuk

A "környezet" kifejezést az ökológiában széles körben és szűk értelemben szavak. A szó tágabb értelmében a környezet a környezet. A környezet a Föld bolygón létező életfeltételek összessége. P. Ehrlich amerikai biológus a '60-as évek végén megjelent "Population Explosion" című könyvében képletesen jellemezte a környezetet: "Környezetünk a talaj, a víz és a gáznemű légkör egyedülálló" bőre. , ásványi tápanyagok és élő organizmusok, amelyek egy egyébként nem figyelemre méltó bolygót fednek le." A környezet a szó szűk értelmében élőhely. Az élőhely a természet azon része, amely körülveszi a szervezetet, és amellyel az közvetlenül érintkezik. Minden élőlény élőhelye változatos és változatos. Számos élő és élettelen természeti elemből, valamint az ember által gazdasági tevékenysége eredményeként bevezetett elemből áll.
A környezet minden eleme a szervezethez viszonyítva egyenlőtlen: egy részük befolyásolja létfontosságú tevékenységét, míg mások közömbösek számára. Ebben a tekintetben a környezet minden elemét a következőképpen csoportosítjuk.
1. A semleges tényezők a környezet azon elemei, amelyek nem hatnak a szervezetre, és nem okoznak benne reakciót.
2. Környezeti tényezőknek nevezzük a környezet azon elemeit, amelyek egyedfejlődésének legalább egyik fázisában képesek közvetlenül vagy közvetve hatni a szervezetre, és sajátos alkalmazkodási reakciót váltanak ki.
A környezeti környezeti tényezők sokfélék, eltérő természetűek és hatásspecifikusak. A szervezet számára fontosságuk szerint két csoportra oszthatók:
1. A létfeltételek vagy az élet feltételei azok a környezeti tényezők, amelyek nélkül a szervezet nem tud létezni, és amelyekkel elválaszthatatlan egységben van. E tényezők legalább egyikének hiánya a szervezet halálához vezet.
2. A másodlagos tényezők azok a környezeti tényezők, amelyek nem létfontosságúak, de módosíthatják egy szervezet létezését, javítva vagy rontva azt.
A környezeti tényezők óriási sokféleségének elemzése eredetük jellege alapján lehetővé teszi, hogy három részre osztjuk őket nagy csoportok, amelyek mindegyikében alcsoportok különíthetők el:
I. Az abiotikus tényezők olyan élettelen tényezők, amelyek közvetlenül vagy közvetve hatással vannak a szervezetre. Négy alcsoportra oszthatók:
a) éghajlati tényezők – ezek mind olyan tényezők, amelyek alakítják az éghajlatot és befolyásolhatják az élőlények életét (fény, hőmérséklet, páratartalom, Légköri nyomás, szélsebesség stb.);
b) edafikus, vagyis talajtényezők a talaj azon tulajdonságai, amelyek az élőlények életét befolyásolják. Ezeket pedig fizikai (mechanikai összetétel, csomósság, kapillárisság, munkaciklus, levegő- és nedvességáteresztő képesség, levegő- és nedvességkapacitás, sűrűség, szín stb.) és kémiai (savasság, ásványi összetétel, humusztartalom) tulajdonságaira osztják. a talaj;
c) az orográfiai tényezők vagy domborzati tényezők a domborzat jellegének és sajátosságainak az élőlények életére gyakorolt ​​befolyása (a terep tengerszint feletti magassága, a terep szélessége az egyenlítőhöz képest, a domborzat meredeksége). terep a terep dőlésszöge a horizonthoz, a terep expozíciója a terep helyzete a sarkpontokhoz képest);
d) hidrofizikai tényezők - ez a víz minden halmazállapotú (folyékony, szilárd, gázhalmazállapotú) és a fizikai környezeti tényezők (zaj, rezgés, gravitáció, mágneses, elektromágneses és ionizáló sugárzás) hatása az élőlények életére.
II. A biotikus tényezők az élő természet tényezői, az élő szervezetek egymásra gyakorolt ​​hatása. A legkülönfélébb természetűek, és nemcsak közvetlenül, hanem a környező szervetlen természeten keresztül közvetetten is hatnak. A befolyásoló szervezet típusától függően két csoportra oszthatók:
a) intraspecifikus tényezők - ez ugyanazon faj egyedeinek hatása a testre (nyúl a nyúlra, fenyő fenyőre stb.);
b) interspecifikus tényezők - ez más fajok egyedeinek hatása a testre (farkas a nyúlra, fenyő a nyírra stb.).
Attól függően, hogy egy adott királysághoz tartoznak, a biotikus tényezőket négy fő csoportra osztják:
a) fitogén tényezők - ez a növények hatása a szervezetre;
b) zoogén tényezők - ez az állatok testre gyakorolt ​​​​hatása;
c) mikrogén tényezők - ez a mikroorganizmusok (vírusok, baktériumok, protozoák, rickettsia) hatása a szervezetre;
d) mikogén tényezők - ez a gombák hatása a szervezetre.
III. Az antropogén tényezők a szervezetek életére gyakorolt ​​emberi hatások összessége. A hatások természetétől függően két csoportra oszthatók:
a) közvetlen befolyásoló tényezők - ez az ember közvetlen hatása a testre (fűnyírás, erdőirtás, állatok kilövése, halfogás stb.);
b) közvetett befolyásoló tényezők - ez az ember befolyása a létezésének ténye által (évente az emberek lélegzése során 1,1x1012 kg szén-dioxid kerül a légkörbe, és onnantól kezdve környezet 2,7x1015 kcal energiát vonnak ki élelmiszer formájában) és gazdasági tevékenységekkel (mezőgazdaság, ipar, közlekedés, háztartási tevékenység stb.).
Mindkét antropogén tényezőcsoport a hatás következményeitől függően tovább oszlik pozitív tényezőkre (növényültetés és takarmányozás, állatok tenyésztése és védelme, környezetvédelem stb.), amelyek javítják az élőlények életét ill. számuk növelése, és a negatív tényezők (fakivágás, környezetszennyezés, élőhelyek pusztítása, útépítés és egyéb kommunikáció), amelyek rontják az élőlények életét vagy csökkentik számukat.
A környezeti tényezők eredeti osztályozása állandóságuk foka szerint, i.e. periodicitásuk szerint – javasolta A.S. Monchadsky. E besorolás szerint a következő három tényezőcsoportot különböztetjük meg.
1. Az elsődleges periodikus tényezők azok a tényezők, amelyek az élet megjelenése előtt kezdtek hatni a Földön, és az élő szervezeteknek azonnal alkalmazkodniuk kellett hozzájuk (a megvilágítás napi periodikussága, az évszakok szezonális periodikussága, holdritmus stb.).
2. A másodlagos periodikus tényezők olyan tényezők, amelyek elsődleges periodikus tényezők eredménye (páratartalom, hőmérséklet, táplálékdinamika, víz gáztartalma stb.).
3. Nem periodikus tényezők - ezek olyan tényezők, amelyek nem rendelkeznek megfelelő periodicitással vagy ciklikussággal (edafikus tényezők, antropogén tényezők, víz, légkör vagy talaj szennyezőanyag-tartalma stb.).
Az időbeli változás természetétől függően a környezeti tényezők is három csoportra oszthatók:
1. A rendszeresen periodikus tényezők olyan tényezők, amelyek erősségüket a napszaktól, az évszaktól vagy az árapály ritmusától (fény, hőmérséklet, nappali órák stb.) függően változtatják.
2. Irreguláris tényezőknek nevezzük azokat a tényezőket, amelyeknek nincs egyértelműen meghatározott periodicitása (különböző évek éghajlati tényezői, árvizek, hurrikánok, földrengések stb. következtében katasztrófális eredetű tényezők).
3. Az iránytényezők olyan tényezők, amelyek hosszú időn keresztül, egy irányba hatnak (az éghajlat lehűlése vagy felmelegedése, egy tározó túlburjánzása, egy helyen történő legeltetés stb.).
A szervezet környezeti tényező hatására adott válaszának jellege szerint a környezeti tényezők következő csoportjait különböztetjük meg:
1. Az irritáló anyagok olyan tényezők, amelyek a fiziológiai funkciók és a biokémiai reakciók adaptív változásait okozzák.
2. A módosítók olyan tényezők, amelyek adaptív anatómiai és morfológiai változásokat okoznak a szervezetben.
3. A korlátozók olyan tényezők, amelyek adott körülmények között lehetetlenné teszik a létezést, és korlátozzák a szervezet terjedésének környezetét.
4. A jelzőberendezések olyan tényezők, amelyek más tényezők változását jelzik, és figyelmeztető jelzésként működnek.
A testtel való kölcsönhatás során a fogyasztás lehetőségétől függően a környezeti tényezők két kategóriába sorolhatók:
1. A feltételek időben és térben változó környezeti környezeti tényezők, amelyekre a szervezet a tényező erősségétől függően (hőmérséklet, páratartalom, légköri nyomás, a talaj fizikai tulajdonságai stb.) eltérően reagál. Az állapotokat a szervezet nem használja ki és nem meríti ki.
2. Az erőforrások mindazon környezeti környezeti tényezők, amelyeket egy szervezet elfogyaszt, fogyaszt abban az értelemben, hogy mennyiségük (rendelkezésre álló készletük) csökkenhet a szervezettel való kölcsönhatás következtében. Az erőforrások elsősorban a szervezet testét alkotó anyagok, életműködési folyamataiban részt vevő energiák, valamint azok a helyek, ahol szervezetének egyes fázisai. életciklus.
Az ökológiában a környezeti tényezők fenti besorolásain kívül más osztályozásokat is alkalmaznak, amelyek a kutató érdeklődésétől függően különböző kritériumokon alapulnak.

A .NET-keretrendszer a Windows rendszer egyik összetevője. Lehetővé teszi a következő generációs alkalmazások létrehozását és használatát. A platform célja .NET Framework :

  • koherens létrehozása objektum-orientált programozási környezet különféle megvalósítási lehetőségeket tesz lehetővé: a kód tárolható és helyileg végrehajtható; helyben futni és az interneten keresztül terjeszteni; vagy futtass távolról
  • olyan kódvégrehajtási környezetet biztosít, amely minimalizálja a szoftvertelepítési és verziószámítási konfliktusokat;
  • a kódvégrehajtás biztonságának biztosítása a környezetben - beleértve az ismeretlen fejlesztő vagy részlegesen megbízott fejlesztő által készített kódot;
  • kódvégrehajtási környezet biztosítása a teljesítményproblémák megoldására parancsfájl- vagy értelmezés alapú környezetekben;
  • a fejlesztők munkájának egységesítése teljesen különböző alkalmazásokban: mind a Windows alkalmazásokban, mind a webes alkalmazásokban;
  • iparági szabványok alkalmazása az adatcsere minden területén, és ennek eredményeként a .NET-keretrendszerben létrehozott kódok kompatibilitása más programokkal.