Архитектурный обзор прикладной платформы .NETДмитрий АндреевЭксперт по Ахритектуре ИСMicrosoft
Классическая архитектура
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
ИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьПроцессные КомпонентыБизнесБизнес процессыБизнес компонентыДанныеКомпоненты доступа к даннымУтилиты/хелперыХранилище данных
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
Реализация
ПриложениеБиблиотеки (много)Сервисы операционной системы (Win32)Классическая система
ПриложениеСистема на базе .NET.NET FrameworkCLRBCLJITСервисы операционной системы (Win32)
Что такое .NET FrameworkБезопасный, гибкий, высокопроизводительный набор компонент позволяющий разработчикам создавать широкий спектр приложений для WindowsПредоставляет разработчикам высокий уровень абстракцииПовышает продуктивность разработки
Архитектура .NETVBC#C++PythonJscriptVisual StudioОсновная языковая спецификацияASP.NETWinFormsWPFADO.NET, XML, Entity Framework, LinQБазовая библиотека классовСреда выполнения (CLR)WindowsCOM+
Версия .NET 3.5Пятый выпуск .NET FrameworkПолностью поддерживается в Visual Studio 2008Это инкрементальное дополнение .NET Framework 3.0 и в свою очередь 2.0Microsoft Visual Studio 2008.NET Framework 3.5.NET Framework 3.0 SP1.NET Framework 2.0 SP1
Среда выполнения (CLR)Управление памятьюУправление нитямиУправление исключениямиСборка мусораОбеспечение безопасности
Базовая библиотека классовБазовые типы и исключенияСтруктуры данныхВвод/Вывод (файлы)Доступ к информации о типахПроверка безопасности
Простота использованияДоступность обучающих курсовБольшое сообществоФорумы MSDNБлогиtechnetи msdnна русском языкеДоступность исходного кодаПростота в изученииРусская локализация
Средства и функциональностьПолная интеграция с Visual StudioПоддержка множества сценариев использованияНаличие большого количества дополнительных библиотекПозволяет сфокусироваться на решении задач
Компоненты приложения
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
Клиент
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.WritersTitleList("Title")  %> <BR> <% rsTitleList.movenext loop rsTitleList.close set rsTitleList = nothing %> <! end server side script> <HR> </CENTER> </BODY> </HTML>
Windows FormsКлассическая библиотека создания клиентских приложенийОбширный опыт сообществаБольшое количество готовых компонент
WPFНовая парадигма в разработке клиентских приложенийДекларативное программированиеРазделение кода и дизайнаДополнительные средства дизайна
WPF или WinForms?WPFСовременная графика (2D,3D, акселерация, эффекты)Лучшая архитектура и средства поддержкиПростота расширения, дизайна и настройки внешнего видаПоддержка процессов разработки между дизайнером и программистомВозможности использования наработок в RIA с помощью SilverlightWinformsПоддержка Windows2000Поддержка слабого оборудованияВысокий уровень внедрения (installbase)Простота в программированииОтлаженный набор средств
User Interface ServicesDocument ServicesXPS DocumentsApplication ServicesControlsData BindingPackaging ServicesDeployment ServicesLayoutBase ServicesCore PresentationXPS ViewerWindows Presentation FoundationXAML2DAudioImagingTextAccessibility3DVideoEffectsInput & EventingAnimationProperty SystemVisual PrimitivesComposition EngineWindows Media FoundationDWMMedia Integration LayerDirect3DWindows Vista Display Driver (LDDM)Input / Eventing SystemProperty Engine.NET Framework 2.0
Поддержка типографики
Ключевая концепция
Совместная работа Дизайнера и РазработчикаDesktopWebServer                     VistaMedia& RIADesignerLook, behavior, brand,and emotional connectionDeveloperFunction, deployment, data,security, operational integrity
SilverlightWeb и RIA приложения для клиентовКросс-платформенностьПоддержка 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Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
Введение в WCFWindows Communication FoundationУнифицированный набор средств для построения взаимодействующих сервис-ориентированных системГраницы применимостиПроцесс (взаимодействие между слоями)Системы (SOA)Интернет (S+S)
Готовность для примененияПоддержка индустриальных стандартов Веб-сервисовВзаимодействие с COM, COM+/ES, MSMQ, WSE, ASAXВстроенные транспортные подсистемыhttp/soap, binary tcp/udp…Подсистемы безопасностиАвторизация, аутентификация, аудитПоддержка транзакций (в том числе распределенных)
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
Windows Workflow FoundationWindows Workflow Foundation (WF) технология для определения, выполнения и управления рабочими процессами (англ. workflow)Декларативная модель программированияМожет быть использован как для бизнес логики так и для интерфейсной
Типы процессов и активностиПоследовательный процесс (Sequential Workflow) переход от одного шага в другой без возвратов обратноАвтомат на состояниях (State-Machine Workflow) — переход из одного состояния в другое, возможны и произвольные возвраты в предыдущие состояния; Процесс управляемый правилами (Rules-driven Workflow)
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
ADO.NETEntity FrameworkРеляционная модель данных чужда обьектнойEntity Framework – механизм абстракции и трансляции Базируется на LINQ технологииПозволяет избежать ошибок времени выполнения
LINQLanguage Integrated QueryБазирующийся на возможностях C# механизм (лямбда выражения)Linq for ObjectsLinq for XMLLinq for SQL
Пример LINQpublic void Linq1() {    int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };    varlowNums =        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);SqlReaderrdr=query.ExecuteReader();
LINQLINQdb db = newLINQdb("Data Source=(local);Initial Catalog=LinqDb");   var q = from c in db.Customers where c.DateOfBitrh.AddYears(35) > DateTime.Noworderbyc.DateOfBirth descending select c; >>Compiler error “DateOfBitrh” variable not declared
Внешние системыИнтерфейсСквозные  механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
Безопасность в .NETВалидация форматов файлов и метаданныхВерификация кодаПроверка целостностиКонтроль доступа кода (CAS)Модель безопасности базирующаяся на ролях
Декларативный механизмWindowsPrincipalauthenticatedUser = User as WindowsPrincipal;if (authenticatedUser.IsInRole(@"DomainName\Manager") ){	//все в порядке}[PrincipalPermissionAttribute(SecurityAction.Demand, Role=@"DOMAINNAME\Managers")]public sealed class OnlyManagersCanCallMe{}

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

  • 2.
    Архитектурный обзор прикладнойплатформы .NETДмитрий АндреевЭксперт по Ахритектуре ИСMicrosoft
  • 3.
  • 4.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 5.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 6.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 7.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 8.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 9.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 10.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 11.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 12.
    ИнтерфейсСквозные механизмыUIКомпонентыБезопасностьПроцессные КомпонентыБизнесБизнес процессыБизнес компонентыДанныеКомпоненты доступа к даннымУтилиты/хелперыХранилище данных
  • 14.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 16.
  • 17.
  • 18.
    ПриложениеСистема на базе.NET.NET FrameworkCLRBCLJITСервисы операционной системы (Win32)
  • 19.
    Что такое .NETFrameworkБезопасный, гибкий, высокопроизводительный набор компонент позволяющий разработчикам создавать широкий спектр приложений для WindowsПредоставляет разработчикам высокий уровень абстракцииПовышает продуктивность разработки
  • 20.
    Архитектура .NETVBC#C++PythonJscriptVisual StudioОсновнаяязыковая спецификацияASP.NETWinFormsWPFADO.NET, XML, Entity Framework, LinQБазовая библиотека классовСреда выполнения (CLR)WindowsCOM+
  • 21.
    Версия .NET 3.5Пятыйвыпуск .NET FrameworkПолностью поддерживается в Visual Studio 2008Это инкрементальное дополнение .NET Framework 3.0 и в свою очередь 2.0Microsoft Visual Studio 2008.NET Framework 3.5.NET Framework 3.0 SP1.NET Framework 2.0 SP1
  • 22.
    Среда выполнения (CLR)УправлениепамятьюУправление нитямиУправление исключениямиСборка мусораОбеспечение безопасности
  • 23.
    Базовая библиотека классовБазовыетипы и исключенияСтруктуры данныхВвод/Вывод (файлы)Доступ к информации о типахПроверка безопасности
  • 24.
    Простота использованияДоступность обучающихкурсовБольшое сообществоФорумы MSDNБлогиtechnetи msdnна русском языкеДоступность исходного кодаПростота в изученииРусская локализация
  • 27.
    Средства и функциональностьПолнаяинтеграция с Visual StudioПоддержка множества сценариев использованияНаличие большого количества дополнительных библиотекПозволяет сфокусироваться на решении задач
  • 28.
  • 29.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 30.
  • 31.
    ASP.NETВеб приложение –простота развертыванияПроблема – код и дизайн смешаныКлассический ASP или PHPПоддержка различных парадигм создания Веб приложенияMVCAJAXБольшое количество готовых компонент
  • 32.
    Смешанный дизайн икод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.WritersTitleList("Title")  %> <BR> <% rsTitleList.movenext loop rsTitleList.close set rsTitleList = nothing %> <! end server side script> <HR> </CENTER> </BODY> </HTML>
  • 33.
    Windows FormsКлассическая библиотекасоздания клиентских приложенийОбширный опыт сообществаБольшое количество готовых компонент
  • 35.
    WPFНовая парадигма вразработке клиентских приложенийДекларативное программированиеРазделение кода и дизайнаДополнительные средства дизайна
  • 36.
    WPF или WinForms?WPFСовременнаяграфика (2D,3D, акселерация, эффекты)Лучшая архитектура и средства поддержкиПростота расширения, дизайна и настройки внешнего видаПоддержка процессов разработки между дизайнером и программистомВозможности использования наработок в RIA с помощью SilverlightWinformsПоддержка Windows2000Поддержка слабого оборудованияВысокий уровень внедрения (installbase)Простота в программированииОтлаженный набор средств
  • 37.
    User Interface ServicesDocumentServicesXPS DocumentsApplication ServicesControlsData BindingPackaging ServicesDeployment ServicesLayoutBase ServicesCore PresentationXPS ViewerWindows Presentation FoundationXAML2DAudioImagingTextAccessibility3DVideoEffectsInput & EventingAnimationProperty SystemVisual PrimitivesComposition EngineWindows Media FoundationDWMMedia Integration LayerDirect3DWindows Vista Display Driver (LDDM)Input / Eventing SystemProperty Engine.NET Framework 2.0
  • 38.
  • 39.
  • 40.
    Совместная работа Дизайнераи РазработчикаDesktopWebServer VistaMedia& RIADesignerLook, behavior, brand,and emotional connectionDeveloperFunction, deployment, data,security, operational integrity
  • 41.
    SilverlightWeb и RIAприложения для клиентовКросс-платформенностьПоддержка Linux, Windows, Mac
  • 42.
  • 43.
  • 44.
    Взаимодействие с AJAXсайтамиГибкая модель программирования.NET Framework – WPF, LINQ, сети, безопасность, и.т.д.
  • 45.
    Языки програмимирования –C#, VB.NET, Python, Ruby, JavaScript/AJAX
  • 46.
    Интеграция с существующимитехнологиями – RSS, REST/POX, AJAX/JSON, etc.
  • 47.
  • 48.
    Средства для разработчикови дизайнеровНизкая стоимость высококачественных медиа решенийHD Videoна базе w/ SMPTE VC-1; WMV, WMA, MP3Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 49.
    Введение в WCFWindowsCommunication FoundationУнифицированный набор средств для построения взаимодействующих сервис-ориентированных системГраницы применимостиПроцесс (взаимодействие между слоями)Системы (SOA)Интернет (S+S)
  • 50.
    Готовность для примененияПоддержкаиндустриальных стандартов Веб-сервисовВзаимодействие с COM, COM+/ES, MSMQ, WSE, ASAXВстроенные транспортные подсистемыhttp/soap, binary tcp/udp…Подсистемы безопасностиАвторизация, аутентификация, аудитПоддержка транзакций (в том числе распределенных)
  • 51.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 52.
    Windows Workflow FoundationWindowsWorkflow Foundation (WF) технология для определения, выполнения и управления рабочими процессами (англ. workflow)Декларативная модель программированияМожет быть использован как для бизнес логики так и для интерфейсной
  • 53.
    Типы процессов иактивностиПоследовательный процесс (Sequential Workflow) переход от одного шага в другой без возвратов обратноАвтомат на состояниях (State-Machine Workflow) — переход из одного состояния в другое, возможны и произвольные возвраты в предыдущие состояния; Процесс управляемый правилами (Rules-driven Workflow)
  • 54.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 55.
    ADO.NETEntity FrameworkРеляционная модельданных чужда обьектнойEntity Framework – механизм абстракции и трансляции Базируется на LINQ технологииПозволяет избежать ошибок времени выполнения
  • 56.
    LINQLanguage Integrated QueryБазирующийсяна возможностях C# механизм (лямбда выражения)Linq for ObjectsLinq for XMLLinq for SQL
  • 57.
    Пример LINQpublic voidLinq1() {    int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };    varlowNums =        from n in numbers        where n < 5        select n;    Console.WriteLine("Numbers < 5:");    foreach (var x in lowNums) {        Console.WriteLine(x);    }}
  • 58.
    Oшибки времени выполненияSqlQueryquery=new SqlQuery("Select * from Customers where DateOfBitrh>‘30’ and custId="+custId);SqlReaderrdr=query.ExecuteReader();
  • 59.
    LINQLINQdb db =newLINQdb("Data Source=(local);Initial Catalog=LinqDb");   var q = from c in db.Customers where c.DateOfBitrh.AddYears(35) > DateTime.Noworderbyc.DateOfBirth descending select c; >>Compiler error “DateOfBitrh” variable not declared
  • 60.
    Внешние системыИнтерфейсСквозные механизмыUI КомпонентыБезопасностьОперационный менеджментКоммуникацииПотребители СервисовПроцессные КомпонентыСервисыИнтерфейс сервисовТипы сообщенийБизнесФасад приложенияБизнес процессыБизнес компонентыБизнес сущностиДанныеКомпоненты доступа к даннымУтилиты/хелперыСервисные агентыХранилище данныхВнешние Сервисы
  • 61.
    Безопасность в .NETВалидацияформатов файлов и метаданныхВерификация кодаПроверка целостностиКонтроль доступа кода (CAS)Модель безопасности базирующаяся на ролях
  • 62.
    Декларативный механизмWindowsPrincipalauthenticatedUser =User as WindowsPrincipal;if (authenticatedUser.IsInRole(@"DomainName\Manager") ){ //все в порядке}[PrincipalPermissionAttribute(SecurityAction.Demand, Role=@"DOMAINNAME\Managers")]public sealed class OnlyManagersCanCallMe{}

Editor's Notes

  • #2 В данном докладе будет рассказано о  современной технологической платформе разработки клиентских и серверных приложений базирующейся на платформе Windows.  Будут затронуты такие вопросы как сценарии применения компонент при разработке решений,  возможности этих компонент, а так же классическая архитектура приложений которая позволяет получить максимальный эффект от этих технологий и компонент. Обзор платформы будет включать такие технологии как.NET Framework 3.5 SP1, Windows Communication Foundation, Windows Workflow Foundation и другие технологии, а также инструментальные средства. Так же, будет затронут важный вопрос о том, что будет с WIN API, COM+ и других технологиях в связи с эволюцией платформы, а так же текущая применимость этих технологий.  Цель доклада – сделать насколько это возможно, емкий обзор прикладной платформы и обозначить границы ее применимости.
  • #30 UIкомпоненты предоставляют пользователям интерактивный доступ к приложению – UI процессные компоненты – логика интерфейса может быть сложной и описываться какими либо процессами – удобно когда контроль этой логики автоматизируется отдельными средствами и не с с помощью кодирования. Это облегчает написание программ и позволяет уменьшить усилия. Пример – несколько интерфейсных элементов информация в которых зависит выбранных пунктов этих же элементов – Страна/Город/Улица – и дополнительное поле которое может быть активным или не активным в зависимости от типа улицы. Можно закодировать эту реакцию с помощью условий а можно описать правилами
  • #43 Потребители сервисов – внешние системы которые могут запрашивать сервисы у приложенияТипы сообщений – при обмене данных между слоями может быть использован механизм типизации сообщений для установления связей в виде контрактов
  • #46 Бизнес процессы очень важны – важно также чтобы они были декларативны и не жестко запрограммированны
  • #49 Бизнес процессы не отделимы от приложения
  • #55 Упомянуть логгинг