45
Архитектура на Архитектура на платформата платформата .NET .NET и и .NET Framework .NET Framework Програмиране за Програмиране за .NET Framework .NET Framework Светлин Наков Светлин Наков Национална академия по Национална академия по разработка на софтуер разработка на софтуер academy.devbg.org

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

Embed Size (px)

DESCRIPTION

Програмиране за .NET Framework. Архитектура на платформата .NET и .NET Framework. Светлин Наков. Национална академия по разработка на софтуер. academy.devbg.org. Съдържание. Какво е .NET ? Архитектура на платформата Microsoft .NET Какво е .NET Framework ? - PowerPoint PPT Presentation

Citation preview

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

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

Програмиране заПрограмиране за .NET Framework .NET FrameworkПрограмиране заПрограмиране за .NET Framework .NET Framework

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

academy.devbg.org

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

СъдържаниеСъдържаниеСъдържаниеСъдържание

1.1. Какво е Какво е .NET.NET??

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

3.3. Какво е Какво е .NET.NET FrameworkFramework??

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

5.5. Common Language Runtime (CLR)Common Language Runtime (CLR)

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

7.7. Междинен език Междинен език MSILMSIL

8.8. Асемблита и метаданниАсемблита и метаданни

1.1. Какво е Какво е .NET.NET??

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

3.3. Какво е Какво е .NET.NET FrameworkFramework??

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

5.5. Common Language Runtime (CLR)Common Language Runtime (CLR)

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

7.7. Междинен език Междинен език MSILMSIL

8.8. Асемблита и метаданниАсемблита и метаданни

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

Съдържание (2)Съдържание (2)Съдържание (2)Съдържание (2)

9.9. .NET .NET приложенияприложения

10.10. Application domainsApplication domains

11.11. Common Language Specification Common Language Specification (CLS), Common Type System (CTS)(CLS), Common Type System (CTS)

12.12. Common Language Infrastructure (CLI)Common Language Infrastructure (CLI) и интеграцията на различни езиции интеграцията на различни езици

13.13. Framework Class LibraryFramework Class Library

14.14. Интегрирана среда за разработка Интегрирана среда за разработка Visual StudioVisual Studio

9.9. .NET .NET приложенияприложения

10.10. Application domainsApplication domains

11.11. Common Language Specification Common Language Specification (CLS), Common Type System (CTS)(CLS), Common Type System (CTS)

12.12. Common Language Infrastructure (CLI)Common Language Infrastructure (CLI) и интеграцията на различни езиции интеграцията на различни езици

13.13. Framework Class LibraryFramework Class Library

14.14. Интегрирана среда за разработка Интегрирана среда за разработка Visual StudioVisual Studio

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

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

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

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

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

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

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

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

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

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

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

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

Какво е Какво е платформата платформата .NET.NET??Какво е Какво е платформата платформата .NET.NET??

• Съвкупност от технологииСъвкупност от технологии• Свързват хората с информациятаСвързват хората с информацията

• Навсякъде и от всяко устройствоНавсякъде и от всяко устройство

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

• Визията на Визията на Microsoft Microsoft за развитието на за развитието на софтуерните технологиисофтуерните технологии

• Платформа, която Платформа, която поддържа тази визияподдържа тази визия

• Съвкупност от технологииСъвкупност от технологии• Свързват хората с информациятаСвързват хората с информацията

• Навсякъде и от всяко устройствоНавсякъде и от всяко устройство

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

• Визията на Визията на Microsoft Microsoft за развитието на за развитието на софтуерните технологиисофтуерните технологии

• Платформа, която Платформа, която поддържа тази визияподдържа тази визия

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

Какво е Какво е .NET .NET Framework?Framework?Какво е Какво е .NET .NET Framework?Framework?

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

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

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

• Независимост от езиците за програмиранеНезависимост от езиците за програмиране

• ..NET Compact FrameworkNET Compact Framework

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

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

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

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

• Независимост от езиците за програмиранеНезависимост от езиците за програмиране

• ..NET Compact FrameworkNET Compact Framework

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

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

Какво е Какво е .NET .NET Framework 2.0?Framework 2.0?Какво е Какво е .NET .NET Framework 2.0?Framework 2.0?

• Версия 2.0 на Версия 2.0 на .NET Framework .NET Framework въвежда въвежда много подобрения (спрямо версия 1.1)много подобрения (спрямо версия 1.1)

• Версия 2.0 на езика Версия 2.0 на езика C# C# ––параметризирани типове (параметризирани типове (generics)generics), , нулеви типовенулеви типове

• ASP.NET 2.0ASP.NET 2.0 – – master pages, master pages, нови нови контроли, подобрена връзка с бази от контроли, подобрена връзка с бази от данни, по-лесна разработкаданни, по-лесна разработка

• ADO.NET 2.0 – ADO.NET 2.0 – нови компонентинови компоненти

• Windows FormsWindows Forms – нови компоненти – нови компоненти

• Версия 2.0 на Версия 2.0 на .NET Framework .NET Framework въвежда въвежда много подобрения (спрямо версия 1.1)много подобрения (спрямо версия 1.1)

• Версия 2.0 на езика Версия 2.0 на езика C# C# ––параметризирани типове (параметризирани типове (generics)generics), , нулеви типовенулеви типове

• ASP.NET 2.0ASP.NET 2.0 – – master pages, master pages, нови нови контроли, подобрена връзка с бази от контроли, подобрена връзка с бази от данни, по-лесна разработкаданни, по-лесна разработка

• ADO.NET 2.0 – ADO.NET 2.0 – нови компонентинови компоненти

• Windows FormsWindows Forms – нови компоненти – нови компоненти

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

Компоненти на .Компоненти на .NET NET FrameworkFrameworkКомпоненти на .Компоненти на .NET NET FrameworkFramework

• 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, ......

• 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, ......

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

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

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

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

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

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

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

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

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

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

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

Common Language RuntimeCommon Language Runtime

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

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

Архитектура на Архитектура на .NET .NET FrameworkFramework (2) (2)Архитектура на Архитектура на .NET .NET FrameworkFramework (2) (2)

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

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

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

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

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

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

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

Архитектура на Архитектура на .NET .NET FrameworkFramework (3) (3)Архитектура на Архитектура на .NET .NET FrameworkFramework (3) (3)

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

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

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

ADO.NET and XMLADO.NET and XML

• Достъп до бази от данниДостъп до бази от данни

• Свързан и несвързанСвързан и несвързан модел на данните (модел на данните (DataSets)DataSets)

• Силна поддръжка на Силна поддръжка на XMLXML

• Достъп до бази от данниДостъп до бази от данни

• Свързан и несвързанСвързан и несвързан модел на данните (модел на данните (DataSets)DataSets)

• Силна поддръжка на Силна поддръжка на XMLXML

Архитектура на Архитектура на .NET .NET FrameworkFramework (4) (4)Архитектура на Архитектура на .NET .NET FrameworkFramework (4) (4)

Page 13: Архитектура на платформата  .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 услугиуслуги, …, …

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

Архитектура на Архитектура на .NET .NET FrameworkFramework (5) (5)Архитектура на Архитектура на .NET .NET FrameworkFramework (5) (5)

Page 14: Архитектура на платформата  .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 .NET FrameworkFramework (6) (6)Архитектура на Архитектура на .NET .NET FrameworkFramework (6) (6)

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

• Известен като среда за управлявано Известен като среда за управлявано изпълнение изпълнение ((Managed Execution Managed Execution EnvironmentEnvironment))

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

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

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

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

• Известен като среда за управлявано Известен като среда за управлявано изпълнение изпълнение ((Managed Execution Managed Execution EnvironmentEnvironment))

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

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

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

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

Common Language Common Language RuntimeRuntime ( (CLRCLR))Common Language Common Language RuntimeRuntime ( (CLRCLR))

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

• Изпълнението на Изпълнението на IL IL кода и кода и JIT JIT компилациятакомпилацията

• Управление на паметта и ресурсите на Управление на паметта и ресурсите на приложениетоприложението

• Защита на типоветеЗащита на типовете

• Взаимодействие с ОСВзаимодействие с ОС

• Управление на сигурносттаУправление на сигурността

• Code access securityCode access security

• Role-based securityRole-based security

• Изпълнението на Изпълнението на IL IL кода и кода и JIT JIT компилациятакомпилацията

• Управление на паметта и ресурсите на Управление на паметта и ресурсите на приложениетоприложението

• Защита на типоветеЗащита на типовете

• Взаимодействие с ОСВзаимодействие с ОС

• Управление на сигурносттаУправление на сигурността

• Code access securityCode access security

• Role-based securityRole-based security

Задачи и отговорности Задачи и отговорности на CLRна CLRЗадачи и отговорности Задачи и отговорности на CLRна CLR

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

• Управление на изключениятаУправление на изключенията

• Управление на конкурентносттУправление на конкурентносттаа – – контролира паралелното изпълнение контролира паралелното изпълнение на нишки (threads)на нишки (threads)

• Връзката с неуправляван кодВръзката с неуправляван код

• Поддръжка на процесите на Поддръжка на процесите на debug debug и и оптимизиране (оптимизиране (profiling) profiling) при при разработка на приложенияразработка на приложения

• Управление на изключениятаУправление на изключенията

• Управление на конкурентносттУправление на конкурентносттаа – – контролира паралелното изпълнение контролира паралелното изпълнение на нишки (threads)на нишки (threads)

• Връзката с неуправляван кодВръзката с неуправляван код

• Поддръжка на процесите на Поддръжка на процесите на debug debug и и оптимизиране (оптимизиране (profiling) profiling) при при разработка на приложенияразработка на приложения

Задачи и отговорности Задачи и отговорности на на CLR (2)CLR (2)Задачи и отговорности Задачи и отговорности на на CLR (2)CLR (2)

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

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

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

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

от ниско ниво от ниско ниво MSIL (Intermediate MSIL (Intermediate Language)Language)

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

свойства, полета, методи, параметрисвойства, полета, методи, параметри• Описание на сигурносттаОписание на сигурността

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

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

от ниско ниво от ниско ниво MSIL (Intermediate MSIL (Intermediate Language)Language)

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

свойства, полета, методи, параметрисвойства, полета, методи, параметри• Описание на сигурносттаОписание на сигурността

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

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

• Обектно-ориентиранОбектно-ориентиран

• Защитен от неправилна работа с Защитен от неправилна работа с типове (типове (type-safe)type-safe)

• СигуренСигурен

• НадежденНадежден

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

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

• Обектно-ориентиранОбектно-ориентиран

• Защитен от неправилна работа с Защитен от неправилна работа с типове (типове (type-safe)type-safe)

• СигуренСигурен

• НадежденНадежден

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

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

Управляван код (2)Управляван код (2)Управляван код (2)Управляван код (2)

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

Неуправляван код Неуправляван код ((Win32 Win32 код)код)Неуправляван код Неуправляван код ((Win32 Win32 код)код)

• Няма защита на паметта и типоветеНяма защита на паметта и типовете

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

• Създава проблеми с надеждносттаСъздава проблеми с надеждността

• Не съдържа метаданни, които го Не съдържа метаданни, които го описватописват

• Компилира се до машинно зависим Компилира се до машинно зависим кодкод

• Трудно се пренася на други Трудно се пренася на други платформиплатформи

• Няма защита на паметта и типоветеНяма защита на паметта и типовете

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

• Създава проблеми с надеждносттаСъздава проблеми с надеждността

• Не съдържа метаданни, които го Не съдържа метаданни, които го описватописват

• Компилира се до машинно зависим Компилира се до машинно зависим кодкод

• Трудно се пренася на други Трудно се пренася на други платформиплатформи

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

Управление на паметтаУправление на паметтаУправление на паметтаУправление на паметта

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

• Динамично-заделените обекти се разполагат Динамично-заделените обекти се разполагат в т. нар. в т. нар. managed heapmanaged heap

• Неизползваните обекти се почистват Неизползваните обекти се почистват автоматично от т. нар. автоматично от т. нар. garbage collectorgarbage collector

• Някои от най-неприятните проблеми в Някои от най-неприятните проблеми в програмирането са почти невъзможни:програмирането са почти невъзможни:

• Загуба на памет (Загуба на памет (memory leaks)memory leaks)

• Достъп до освободена или Достъп до освободена или неинициализирана паметнеинициализирана памет

• Обектите се достъпват през референцииОбектите се достъпват през референции

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

• Динамично-заделените обекти се разполагат Динамично-заделените обекти се разполагат в т. нар. в т. нар. managed heapmanaged heap

• Неизползваните обекти се почистват Неизползваните обекти се почистват автоматично от т. нар. автоматично от т. нар. garbage collectorgarbage collector

• Някои от най-неприятните проблеми в Някои от най-неприятните проблеми в програмирането са почти невъзможни:програмирането са почти невъзможни:

• Загуба на памет (Загуба на памет (memory leaks)memory leaks)

• Достъп до освободена или Достъп до освободена или неинициализирана паметнеинициализирана памет

• Обектите се достъпват през референцииОбектите се достъпват през референции

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

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

• Език от ниско ниво (машинен език)Език от ниско ниво (машинен език)

• Стекова архитектураСтекова архитектура

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

• Инструкции за предизвикване и Инструкции за предизвикване и обработкаобработка на изключенияна изключения

• Инструкция за извикване на виртуален Инструкция за извикване на виртуален методметод

• Компилира се до машинен код за Компилира се до машинен код за конкретната платформаконкретната платформа

• Език от ниско ниво (машинен език)Език от ниско ниво (машинен език)

• Стекова архитектураСтекова архитектура

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

• Инструкции за предизвикване и Инструкции за предизвикване и обработкаобработка на изключенияна изключения

• Инструкция за извикване на виртуален Инструкция за извикване на виртуален методметод

• Компилира се до машинен код за Компилира се до машинен код за конкретната платформаконкретната платформа

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

Примерна програма наПримерна програма на езика езика MSILMSILПримерна програма наПримерна програма на езика езика MSILMSIL

.method private hidebysig static void Main() .method private hidebysig static void Main()

cil managedcil managed

{{

.entrypoint.entrypoint

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

.maxstack 8.maxstack 8

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

call voidcall void

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

retret

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

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

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

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

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

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

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

MSILMSILкодкод

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

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

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

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

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

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

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

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

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

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

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

Как Как CLR CLR изпълнява изпълнява MSILMSIL??Как Как CLR CLR изпълнява изпълнява MSILMSIL??.EXE .EXE / ./ .DLLDLL

Class LoaderClass Loader

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

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

trustedcode

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

метод

SecuritySecurityEngineEngine

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

VerifierVerifier

CodeCodeManagerManager

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

код

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

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

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

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

• Най-малката единица за Най-малката единица за разпространение вразпространение в CLR CLR

• Имат уникален номер на версиятаИмат уникален номер на версията

• Няма конфликти с версиитеНяма конфликти с версиите (DLL hell) (DLL hell)

• Поддръжка на различни версии на Поддръжка на различни версии на едно и също асемблиедно и също асембли

• Съдържат метаданниСъдържат метаданни

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

• Най-малката единица за Най-малката единица за разпространение вразпространение в CLR CLR

• Имат уникален номер на версиятаИмат уникален номер на версията

• Няма конфликти с версиитеНяма конфликти с версиите (DLL hell) (DLL hell)

• Поддръжка на различни версии на Поддръжка на различни версии на едно и също асемблиедно и също асембли

• Съдържат метаданниСъдържат метаданни

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

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

Описание на типоветеОписание на типовете

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

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

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

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

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

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

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

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

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

..NETNET приложенията приложенията..NETNET приложенията приложенията

• Конфигурируеми изпълними единици Конфигурируеми изпълними единици

• Състоят се от едно или няколко асемблитаСъстоят се от едно или няколко асемблита

• Инсталират се с просто копиране, без Инсталират се с просто копиране, без сложна регистрация на компонентитесложна регистрация на компонентите

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

• Няма конфликтНяма конфликт

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

• Конфигурируеми изпълними единици Конфигурируеми изпълними единици

• Състоят се от едно или няколко асемблитаСъстоят се от едно или няколко асемблита

• Инсталират се с просто копиране, без Инсталират се с просто копиране, без сложна регистрация на компонентитесложна регистрация на компонентите

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

• Няма конфликтНяма конфликт

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

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

Поддръжка на много Поддръжка на много езици в езици в CLRCLRПоддръжка на много Поддръжка на много езици в езици в CLRCLR

• Common Language Specification (CLS)Common Language Specification (CLS)

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

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

• Осигурява съвместимост между езицитеОсигурява съвместимост между езиците

• Intermediate Language (MSIL)Intermediate Language (MSIL)

• Common Type System (CTS)Common Type System (CTS)

• Обща система от типове за всички Обща система от типове за всички .NET .NET езициезици

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

• Common Language Specification (CLS)Common Language Specification (CLS)

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

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

• Осигурява съвместимост между езицитеОсигурява съвместимост между езиците

• Intermediate Language (MSIL)Intermediate Language (MSIL)

• Common Type System (CTS)Common Type System (CTS)

• Обща система от типове за всички Обща система от типове за всички .NET .NET езициезици

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

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

Common Language Common Language Specification (CLS)Specification (CLS)Common Language Common Language Specification (CLS)Specification (CLS)

• Обща езикова спецификация Обща езикова спецификация (CLS)(CLS)

• Система от правила и изисквания, на Система от правила и изисквания, на които отговарят всички които отговарят всички .NET .NET езициезици

• Осигурява съвместимост и лесно Осигурява съвместимост и лесно взаимодействие между взаимодействие между .NET.NET езиците езиците

• НапримерНапример:: CLS CLS налага всички налага всички .NET.NET езици да са обектно-ориентираниезици да са обектно-ориентирани

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

• Обща езикова спецификация Обща езикова спецификация (CLS)(CLS)

• Система от правила и изисквания, на Система от правила и изисквания, на които отговарят всички които отговарят всички .NET .NET езициезици

• Осигурява съвместимост и лесно Осигурява съвместимост и лесно взаимодействие между взаимодействие между .NET.NET езиците езиците

• НапримерНапример:: CLS CLS налага всички налага всички .NET.NET езици да са обектно-ориентираниезици да са обектно-ориентирани

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

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

Common Type SystemCommon Type SystemCommon Type SystemCommon Type System

• Обща система от типове Обща система от типове (CTS)(CTS)• Дефинира поддържаните от Дефинира поддържаните от CLRCLR типове типове

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

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

VB.NETVB.NET и в и в J#J#

• Стойностни и референтни типовеСтойностни и референтни типове• Всички типове наследяват Всички типове наследяват System.ObjectSystem.Object

• StringString е примитивен типе примитивен тип

• Обща система от типове Обща система от типове (CTS)(CTS)• Дефинира поддържаните от Дефинира поддържаните от CLRCLR типове типове

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

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

VB.NETVB.NET и в и в J#J#

• Стойностни и референтни типовеСтойностни и референтни типове• Всички типове наследяват Всички типове наследяват System.ObjectSystem.Object

• StringString е примитивен типе примитивен тип

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

Common Language Common Language InfrastructureInfrastructureCommon Language Common Language InfrastructureInfrastructure

• Стандартизирана част от Стандартизирана част от CLRCLR

• СтандартСтандарт ISO 23271 ISO 23271:2003:2003

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

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

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

• Стандартизирана част от Стандартизирана част от CLRCLR

• СтандартСтандарт ISO 23271 ISO 23271:2003:2003

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

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

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

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

• 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 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

• Не всичко е стандартизирано!Не всичко е стандартизирано!

Стандартизация в Стандартизация в CLICLIСтандартизация в Стандартизация в CLICLI

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

..NET NET езицитеезиците..NET NET езицитеезиците

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

• Езици от трети доставчициЕзици от трети доставчици• Object Pascal, Perl, Python, APL, COBOL, Object Pascal, Perl, Python, APL, COBOL,

Eiffel, Haskell, Oberon, Scheme, Smalltalk…Eiffel, Haskell, Oberon, Scheme, Smalltalk…

• Код на различни езици в един проектКод на различни езици в един проект

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

• Междуезиково наследяване на типове и Междуезиково наследяване на типове и управление на изключенияуправление на изключения

• Единна система от типове, програмен Единна система от типове, програмен модел и библиотека от класовемодел и библиотека от класове

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

• Езици от трети доставчициЕзици от трети доставчици• Object Pascal, Perl, Python, APL, COBOL, Object Pascal, Perl, Python, APL, COBOL,

Eiffel, Haskell, Oberon, Scheme, Smalltalk…Eiffel, Haskell, Oberon, Scheme, Smalltalk…

• Код на различни езици в един проектКод на различни езици в един проект

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

• Междуезиково наследяване на типове и Междуезиково наследяване на типове и управление на изключенияуправление на изключения

• Единна система от типове, програмен Единна система от типове, програмен модел и библиотека от класовемодел и библиотека от класове

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

Езикът Езикът C#C#Езикът Езикът C#C#

• Смесица междуСмесица между C++, Java C++, Java ии Delphi Delphi

• Насочен към компонентно-ориентиранНасочен към компонентно-ориентиранo o програмиранепрограмиране• Компоненти, свойстваКомпоненти, свойства и събитияи събития

• Без хедър файловете от Без хедър файловете от C/C++C/C++

• XMLXML-базирана документация-базирана документация

• Подходящ за Подходящ за GUIGUI и и WebWeb приложения приложения

• В В C# C# всичко е обект!всичко е обект!• Примитивните типове също са обектиПримитивните типове също са обекти

• Напр. Напр. 5.ToString()5.ToString() е валидно извикване е валидно извикване

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

• Смесица междуСмесица между C++, Java C++, Java ии Delphi Delphi

• Насочен към компонентно-ориентиранНасочен към компонентно-ориентиранo o програмиранепрограмиране• Компоненти, свойстваКомпоненти, свойства и събитияи събития

• Без хедър файловете от Без хедър файловете от C/C++C/C++

• XMLXML-базирана документация-базирана документация

• Подходящ за Подходящ за GUIGUI и и WebWeb приложения приложения

• В В C# C# всичко е обект!всичко е обект!• Примитивните типове също са обектиПримитивните типове също са обекти

• Напр. Напр. 5.ToString()5.ToString() е валидно извикване е валидно извикване

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

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

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

using System;using System;

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

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

Framework Class Library Framework Class Library (FCL)(FCL)Framework Class Library Framework Class Library (FCL)(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

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

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

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

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

Пакетите от библиотеката Пакетите от библиотеката FCLFCLПакетите от библиотеката Пакетите от библиотеката 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 40: Архитектура на платформата  .NET и  .NET Framework

Visual StudioVisual StudioVisual StudioVisual Studio

• Интегрирана среда за Интегрирана среда за .NET.NET разработка разработка

• Гъвкав редакторГъвкав редактор

• Мощен дебъгерМощен дебъгер

• Интеграция сИнтеграция с SQL Server SQL Server и и IISIIS

• Силна поддръжка на уеб услугиСилна поддръжка на уеб услуги

• Дебъгване наДебъгване на .NET .NET приложенияприложения

• Възможност за разширяване и Възможност за разширяване и създаване на нови редакторисъздаване на нови редактори

• Интегрирана среда за Интегрирана среда за .NET.NET разработка разработка

• Гъвкав редакторГъвкав редактор

• Мощен дебъгерМощен дебъгер

• Интеграция сИнтеграция с SQL Server SQL Server и и IISIIS

• Силна поддръжка на уеб услугиСилна поддръжка на уеб услуги

• Дебъгване наДебъгване на .NET .NET приложенияприложения

• Възможност за разширяване и Възможност за разширяване и създаване на нови редакторисъздаване на нови редактори

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

Visual Studio Visual Studio (2)(2)Visual Studio Visual Studio (2)(2)

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

• Различни езици – Различни езици – 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

• Единна среда – единни уменияЕдинна среда – единни умения

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

• Различни езици – Различни езици – 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

• Единна среда – единни уменияЕдинна среда – единни умения

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

Средата на Средата на Visual Visual StudioStudio 2005 2005Средата на Средата на Visual Visual StudioStudio 2005 2005

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

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

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

http://academy.devbg.org/dotnet/http://academy.devbg.org/dotnet/

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

УпражненияУпражненияУпражненияУпражнения

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

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

3.3. Какво представляват .NET асемблитата Какво представляват .NET асемблитата (assemblies)? (assemblies)?

4.4. Каква информация съдържат са метаданните в Каква информация съдържат са метаданните в асемблитата? асемблитата?

5.5. Какво са .NET приложенията? Какво са .NET приложенията? 6.6. Обяснете процеса на компилация на едно Обяснете процеса на компилация на едно

асембли.асембли.7.7. Какво е управляван код? Има ли причина да бъде Какво е управляван код? Има ли причина да бъде

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

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

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

3.3. Какво представляват .NET асемблитата Какво представляват .NET асемблитата (assemblies)? (assemblies)?

4.4. Каква информация съдържат са метаданните в Каква информация съдържат са метаданните в асемблитата? асемблитата?

5.5. Какво са .NET приложенията? Какво са .NET приложенията? 6.6. Обяснете процеса на компилация на едно Обяснете процеса на компилация на едно

асембли.асембли.7.7. Какво е управляван код? Има ли причина да бъде Какво е управляван код? Има ли причина да бъде

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

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

УпражненияУпражненияУпражненияУпражнения

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 Library (FCL)? Каква Какво е Framework Class Library (FCL)? Каква функционалност предлага тя?функционалност предлага тя?

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 Library (FCL)? Каква Какво е Framework Class Library (FCL)? Каква функционалност предлага тя?функционалност предлага тя?