4. Внешние системы Интерфейс Сквозные механизмы UI Компоненты Безопасность Операционный менеджмент Коммуникации Потребители Сервисов Процессные Компоненты Сервисы Интерфейс сервисов Типы сообщений Бизнес Фасад приложения Бизнес процессы Бизнес компоненты Бизнес сущности Данные Компоненты доступа к данным Утилиты/хелперы Сервисные агенты Хранилище данных Внешние Сервисы
5. Внешние системы Интерфейс Сквозные механизмы UI Компоненты Безопасность Операционный менеджмент Коммуникации Потребители Сервисов Процессные Компоненты Сервисы Интерфейс сервисов Типы сообщений Бизнес Фасад приложения Бизнес процессы Бизнес компоненты Бизнес сущности Данные Компоненты доступа к данным Утилиты/хелперы Сервисные агенты Хранилище данных Внешние Сервисы
6. Внешние системы Интерфейс Сквозные механизмы UI Компоненты Безопасность Операционный менеджмент Коммуникации Потребители Сервисов Процессные Компоненты Сервисы Интерфейс сервисов Типы сообщений Бизнес Фасад приложения Бизнес процессы Бизнес компоненты Бизнес сущности Данные Компоненты доступа к данным Утилиты/хелперы Сервисные агенты Хранилище данных Внешние Сервисы
7. Внешние системы Интерфейс Сквозные механизмы UI Компоненты Безопасность Операционный менеджмент Коммуникации Потребители Сервисов Процессные Компоненты Сервисы Интерфейс сервисов Типы сообщений Бизнес Фасад приложения Бизнес процессы Бизнес компоненты Бизнес сущности Данные Компоненты доступа к данным Утилиты/хелперы Сервисные агенты Хранилище данных Внешние Сервисы
8. Внешние системы Интерфейс Сквозные механизмы UI Компоненты Безопасность Операционный менеджмент Коммуникации Потребители Сервисов Процессные Компоненты Сервисы Интерфейс сервисов Типы сообщений Бизнес Фасад приложения Бизнес процессы Бизнес компоненты Бизнес сущности Данные Компоненты доступа к данным Утилиты/хелперы Сервисные агенты Хранилище данных Внешние Сервисы
9. Внешние системы Интерфейс Сквозные механизмы UI Компоненты Безопасность Операционный менеджмент Коммуникации Потребители Сервисов Процессные Компоненты Сервисы Интерфейс сервисов Типы сообщений Бизнес Фасад приложения Бизнес процессы Бизнес компоненты Бизнес сущности Данные Компоненты доступа к данным Утилиты/хелперы Сервисные агенты Хранилище данных Внешние Сервисы
10. Внешние системы Интерфейс Сквозные механизмы UI Компоненты Безопасность Операционный менеджмент Коммуникации Потребители Сервисов Процессные Компоненты Сервисы Интерфейс сервисов Типы сообщений Бизнес Фасад приложения Бизнес процессы Бизнес компоненты Бизнес сущности Данные Компоненты доступа к данным Утилиты/хелперы Сервисные агенты Хранилище данных Внешние Сервисы
11. Внешние системы Интерфейс Сквозные механизмы UI Компоненты Безопасность Операционный менеджмент Коммуникации Потребители Сервисов Процессные Компоненты Сервисы Интерфейс сервисов Типы сообщений Бизнес Фасад приложения Бизнес процессы Бизнес компоненты Бизнес сущности Данные Компоненты доступа к данным Утилиты/хелперы Сервисные агенты Хранилище данных Внешние Сервисы
12. Интерфейс Сквозные механизмы UI Компоненты Безопасность Процессные Компоненты Бизнес Бизнес процессы Бизнес компоненты Данные Компоненты доступа к данным Утилиты/хелперы Хранилище данных
13.
14. Внешние системы Интерфейс Сквозные механизмы UI Компоненты Безопасность Операционный менеджмент Коммуникации Потребители Сервисов Процессные Компоненты Сервисы Интерфейс сервисов Типы сообщений Бизнес Фасад приложения Бизнес процессы Бизнес компоненты Бизнес сущности Данные Компоненты доступа к данным Утилиты/хелперы Сервисные агенты Хранилище данных Внешние Сервисы
17. Приложение Библиотеки (много) Сервисы операционной системы (Win32) Классическая система
18. Приложение Система на базе .NET .NET Framework CLR BCL JIT Сервисы операционной системы (Win32)
19. Что такое .NET Framework Безопасный, гибкий, высокопроизводительный набор компонент позволяющий разработчикам создавать широкий спектр приложений для Windows Предоставляет разработчикам высокий уровень абстракции Повышает продуктивность разработки
20. Архитектура .NET VB C# C++ Python Jscript Visual Studio Основная языковая спецификация ASP.NET WinForms WPF ADO.NET, XML, Entity Framework, LinQ Базовая библиотека классов Среда выполнения (CLR) Windows COM+
21. Версия .NET 3.5 Пятый выпуск .NET Framework Полностью поддерживается в Visual Studio 2008 Это инкрементальное дополнение .NET Framework 3.0 и в свою очередь 2.0 Microsoft Visual Studio 2008 .NET Framework 3.5 .NET Framework 3.0 SP1 .NET Framework 2.0 SP1
22. Среда выполнения (CLR) Управление памятью Управление нитями Управление исключениями Сборка мусора Обеспечение безопасности
23. Базовая библиотека классов Базовые типы и исключения Структуры данных Ввод/Вывод (файлы) Доступ к информации о типах Проверка безопасности
24. Простота использования Доступность обучающих курсов Большое сообщество Форумы MSDN Блогиtechnetи msdnна русском языке Доступность исходного кода Простота в изучении Русская локализация
25.
26.
27. Средства и функциональность Полная интеграция с Visual Studio Поддержка множества сценариев использования Наличие большого количества дополнительных библиотек Позволяет сфокусироваться на решении задач
31. ASP.NET Веб приложение – простота развертывания Проблема – код и дизайн смешаны Классический ASP или PHP Поддержка различных парадигм создания Веб приложения MVC AJAX Большое количество готовых компонент
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:egdbiblio.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 Классическая библиотека создания клиентских приложений Обширный опыт сообщества Большое количество готовых компонент
34.
35. WPF Новая парадигма в разработке клиентских приложений Декларативное программирование Разделение кода и дизайна Дополнительные средства дизайна
36. WPF или WinForms? WPF Современная графика (2D,3D, акселерация, эффекты) Лучшая архитектура и средства поддержки Простота расширения, дизайна и настройки внешнего вида Поддержка процессов разработки между дизайнером и программистом Возможности использования наработок в RIA с помощью Silverlight Winforms Поддержка Windows2000 Поддержка слабого оборудования Высокий уровень внедрения (installbase) Простота в программировании Отлаженный набор средств
37. User Interface Services Document Services XPS Documents Application Services Controls Data Binding Packaging Services Deployment Services Layout Base Services Core Presentation XPS Viewer Windows Presentation Foundation XAML 2D Audio Imaging Text Accessibility 3D Video Effects Input & Eventing Animation Property System Visual Primitives Composition Engine Windows Media Foundation DWM Media Integration Layer Direct3D Windows Vista Display Driver (LDDM) Input / Eventing System Property Engine .NET Framework 2.0
40. Совместная работа Дизайнера и Разработчика Desktop Web Server Vista Media & RIA Designer Look, behavior, brand,and emotional connection Developer Function, deployment, data,security, operational integrity
49. Введение в WCF Windows Communication Foundation Унифицированный набор средств для построения взаимодействующих сервис-ориентированных систем Границы применимости Процесс (взаимодействие между слоями) Системы (SOA) Интернет (S+S)
50. Готовность для применения Поддержка индустриальных стандартов Веб-сервисов Взаимодействие с COM, COM+/ES, MSMQ, WSE, ASAX Встроенные транспортные подсистемы http/soap, binary tcp/udp… Подсистемы безопасности Авторизация, аутентификация, аудит Поддержка транзакций (в том числе распределенных)
51. Внешние системы Интерфейс Сквозные механизмы UI Компоненты Безопасность Операционный менеджмент Коммуникации Потребители Сервисов Процессные Компоненты Сервисы Интерфейс сервисов Типы сообщений Бизнес Фасад приложения Бизнес процессы Бизнес компоненты Бизнес сущности Данные Компоненты доступа к данным Утилиты/хелперы Сервисные агенты Хранилище данных Внешние Сервисы
52. Windows Workflow Foundation Windows Workflow Foundation (WF) технология для определения, выполнения и управления рабочими процессами (англ. workflow) Декларативная модель программирования Может быть использован как для бизнес логики так и для интерфейсной
53. Типы процессов и активности Последовательный процесс (Sequential Workflow) переход от одного шага в другой без возвратов обратно Автомат на состояниях (State-Machine Workflow) — переход из одного состояния в другое, возможны и произвольные возвраты в предыдущие состояния; Процесс управляемый правилами (Rules-driven Workflow)
54. Внешние системы Интерфейс Сквозные механизмы UI Компоненты Безопасность Операционный менеджмент Коммуникации Потребители Сервисов Процессные Компоненты Сервисы Интерфейс сервисов Типы сообщений Бизнес Фасад приложения Бизнес процессы Бизнес компоненты Бизнес сущности Данные Компоненты доступа к данным Утилиты/хелперы Сервисные агенты Хранилище данных Внешние Сервисы
55. ADO.NETEntity Framework Реляционная модель данных чужда обьектной Entity Framework – механизм абстракции и трансляции Базируется на LINQ технологии Позволяет избежать ошибок времени выполнения
56. LINQ Language Integrated Query Базирующийся на возможностях C# механизм (лямбда выражения) Linq for Objects Linq for XML Linq for SQL
57. Пример LINQ public 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); }}
58. Oшибки времени выполнения SqlQuery query=new SqlQuery("Select * from Customers where DateOfBitrh>‘30’ and custId="+custId); SqlReaderrdr=query.ExecuteReader();
59. LINQ LINQdb 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(@"DomainNameanager") ) { //все в порядке } [PrincipalPermissionAttribute(SecurityAction.Demand, Role=@"DOMAINNAMEanagers")] public sealed class OnlyManagersCanCallMe { }
63. Операционный менеджмент Конфигурационные механизмы (System.Configuration) Механизмы диагностики (System.Diagnostics) Средства оценки производительности (Performance Counters) Средства оперативного развертывания (ClickOnce)
64. Внешние системы Интерфейс Сквозные механизмы UI Компоненты ASP.NET Windows Forms WPF Безопасность Операционный менеджмент Коммуникации System.* System.* WCF Потребители Сервисов WCF Процессные Компоненты Windows Workflow Сервисы Интерфейс сервисов Типы сообщений WCF WCF Бизнес Фасад приложения Бизнес процессы Бизнес компоненты Бизнес сущности Windows Workflow Foundation Windows Workflow Activities Entity Framework Данные Компоненты доступа к данным Утилиты/хелперы Сервисные агенты Linq to SQL WCF Хранилище данных Внешние Сервисы
66. Ссылки Обзор .NET msdn.microsoft.com/en-us/library/w0x726c2.aspx ASP.NET www.asp.net WPF windowsclient.net Silverlightwww.silverlight.net Windows Communication msdn.microsoft.com/en-us/netframework/aa663324.aspx Windows Workflow msdn.microsoft.com/en-us/netframework/aa663328.aspx
В данном докладе будет рассказано о современной технологической платформе разработки клиентских и серверных приложений базирующейся на платформе Windows. Будут затронуты такие вопросы как сценарии применения компонент при разработке решений, возможности этих компонент, а так же классическая архитектура приложений которая позволяет получить максимальный эффект от этих технологий и компонент. Обзор платформы будет включать такие технологии как.NET Framework 3.5 SP1, Windows Communication Foundation, Windows Workflow Foundation и другие технологии, а также инструментальные средства. Так же, будет затронут важный вопрос о том, что будет с WIN API, COM+ и других технологиях в связи с эволюцией платформы, а так же текущая применимость этих технологий. Цель доклада – сделать насколько это возможно, емкий обзор прикладной платформы и обозначить границы ее применимости.
UIкомпоненты предоставляют пользователям интерактивный доступ к приложению – UI процессные компоненты – логика интерфейса может быть сложной и описываться какими либо процессами – удобно когда контроль этой логики автоматизируется отдельными средствами и не с с помощью кодирования. Это облегчает написание программ и позволяет уменьшить усилия. Пример – несколько интерфейсных элементов информация в которых зависит выбранных пунктов этих же элементов – Страна/Город/Улица – и дополнительное поле которое может быть активным или не активным в зависимости от типа улицы. Можно закодировать эту реакцию с помощью условий а можно описать правилами
Потребители сервисов – внешние системы которые могут запрашивать сервисы у приложенияТипы сообщений – при обмене данных между слоями может быть использован механизм типизации сообщений для установления связей в виде контрактов
Бизнес процессы очень важны – важно также чтобы они были декларативны и не жестко запрограммированны