Microsoft TechDayshttp://www.techdays.ru
Архитектурный обзор прикладной платформы .NETДмитрий АндреевЭксперт по Ахритектуре ИСMicrosoft
Microsoft TechDayshttp://www.techdays.ru
Классическая архитектура
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Би
знес
Бизнес процессыБизнес
компоненты
Ин
тер
фей
с
UI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Microsoft TechDayshttp://www.techdays.ru
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
Microsoft TechDayshttp://www.techdays.ru
Реализация
Microsoft TechDayshttp://www.techdays.ru
Приложение
Библиотеки (много)
Сервисы операционной системы (Win32)
Классическая система
Microsoft TechDayshttp://www.techdays.ru
Приложение
.NET Framework
Сервисы операционной системы (Win32)
Система на базе .NET
CLR BCL JIT
Microsoft TechDayshttp://www.techdays.ru
Что такое .NET Framework
Безопасный, гибкий, высокопроизводительный набор компонент позволяющий разработчикам создавать широкий спектр приложений для WindowsПредоставляет разработчикам высокий уровень абстракцииПовышает продуктивность разработки
Microsoft TechDayshttp://www.techdays.ru
Архитектура .NET
VB C# C++ Python
Jscript
Vis
ual S
tud
io
Основная языковая спецификация
ASP.NETWinForm
sWPF
ADO.NET, XML, Entity Framework, LinQ
Базовая библиотека классов
Среда выполнения (CLR)
Windows COM+
Microsoft TechDayshttp://www.techdays.ru
Версия .NET 3.5
Пятый выпуск .NET FrameworkПолностью поддерживается в Visual Studio 2008Это инкрементальное дополнение .NET Framework 3.0 и в свою очередь 2.0
Microsoft Visual Studio 2008
.NET Framework 3.5
.NET Framework 2.0 SP1
.NET Framework 3.0 SP1
Microsoft TechDayshttp://www.techdays.ru
Среда выполнения (CLR)
Управление памятьюУправление нитямиУправление исключениямиСборка мусораОбеспечение безопасности
Microsoft TechDayshttp://www.techdays.ru
Базовая библиотека классов
Базовые типы и исключенияСтруктуры данныхВвод/Вывод (файлы)Доступ к информации о типахПроверка безопасности
Microsoft TechDayshttp://www.techdays.ru
Простота использования
Доступность обучающих курсовБольшое сообщество
Форумы MSDNБлоги technet и msdn на русском языке
Доступность исходного кодаПростота в изучении
Русская локализация
Microsoft TechDayshttp://www.techdays.ru
Microsoft TechDayshttp://www.techdays.ru
Microsoft TechDayshttp://www.techdays.ru
Средства и функциональность
Полная интеграция с Visual StudioПоддержка множества сценариев использованияНаличие большого количества дополнительных библиотек
Позволяет сфокусироваться на решении задач
Microsoft TechDayshttp://www.techdays.ru
Компоненты приложения
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
КлиентТип клиента Технология
Обычное клиентское приложение (Rich Client, OBA)
Windows FormsWPF
Мобильное приложение Compact Framework (Forms)
Интернет приложение ASP.NET
Сервисное приложение WCF
RIA Silverlight, ASP.NET Ajax, XBap
Microsoft TechDayshttp://www.techdays.ru
ASP.NET
Веб приложение – простота развертыванияПроблема – код и дизайн смешаны
Классический ASP или PHPПоддержка различных парадигм создания Веб приложения
MVCAJAX
Большое количество готовых компонент
Смешанный дизайн и код
HTML> <HEAD> <TITLE>Database Programming with Visual Basic 6.0</TITLE> </HEAD>
<BODY> <CENTER> <H1><FONT size=4> Using ADO in a Visual Basic Script Web Page </FONT></H1> <H2>Database Programming with Visual Basic 6.0</H2> <HR> <! Begin server side script here> <% dim myconnection dim rsTitleList set myConnection = Server.CreateObject("ADODB.Connection") myconnection.open "Provider=Microsoft.Jet.OLEDB.3.51;" _ & "Data Source=C:\begdb\biblio.mdb" SQLQuery = "SELECT title FROM titles" set rsTitleList = myConnection.Execute(SQLQuery) do until rsTitleList.eof Response.Write rsTitleList("Title") %> <BR> <% rsTitleList.movenext loop rsTitleList.close set rsTitleList = nothing %> <! end server side script> <HR> </CENTER> </BODY> </HTML>
Microsoft TechDayshttp://www.techdays.ru
Windows Forms
Классическая библиотека создания клиентских приложенийОбширный опыт сообществаБольшое количество готовых компонент
Microsoft TechDayshttp://www.techdays.ru
Microsoft TechDayshttp://www.techdays.ru
WPF
Новая парадигма в разработке клиентских приложенийДекларативное программированиеРазделение кода и дизайнаДополнительные средства дизайна
Microsoft TechDayshttp://www.techdays.ru
WPF или WinForms?WPFСовременная графика (2D,3D, акселерация, эффекты)Лучшая архитектура и средства поддержкиПростота расширения, дизайна и настройки внешнего видаПоддержка процессов разработки между дизайнером и программистомВозможности использования наработок в RIA с помощью Silverlight
WinformsПоддержка Windows2000Поддержка слабого оборудованияВысокий уровень внедрения (installbase)Простота в программированииОтлаженный набор средств
Microsoft TechDayshttp://www.techdays.ru
Property Engine
Input / Eventing System
.NET Framework 2.0
DWM
Media Integration Layer
Direct3D
Windows Vista Display Driver (LDDM)
Windows Media Foundation
Composition Engine
Application Services
Deployment Services
Data Binding
User Interface Services
XAML
Accessibility
Property System
Input & Eventing
Base Services
Document Services
Packaging Services
XPS Documents
Animation
2D
3D
AudioImagingText
VideoEffects
Visual Primitives
Core Presentation
Controls
Layout
Win
dow
s Pre
senta
tion F
oundati
on
XPS
View
er
Microsoft TechDayshttp://www.techdays.ru
Поддержка типографики
Microsoft TechDayshttp://www.techdays.ru
Ключевая концепция
XAML Композиция элементов
Независимость представлени
й
Связывание с данными
Композиция представле
ний
Desktop
Media& RIA
Web
Совместная работа Дизайнера и Разработчика
DesignerLook, behavior, brand,and emotional connection
DeveloperFunction, deployment, data,
security, operational integrity
Server Vista
Silverlight
Кросс-платформенность Поддержка Linux, Windows, Mac Быстрая инсталляция – 4MB плагин Векторная графика, медиа, текст, анимация, оверлеи Взаимодействие с AJAX сайтами
Гибкая модель программирования .NET Framework – WPF, LINQ, сети, безопасность, и.т.д. Языки програмимирования – C#, VB.NET, Python, Ruby,
JavaScript/AJAX Интеграция с существующими технологиями – RSS,
REST/POX, AJAX/JSON, etc. Кросс-платформенная разработка и тестирование Средства для разработчиков и дизайнеров
Низкая стоимость высококачественных медиа решений
HD Videoна базе w/ SMPTE VC-1; WMV, WMA, MP3
Web и RIA приложения для клиентов
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
Введение в WCF
Windows Communication FoundationУнифицированный набор средств для построения взаимодействующих сервис-ориентированных системГраницы применимости
Процесс (взаимодействие между слоями)Системы (SOA)Интернет (S+S)
Microsoft TechDayshttp://www.techdays.ru
Готовность для примененияПоддержка индустриальных
стандартов Веб-сервисовВзаимодействие с COM, COM+/ES, MSMQ, WSE, ASAXВстроенные транспортные подсистемы
http/soap, binary tcp/udp…Подсистемы безопасности
Авторизация, аутентификация, аудитПоддержка транзакций (в том числе распределенных)
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
Windows Workflow Foundation
Windows Workflow Foundation (WF) технология для определения, выполнения и управления рабочими процессами (англ. workflow)Декларативная модель программированияМожет быть использован как для бизнес логики так и для интерфейсной
Microsoft TechDayshttp://www.techdays.ru
Типы процессов и активности
Последовательный процесс (Sequential Workflow) переход от одного шага в другой без возвратов обратноАвтомат на состояниях (State-Machine Workflow) — переход из одного состояния в другое, возможны и произвольные возвраты в предыдущие состояния; Процесс управляемый правилами (Rules-driven Workflow)
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
ADO.NET Entity Framework
Реляционная модель данных чужда обьектнойEntity Framework – механизм абстракции и трансляции Базируется на LINQ технологии
Позволяет избежать ошибок времени выполнения
Microsoft TechDayshttp://www.techdays.ru
LINQ
Language Integrated QueryБазирующийся на возможностях C# механизм (лямбда выражения)
Linq for ObjectsLinq for XMLLinq for SQL
Пример LINQ
public void Linq1() { int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var lowNums = from n in numbers where n < 5 select n;
Console.WriteLine("Numbers < 5:"); foreach (var x in lowNums) { Console.WriteLine(x); }}
Oшибки времени выполненияSqlQuery query=new SqlQuery("Select * from Customers where DateOfBitrh>‘30’ and custId="+custId);SqlReader rdr=query.ExecuteReader();
LINQ
LINQdb db = new LINQdb("Data Source=(local);Initial Catalog=LinqDb"); var q = from c in db.Customers where c.DateOfBitrh.AddYears(35) > DateTime.Now orderby c.DateOfBirth descending select c;
>>Compiler error “DateOfBitrh” variable not declared
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Microsoft TechDayshttp://www.techdays.ru
Безопасность в .NET
Валидация форматов файлов и метаданныхВерификация кодаПроверка целостностиКонтроль доступа кода (CAS)Модель безопасности базирующаяся на ролях
Декларативный механизм
WindowsPrincipal authenticatedUser = User as WindowsPrincipal;if (authenticatedUser.IsInRole(@"DomainName\Manager") ){
//все в порядке}
[PrincipalPermissionAttribute(SecurityAction.Demand, Role=@"DOMAINNAME\Managers")]public sealed class OnlyManagersCanCallMe{
}
Microsoft TechDayshttp://www.techdays.ru
Операционный менеджмент
Конфигурационные механизмы (System.Configuration)Механизмы диагностики (System.Diagnostics ) Средства оценки производительности (Performance Counters)Средства оперативного развертывания (ClickOnce)
Microsoft TechDayshttp://www.techdays.ru
Хранилище данных
Дан
ны
е Компоненты доступа к данным
Утилиты/хелперы
Сервисные агенты
Би
знес
Серви
сы
Бизнес процессыБизнес
компонентыБизнес
сущности
Фасад приложения
Интерфейс сервисов
Типы сообщений
Внешние системы
Потребители Сервисов
Внешние Сервисы
Ин
терф
ей
сUI Компоненты
Процессные Компоненты
Сквозн
ые
механ
изм
ы
Безо
пасн
ост
ь
Оп
ерац
ион
ны
й м
ен
ед
жм
ен
т
Ком
мун
икац
ии
Linq to SQL WCF
Windows Workflow Foundation
Windows Workflow Activities
Entity Framework
WCF WCF
WCF
ASP.NET Windows Forms
WPF
Windows Workflow
Syst
em
.*
Syst
em
.*
WC
F
Microsoft TechDayshttp://www.techdays.ru
Средства
Операции Разработка Управление
Microsoft TechDayshttp://www.techdays.ru
Ссылки
Обзор .NET msdn.microsoft.com/en-us/library/w0x726c2.aspxASP.NET www.asp.netWPF windowsclient.netSilverlight www.silverlight.netWindows Communication msdn.microsoft.com/en-us/netframework/aa663324.aspxWindows Workflow msdn.microsoft.com/en-us/netframework/aa663328.aspx
Microsoft TechDayshttp://www.techdays.ru
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.