Microsoft.NET Framework Кратък обзор Светлин Наков Консултант по разработка на софтуер Софийски УниверситетСв. Климент Охридски Хоноруван.

Презентация:



Advertisements
Похожие презентации
ФИЛОСОФИЯ.NET Любому современному программисту, который желает идти в ногу с последними веяниями, каждые несколько лет приходится переучиваться.
Advertisements

Средства на Visual Studio Team System за управление на проекти, версии на системата, извеждане на отчети, изграждане на изпълними версии на системата.
1 Умение мыслить объектно (проектирование архитектуры) Культура кодирования Знание языка и технологий Знание языка и технологий Понимание процесса Задача.
8/13/2012dotSITE - XP and MSF development in.NET1 Проектирование и создание приложений на базе Visual Studio.NET Andrew Filev Team leader dotSITE Ltd.Co.
Практически съвети за оптимално използване на сървърните ресурси Любомир Русанов.
Учебный курс Технологии и средства разработки корпоративных систем Лекция 4 Особенности платформы.NET для разработки корпоративных приложений Лекции читает.
По Безопасност и Защита Изготвил: Атанасис Авгеринудис Ф. 7210, гр. 30 П Р Е З Е Н Т А Ц И Я.
Microsoft Visual Studio Team System (VSTS). Основни моменти: ВЪВЕДЕНИЕ ПРЕДИМСТВА НА VISUAL STUDIO TEAM SYSTEM МЕТОДОЛОГИИ РЕАЛИЗАЦИЯ НА МЕТОДОЛОГИИТЕ.
Платформа Microsoft.NET Кафедра системного программирования С.-Петербургского государственного университета Андрей А.Терехов,
Учебный курс Технологии и средства разработки корпоративных систем Лекция 7 Создание веб-сервисов Лекции читает кандидат технических наук, доцент Зыков.
КОМПЮТЪРНИ ПЛАТФОРМИ ЗА ОБРАБОТКА НА ЛИНВИСТИЧНИ ДАННИ Дисертационен труд : Когнитивните метафори като средство за езикова демагогия в българските политически.
Microsoft.NET Первая лекция. COM Доступ к компонентам только через интерфейсы Назначение уникальных идентификаторов компонентам и интерфейсам Регистрация.
Веб-технологии и современные средства разработки УЦ ВГТУ & SoftLine Academy.
Тренинг «Разработка веб-приложений на ASP.NET» Занятие 1 Знакомство с ASP.NET Гайдар Магдануров
PHP Web Application Security. 1. Cross Site Scripting (XSS) 2. SQL Injection 3. Malicious File Execution Open Web Application Security Project
Съдържание Кои сме ние и защо сме тук? Какво е nZoom? Какви са ползите от nZoom? Допълнителна информация.
Дисциплина: «Высокоуровневые методы информатики и программирования» Кафедра «ОСУ» Осенний семестр 2009/2010 уч. года Уч. группы: 8581 и 8582.
Высокоуровневые методы информатики и программирования Лекция 20 Пространство имен System.Windows.Forms.
Тема 7. Технология ASP2.net, Framework 3.0 (2 часа). Основные понятия и возможности, роль в разработке приложений корпоративных приложений.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 4 Базовые технологии, использованные при реализации.
Транксрипт:

Microsoft.NET Framework Кратък обзор Светлин Наков Консултант по разработка на софтуер Софийски УниверситетСв. Климент Охридски Хоноруван преподавател по компютърни науки и софтуерни технологии

Визията на Microsoft за.NET ERP & Billing Customer Service Sales Потребители -На всяко устройство -Навсякъде -По всяко време XML Web Услуги Интеграция на бизнес процесите и приложенията Back Office Хетерогенна инфраструктура от сървъри Scheduling Authentication Notification

.NET Framework Модел за програмиране за.NET Модел за програмиране за.NET Платформа за изпълнение на.NET код в управлявана среда Платформа за изпълнение на.NET код в управлявана среда Удобна среда за разработка и изпълнение на мрежови приложения и Web услуги Удобна среда за разработка и изпълнение на мрежови приложения и Web услуги Програмно API и единен framework, независим от езиците за програмиране Програмно API и единен framework, независим от езиците за програмиране Кодът работи на различни платформи (Windows, Linux, FreeBSD, …) Кодът работи на различни платформи (Windows, Linux, FreeBSD, …) Модел за програмиране за.NET Модел за програмиране за.NET Платформа за изпълнение на.NET код в управлявана среда Платформа за изпълнение на.NET код в управлявана среда Удобна среда за разработка и изпълнение на мрежови приложения и Web услуги Удобна среда за разработка и изпълнение на мрежови приложения и Web услуги Програмно API и единен framework, независим от езиците за програмиране Програмно API и единен framework, независим от езиците за програмиране Кодът работи на различни платформи (Windows, Linux, FreeBSD, …) Кодът работи на различни платформи (Windows, Linux, FreeBSD, …)

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

.NET Framework Common Language Runtime Operating System Common Language Runtime CLR управлява процеса на изпълнение на кода CLR управлява процеса на изпълнение на кода Управлява паметта, конкурентността,... Управлява паметта, конкурентността,... Code-based security Code-based security Role-based security Role-based security

.NET Framework Base Class Library Operating System Common Language Runtime.NET Framework (Base Class Library) Богата обектно-ориентирана библиотека от преизползваеми типове Богата обектно-ориентирана библиотека от преизползваеми типове Колекции, вход-изход, работа със символни низове, … Колекции, вход-изход, работа със символни низове, …

.NET Framework Data Access Layer Operating System Common Language Runtime.NET Framework (Base Class Library) ADO.NET and XML Достъп до релационни бази данни Достъп до релационни бази данни Disconnected модел на данните Disconnected модел на данните Работа с XML Работа с XML

.NET Framework ASP.NET & Windows Forms Operating System Common Language Runtime.NET Framework (Base Class Library) ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit WindowsForms Потребителски интерфейс за приложенията – Web-базиран, Windows GUI, Web услуги, … Потребителски интерфейс за приложенията – Web-базиран, Windows GUI, Web услуги, …

.NET Framework Programming Languages Operating System Common Language Runtime.NET Framework (Base Class Library) ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit WindowsForms C++C#VB.NETPerlJ#… Използвате любимия си език! Използвате любимия си език!

.NET Framework Common Language Specification Operating System Common Language Runtime.NET Framework (Base Class Library) ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit WindowsForms Common Language Specification C++C#VB.NETPerlJ#…

.NET Framework Visual Studio.NET Operating System Common Language Runtime.NET Framework (Base Class Library) ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit WindowsForms Common Language Specification C++C#VB.NETPerlJ#… Visual Studio.NET

Поддръжка на много езици IL (MSIL or CIL) – Intermediate Language IL (MSIL or CIL) – Intermediate Language Език от ниско ниво (машинен език), като асемблер, но обектно-ориентиран Език от ниско ниво (машинен език), като асемблер, но обектно-ориентиран CTS – система от типове, вградена в CLR CTS – система от типове, вградена в CLR Разнообразни типове (int, float, string, …) Разнообразни типове (int, float, string, …) И стандартни операции над тези типове И стандартни операции над тези типове Два вида: Value types и Reference types Два вида: Value types и Reference types CLS – множество от спецификации, които трябва да се спазват от всички езици и библиотеки CLS – множество от спецификации, които трябва да се спазват от всички езици и библиотеки Така се осигурява възможността за взаимодействие между различните езици Така се осигурява възможността за взаимодействие между различните езици

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

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

Езикът C# Смесица между C++, Java и Delphi Смесица между C++, Java и Delphi Компонентно-ориентиранo програмиране Компонентно-ориентиранo програмиране Свойства, методи, събития Свойства, методи, събития Атрибути, XML-базирана документация Атрибути, XML-базирана документация Всичко накуп, без header файлове, IDL и т.н. Всичко накуп, без header файлове, IDL и т.н. Може да се ползва в Web-приложения Може да се ползва в Web-приложения Всичко е обект! Всичко е обект! Примитивните типове са обекти, напр. 5.ToString() е валидно извикване Примитивните типове са обекти, напр. 5.ToString() е валидно извикване Единна система типове = леснота за работа Единна система типове = леснота за работа Добра разширяемост и възможност за преизползване Добра разширяемост и възможност за преизползване

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

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

VS.NET – Единна среда за разработка – единни умения От Visual Studio.NET можете: От Visual Studio.NET можете: Да пишете код Да пишете код Да рисувате потребителски интерфейс Да рисувате потребителски интерфейс Да разглеждате документацията Да разглеждате документацията Да изпълнявате и тествате Да изпълнявате и тествате Да дебъгвате Да дебъгвате Единна среда за всички езици Единна среда за всички езици Единна среда за всички платформи Единна среда за всички платформи Единна среда за всички технологии Единна среда за всички технологии

Visual Studio.NET

.NET Framework Library Base Class Library ADO.NET и XML Web Forms, Web Services, Mobile Internet Toolkit WindowsForms ASP.NET

System Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Runtime InteropServices Remoting Serialization System.Data Design ADO SQLTypes SQL System.Xml XPath XSLT Serialization.NET Framework – пакети System.Web ConfigurationSessionState CachingSecurity ServicesUI HtmlControls WebControls Description Discovery Protocols System.Drawing Imaging Drawing2D Text Printing System.WinForms DesignComponentModel

Пакетите от Base Class Library System Threading Text ServiceProcess Security Resources Reflection Net IO Globalization Diagnostics Configuration Collections Runtime Serialization Remoting InteropServices

Base Class Library Типове данни, конвертиране, форматиране Типове данни, конвертиране, форматиране Колекции: ArrayList, Hashtable,... Колекции: ArrayList, Hashtable,... Интернационализация: култури, сортиране Интернационализация: култури, сортиране I/O: Бинарни и текстови потоци, файлове,... I/O: Бинарни и текстови потоци, файлове,... Мрежово програмиране: TCP/IP, HTTP,... Мрежово програмиране: TCP/IP, HTTP,... Reflection: метаданни и създаване на MSIL Reflection: метаданни и създаване на MSIL Сигурност: Криптография, права за достъп Сигурност: Криптография, права за достъп Текст: Кодирания, регулярни изрази,... Текст: Кодирания, регулярни изрази,... Remoting и Serialization: отдалечено извикване Remoting и Serialization: отдалечено извикване Многонишковост и синхронизация Многонишковост и синхронизация

Пакетите Data и XML System.Data SQLTypes SQLClient Common OleDb System.Xml Serialization XPath XSLT

ADO.NET и XML ADO.NET приема всякакви типове данни ADO.NET приема всякакви типове данни XML (йерархични), релационни,... XML (йерархични), релационни,... Мощно кеширане в паметта (DataSet) Мощно кеширане в паметта (DataSet) DataSet може да съдържа различни обекти: таблици, изгледи, релации, constraints,... DataSet може да съдържа различни обекти: таблици, изгледи, релации, constraints,... Лек, stateless, disconnected модел Лек, stateless, disconnected модел Вградено поддържа релационен и XML достъп Вградено поддържа релационен и XML достъп Високоскоростен поточно-ориентиран достъп до данните Високоскоростен поточно-ориентиран достъп до данните Сериозна поддръжка на XML: Сериозна поддръжка на XML: W3C DOM, XSL/T, XPath и XSchema W3C DOM, XSL/T, XPath и XSchema

VS.NET – DataSet редактор

Пакетите от Windows Forms System.Drawing Drawing2D Imaging Printing Text System.Windows.Forms DesignComponentModel

Windows Forms Windows Forms е framework за създаване на приложения с прозоречно-базиран графичен потребителски интерфейс RAD (Rapid Application Development) Component-based Event-driven Богат набор от контроли Data-aware компоненти Поддръжка на печатане Вградена поддръжка на Unicode Позволява наследяване на потребителски интерфейс

VS.NET – Windows Forms редактор

Demo 1 Създаване на просто приложение за достъп до база от данни чрез: Създаване на просто приложение за достъп до база от данни чрез: Windows Forms Windows Forms ADO.NET ADO.NET MS SQL Server MS SQL Server Visual Studio.NET Visual Studio.NET

DataGrid DataSetDatabaseMicrosoft SQL Server SqlConnection SqlDataAdapter Fill Update Demo 1 – архитектура Application

Пакетите от ASP.NET System.Web Caching Configuration ServicesUI SessionState HtmlControls WebControls Description Discovery Security Protocols

Framework за създаване на Web-базирани приложения и Web-услуги на всеки.NET език Framework за създаване на Web-базирани приложения и Web-услуги на всеки.NET език C#, C++, VB.NET, JScript,... C#, C++, VB.NET, JScript,... Поддържа на различни клиенти Поддържа на различни клиенти DHTML, HTML 3.2, WML, мобилни устройства DHTML, HTML 3.2, WML, мобилни устройства ASP.NET Web-приложенията се компилират до assemblies ASP.NET Web-приложенията се компилират до assemblies Кешират се при първо извикване и след това се изпълняват от кеша веднага Кешират се при първо извикване и след това се изпълняват от кеша веднага Има разделяне на кода от Web-дизайна Има разделяне на кода от Web-дизайна Програмистите и дизайнерите могат да работят независимо Програмистите и дизайнерите могат да работят независимо ASP.NET

ASP.NET Богат набор от ASP.NET server контроли Богат набор от ASP.NET server контроли Валидация на данните Валидация на данните Data-bound grids Data-bound grids Event-driven модел за изпълнение Event-driven модел за изпълнение Отлична поддръжка на Web-услуги Отлична поддръжка на Web-услуги Лесно внедряване (deployment) Лесно внедряване (deployment) Висока надеждност Висока надеждност Висока производителност и скалируемост Висока производителност и скалируемост Скалируемо управление на информацията за състоянието (session state management) Скалируемо управление на информацията за състоянието (session state management)

VS.NET – Web Forms редактор

ASP.NET WebMatrix

Demo 2 Създаване на просто Web- базирано приложение за достъп до база данни чрез: Създаване на просто Web- базирано приложение за достъп до база данни чрез: ASP.NET (Web Forms) ASP.NET (Web Forms) ADO.NET ADO.NET MS SQL Server MS SQL Server MS Internet Information Server MS Internet Information Server Visual Studio.NET Visual Studio.NET

DataGrid DataSetDatabaseMicrosoft SQL Server SqlConnection SqlDataAdapter Fill Update Demo 2 – архитектура Web Application

Web-услуги Web-услугите са програмни компоненти, достъпни отдалечено през Web Web-услугите са програмни компоненти, достъпни отдалечено през Web Използват стандартите HTTP, XML и SOAP Използват стандартите HTTP, XML и SOAP Имат стандартно описание на езика WSDL Имат стандартно описание на езика WSDL Извикват се с лекота от всеки клиент на всяка платформа Извикват се с лекота от всеки клиент на всяка платформа Моделът за изпълнение е заявка-отговор – прилича на компонентно-ориентираното програмиране, но работи през Web Моделът за изпълнение е заявка-отговор – прилича на компонентно-ориентираното програмиране, но работи през Web ASP.NET – лесен програмен модел за разработка на Web-услуги ASP.NET – лесен програмен модел за разработка на Web-услуги Пишем.ASMX файлове с обикновени класове и методи в тях Пишем.ASMX файлове с обикновени класове и методи в тях ASP.NET ги компилира при поискване, генерира им WSDL и създава им тестова страница ASP.NET ги компилира при поискване, генерира им WSDL и създава им тестова страница

Web Service – пример на C# ParcelTracker.asmx using System; using System.Web.Services; public class ParcelTrackerWebService { [WebMethod] [WebMethod] public string GetOrderStatus(int orderNumber) public string GetOrderStatus(int orderNumber) { // Implementation here // Implementation here // return some_result; }}

Demo 3 Създаване на проста Web-услуга чрез: Създаване на проста Web-услуга чрез: ASP.NET (Web Services) ASP.NET (Web Services) MS Internet Information Server MS Internet Information Server Visual Studio.NET Visual Studio.NET

Shared Source CLI (Rotor) Некомерсиална имплементация на CLI, достъпна във вид на сорс-код. Съдържа: Некомерсиална имплементация на CLI, достъпна във вид на сорс-код. Съдържа: Среда за изпълнение на MSIL код (managed execution environment) с JIT-компилатор Среда за изпълнение на MSIL код (managed execution environment) с JIT-компилатор Компилатор за езиците C# и JScript Компилатор за езиците C# и JScript Инструменти за разработка – ilasm, ildasm, cordbg, metainfo, … Инструменти за разработка – ilasm, ildasm, cordbg, metainfo, … Реализирана изцяло на C++ и C# Реализирана изцяло на C++ и C# Компилира се MS Visual Studio.NET Компилира се MS Visual Studio.NET Достъпна за научни изследвания, образователна и учебна дейност Достъпна за научни изследвания, образователна и учебна дейност Работи под FreeBSD, Windows и Mac OS Работи под FreeBSD, Windows и Mac OS

.NET Framework – ресурси Web-сайтове: Web-сайтове: Официален сайт на. NET Framework – Официален сайт на. NET Framework – Microsoft.NET Framework Community – Microsoft.NET Framework Community – ASP.NET – ASP.NET – Windows Forms – Windows Forms – OReilly.NET Community Site – OReilly.NET Community Site – Microsoft Patterns and Practices – Microsoft Patterns and Practices – Code Project – Code Project –

.NET Framework – Resources Web-сайтове: Web-сайтове: Mono – Open Source.NET Framework – Mono – Open Source.NET Framework – Rotor – MS Shared Source.NET CLI – Rotor – MS Shared Source.NET CLI – Курс по.NET Framework в Софийски Университет – Курс по.NET Framework в Софийски Университет – Нюзгрупи: Нюзгрупи: Нюзгрупата на.NET Framework – news://msnews.microsoft.com/microsoft.public. dotnet.framework Нюзгрупата на.NET Framework – news://msnews.microsoft.com/microsoft.public. dotnet.framework news://msnews.microsoft.com/microsoft.public. dotnet.framework news://msnews.microsoft.com/microsoft.public. dotnet.framework Българската нюзгрупа на Microsoft – news://msnews.microsoft.com/microsoft.public. bg.developer Българската нюзгрупа на Microsoft – news://msnews.microsoft.com/microsoft.public. bg.developer news://msnews.microsoft.com/microsoft.public. bg.developer news://msnews.microsoft.com/microsoft.public. bg.developer

Въпроси?

Моите въпроси към вас Можем ли да разработваме.NET Framework приложения, който да се изпълняват върху мобилни устройства (мобилни телефони, PDA, handheld, …)? Можем ли да разработваме.NET Framework приложения, който да се изпълняват върху мобилни устройства (мобилни телефони, PDA, handheld, …)? Отговор: Отговор: Microsoft.NET Compact Framework Microsoft.NET Compact Framework Той е стандартна част от Microsoft Visual Studio.NET 2003 Той е стандартна част от Microsoft Visual Studio.NET 2003

Как можем да прекомпилираме предварително.NET assemblies за да ускорим изпълнението им? Има ли стандартен инструмент за това? Как можем да прекомпилираме предварително.NET assemblies за да ускорим изпълнението им? Има ли стандартен инструмент за това? Отговор: Отговор: Чрез програмката ngen.exe Чрез програмката ngen.exe Тя е стандартна част от.NET Framework Тя е стандартна част от.NET Framework Моите въпроси към вас

MSIL е изключително лесен за декомпилиране. Как можем да защитим нашия.NET код от reverse-engineering атаки? MSIL е изключително лесен за декомпилиране. Как можем да защитим нашия.NET код от reverse-engineering атаки? Отговор: Отговор: Чрез използване на obfuscator за.NET, например Dotfuscator Чрез използване на obfuscator за.NET, например Dotfuscator DotFuscator се разпространява стандартно с Visual Studio.NET DotFuscator се разпространява стандартно с Visual Studio.NET Моите въпроси към вас

В един DataSet компонент от ADO.NET може да има различни типове обекти? Един такъв тип обекти са таблиците. Кои са другите? В един DataSet компонент от ADO.NET може да има различни типове обекти? Един такъв тип обекти са таблиците. Кои са другите? Отговор: Отговор: Таблици, View-та, релации и constraints (unique и foreign key) Таблици, View-та, релации и constraints (unique и foreign key) Моите въпроси към вас