Архитектура на платформата .NET и .NET Framework

68

description

Програмиране за .NET Framework. http:// www.nakov.com / dotnet /. Архитектура на платформата .NET и .NET Framework. Светлин Наков. Национална академия по разработка на софтуер. academy.devbg.org. Необходими знания. - PowerPoint PPT Presentation

Transcript of Архитектура на платформата .NET и .NET Framework

Page 1: Архитектура на платформата  .NET и  .NET Framework
Page 2: Архитектура на платформата  .NET и  .NET Framework

Архитектура наАрхитектура на платформата платформата .NET.NETи и .NET Framework.NET Framework

Програмиране заПрограмиране за .NET Framework .NET Frameworkhttp://http://www.nakov.comwww.nakov.com//dotnetdotnet//

Светлин НаковСветлин НаковНационална академия по Национална академия по разработка на софтуерразработка на софтуерacademy.devbg.orgacademy.devbg.org

Page 3: Архитектура на платформата  .NET и  .NET Framework

Необходими знанияНеобходими знания За усвояването на настоящия учебен За усвояването на настоящия учебен

материал са необходими базови материал са необходими базови познания по:познания по: програмиранепрограмиране езици за програмиранеезици за програмиране среди за разработка на софтуерсреди за разработка на софтуер

Page 4: Архитектура на платформата  .NET и  .NET Framework

СъдържаниеСъдържание (1) (1) Какво е Какво е .NET.NET?? Архитектура на платформата Архитектура на платформата

Microsoft .NETMicrosoft .NET Какво е Какво е .NET.NET FrameworkFramework?? Архитектура на Архитектура на .NET Framework.NET Framework Common Language Runtime (CLR)Common Language Runtime (CLR) Управляван кодУправляван код Междинен език Междинен език MSILMSIL Модел за изпълнение на Модел за изпълнение на MSIL MSIL кодакода

Page 5: Архитектура на платформата  .NET и  .NET Framework

СъдържаниеСъдържание (2) (2) Асемблита и метаданниАсемблита и метаданни .NET .NET приложенияприложения Application domainsApplication domains Common Language Specification Common Language Specification

(CLS), Common Type System (CTS)(CLS), Common Type System (CTS) Common Language Infrastructure (CLI)Common Language Infrastructure (CLI)

и интеграцията на различни езиции интеграцията на различни езици Framework Class LibraryFramework Class Library Интегрирана среда за разработка Интегрирана среда за разработка

Visual Studio .NETVisual Studio .NET

Page 6: Архитектура на платформата  .NET и  .NET Framework

Управление на бизнесаУправление на

клиенти и партньориУправление

на продажбите

Потребители- На всяко

устройство- Навсякъде- По всяко време

XML Web УслугиИнтеграция на бизнес процесите и приложенията

СървъриХетерогенна инфраструктура от сървъри

СправкиСправкиАвтентикацияАвтентикацияИзвестяванеИзвестяване

Визията на Визията на Microsoft Microsoft за за .NET.NET

ЗаявкиЗаявкиПоръчкиПоръчки

Page 7: Архитектура на платформата  .NET и  .NET Framework

Какво е платформата Какво е платформата .NET.NET?? Съвкупност от технологии, които Съвкупност от технологии, които

свързват хората с информацията – свързват хората с информацията – навсякъде, по всяко време, от всяко навсякъде, по всяко време, от всяко устройствоустройство

Визията на Визията на Microsoft Microsoft за развитието на за развитието на информационните технологииинформационните технологии

Платформа, която поддържа тази визияПлатформа, която поддържа тази визия Стандартизирана инфраструктура за Стандартизирана инфраструктура за

разработка, използване, хостинг и разработка, използване, хостинг и интеграция на интеграция на XML Web XML Web услугиуслуги

Маркетингова стратегияМаркетингова стратегия

Page 8: Архитектура на платформата  .NET и  .NET Framework

.NET

Архитектурата на Архитектурата на .NET.NET

.NET .NET SmartSmartClientsClients

.NET .NET SmartSmartClientsClients

.NET .NET BuildingBuildingBlock ServicesBlock Services.NET .NET BuildingBuilding

Block ServicesBlock Services

.NET Framework.NET FrameworkVisual Studio Visual Studio .NET.NET.NET Framework.NET FrameworkVisual Studio Visual Studio .NET.NET

.NET .NET EnterpriseEnterpriseServersServers

.NET .NET EnterpriseEnterpriseServersServers

Page 9: Архитектура на платформата  .NET и  .NET Framework

.NET .NET SmartSmartClientsClients

.NET .NET SmartSmartClientsClients

.NET .NET BuildingBuildingBlock ServicesBlock Services.NET .NET BuildingBuilding

Block ServicesBlock Services

.NET Framework.NET FrameworkVisual Studio Visual Studio .NET.NET.NET Framework.NET FrameworkVisual Studio Visual Studio .NET.NET

.NET

Архитектурата на Архитектурата на .NET.NET

.NET .NET EnterpriseEnterpriseServersServers

.NET .NET EnterpriseEnterpriseServersServers

Page 10: Архитектура на платформата  .NET и  .NET Framework

.NET Enterprise Servers.NET Enterprise Servers .NET Enterprise .NET Enterprise сървърите предоставятсървърите предоставят

Сървърна инфраструктура за Сървърна инфраструктура за .NET .NET платформатаплатформата

Среда за изпълнение, управление и Среда за изпълнение, управление и интеграция на интеграция на XML WebXML Web услуги услуги

Ключови характеристикиКлючови характеристики Оркестрация на бизнес процесите в Оркестрация на бизнес процесите в

приложенията и услугите (приложенията и услугите (business process business process orchestrationorchestration))

Силна поддръжка на Силна поддръжка на XMLXML СигурниСигурни НадеждниНадеждни СкалируемиСкалируеми УправляемиУправляеми

Page 11: Архитектура на платформата  .NET и  .NET Framework

Microsoft WindowsMicrosoft Windows ServersServers Family Family ––фамилия операционни системифамилия операционни системи

Microsoft SQL ServerMicrosoft SQL Server – управление на – управление на релационни, многомерни данни и релационни, многомерни данни и XMLXML

Microsoft BizTalkMicrosoft BizTalk Server –Server – интеграция на интеграция на бизнес процеси, услуги и системибизнес процеси, услуги и системи

Microsoft Host Integration ServerMicrosoft Host Integration Server – –интеграция на стари системиинтеграция на стари системи

Microsoft Exchange – Microsoft Exchange – координация на координация на съвместната работа в организациисъвместната работа в организации

Microsoft SharePoint Portal Server –Microsoft SharePoint Portal Server –сътрудничество и споделяне на сътрудничество и споделяне на информация в реално времеинформация в реално време

.NET Enterprise Servers.NET Enterprise Servers

Page 12: Архитектура на платформата  .NET и  .NET Framework

Microsoft Application Center – Microsoft Application Center – хостинг, хостинг, управление и мониторинг на критични управление и мониторинг на критични за бизнеса приложенияза бизнеса приложения

Microsoft Content Management Server – Microsoft Content Management Server – изграждане, поддръжка и управление изграждане, поддръжка и управление на на WebWeb съдържание съдържание

Microsoft Mobile Information Server – Microsoft Mobile Information Server – интеграция с мобилни приложенияинтеграция с мобилни приложения

Microsoft Internet Security and Microsoft Internet Security and Acceleration Server – Acceleration Server – контрол и защита контрол и защита на връзката с Интернетна връзката с Интернет

Microsoft Commerce Server – Microsoft Commerce Server – електронна електронна търговиятърговия

.NET Enterprise Servers.NET Enterprise Servers

Page 13: Архитектура на платформата  .NET и  .NET Framework

.NET .NET SmartSmartClientsClients

.NET .NET SmartSmartClientsClients

.NET .NET BuildingBuildingBlock ServicesBlock Services.NET .NET BuildingBuilding

Block ServicesBlock Services

.NET .NET EnterpriseEnterpriseServersServers

.NET .NET EnterpriseEnterpriseServersServers

.NET

Архитектурата на Архитектурата на .NET.NET

.NET Framework.NET FrameworkVisual Studio Visual Studio .NET.NET.NET Framework.NET FrameworkVisual Studio Visual Studio .NET.NET

Page 14: Архитектура на платформата  .NET и  .NET Framework

..NET Framework NET Framework и и VS.NETVS.NET .NET Framework.NET Framework

Платформа за разработка и изпълнение Платформа за разработка и изпълнение на на .NET.NET приложения приложения и и WebWeb услуги услуги

Среда за изпълнение на управляван кодСреда за изпълнение на управляван код Програмен модел и библиотека класове Програмен модел и библиотека класове

за за .NET.NET програмиране програмиране ..NET Compact FrameworkNET Compact Framework

Платформа за разработка и изпълнение Платформа за разработка и изпълнение на на .NET.NET приложения, работещи върху приложения, работещи върху мобилни устройствамобилни устройства

Visual Studio Visual Studio ..NETNET – интегрирана – интегрирана среда за среда за .NET.NET разработка разработка

Page 15: Архитектура на платформата  .NET и  .NET Framework

.NET .NET SmartSmartClientsClients

.NET .NET SmartSmartClientsClients

.NET Framework.NET FrameworkVisual Studio Visual Studio .NET.NET.NET Framework.NET FrameworkVisual Studio Visual Studio .NET.NET

.NET .NET EnterpriseEnterpriseServersServers

.NET .NET EnterpriseEnterpriseServersServers

.NET

Архитектурата на Архитектурата на .NET.NET

.NET .NET BuildingBuildingBlock ServicesBlock Services.NET .NET BuildingBuilding

Block ServicesBlock Services

Page 16: Архитектура на платформата  .NET и  .NET Framework

.NET Building Block Services.NET Building Block Services .NET Building Block Services.NET Building Block Services

(.(.NET My ServicesNET My Services)) Представляват съвкупност от Представляват съвкупност от XML WebXML Web

услуги, насочени към потребителяуслуги, насочени към потребителя Осигуряват персонализиран достъп до Осигуряват персонализиран достъп до

данните на потребителя по всяко данните на потребителя по всяко време и от всяко устройствовреме и от всяко устройство

Разчитат на отворени ИнтернетРазчитат на отворени Интернет стандарти и протоколистандарти и протоколи

Позволяват лесна интеграция с други Позволяват лесна интеграция с други услуги и приложенияуслуги и приложения

Page 17: Архитектура на платформата  .NET и  .NET Framework

.NET Building Block Services.NET Building Block Services .NET Building Block .NET Building Block услугитеуслугите

Автентикация –Автентикация – .NET Passport .NET Passport (single sign-on)(single sign-on)

Доставка на съобщенияДоставка на съобщения Съхранение на лични потребителски Съхранение на лични потребителски

данни – документи, контакти, данни – документи, контакти, електронна поща, календар, любими електронна поща, календар, любими сайтове и т.н.сайтове и т.н.

Съхранение на настройките на Съхранение на настройките на приложениятаприложенията

Page 18: Архитектура на платформата  .NET и  .NET Framework

.NET .NET BuildingBuildingBlock ServicesBlock Services.NET .NET BuildingBuilding

Block ServicesBlock Services

.NET Framework.NET FrameworkVisual Studio Visual Studio .NET.NET.NET Framework.NET FrameworkVisual Studio Visual Studio .NET.NET

.NET .NET EnterpriseEnterpriseServersServers

.NET .NET EnterpriseEnterpriseServersServers

.NET

Архитектурата на Архитектурата на .NET.NET

.NET .NET SmartSmartClientsClients

.NET .NET SmartSmartClientsClients

Page 19: Архитектура на платформата  .NET и  .NET Framework

Smart ClientsSmart Clients Smart Smart клиентите представляват клиентите представляват

архитектурна концепция за изграждане на архитектурна концепция за изграждане на клиентски приложения, коитоклиентски приложения, които предлагат гъвкав графичен потребителски предлагат гъвкав графичен потребителски

интерфейсинтерфейс консумират консумират XML WebXML Web-услуги-услуги позволяват работа позволяват работа online online и и offlineoffline обновяват се автоматично (обновяват се автоматично (auto update)auto update)

Smart Smart клиентитеклиентите са алтернатива на клиент-са алтернатива на клиент-сървър и сървър и WebWeb-приложенията-приложенията

Не са обвързани с Не са обвързани с .NET – .NET – същата същата архитектура може да се използва и с архитектура може да се използва и с JavaJava

Page 20: Архитектура на платформата  .NET и  .NET Framework

.NET Smart Clients.NET Smart Clients ..NET smart NET smart клиентитеклиентите

Представляват Представляват smart smart клиенти, базирани клиенти, базирани на на .NET Framework.NET Framework

Работят върху различни Работят върху различни smart smart устройстваустройства ((компютрикомпютри, , мобилни телефони, мобилни телефони, handhelds, handhelds, вградени устройства,вградени устройства, ...)...)

Осигуряват достъп до информацията на Осигуряват достъп до информацията на потребителя – навсякъде и по всяко времепотребителя – навсякъде и по всяко време

.NET Framework.NET Framework, , .NET Compact Framework .NET Compact Framework и и VS.NET VS.NET позволяватпозволяват разработката на разработката на smart smart клиенти за най-разнообразни клиенти за най-разнообразни smart smart устройстваустройства

Page 21: Архитектура на платформата  .NET и  .NET Framework

Архитектура на Архитектура на .NET.NET Enterprise Enterprise приложениятаприложенията

Enterprise Enterprise приложения – многослойни приложения – многослойни разпределени приложения, съобразени с разпределени приложения, съобразени с нуждите и изискванията на големите нуждите и изискванията на големите корпоративни клиентикорпоративни клиенти

Инфраструктурата на Инфраструктурата на .NET.NET

Page 22: Архитектура на платформата  .NET и  .NET Framework

Инфраструктурата на Инфраструктурата на .NET.NET

Open Internet ProtocolsOpen Internet ProtocolsXML, XSLT, XSD, SOAP, XML, XSLT, XSD, SOAP, DISCO, UDDI, XHTML, DISCO, UDDI, XHTML,

HTTP, SSL, WAPHTTP, SSL, WAP

Visual Visual Studio.NETStudio.NET

Visual Visual Studio.NETStudio.NET

Simple Simple BrowsersBrowsersSimple Simple

BrowsersBrowsers

ApplicationsApplications Using Your Using Your

ServiceService

ApplicationsApplications Using Your Using Your

ServiceService

Your Internal ServicesYour Internal ServicesYour Internal ServicesYour Internal Services

.NET Enterprise Servers.NET Enterprise Servers.NET Enterprise Servers.NET Enterprise Servers

33rdrd Party Web Services Party Web Services33rdrd Party Web Services Party Web ServicesGeographic Mapping ServiceGeographic Mapping ServiceCredit Card Statement ServiceCredit Card Statement Service……

Building Block ServicesBuilding Block ServicesBuilding Block ServicesBuilding Block ServicesPassport – Identity ServicePassport – Identity ServiceCalendaring ServiceCalendaring Service… … [myServices][myServices]

WindowsWindows

SQL ServerSQL ServerBizTalk ServerBizTalk ServerApplication CenterApplication CenterCommerce ServerCommerce ServerHost Integration ServerHost Integration ServerExchange ServerExchange Server

Sales Data ServiceSales Data ServiceCorporate Fulfillment ServiceCorporate Fulfillment Service

Smart Smart DevicesDevicesSmart Smart

DevicesDevices

Smart ClientsSmart ClientsSmart ClientsSmart Clients.NET FW.NET FW

WindowsWindows

.NET FW & CF.NET FW & CF

Windows Windows CE, XP, 200CE, XP, 20000, , 20032003

Windows Windows CE, XP, 200CE, XP, 20000, , 20032003

.NET .NET FrameworkFramework

.NET .NET FrameworkFramework .NET FW.NET FW

Your Your applications applications

and Web and Web servicesservices

Your Your applications applications

and Web and Web servicesservices

......

......

Page 23: Архитектура на платформата  .NET и  .NET Framework

Какво е Какво е .NET Framework?.NET Framework? Среда за разработка и изпълнение на Среда за разработка и изпълнение на

приложения за приложения за .NET.NET платформата платформата Програмен модел, библиотеки от Програмен модел, библиотеки от

класовекласове и единна инфраструктура за и единна инфраструктура за разработка, независима от езиците за разработка, независима от езиците за програмиранепрограмиране

Среда за контролирано изпълнение Среда за контролирано изпълнение на управляван кодна управляван код

Кодът работи на различни Кодът работи на различни платформиплатформи (Windows, Linux, (Windows, Linux, FreeBSD)FreeBSD)

Page 24: Архитектура на платформата  .NET и  .NET Framework

Компоненти на .Компоненти на .NET FrameworkNET Framework

..NET FrameworkNET Framework се състои от: се състои от: Common Language Runtime (CLR)Common Language Runtime (CLR)

Среда за контролирано изпълнение на Среда за контролирано изпълнение на програмен код –програмен код – нещо като виртуална машинанещо като виртуална машина

Изпълнява Изпълнява .NET.NET приложенията приложенията

Framework Class Library (FCL)Framework Class Library (FCL) Стандартна библиотека от класове за Стандартна библиотека от класове за

разработка на разработка на .NET.NET приложения приложения Предоставя основната функционалност за Предоставя основната функционалност за

разработка:разработка: ADO.NET, XML, ASP.NET, Web ADO.NET, XML, ASP.NET, Web Services, Windows Forms, Services, Windows Forms, ......

Достъпна е навсякъде, където има Достъпна е навсякъде, където има .NET .NET FrameworkFramework

Page 25: Архитектура на платформата  .NET и  .NET Framework

ОС управлява ресурсите, ОС управлява ресурсите, процесите и потребителите процесите и потребителите на машинатана машината

Осигурява на приложенията Осигурява на приложенията някои услугинякои услуги (COM+, MSMQ, (COM+, MSMQ, IIS, WMI)IIS, WMI)

CLR CLR е отделен процес в ОСе отделен процес в ОС

Операционна системаОперационна система

Архитектура на Архитектура на .NET Framework.NET FrameworkОперационна системаОперационна система

Page 26: Архитектура на платформата  .NET и  .NET Framework

Операционна системаОперационна система

Common Language RuntimeCommon Language Runtime

Архитектура на Архитектура на .NET Framework.NET FrameworkCommon Language RuntimeCommon Language Runtime

CLR CLR управлява процеса на управлява процеса на изпълнение на изпълнение на .NET .NET кодкод

Управлява паметта, Управлява паметта, конкурентността, конкурентността, сигурността, ...сигурността, ...

Page 27: Архитектура на платформата  .NET и  .NET Framework

Операционна системаОперационна система

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

Богата обектно-ориентирана Богата обектно-ориентирана библиотека с основни класовебиблиотека с основни класове

КолекцииКолекции, , вход-изходвход-изход, , работа работа със символни низовесъс символни низове, , работа с работа с мрежа,мрежа, сигурност, отдалечено сигурност, отдалечено извикване, многонишковост, извикване, многонишковост, ……

Архитектура на Архитектура на .NET Framework.NET FrameworkBase Class LibraryBase Class Library

Page 28: Архитектура на платформата  .NET и  .NET Framework

Операционна системаОперационна система

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

ADO.NET and XMLADO.NET and XML

Достъп до бази данниДостъп до бази данни Disconnected Disconnected модел на модел на

данните (данните (DataSets)DataSets) Силна поддръжка на Силна поддръжка на XMLXML

Архитектура на Архитектура на .NET Framework.NET FrameworkРабота с данниРабота с данни

Page 29: Архитектура на платформата  .NET и  .NET Framework

Операционна системаОперационна система

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

ADO .NET and XMLADO .NET and XML

ASP.NETASP.NETWeb Forms Web ServicesWeb Forms Web Services

Mobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

Потребителски интерфейс за Потребителски интерфейс за приложениятаприложенията – Web- – Web-базиранбазиран, , Windows GUI, Web Windows GUI, Web услугиуслуги, …, …

Архитектура на Архитектура на .NET Framework.NET FrameworkASP.NET ASP.NET и и Windows FormsWindows Forms

Page 30: Архитектура на платформата  .NET и  .NET Framework

Операционна системаОперационна система

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

ADO .NET and XMLADO .NET and XML

ASP.NETASP.NETWeb Forms Web ServicesWeb Forms Web Services

Mobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

C#C# C++C++ VB.NETVB.NET J#J# PerlPerl

Език за програмиране по избор!Език за програмиране по избор!

DelphiDelphi ……

Архитектура на Архитектура на .NET Framework.NET FrameworkЕзици за програмиранеЕзици за програмиране

Page 31: Архитектура на платформата  .NET и  .NET Framework

Common Language Runtime (CLR)Common Language Runtime (CLR) Известен като Известен като Managed Execution Managed Execution

Environment (Environment (среда за управлявано среда за управлявано изпълнение)изпълнение)

Среда за контролирано изпълнение на Среда за контролирано изпълнение на управляван .управляван .NET NET програмен кодпрограмен код

Нещо подобно на виртуална машина Нещо подобно на виртуална машина (като (като JVM)JVM)

Не е интерпретатор – използва се Не е интерпретатор – използва се компилация по време на изпълнение компилация по време на изпълнение ((JIT JIT компилация)компилация)

Възможна е и предварителна Възможна е и предварителна компилациякомпилация

Common Language RuntimeCommon Language Runtime

Page 32: Архитектура на платформата  .NET и  .NET Framework

CLR CLR управлявауправлява Изпълнението на Изпълнението на IL IL кода и кода и JIT JIT компилациятакомпилацията Паметта и ресурсите на приложениетоПаметта и ресурсите на приложението Безопасността на типоветеБезопасността на типовете СигурносттаСигурността

Code access securityCode access security Role-based securityRole-based security

ИзключениятаИзключенията КонкурентносттаКонкурентността Връзката с неуправляван кодВръзката с неуправляван код Процесите на Процесите на debug debug и оптимизиране (и оптимизиране (profiling) profiling)

при разработка на приложенияпри разработка на приложения

Common Language RuntimeCommon Language Runtime

Page 33: Архитектура на платформата  .NET и  .NET Framework

Архитектура на Архитектура на CLRCLR

Class LoaderClass Loader

IL to NativeIL to NativeJIT CompilerJIT Compiler

CodeCodeManagerManager

GarbageGarbageCollectorCollector

Security EngineSecurity Engine Debug EngineDebug Engine

Type CheckerType Checker Exception ManagerException Manager

Thread SupportThread Support COM MarshalerCOM Marshaler

Base Class Library SupportBase Class Library Support

Page 34: Архитектура на платформата  .NET и  .NET Framework

Управляван кодУправляван код Управляваният код (Управляваният код (Managed code)Managed code)

Кодът, който Кодът, който CLR CLR изпълняваизпълнява Win32 Win32 кодът не е управляванкодът не е управляван Представлява програмен код на езика Представлява програмен код на езика

от ниско ниво от ниско ниво IL (Intermediate Language)IL (Intermediate Language) Описва се от метаданни:Описва се от метаданни:

описание на класове, интерфейси, описание на класове, интерфейси, свойства, полета, методи, параметри, свойства, полета, методи, параметри, типове данни, ...типове данни, ...

описание на библиотеките от класовеописание на библиотеките от класове описание на сигурносттаописание на сигурността

Програмите, написани на всеки Програмите, написани на всеки .NET .NET език, се компилират до управляван кодезик, се компилират до управляван код

Page 35: Архитектура на платформата  .NET и  .NET Framework

Управляваният код (Управляваният код (Managed code)Managed code) Обектно-ориентиранОбектно-ориентиран Защитен от неправилна работа с типове (Защитен от неправилна работа с типове (type-type-

safety)safety) СигуренСигурен НадежденНадежден Позволява интеграция между различни езици Позволява интеграция между различни езици

за програмиранеза програмиране Позволява преносимост между различни Позволява преносимост между различни

платформиплатформи Неуправляваният код (Неуправляваният код (Win32 Win32 кодът)кодът)

няма защита на паметта и типоветеняма защита на паметта и типовете създава проблеми с надеждносттасъздава проблеми с надеждността не съдържа метаданни, които го описватне съдържа метаданни, които го описват

Управляван кодУправляван код

Page 36: Архитектура на платформата  .NET и  .NET Framework

Управление на паметтаУправление на паметта CLR CLR автоматично управлява паметтаавтоматично управлява паметта

Динамично-заделените обекти се разполагат в Динамично-заделените обекти се разполагат в т. нар. т. нар. Managed HeapManaged Heap

Неизползваните обекти се почистват Неизползваните обекти се почистват автоматично от т. нар. автоматично от т. нар. Garbage CollectorGarbage Collector

Някои от най-неприятните проблеми в Някои от най-неприятните проблеми в програмирането са почти невъзможни:програмирането са почти невъзможни: Загуба на памет (Загуба на памет (memory leaks)memory leaks) Достъп до освободена или неинициализирана Достъп до освободена или неинициализирана

паметпамет

В управлявания кодВ управлявания код няма указатели!няма указатели! Използват се референции към обектиИзползват се референции към обекти

Page 37: Архитектура на платформата  .NET и  .NET Framework

Intermediate LanguageIntermediate Language Intermediate Language Intermediate Language ((ILIL, , MSILMSIL,, CIL) CIL)

Език от ниско ниво (машинен език)Език от ниско ниво (машинен език) Стекова архитектураСтекова архитектура Като асемблер, но с обектно-Като асемблер, но с обектно-

ориентирани възможности:ориентирани възможности: инструкции за заделяне на паметинструкции за заделяне на памет инструкции за предизвикване и обработкаинструкции за предизвикване и обработка

на изключенияна изключения инструкция за извикване на виртуален инструкция за извикване на виртуален

методметод Позволява ефективно компилиране до Позволява ефективно компилиране до

машинен код за различни платформимашинен код за различни платформи Винаги се компилира преди изпълнениеВинаги се компилира преди изпълнение

Page 38: Архитектура на платформата  .NET и  .NET Framework

Примерна програма наПримерна програма на MSIL MSIL

.method private hidebysig static void .method private hidebysig static void

Main() cil managedMain() cil managed

{{

.entrypoint.entrypoint

// Code size 11 (0xb)// Code size 11 (0xb)

.maxstack 8.maxstack 8

ldstr "Hello, world!"ldstr "Hello, world!"

call void call void

[mscorlib]System.Console::WriteLine(string)[mscorlib]System.Console::WriteLine(string)

retret

} // end of method HelloWorld::Main} // end of method HelloWorld::Main

Page 39: Архитектура на платформата  .NET и  .NET Framework

Компилация и изпълнениеКомпилация и изпълнение

КомпилацияКомпилация

ИзпълнениеИзпълнение

JIT JIT компилаторкомпилатор

машинен машинен кодкод

MSILMSILкодкод

метаданниметаданни

изходен изходен кодкод

езиков езиков компилаторкомпилатор

AssemblyAssembly(.EXE (.EXE илиили

.DLL .DLL файлфайл))

AssemblyAssembly(.EXE (.EXE илиили

.DLL .DLL файлфайл))

- - Когато даден Когато даден метод се извика метод се извика за първи пътза първи път

- - Когато даден Когато даден метод се извика метод се извика за първи пътза първи път

- - Прекомпилация Прекомпилация при инсталиранепри инсталиране- - Прекомпилация Прекомпилация при инсталиранепри инсталиране

Page 40: Архитектура на платформата  .NET и  .NET Framework

Как Как CLR CLR изпълнява изпълнява MSIL MSIL кодакода.EXE .EXE / ./ .DLLDLL

Class LoaderClass Loader

JIT JIT компилаторкомпилатор

управляван управляван машинен кодмашинен код

trustedcode

извикване нанекомпилиран

метод

SecuritySecurityEngineEngine

изпълнениеизпълнение

VerifierVerifier

CodeCodeManagerManager

вечекомпилиран

код

библиотеки библиотеки с класовес класове

Page 41: Архитектура на платформата  .NET и  .NET Framework

.NET .NET асемблитаасемблита ..NET NET асемблитата (асемблитата (assemblies)assemblies)

Програмни компоненти – Програмни компоненти – DLL DLL ии EXE EXE файловефайлове

Най-малката Най-малката deploymentdeployment единица в единица в CLR CLR Имат уникален номер на версиятаИмат уникален номер на версията Няма конфликти с версиитеНяма конфликти с версиите (DLL hell) (DLL hell) Няколко различни версии на едно и Няколко различни версии на едно и

също асембли могат да съществуват и също асембли могат да съществуват и да се използват едновременнода се използват едновременно

Състоят се от:Състоят се от: MSIL MSIL изпълним кодизпълним код метаданниметаданни ( (за асемблито и за типовете)за асемблито и за типовете) ресурсиресурси

Page 42: Архитектура на платформата  .NET и  .NET Framework

Частни и споделени асемблита Частни и споделени асемблита ((private and shared assembliesprivate and shared assemblies)) Частни асемблитаЧастни асемблита

Използват се само за едно приложение, от Използват се само за едно приложение, от което са часткоето са част

Записват се в директорията на Записват се в директорията на приложениетоприложението

Споделени асемблитаСподелени асемблита Достъпни са за всички приложенияДостъпни са за всички приложения Записват се в специална област, т. нар. Записват се в специална област, т. нар.

Global Assembly Cache (GAC)Global Assembly Cache (GAC) Идентифицират се по силно име (име, Идентифицират се по силно име (име,

версия, локализация и цифров подпис)версия, локализация и цифров подпис)

.NET .NET асемблитаасемблита

Page 43: Архитектура на платформата  .NET и  .NET Framework

Метаданните в асемблитатаМетаданните в асемблитатаОписание на типоветеОписание на типовете

Класове, интерфейси, типовеКласове, интерфейси, типовеБазови класове, имплементираниБазови класове, имплементираниинтерфейсиинтерфейсиЧлен-променливи, свойстваЧлен-променливи, свойстваМетоди, параметри на методите,Методи, параметри на методите,връщана стойноствръщана стойностАтрибутиАтрибути

Класове, интерфейси, типовеКласове, интерфейси, типовеБазови класове, имплементираниБазови класове, имплементираниинтерфейсиинтерфейсиЧлен-променливи, свойстваЧлен-променливи, свойстваМетоди, параметри на методите,Методи, параметри на методите,връщана стойноствръщана стойностАтрибутиАтрибути

ИмеИмеВерсияВерсияЛокализацияЛокализация

ИмеИмеВерсияВерсияЛокализацияЛокализация

Описание на асемблитоОписание на асемблито

Зависимости от други асемблитаЗависимости от други асемблитаПрава (Права (securitysecurity permissions) permissions)Експортирани типовеЕкспортирани типове

Зависимости от други асемблитаЗависимости от други асемблитаПрава (Права (securitysecurity permissions) permissions)Експортирани типовеЕкспортирани типове

[[цифров подписцифров подпис]]

Page 44: Архитектура на платформата  .NET и  .NET Framework

..NETNET приложенията приложенията Конфигурируеми изпълними единици Конфигурируеми изпълними единици Състоят се от едно или няколко асемблитаСъстоят се от едно или няколко асемблита Инсталират се с просто копиране, без Инсталират се с просто копиране, без

сложна регистрация на компонентитесложна регистрация на компонентите При конфликт се използват първо личните При конфликт се използват първо личните

((private) private) асемблита, а след това асемблита, а след това споделените от споделените от GACGAC

Различните приложения използват Различните приложения използват различни версии на общите асемблита – различни версии на общите асемблита – няма конфликтняма конфликт

Лесна инсталация, деинсталация и Лесна инсталация, деинсталация и обновяванеобновяване

Page 45: Архитектура на платформата  .NET и  .NET Framework

ResourcesResources

MSIL CodeMSIL Code

MetadataMetadata

CLR HeaderCLR Header

PE HeaderPE Header

Преносими изпълними файловеПреносими изпълними файлове

Преносимите изпълними файлове Преносимите изпълними файлове (portable executables(portable executables, , PE)PE) Представляват Представляват .EXE .EXE или или .DLL.DLL файлове файлове Състоят се от:Състоят се от:

Page 46: Архитектура на платформата  .NET и  .NET Framework

Application DomainsApplication Domains Application DomainsApplication Domains

.NET .NET процеси в процеси в CLRCLR Няколко Няколко application domainapplication domain-а могат да -а могат да

работят в един процес на ОСработят в един процес на ОС изолирани един от другизолирани един от друг без да се нарушава сигурносттабез да се нарушава сигурността

Не се създава отделен процес в ОС за Не се създава отделен процес в ОС за всеки всеки application domainapplication domain ( (.NET.NET процес) процес)

Подобрява се производителносттаПодобрява се производителността Намалява сеНамалява се натоварването и разхода натоварването и разхода

на системни ресурси (памет, на системни ресурси (памет, процесорно време, ...)процесорно време, ...)

Page 47: Архитектура на платформата  .NET и  .NET Framework

Поддръжка на много езициПоддръжка на много езици Common Language Specification (CLS)Common Language Specification (CLS)

Съвкупност от правила, които всички Съвкупност от правила, които всички .NET .NET езициезици са задължени да спазватса задължени да спазват

Специфицира минималните изисквания на Специфицира минималните изисквания на всички всички .NET.NET езици езици

Осигурява съвместимост между езицитеОсигурява съвместимост между езиците Intermediate Language (IL, MSIL)Intermediate Language (IL, MSIL)

Всички Всички .NET.NET езици се компилират до езици се компилират до MSILMSIL Осигурява съвместимост на Осигурява съвместимост на

компилирания .компилирания .NET NET кодкод Common Type System (CTS)Common Type System (CTS)

Обща система от типове за всички Обща система от типове за всички .NET .NET езициезици Осигурява съвместимост на даннитеОсигурява съвместимост на данните

Page 48: Архитектура на платформата  .NET и  .NET Framework

Common Language SpecificationCommon Language Specification

Common Language Specification (CLS)Common Language Specification (CLS) Система от правила и изисквания, на Система от правила и изисквания, на

които отговарят всички които отговарят всички .NET .NET езициезици Осигурява съвместимост и лесно Осигурява съвместимост и лесно

взаимодействие между взаимодействие между .NET.NET езиците езиците НапримерНапример:: CLS CLS налага всички налага всички .NET.NET

езици да са обектно-ориентираниезици да са обектно-ориентирани Някои .Някои .NETNET езици поддържат много езици поддържат много

повече от изискванията на повече от изискванията на CLSCLS При използване на нестандартни за При използване на нестандартни за CLS CLS

програмни средства ипрограмни средства и техники се губи техники се губи съвместимост с останалите съвместимост с останалите .NET .NET езициезици

Page 49: Архитектура на платформата  .NET и  .NET Framework

Common Type SystemCommon Type System Общата система от типове Общата система от типове (Common (Common

Type System, CTS)Type System, CTS) Дефинира поддържаните от Дефинира поддържаните от CLRCLR

типове данни и операции над тяхтипове данни и операции над тях Осигурява съвместимост на данните Осигурява съвместимост на данните

между различните между различните .NET.NET езици езици – String – String в в C#C# е същият като е същият като String String във във VB.NETVB.NET

Два типа обекти – по стойност и по Два типа обекти – по стойност и по референцияреференция

Всички типове наследяват Всички типове наследяват System.ObjectSystem.Object

String String е примитивен типе примитивен тип

Page 50: Архитектура на платформата  .NET и  .NET Framework

Common Type SystemCommon Type System Типове по стойност (Типове по стойност (value types)value types)

Примитивните типове (Примитивните типове (int, char, float, …)int, char, float, …) и и структурите, дефинирани от програмистаструктурите, дефинирани от програмиста

Съхраняват се в стекаСъхраняват се в стека Унищожават се при излизане от обхватУнищожават се при излизане от обхват Предават се по стойностПредават се по стойност

Типове по референция (Типове по референция (reference typesreference types)) Класове, интерфейси, масиви, делегатиКласове, интерфейси, масиви, делегати Представляват типово-обезопасени указателиПредставляват типово-обезопасени указатели Съхраняват се в динамичната памет (Съхраняват се в динамичната памет (managed managed

heap)heap) Унищожават се от Унищожават се от garbage collector-garbage collector-аа Предават се по референция (по адрес)Предават се по референция (по адрес)

Page 51: Архитектура на платформата  .NET и  .NET Framework

Common Language InfrastructureCommon Language Infrastructure Common Language Infrastructure (CLI) Common Language Infrastructure (CLI)

спецификациятаспецификацията Стандартизирана част от Стандартизирана част от CLRCLR

СтандартСтандарт ISO 23271 ISO 23271:2003:2003 Описва как приложения, написани на Описва как приложения, написани на

различни езици,различни езици, могат да се изпълняват могат да се изпълняват в различни среди без да се променят и в различни среди без да се променят и прекомпилиратпрекомпилират

.NET Framework –.NET Framework – имплементация на имплементация на CLICLI за за WindowsWindows

Mono – Mono – имплементация на имплементация на CLICLI за за UNIXUNIX и и Linux – Linux – http://www.go-mono.org/http://www.go-mono.org/

Page 52: Архитектура на платформата  .NET и  .NET Framework

CLI CLI стандартизирастандартизира:: Common Language Specification (CLS)Common Language Specification (CLS) Common Type System (CTS)Common Type System (CTS) Common Intermediate Language (CIL)Common Intermediate Language (CIL) Управление на изключенияУправление на изключения Асемблита и метаданниАсемблита и метаданни Части от Части от .NET Framework Class Library.NET Framework Class Library

Common Language InfrastructureCommon Language Infrastructure

Page 53: Архитектура на платформата  .NET и  .NET Framework

..NET NET езицитеезиците Езици, предоставени отЕзици, предоставени от Microsoft Microsoft

C#, C++, J#, VB.NET, C#, C++, J#, VB.NET, JScriptJScript Езици от трети доставчициЕзици от трети доставчици

Object Pascal, Perl, Python, APL, COBOL, Eiffel, Object Pascal, Perl, Python, APL, COBOL, Eiffel, Haskell, ML, Oberon, Scheme, Smalltalk…Haskell, ML, Oberon, Scheme, Smalltalk…

Смесване на използваните езициСмесване на използваните езици Междуезиково наследяване на типове и Междуезиково наследяване на типове и

управление на изключенияуправление на изключения В един проект може да има код на различни В един проект може да има код на различни

езициезици Интеграцията е вграденаИнтеграцията е вградена, , а не сглобенаа не сглобена

Много езициМного езици, , но с единна система от типове, но с единна система от типове, програмен модел и библиотека от класовепрограмен модел и библиотека от класове

Page 54: Архитектура на платформата  .NET и  .NET Framework

Езикът Езикът C#C# Смесица междуСмесица между C++, Java C++, Java ии Delphi Delphi Насочен към компонентно-ориентиранНасочен към компонентно-ориентиранo o

програмиранепрограмиране Компоненти, свойстваКомпоненти, свойства и събитияи събития XMLXML-базирана документация-базирана документация Всичко накуп, без Всичко накуп, без headerheader файлове, файлове, IDLIDL и т.н. и т.н. Може да се ползва за Може да се ползва за WebWeb-приложения-приложения

Всичко е обект!Всичко е обект! Примитивните типове също са обектиПримитивните типове също са обекти, , напр. напр.

5.ToString()5.ToString() е валидно извикване е валидно извикване

C# C# ее стандартизиран от стандартизиран от ECMA ECMA ии ISO ISO

Page 55: Архитектура на платформата  .NET и  .NET Framework

Езикът Езикът C# – C# – примерпримерusing System;using System;

class HelloWorldclass HelloWorld{{ static void Main()static void Main() {{ Console.WriteLine("Hello, world!");Console.WriteLine("Hello, world!"); }}}}

Page 56: Архитектура на платформата  .NET и  .NET Framework

Framework Class Library (FCL)Framework Class Library (FCL)

Base Class LibraryBase Class Library

ADO.NET and XMLADO.NET and XML

Web FormsWeb Forms, , Web ServicesWeb ServicesMobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

ASP.NETASP.NET

Framework Class Library Framework Class Library е стандартната е стандартната библиотека на библиотека на .NET Framework.NET Framework

Състои се отСъстои се от::

Page 57: Архитектура на платформата  .NET и  .NET Framework

Пакетите от библиотеката Пакетите от библиотеката FCLFCL

System System

GlobalizationGlobalization

DiagnosticsDiagnostics

ConfigurationConfiguration

CollectionsCollections

ResourcesResources

ReflectionReflection

NetNet

IOIO

ThreadingThreading

TextText

ServiceProcessServiceProcess

SecuritySecurity RuntimeRuntimeInteropServicesInteropServices

RemotingRemoting

SerializationSerialization

System.DataSystem.Data

DesignDesign

ADOADO

SQLTypesSQLTypes

SQLSQL

System.XmlSystem.Xml

XPathXPath

XSLTXSLT SerializationSerialization

System.WebSystem.Web

ConfigurationConfiguration SessionStateSessionState

CachingCaching SecuritySecurity

ServicesServices UIUIHtmlControlsHtmlControls

WebControlsWebControls

DescriptionDescription

DiscoveryDiscovery

ProtocolsProtocols System.DrawingSystem.Drawing

ImagingImaging

Drawing2DDrawing2D

TextText

PrintingPrinting

System.Windows.FormsSystem.Windows.Forms

DesignDesign ComponentModelComponentModel

Page 58: Архитектура на платформата  .NET и  .NET Framework

Visual Studio .NETVisual Studio .NET Visual Studio .NETVisual Studio .NET

Цялостна интегрирана среда за разработка на Цялостна интегрирана среда за разработка на приложенияприложения

Визуално програмиранеВизуално програмиране – – компонентно-компонентно-ориентирано, базирано на събитияориентирано, базирано на събития

Различни езици – Различни езици – C#, CC#, C++, ++, VB.NETVB.NET и и J# J# Управляван и неуправляван кодУправляван и неуправляван код Полезни помощници (Полезни помощници (wizards) wizards) и редактории редактори

Windows Forms DesignerWindows Forms Designer ASP.NET Web Forms DesignerASP.NET Web Forms Designer ADO.NET DataSet DesignerADO.NET DataSet Designer

Силна поддръжка на Силна поддръжка на WebWeb-услуги-услуги Интеграция с Интеграция с SQL Server SQL Server ии Internet Information Internet Information

Server (IIS)Server (IIS)

Page 59: Архитектура на платформата  .NET и  .NET Framework

Visual Studio .NETVisual Studio .NET ОтОт Visual Studio Visual Studio .NET .NET можетеможете::

Да пишете програмен кодДа пишете програмен код Да създавате потребителски интерфейсДа създавате потребителски интерфейс Да компилирате, изпълнявате, тествате, Да компилирате, изпълнявате, тествате,

проследявате за грешки (проследявате за грешки (debug)debug) и и deploy-deploy-ватевате

Да разглеждате документациятаДа разглеждате документацията

Единна среда – единни уменияЕдинна среда – единни умения Единна среда за всички езициЕдинна среда за всички езици Единна среда за всички платформиЕдинна среда за всички платформи Единна среда за всички технологииЕдинна среда за всички технологии

Page 60: Архитектура на платформата  .NET и  .NET Framework

Средата на Средата на Visual Studio .NETVisual Studio .NET

Page 61: Архитектура на платформата  .NET и  .NET Framework

Архитектура наАрхитектура наплатформата платформата .NET.NETи и .NET Framework.NET Framework

Въпроси?Въпроси?

Page 62: Архитектура на платформата  .NET и  .NET Framework

УпражненияУпражнения1.1. Опишете накратко платформата Опишете накратко платформата Microsoft .NET. Microsoft .NET.

Кои са основните принципи, които залягат в нея? Кои са основните принципи, които залягат в нея? Избройте четирите компонента, от които тя се Избройте четирите компонента, от които тя се състои.състои.

2.2. Какво представляват .NET Enterprise сървърите? Какво представляват .NET Enterprise сървърите? Избройте някои от тях. Какво представлява .NET Избройте някои от тях. Какво представлява .NET Framework? От какви компоненти се състои? Framework? От какви компоненти се състои? Какво е Visual Studio .NET? За какво служат .NET Какво е Visual Studio .NET? За какво служат .NET Building Block услугите? Какво са .NET Smart Building Block услугите? Какво са .NET Smart клиентите? Какво е характерно за тях?клиентите? Какво е характерно за тях?

3.3. Опишете накратко Опишете накратко .NET Framework..NET Framework. От какви От какви компоненти се състои тя?компоненти се състои тя?

4.4. Какво представлява средата за контролирано Какво представлява средата за контролирано изпълнение на програмен код Common Language изпълнение на програмен код Common Language Runtime (CLR)?Runtime (CLR)?

Page 63: Архитектура на платформата  .NET и  .NET Framework

УпражненияУпражнения5.5. Какво е Framework Class Library (FCL)? Каква Какво е Framework Class Library (FCL)? Каква

функционалност предлага тя?функционалност предлага тя?6.6. Какво е управляван код? Има ли причина да бъде Какво е управляван код? Има ли причина да бъде

използван вместо традиционния използван вместо традиционния native native код? Какво код? Какво е характерно за езика MSIL?е характерно за езика MSIL?

7.7. Какво представляват .NET асемблитата Какво представляват .NET асемблитата (assemblies)? Каква информация съдържат са (assemblies)? Каква информация съдържат са метаданните в асемблитата? Какво са .NET метаданните в асемблитата? Какво са .NET приложенията? Какво е application domain?приложенията? Какво е application domain?

8.8. Какво е Common Language Specification (CLS)? Какво е Common Language Specification (CLS)? Защо е необходима тя?Защо е необходима тя?

9.9. Какво представлява общата система от типове Какво представлява общата система от типове в в .NET Framework (.NET Framework (Common Type System)?Common Type System)?

10.10. Избройте няколко отИзбройте няколко от .NET езиците. Какво е .NET езиците. Какво е общото между тях?общото между тях?

Page 64: Архитектура на платформата  .NET и  .NET Framework

УпражненияУпражнения11.11. Избройте основните пакети от Framework Class Избройте основните пакети от Framework Class

Library (FCL).Library (FCL).

Page 65: Архитектура на платформата  .NET и  .NET Framework

MSDN, .NET Framework Technology Overview – MSDN, .NET Framework Technology Overview – http://msdn.microsoft.com/netframework/technologyihttp://msdn.microsoft.com/netframework/technologyinfo/overview/nfo/overview/

MSDN, Overview of the .NET Framework – MSDN, Overview of the .NET Framework – http://msdn.microsoft.com/library/en-us/cpguide/htmhttp://msdn.microsoft.com/library/en-us/cpguide/html/cpovrintroductiontonetframeworksdk.aspl/cpovrintroductiontonetframeworksdk.asp

Microsoft .NET Glossary – Microsoft .NET Glossary – http://members.microsoft.com/partner/products/NET/http://members.microsoft.com/partner/products/NET/MicrosoftNET/DotNetGlossary.aspxMicrosoftNET/DotNetGlossary.aspx

Mike Becker, .NET Technical Overview – Mike Becker, .NET Technical Overview – http://hp-events.hp3.nl/hp_itanium/presentaties/MSFhttp://hp-events.hp3.nl/hp_itanium/presentaties/MSFT%20-%20NET%20technical%20overview_1.1.pptT%20-%20NET%20technical%20overview_1.1.ppt

MSDN Training, Programming C# (MOC 2124C), MSDN Training, Programming C# (MOC 2124C), Module 1: Overview of the Microsoft .NET PlatformModule 1: Overview of the Microsoft .NET Platform

Използвана литератураИзползвана литература

Page 66: Архитектура на платформата  .NET и  .NET Framework

Jonathon Walsh, Joe Misner, Smart Clients — A Jonathon Walsh, Joe Misner, Smart Clients — A Practitioner's Point of View Practitioner's Point of View –http://www.developer.com/mgmt/article.php/3306741–http://www.developer.com/mgmt/article.php/3306741

Svetlin Nakov, .NET Framework Overview – Svetlin Nakov, .NET Framework Overview – http://www.nakov.com/publications/Nakov-DotNET-Frahttp://www.nakov.com/publications/Nakov-DotNET-Framework-Overview-english.pptmework-Overview-english.ppt

MSDN, Compiling to MSIL – MSDN, Compiling to MSIL – http://msdn.microsoft.com/library/en-us/cpguide/html/chttp://msdn.microsoft.com/library/en-us/cpguide/html/cpconmicrosoftintermediatelanguagemsil.asppconmicrosoftintermediatelanguagemsil.asp

MSDN, Application Domains Overview – MSDN, Application Domains Overview – http://msdn.microsoft.com/library/en-us/cpguide/html/chttp://msdn.microsoft.com/library/en-us/cpguide/html/cpconapplicationdomainsoverview.asppconapplicationdomainsoverview.asp

Използвана литератураИзползвана литература

Page 67: Архитектура на платформата  .NET и  .NET Framework

MSDN, What is the Common Language Specification MSDN, What is the Common Language Specification – – http://msdn.microsoft.com/library/en-us/cpguide/htmhttp://msdn.microsoft.com/library/en-us/cpguide/html/cpconwhatiscommonlanguagespecification.aspl/cpconwhatiscommonlanguagespecification.asp

MSDN, Common Type System – MSDN, Common Type System – http://msdn.microsoft.com/library/en-us/cpguide/htmhttp://msdn.microsoft.com/library/en-us/cpguide/html/cpconthecommontypesystem.aspl/cpconthecommontypesystem.asp

MSDN, The Common Language Infrastructure (CLI) – MSDN, The Common Language Infrastructure (CLI) – http://msdn.microsoft.com/netframework/using/undehttp://msdn.microsoft.com/netframework/using/understanding/cli/rstanding/cli/

MSDN, C# Language – MSDN, C# Language – http://msdn.microsoft.com/vcsharp/language/http://msdn.microsoft.com/vcsharp/language/

MSDN, .NET Framework Class Library – MSDN, .NET Framework Class Library – http://msdn.microsoft.com/library/en-us/cpref/html/chttp://msdn.microsoft.com/library/en-us/cpref/html/cpref_start.asppref_start.asp

Използвана литератураИзползвана литература

Page 68: Архитектура на платформата  .NET и  .NET Framework

MSDN, Visual Studio .NET – Product Overview – MSDN, Visual Studio .NET – Product Overview – http://msdn.microsoft.com/vstudio/productinfo/overvhttp://msdn.microsoft.com/vstudio/productinfo/overview/iew/

Използвана литератураИзползвана литература