Веб-решение или Толстый клиент? Сравнение, тенденции, архитектура Иван Бодягин MAS Elektronik AG Содержание • Сравнение и тенденции – – – – История развития интерфейсов Ключевые различия Тенденции Применение • Архитектура приложений с двумя типами клиентов – – – – Варианты архитектур с разными типами клиентов Самостоятельные клиенты Разные View в MVC Разные реализации элементов управления Развитие Интерфейсов Ключевые различия • User Experience (работа в привычной среде) – Веб-интерфейс менее функционален, но более разнообразен • Развертывание – Нет необходимости развертывать сборки на клиенте • Разработка – Проблемы с разнообразием браузеров и неудобством разработки клиентского кода • Использование локальных ресурсов – Локальное хранилище – Динамичность интерфейса Тенденции • AJAX – Улучшение динамики работы с веб-приложением • SmartClient – Упрощение и улучшение развертывания (ClickOnce) • Недостатки – Отсутствие поддержки со стороны поисковых сервисов – Неудобство разработки клиентского кода – Необходимость установки локальных компонент Применение • Веб-решение – Информационное приложение – Замена «толстого» клиента • «Толстый» клиент – Полнофункциональное приложение для решения прикладных задач Архитектура приложений с двумя типами клиентов Варианты архитектур с разными типами клиентов Самостоятельные клиенты Разные View в MVC Разные реализации элементов управления Самостоятельные клиенты Web-клиент Сервер приложений Win-клиент Пример архитектуры Server Zone Client Zone IIS Web Browser Web Web Browser Browser Formatted Data Structured Data Web Interface Application HTTP Named Pipe Raw Data AppServer WCF Main Database Specific Database Structured Data Port 80 Gate Named Pipe HTTP Smart Smart Client Smart Client Client Named Pipe, TCP NNTP Formatted Data Database Specific NNTP NNTP Client NNTP Client Client Server Database Structured Data Named Pipe, TCP, HTTP Sync Partner Разные View в MVC View Contract Controller Web implementation Model (DAL) View Factory Win implementation MVC Controller Model View демонстрация Применение паттерна MVC => MVP MVC => MVP Application Presenter Controller Model Model Model Model View Controls Model Web Controls View Controls Factory Win Controls Проблемы • Большой объем работы • Несовместимость программных моделей • Postback Интерактивное взаимодействие Design Time Run Time JavaScript Язык описания взаимодействий Промежуточное описание Интерпретатор Дополнительная информация • Model-View-Presenter : – http://www.martinfowler.com/eaaDev/ModelViewPrese nter.html – http://www.objectarts.com/Papers/TwistingTheTriad.PDF • Inversion Of Control (IoC) & Dependency Injection: – http://www.martinfowler.com/articles/injection.html Вопросы? merle@rsdn.ru avk@rsdn.ru http://RSDN.RU © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.