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

Post on 05-Jan-2016

69 Views

Category:

Documents

12 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

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

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

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

СъдържаниеСъдържание (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 кодакода

СъдържаниеСъдържание (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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.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

.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

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

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

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

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

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

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

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

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

.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

..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 разработка разработка

.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

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

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

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

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

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

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

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

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

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

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

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

.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

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

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

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

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

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

.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 устройстваустройства

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

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

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

Инфраструктурата на Инфраструктурата на .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

......

......

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

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

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

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

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

Компоненти на .Компоненти на .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

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

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

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

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

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

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

Common Language RuntimeCommon Language Runtime

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

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

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

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

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

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

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

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

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

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Работа с данниРабота с данни

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

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

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

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Езици за програмиранеЕзици за програмиране

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

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

Архитектура на Архитектура на 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

паметпамет

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

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

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

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

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

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

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

Примерна програма наПримерна програма на 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

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

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

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

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

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

MSILMSILкодкод

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

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

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

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

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

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

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

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

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

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

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

Class LoaderClass Loader

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

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

trustedcode

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

метод

SecuritySecurityEngineEngine

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

VerifierVerifier

CodeCodeManagerManager

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

код

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ResourcesResources

MSIL CodeMSIL Code

MetadataMetadata

CLR HeaderCLR Header

PE HeaderPE Header

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

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

Application DomainsApplication Domains Application DomainsApplication Domains

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

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

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

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

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

Поддръжка на много езициПоддръжка на много езици 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 езициезици Осигурява съвместимост на даннитеОсигурява съвместимост на данните

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 езициезици

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 е примитивен типе примитивен тип

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-аа Предават се по референция (по адрес)Предават се по референция (по адрес)

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/

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

..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…

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

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

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

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

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

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

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

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

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

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

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

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

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

Пакетите от библиотеката Пакетите от библиотеката 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

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)

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

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

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

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

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

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

Архитектура наАрхитектура наплатформата платформата .NET.NETи и .NET Framework.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)?

УпражненияУпражнения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 езиците. Какво е общото между тях?общото между тях?

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

Library (FCL).Library (FCL).

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

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

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

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

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

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

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/

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

top related