2: Microsoft . NET Framework
3: Визията на Microsoft за . NET
4: . NET Framework Модел за програмиране за . NET Платформа за изпълнение на . NET код в управлявана среда Удобна среда за разработка и изпълнение на мрежови приложения и Web услуги Програмно API и единен framework, независим от езиците за програмиране Кодът работи на различни платформи (Windows, Linux, FreeBSD, …)
5: Сърцето на . NET Framework: FCL & CLR Common Language Runtime Управление на паметта (garbage collection) Интеграция на различни езици Поддържа множество версии за компонентите (т. нар. assemblies) – няма вече конфликти Интегрирана сигурност Framework Class Library Предоставя основната функционалност за разработка: ASP. NET, Web Services, ADO. NET, Windows Forms, IO, XML, . . .
6: . NET Framework Common Language Runtime CLR управлява процеса на изпълнение на кода Управлява паметта, конкурентността, . . . Code-based security Role-based security
7: . NET Framework Base Class Library Богата обектно-ориентирана библиотека от преизползваеми типове Колекции, вход-изход, работа със символни низове, …
8: . NET Framework Data Access Layer Достъп до релационни бази данни Disconnected модел на данните Работа с XML
9: . NET Framework ASP. NET & Windows Forms Потребителски интерфейс за приложенията – Web-базиран, Windows GUI, Web услуги, …
10: . NET Framework Programming Languages Използвате любимия си език!
11: . NET Framework Common Language Specification
12: . NET Framework Visual Studio . NET
13: Поддръжка на много езици
14: Примерна програма на MSIL . method private hidebysig static void Main() cil managed . entrypoint // Code size 11 (0xb) . maxstack 8 IL0000: ldstr "Hello, world!" IL0005: call void mscorlibSystem. Console::WriteLine(string) IL000a: ret // end of method HelloWorld::Main
15: . NET езиците Езици, предоставени от Microsoft C, C, J, VB. NET, JScript Езици от трети доставчици Perl, Python, Pascal, APL, COBOL, Eiffel, Haskell, ML, Oberon, Scheme, Smalltalk… Смесване на използваните езици Междуезиково наследяване на типове и управление на изключения Един проект може да съдържа код на различни езици Интеграцията е вградена, а не сглобена Няма допълнителни особености или други API за учене
16: Езикът C Смесица между C, Java и Delphi Компонентно-ориентиранo програмиране Свойства, методи, събития Атрибути, XML-базирана документация Всичко накуп, без header файлове, IDL и т. н. Може да се ползва в Web-приложения Всичко е обект! Примитивните типове са обекти, напр. 5. ToString() е валидно извикване Единна система типове леснота за работа Добра разширяемост и възможност за преизползване
17: Езикът C – пример using System; class HelloWorld public static void main() Console. WriteLine(Hello, world!);
18: Компилация и изпълнение
19: VS. NET – Единна среда за разработка – единни умения От Visual Studio. NET можете: Да пишете код Да рисувате потребителски интерфейс Да разглеждате документацията Да изпълнявате и тествате Да дебъгвате Единна среда за всички езици Единна среда за всички платформи Единна среда за всички технологии
20: Visual Studio . NET
21: . NET Framework Library
22: . NET Framework – пакети
23: Пакетите от Base Class Library
24: Base Class Library Типове данни, конвертиране, форматиране Колекции: ArrayList, Hashtable, . . . Интернационализация: култури, сортиране I/O: Бинарни и текстови потоци, файлове, . . . Мрежово програмиране: TCP/IP, HTTP, . . . Reflection: метаданни и създаване на MSIL Сигурност: Криптография, права за достъп Текст: Кодирания, регулярни изрази, . . . Remoting и Serialization: отдалечено извикване Многонишковост и синхронизация
25: Пакетите Data и XML
26: ADO. NET и XML ADO. NET приема всякакви типове данни XML (йерархични), релационни, . . . Мощно кеширане в паметта (DataSet) DataSet може да съдържа различни обекти: таблици, изгледи, релации, constraints, . . . Лек, stateless, disconnected модел Вградено поддържа релационен и XML достъп Високоскоростен поточно-ориентиран достъп до данните Сериозна поддръжка на XML: W3C DOM, XSL/T, XPath и XSchema
27: VS. NET – DataSet редактор
28: Пакетите от Windows Forms
29: Windows Forms Windows Forms е framework за създаване на приложения с прозоречно-базиран графичен потребителски интерфейс RAD (Rapid Application Development) Component-based Event-driven Богат набор от контроли Data-aware компоненти Поддръжка на печатане Вградена поддръжка на Unicode Позволява наследяване на потребителски интерфейс
30: VS. NET – Windows Forms редактор
31: Demo 1 Създаване на просто приложение за достъп до база от данни чрез: Windows Forms ADO. NET MS SQL Server Visual Studio . NET
32: Demo 1 – архитектура
33: Пакетите от ASP. NET
34: ASP. NET Framework за създаване на Web-базирани приложения и Web-услуги на всеки . NET език C, C, VB. NET, JScript, . . . Поддържа на различни клиенти DHTML, HTML 3. 2, WML, мобилни устройства ASP. NET Web-приложенията се компилират до assemblies Кешират се при първо извикване и след това се изпълняват от кеша веднага Има разделяне на кода от Web-дизайна Програмистите и дизайнерите могат да работят независимо
35: ASP. NET Богат набор от ASP. NET server контроли Валидация на данните Data-bound grids Event-driven модел за изпълнение Отлична поддръжка на Web-услуги Лесно внедряване (deployment) Висока надеждност Висока производителност и скалируемост Скалируемо управление на информацията за състоянието (session state management)
36: VS. NET – Web Forms редактор
37: ASP. NET WebMatrix
38: Demo 2 Създаване на просто Web-базирано приложение за достъп до база данни чрез: ASP. NET (Web Forms) ADO. NET MS SQL Server MS Internet Information Server Visual Studio . NET
39: Demo 2 – архитектура
40: Web-услуги Web-услугите са програмни компоненти, достъпни отдалечено през Web Използват стандартите HTTP, XML и SOAP Имат стандартно описание на езика WSDL Извикват се с лекота от всеки клиент на всяка платформа Моделът за изпълнение е заявка-отговор –прилича на компонентно-ориентираното програмиране, но работи през Web ASP. NET – лесен програмен модел за разработка на Web-услуги Пишем . ASMX файлове с обикновени класове и методи в тях ASP. NET ги компилира при поискване, генерира им WSDL и създава им тестова страница
41: Web Service – пример на C
42: Demo 3 Създаване на проста Web-услуга чрез: ASP. NET (Web Services) MS Internet Information Server Visual Studio . NET
43: Shared Source CLI (Rotor) Некомерсиална имплементация на CLI, достъпна във вид на сорс-код. Съдържа: Среда за изпълнение на MSIL код (managed execution environment) с JIT-компилатор Компилатор за езиците C и JScript Инструменти за разработка – ilasm, ildasm, cordbg, metainfo, … Реализирана изцяло на C и C Компилира се MS Visual Studio . NET Достъпна за научни изследвания, образователна и учебна дейност Работи под FreeBSD, Windows и Mac OS
44: . NET Framework – ресурси Web-сайтове: Официален сайт на . NET Framework – http://msdn. microsoft. com/netframework/ Microsoft . NET Framework Community – http://www. gotdotnet. com/ ASP. NET – http://www. asp. net/ . NET Windows Forms – http://www. windowsforms. net/ OReilly . NET Community Site – http://www. ondotnet. com/ Microsoft Patterns and Practices – http://msdn. microsoft. com/practices/ Code Project – http://www. codeproject. net/
45: . NET Framework – Resources Web-сайтове: Mono – Open Source . NET Framework – http://www. go-mono. org/ Rotor – MS Shared Source . NET CLI – http://msdn. microsoft. com/net/sscli/ Курс по . NET Framework в Софийски Университет – http://www. nakov. com/dotnet/ Нюзгрупи: Нюзгрупата на . NET Framework – news://msnews. microsoft. com/microsoft. public. dotnet. framework Българската нюзгрупа на Microsoft –news://msnews. microsoft. com/microsoft. public. bg. developer
46: Въпроси? Въпроси?
47: Моите въпроси към вас Можем ли да разработваме . NET Framework приложения, който да се изпълняват върху мобилни устройства (мобилни телефони, PDA, handheld, …)? Отговор: Microsoft . NET Compact Framework Той е стандартна част от Microsoft Visual Studio . NET 2003
48: Моите въпроси към вас Как можем да прекомпилираме предварително . NET assemblies за да ускорим изпълнението им? Има ли стандартен инструмент за това? Отговор: Чрез програмката ngen. exe Тя е стандартна част от . NET Framework
49: Моите въпроси към вас MSIL е изключително лесен за декомпилиране. Как можем да защитим нашия . NET код от reverse-engineering атаки? Отговор: Чрез използване на obfuscator за . NET, например Dotfuscator DotFuscator се разпространява стандартно с Visual Studio . NET
50: Моите въпроси към вас В един DataSet компонент от ADO. NET може да има различни типове обекти? Един такъв тип обекти са таблиците. Кои са другите? Отговор: Таблици, View-та, релации и constraints (unique и foreign key)