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

Post on 13-Dec-2014

1.120 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

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

© 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.

top related