архитектура .net

62

Upload: -

Post on 13-Dec-2014

1.120 views

Category:

Technology


6 download

DESCRIPTION

 

TRANSCRIPT

Page 1: архитектура .Net
Page 2: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Архитектурный обзор прикладной платформы .NETДмитрий АндреевЭксперт по Ахритектуре ИСMicrosoft

Page 3: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Классическая архитектура

Page 4: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 5: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 6: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 7: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 8: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 9: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 10: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 11: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 12: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Би

знес

Бизнес процессыБизнес

компоненты

Ин

тер

фей

с

UI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Page 13: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Page 14: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 15: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Page 16: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Реализация

Page 17: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Приложение

Библиотеки (много)

Сервисы операционной системы (Win32)

Классическая система

Page 18: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Приложение

.NET Framework

Сервисы операционной системы (Win32)

Система на базе .NET

CLR BCL JIT

Page 19: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Что такое .NET Framework

Безопасный, гибкий, высокопроизводительный набор компонент позволяющий разработчикам создавать широкий спектр приложений для WindowsПредоставляет разработчикам высокий уровень абстракцииПовышает продуктивность разработки

Page 20: архитектура .Net

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+

Page 21: архитектура .Net

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

Page 22: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Среда выполнения (CLR)

Управление памятьюУправление нитямиУправление исключениямиСборка мусораОбеспечение безопасности

Page 23: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Базовая библиотека классов

Базовые типы и исключенияСтруктуры данныхВвод/Вывод (файлы)Доступ к информации о типахПроверка безопасности

Page 24: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Простота использования

Доступность обучающих курсовБольшое сообщество

Форумы MSDNБлоги technet и msdn на русском языке

Доступность исходного кодаПростота в изучении

Русская локализация

Page 25: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Page 26: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Page 27: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Средства и функциональность

Полная интеграция с Visual StudioПоддержка множества сценариев использованияНаличие большого количества дополнительных библиотек

Позволяет сфокусироваться на решении задач

Page 28: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Компоненты приложения

Page 29: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 30: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

КлиентТип клиента Технология

Обычное клиентское приложение (Rich Client, OBA)

Windows FormsWPF

Мобильное приложение Compact Framework (Forms)

Интернет приложение ASP.NET

Сервисное приложение WCF

RIA Silverlight, ASP.NET Ajax, XBap

Page 31: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

ASP.NET

Веб приложение – простота развертыванияПроблема – код и дизайн смешаны

Классический ASP или PHPПоддержка различных парадигм создания Веб приложения

MVCAJAX

Большое количество готовых компонент

Page 32: архитектура .Net

Смешанный дизайн и код

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>

Page 33: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Windows Forms

Классическая библиотека создания клиентских приложенийОбширный опыт сообществаБольшое количество готовых компонент

Page 34: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Page 35: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

WPF

Новая парадигма в разработке клиентских приложенийДекларативное программированиеРазделение кода и дизайнаДополнительные средства дизайна

Page 36: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

WPF или WinForms?WPFСовременная графика (2D,3D, акселерация, эффекты)Лучшая архитектура и средства поддержкиПростота расширения, дизайна и настройки внешнего видаПоддержка процессов разработки между дизайнером и программистомВозможности использования наработок в RIA с помощью Silverlight

WinformsПоддержка Windows2000Поддержка слабого оборудованияВысокий уровень внедрения (installbase)Простота в программированииОтлаженный набор средств

Page 37: архитектура .Net

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

Page 38: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Поддержка типографики

Page 39: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Ключевая концепция

XAML Композиция элементов

Независимость представлени

й

Связывание с данными

Композиция представле

ний

Page 40: архитектура .Net

Desktop

Media& RIA

Web

Совместная работа Дизайнера и Разработчика

DesignerLook, behavior, brand,and emotional connection

DeveloperFunction, deployment, data,

security, operational integrity

Server Vista

Page 41: архитектура .Net

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 приложения для клиентов

Page 42: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 43: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Введение в WCF

Windows Communication FoundationУнифицированный набор средств для построения взаимодействующих сервис-ориентированных системГраницы применимости

Процесс (взаимодействие между слоями)Системы (SOA)Интернет (S+S)

Page 44: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Готовность для примененияПоддержка индустриальных

стандартов Веб-сервисовВзаимодействие с COM, COM+/ES, MSMQ, WSE, ASAXВстроенные транспортные подсистемы

http/soap, binary tcp/udp…Подсистемы безопасности

Авторизация, аутентификация, аудитПоддержка транзакций (в том числе распределенных)

Page 45: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 46: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Windows Workflow Foundation

Windows Workflow Foundation (WF) технология для определения, выполнения и управления рабочими процессами (англ. workflow)Декларативная модель программированияМожет быть использован как для бизнес логики так и для интерфейсной

Page 47: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Типы процессов и активности

Последовательный процесс (Sequential Workflow) переход от одного шага в другой без возвратов обратноАвтомат на состояниях (State-Machine Workflow) — переход из одного состояния в другое, возможны и произвольные возвраты в предыдущие состояния; Процесс управляемый правилами (Rules-driven Workflow)

Page 48: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 49: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

ADO.NET Entity Framework

Реляционная модель данных чужда обьектнойEntity Framework – механизм абстракции и трансляции Базируется на LINQ технологии

Позволяет избежать ошибок времени выполнения

Page 50: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

LINQ

Language Integrated QueryБазирующийся на возможностях C# механизм (лямбда выражения)

Linq for ObjectsLinq for XMLLinq for SQL

Page 51: архитектура .Net

Пример 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);    }}

Page 52: архитектура .Net

Oшибки времени выполненияSqlQuery query=new SqlQuery("Select * from Customers where DateOfBitrh>‘30’ and custId="+custId);SqlReader rdr=query.ExecuteReader();

Page 53: архитектура .Net

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

Page 54: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Хранилище данных

Дан

ны

е Компоненты доступа к данным

Утилиты/хелперы

Сервисные агенты

Би

знес

Серви

сы

Бизнес процессыБизнес

компонентыБизнес

сущности

Фасад приложения

Интерфейс сервисов

Типы сообщений

Внешние системы

Потребители Сервисов

Внешние Сервисы

Ин

терф

ей

сUI Компоненты

Процессные Компоненты

Сквозн

ые

механ

изм

ы

Безо

пасн

ост

ь

Оп

ерац

ион

ны

й м

ен

ед

жм

ен

т

Ком

мун

икац

ии

Page 55: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Безопасность в .NET

Валидация форматов файлов и метаданныхВерификация кодаПроверка целостностиКонтроль доступа кода (CAS)Модель безопасности базирующаяся на ролях

Page 56: архитектура .Net

Декларативный механизм

WindowsPrincipal authenticatedUser = User as WindowsPrincipal;if (authenticatedUser.IsInRole(@"DomainName\Manager") ){

//все в порядке}

[PrincipalPermissionAttribute(SecurityAction.Demand, Role=@"DOMAINNAME\Managers")]public sealed class OnlyManagersCanCallMe{

}

Page 57: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Операционный менеджмент

Конфигурационные механизмы (System.Configuration)Механизмы диагностики (System.Diagnostics ) Средства оценки производительности (Performance Counters)Средства оперативного развертывания (ClickOnce)

Page 58: архитектура .Net

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

Page 59: архитектура .Net

Microsoft TechDayshttp://www.techdays.ru

Средства

Операции Разработка Управление

Page 61: архитектура .Net

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.

Page 62: архитектура .Net