1 / 45

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

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

lois-gaines
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Съдържание • Какво е .NET? • Архитектура на платформата Microsoft .NET • Какво е .NETFramework? • Архитектура на .NET Framework • Common Language Runtime (CLR) • Управляван код • Междинен език MSIL • Асемблита и метаданни

  3. Съдържание (2) • .NET приложения • Application domains • Common Language Specification (CLS), Common Type System (CTS) • Common Language Infrastructure (CLI) и интеграцията на различни езици • Framework Class Library • Интегрирана среда за разработка Visual Studio

  4. Визията на Microsoft за .NET • Потребители • На всяко устройство • Навсякъде • По всяко време XML Web УслугиИнтеграция на бизнес процесите и приложенията Известяване Автентикация Справки Поръчки Заявки Сървъри Хетерогенна инфраструктура от сървъри Управление на клиенти и партньори Управление на продажбите Управление на бизнеса

  5. Какво е платформата .NET? • Съвкупност от технологии • Свързват хората с информацията • Навсякъде и от всяко устройство • Стандартизирана инфраструктура за разработка, използване и хостинг на софтуерни приложения и уеб услуги • Визията на Microsoft за развитието на софтуерните технологии • Платформа, която поддържа тази визия

  6. Какво е .NET Framework? • Платформа за разработка и изпълнение на .NET приложенияи Web услуги • Среда за контролирано изпълнение на управляван код • Програмен модел, библиотеки от класовеи единна инфраструктура за разработка • Независимост от езиците за програмиране • .NET Compact Framework • Платформа за разработка и изпълнение на .NET приложения за мобилни устройства

  7. Какво е .NET Framework 2.0? • Версия 2.0 на .NET Framework въвежда много подобрения (спрямо версия 1.1) • Версия 2.0 на езика C# –параметризирани типове (generics), нулеви типове • ASP.NET 2.0 – master pages, нови контроли, подобрена връзка с бази от данни, по-лесна разработка • ADO.NET 2.0 – нови компоненти • Windows Forms – нови компоненти

  8. Компоненти на .NET Framework • Common Language Runtime (CLR) • Среда за контролирано изпълнение на програмен код –нещо като виртуална машина • Изпълнява .NET приложенията • Framework Class Library (FCL) • Стандартна библиотека от класове за разработка на .NET приложения • Предоставя основната функционалност за разработка: ADO.NET, XML, ASP.NET, Web Services, Windows Forms, ...

  9. Архитектура на .NET Framework • ОС управлява ресурсите, процесите и потребителите на машината • Осигурява на приложенията някои услуги (нишки, COM+, MSMQ, IIS, WMI) • CLR е отделен процес в ОС Операционна система

  10. Архитектура на .NET Framework (2) • CLR управлява процеса на изпълнение на .NET код • Управлява паметта, конкурентността, сигурността, ... Common Language Runtime Операционна система

  11. Архитектура на .NET Framework (3) • Богата обектно-ориентирана библиотека с основни класове • Колекции, вход-изход, текстообработка, работа с мрежа, отдалечено извикване, сигурност, многонишковост, … Base Class Library Common Language Runtime Операционна система

  12. Архитектура на .NET Framework (4) • Достъп до бази от данни • Свързан и несвързанмодел на данните (DataSets) • Силна поддръжка на XML ADO.NET and XML Base Class Library Common Language Runtime Операционна система

  13. Архитектура на .NET Framework (5) • Потребителски интерфейс за приложенията – Web базиран, Windows GUI, Web услуги, … ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms ADO .NET and XML Base Class Library Common Language Runtime Операционна система

  14. ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms ADO .NET and XML Base Class Library Архитектура на .NET Framework (6) • Език за програмиране по избор! … Delphi C# C++ VB.NET J# Perl Common Language Runtime Операционна система

  15. Common Language Runtime (CLR) • Известен като среда за управлявано изпълнение (Managed Execution Environment) • Среда за контролирано изпълнение на управляван .NET програмен код • Нещо подобно на виртуална машина (като JVM) • Не е интерпретатор – използва се компилация по време на изпълнение (JIT компилация) • Възможна е и предварителна компилация

  16. Задачи и отговорности на CLR • Изпълнението на IL кода и JIT компилацията • Управление на паметта и ресурсите на приложението • Защита на типовете • Взаимодействие с ОС • Управление на сигурността • Code access security • Role-based security

  17. Задачи и отговорности на CLR (2) • Управление на изключенията • Управление на конкурентността – контролира паралелното изпълнение на нишки (threads) • Връзката с неуправляван код • Поддръжка на процесите на debug и оптимизиране (profiling) при разработка на приложения

  18. Архитектура на CLR Base Class Library Support Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine IL to Native JIT Compiler Code Manager Garbage Collector Class Loader

  19. Управляван код(Managed code) • Кодът, който CLR изпълнява • Представлява програмен код на езика от ниско ниво MSIL (Intermediate Language) • Описва се от метаданни • Описание на класове, интерфейси, свойства, полета, методи, параметри • Описание на сигурността • Програмите, написани на всеки .NET език, се компилират до управляван код (MSIL)

  20. Управляван код (2) • Обектно-ориентиран • Защитен от неправилна работа с типове (type-safe) • Сигурен • Надежден • Позволява интеграция между различни езици за програмиране • Позволява преносимост между различни платформи

  21. Неуправляван код (Win32 код) • Няма защита на паметта и типовете • Създава проблеми със сигурността • Създава проблеми с надеждността • Не съдържа метаданни, които го описват • Компилира се до машинно зависим код • Трудно се пренася на други платформи

  22. Управление на паметта • CLR автоматично управлява паметта • Динамично-заделените обекти се разполагат в т. нар. managed heap • Неизползваните обекти се почистват автоматично от т. нар. garbage collector • Някои от най-неприятните проблеми в програмирането са почти невъзможни: • Загуба на памет (memory leaks) • Достъп до освободена или неинициализирана памет • Обектите се достъпват през референции

  23. Intermediate Language(MSIL, IL, CIL) • Език от ниско ниво (машинен език) • Стекова архитектура • Като асемблер, но с обектно-ориентирани възможности: • Инструкции за заделяне на памет • Инструкции за предизвикване и обработкана изключения • Инструкция за извикване на виртуален метод • Компилира се до машинен код за конкретната платформа

  24. Примерна програма наезика MSIL .method private hidebysig static void Main() cil managed { .entrypoint // Code size 11 (0xb) .maxstack 8 ldstr "Hello, world!" call void [mscorlib]System.Console::WriteLine(string) ret } // end of method HelloWorld::Main

  25. код езиков компилатор изходен код MSIL метаданни JIT компилатор машинен код Компилация и изпълнение Компилация Assembly (.EXE или .DLL файл) - Когато даден метод се извика за първи път Изпълнение - Прекомпилация при инсталиране

  26. .EXE / .DLL библиотеки с класове Class Loader Verifier JIT компилатор управляван машинен код Security Engine Code Manager Как CLR изпълнява MSIL? trusted code вече компилиран код извикване на некомпилиран метод изпълнение

  27. .NET асемблита (Assemblies) • Програмни компоненти – DLL и EXE файлове • Най-малката единица за разпространение в CLR • Имат уникален номер на версията • Няма конфликти с версиите (DLL hell) • Поддръжка на различни версии на едно и също асембли • Съдържат метаданни

  28. Метаданните в асемблитата Описание на типовете Класове, интерфейси, типове Базови класове, имплементирани интерфейси Член-променливи, свойства Методи, параметри на методите, връщана стойност Атрибути Описание на асемблито Име Версия Локализация [цифров подпис] Зависимости от други асемблита Права (security permissions) Експортирани типове

  29. .NET приложенията • Конфигурируеми изпълними единици • Състоят се от едно или няколко асемблита • Инсталират се с просто копиране, без сложна регистрация на компонентите • Различните приложения използват различни версии на общите асемблита • Няма конфликт • Лесна инсталация, деинсталация и обновяване

  30. Поддръжка на много езици в CLR • Common Language Specification (CLS) • Съвкупност от правила, които всички .NET езициса задължени да спазват • Специфицира минималните изисквания на всички .NET езици • Осигурява съвместимост между езиците • Intermediate Language (MSIL) • Common Type System (CTS) • Обща система от типове за всички .NET езици • Осигурява съвместимост на данните

  31. Common Language Specification (CLS) • Обща езикова спецификация (CLS) • Система от правила и изисквания, на които отговарят всички .NET езици • Осигурява съвместимост и лесно взаимодействие между .NET езиците • Например:CLS налага всички .NET езици да са обектно-ориентирани • При използване на нестандартни за CLS програмни техники се губи съвместимост с другите .NET езици

  32. Common Type System • Обща система от типове (CTS) • Дефинира поддържаните от CLR типове данни и операции над тях • Осигурява съвместимост на данните между различните .NET езици • Stringв C# е същият като Stringвъв VB.NET и в J# • Стойностни и референтни типове • Всички типове наследяват System.Object • Stringе примитивен тип

  33. Common Language Infrastructure • Стандартизирана част от CLR • Стандарт ISO 23271:2003 • Описва как приложения, написани на различни езици,могат да се изпълняват в различни среди без да се променят и прекомпилират • .NET Framework – имплементация на CLI за Windows • Mono – имплементация на CLI за UNIX и Linux – http://www.mono-project.com/

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

  35. .NET езиците • Езици, предоставени от Microsoft • C#, C++, J#, VB.NET, JScript • Езици от трети доставчици • Object Pascal, Perl, Python, APL, COBOL, Eiffel, Haskell, Oberon, Scheme, Smalltalk… • Код на различни езици в един проект • Интеграцията е вградена, а не сглобена • Междуезиково наследяване на типове и управление на изключения • Единна система от типове, програмен модел и библиотека от класове

  36. Езикът C# • Смесица между C++, Java и Delphi • Насочен към компонентно-ориентиранo програмиране • Компоненти, свойстваи събития • Без хедър файловете от C/C++ • XML-базирана документация • Подходящ за GUI и Web приложения • В C# всичко е обект! • Примитивните типове също са обекти • Напр. 5.ToString() е валидно извикване • C# естандартизиран от ECMA и ISO

  37. Езикът C# – пример using System; class HelloWorld { static void Main() { Console.WriteLine("Hello, world!"); } }

  38. Web Forms, Web Services Mobile Internet Toolkit Windows Forms ASP.NET ADO.NET and XML Base Class Library Framework Class Library (FCL) • Framework Class Library е стандартната библиотека на .NET Framework • Състои се от:

  39. Пакетите от библиотеката FCL System.Web System.Windows.Forms Services UI Design ComponentModel Description HtmlControls Discovery WebControls Protocols System.Drawing Caching Security Drawing2D Printing Configuration SessionState Imaging Text System.Data System.Xml ADO SQL XSLT Serialization Design SQLTypes XPath System Collections IO Security Runtime InteropServices Configuration Net ServiceProcess Remoting Diagnostics Reflection Text Serialization Globalization Resources Threading

  40. Visual Studio • Интегрирана среда за .NET разработка • Гъвкав редактор • Мощен дебъгер • Интеграция с SQL Server и IIS • Силна поддръжка на уеб услуги • Дебъгване на .NET приложения • Възможност за разширяване и създаване на нови редактори

  41. Visual Studio (2) • Визуално програмиране – компонентно-ориентирано, базирано на събития • Различни езици – C#, C++, VB.NET и J# • Работа с управляван и неуправляван код • Полезни помощници (wizards) и редактори • Windows Forms Designer • ASP.NET Web Forms Designer • ADO.NET DataSet Designer • Единна среда – единни умения

  42. Средата на Visual Studio 2005

  43. Архитектура наплатформата .NET и .NET Framework Въпроси? http://academy.devbg.org/dotnet/

  44. Упражнения • Опишете накратко .NET Framework. От какви компоненти се състои тя? • Какво представлява средата за контролирано изпълнение на програмен код Common Language Runtime (CLR)? • Какво представляват .NET асемблитата (assemblies)? • Каква информация съдържат са метаданните в асемблитата? • Какво са .NET приложенията? • Обяснете процеса на компилация на едно асембли. • Какво е управляван код? Има ли причина да бъде използван вместо традиционния native код? Какво е характерно за езика MSIL?

  45. Упражнения • Какво е Common Language Specification (CLS)? Защо е необходима тя? • Какво представлява общата система от типове в .NET Framework (Common Type System)? • Избройте няколко от.NET езиците. Какво е общото между тях? • Какво е Framework Class Library (FCL)? Каква функционалност предлага тя?

More Related