SlideShare a Scribd company logo
Web application framework
              The Invaders
       http://www.theinvaders.ru
Что это такое?

Каркас(дословный перевод). Это набор готовых
компонентов и моделей, которые облегчают
программирование и делают его более организованным.
Используя веб-фреймворк, можно значительно упростить
работу, необходимую для построения веб-приложений.
Это напоминает построение модели из блоков Лего.
Варианты при разработке веб приложения?

•   Использовать «чистый» продукт;

•   Использовать готовое решение;

•   Использовать фрэймворк.


    Большинство веб-фреймворков используют паттерн проектирования — MVC(model-view-
    controller). Далее по умолчанию будет подразумеваться, что фреймворк работает по такому
    паттерну.
MVC(model-view-controller)



•   Первая часть представляет собой бизнес-процессы (модель).

•   Вторая говорит приложению, что делать с потоками данных (контроллер).

•   А с помощью третьей части  создаются HTML-страницы (вид).



    Многие веб-фреймворки, навязывая шаблон MVC, позволяют организовать код так, что изменения в модели, виде или
    контроллере оказывают наименьшее воздействие на другие элементы приложения.
Зачем?
Выдержка из чьего-то блога...

Создание современного web приложения представляет собой довольно трудоемкую задачу. В книгах или
руководствах все кажется довольно простым. Демонстрационные программы редко бывают больше нескольких
страницы. Все красиво работает… Но, проблема в том, что это учебные примеры. Как только вы попытаетесь
использовать их на практике, вы увидите, как увеличивается объем кода. Рассмотрим обработку данных,
полученных из формы. Мы должны:

- проверить тип полученных значений;
- убедиться, что значения имеют допустимые величины (или формат);
- удалить из текста запрещенные теги (защита от XSS);
- заменить в параметрах SQL-запросов служебные символы на их эскейп последовательности (защита от SQL
Injection);
- если параметры связаны между собой, проверить эти связи;
- и т.д.

Естественно, этот код должен быть не только написан, но и протестирован. Как видите, приличный кусок работы.
Причем в большинстве своем это рутинные операции, которые повторяются практически во всех приложениях.
Что нам дает веб фреймворк?
•   система шаблонов;

•   система кеширования;

•   безопасность;

•   ORM, API доступа к БД;

•   диспетчер URL;

•   AJAX;

•   автоматическое конфигурирование;

•   расширяемость;

•   и т.д.
Веб фреймворки

•   PHP: Zend, CodeIgniter, Kohana, Yii, CakePHP, Symphony;

•   Python: Django, Pylons, TurboGears;

•   Ruby on Rails;

•   Java: Spring Framework, JBoss Seam, Apache Wicket, Apache Click,
    Apache Tapestry, Apache Struts;

•   и др.

More Related Content

What's hot

DevOps - позволь работе приносить удовольствие
DevOps - позволь работе приносить удовольствиеDevOps - позволь работе приносить удовольствие
DevOps - позволь работе приносить удовольствие
COMAQA.BY
 
Организация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей СоловьевОрганизация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей Соловьев
Positive Hack Days
 
Алексей Кабанов
Алексей КабановАлексей Кабанов
Алексей Кабанов
SQALab
 
Асинхронное программирование в ASP.NET MVC
Асинхронное программирование в ASP.NET MVCАсинхронное программирование в ASP.NET MVC
Асинхронное программирование в ASP.NET MVC
Eugene Agafonov
 
Sergey Gavruk - WebMatrix
Sergey Gavruk - WebMatrixSergey Gavruk - WebMatrix
Sergey Gavruk - WebMatrixbeloslab
 
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
SQALab
 
AntonSaburov (Gemini-Systems) @ CodeCamp2011
AntonSaburov (Gemini-Systems) @ CodeCamp2011AntonSaburov (Gemini-Systems) @ CodeCamp2011
AntonSaburov (Gemini-Systems) @ CodeCamp2011CodeCamp
 
автоматизация тестирования веб приложений павел липский
автоматизация тестирования веб приложений   павел липскийавтоматизация тестирования веб приложений   павел липский
автоматизация тестирования веб приложений павел липскийMedia Gorod
 
Расширяемая платформа для создания и управления автоматизированными тестами н...
Расширяемая платформа для создания и управления автоматизированными тестами н...Расширяемая платформа для создания и управления автоматизированными тестами н...
Расширяемая платформа для создания и управления автоматизированными тестами н...
jazzteam
 
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровСистема мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Positive Hack Days
 
Dotnet development
Dotnet developmentDotnet development
Dotnet developmentMageCloud
 
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Positive Hack Days
 
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Oksana Avchinnikova
 
ASP.NET MVC 3 Anton Vidishchev
ASP.NET MVC 3 Anton VidishchevASP.NET MVC 3 Anton Vidishchev
ASP.NET MVC 3 Anton Vidishchev
Alex Tumanoff
 
Советы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложенийСоветы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложенийMairbek Khadikov
 
Причины и способы имитации back-end'а
Причины и способы имитации back-end'аПричины и способы имитации back-end'а
Причины и способы имитации back-end'а
Oksana Avchinnikova
 
WPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testing
SQALab
 
Azure - Visual Studio Team Services
Azure - Visual Studio Team ServicesAzure - Visual Studio Team Services
Azure - Visual Studio Team Services
Alexander Babich
 
Автоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UIАвтоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UIautomated-testing.info
 

What's hot (20)

DevOps - позволь работе приносить удовольствие
DevOps - позволь работе приносить удовольствиеDevOps - позволь работе приносить удовольствие
DevOps - позволь работе приносить удовольствие
 
Организация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей СоловьевОрганизация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей Соловьев
 
ASP.NET MVC Intro
ASP.NET MVC IntroASP.NET MVC Intro
ASP.NET MVC Intro
 
Алексей Кабанов
Алексей КабановАлексей Кабанов
Алексей Кабанов
 
Асинхронное программирование в ASP.NET MVC
Асинхронное программирование в ASP.NET MVCАсинхронное программирование в ASP.NET MVC
Асинхронное программирование в ASP.NET MVC
 
Sergey Gavruk - WebMatrix
Sergey Gavruk - WebMatrixSergey Gavruk - WebMatrix
Sergey Gavruk - WebMatrix
 
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
 
AntonSaburov (Gemini-Systems) @ CodeCamp2011
AntonSaburov (Gemini-Systems) @ CodeCamp2011AntonSaburov (Gemini-Systems) @ CodeCamp2011
AntonSaburov (Gemini-Systems) @ CodeCamp2011
 
автоматизация тестирования веб приложений павел липский
автоматизация тестирования веб приложений   павел липскийавтоматизация тестирования веб приложений   павел липский
автоматизация тестирования веб приложений павел липский
 
Расширяемая платформа для создания и управления автоматизированными тестами н...
Расширяемая платформа для создания и управления автоматизированными тестами н...Расширяемая платформа для создания и управления автоматизированными тестами н...
Расширяемая платформа для создания и управления автоматизированными тестами н...
 
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровСистема мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
 
Dotnet development
Dotnet developmentDotnet development
Dotnet development
 
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
 
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
 
ASP.NET MVC 3 Anton Vidishchev
ASP.NET MVC 3 Anton VidishchevASP.NET MVC 3 Anton Vidishchev
ASP.NET MVC 3 Anton Vidishchev
 
Советы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложенийСоветы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложений
 
Причины и способы имитации back-end'а
Причины и способы имитации back-end'аПричины и способы имитации back-end'а
Причины и способы имитации back-end'а
 
WPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testing
 
Azure - Visual Studio Team Services
Azure - Visual Studio Team ServicesAzure - Visual Studio Team Services
Azure - Visual Studio Team Services
 
Автоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UIАвтоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UI
 

Similar to Web application framework

ASP.NET MVC: new era?
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?
Alexander Konduforov
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
GetDev.NET
 
Шаблоны проектирования в Magento
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
Pavel Usachev
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
GetDev.NET
 
Больше чем анализ
Больше чем анализБольше чем анализ
Больше чем анализ
SQALab
 
C# Web. Занятие 09.
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.
Igor Shkulipa
 
Паттерны проектирования
Паттерны проектированияПаттерны проектирования
Паттерны проектирования
ITCP Community
 
C# Web. Занятие 05.
C# Web. Занятие 05.C# Web. Занятие 05.
C# Web. Занятие 05.
Igor Shkulipa
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кодаSergii Shmarkatiuk
 
JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
Igor Shkulipa
 
Presentation for students about Laravel.pptx
Presentation for students about Laravel.pptxPresentation for students about Laravel.pptx
Presentation for students about Laravel.pptx
GetOverHere
 
Разработка Enterprise-приложения на основе Spring Framework
Разработка Enterprise-приложения на основе Spring FrameworkРазработка Enterprise-приложения на основе Spring Framework
Разработка Enterprise-приложения на основе Spring Framework
CUSTIS
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rus
Maxim Shaptala
 
ПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решенийПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решенийВиктор Золотов
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
IT-Доминанта
 
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Dmitry Tikhovich
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Fwdays
 

Similar to Web application framework (20)

ASP.NET MVC: new era?
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?
 
Backbone lesson 1
Backbone lesson 1Backbone lesson 1
Backbone lesson 1
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
 
Шаблоны проектирования в Magento
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Больше чем анализ
Больше чем анализБольше чем анализ
Больше чем анализ
 
C# Web. Занятие 09.
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.
 
Паттерны проектирования
Паттерны проектированияПаттерны проектирования
Паттерны проектирования
 
C# Web. Занятие 05.
C# Web. Занятие 05.C# Web. Занятие 05.
C# Web. Занятие 05.
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
 
JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
 
Presentation for students about Laravel.pptx
Presentation for students about Laravel.pptxPresentation for students about Laravel.pptx
Presentation for students about Laravel.pptx
 
Разработка Enterprise-приложения на основе Spring Framework
Разработка Enterprise-приложения на основе Spring FrameworkРазработка Enterprise-приложения на основе Spring Framework
Разработка Enterprise-приложения на основе Spring Framework
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rus
 
ПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решенийПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решений
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
 

Web application framework

  • 1. Web application framework The Invaders http://www.theinvaders.ru
  • 2. Что это такое? Каркас(дословный перевод). Это набор готовых компонентов и моделей, которые облегчают программирование и делают его более организованным. Используя веб-фреймворк, можно значительно упростить работу, необходимую для построения веб-приложений. Это напоминает построение модели из блоков Лего.
  • 3. Варианты при разработке веб приложения? • Использовать «чистый» продукт; • Использовать готовое решение; • Использовать фрэймворк. Большинство веб-фреймворков используют паттерн проектирования — MVC(model-view- controller). Далее по умолчанию будет подразумеваться, что фреймворк работает по такому паттерну.
  • 4. MVC(model-view-controller) • Первая часть представляет собой бизнес-процессы (модель). • Вторая говорит приложению, что делать с потоками данных (контроллер). • А с помощью третьей части  создаются HTML-страницы (вид). Многие веб-фреймворки, навязывая шаблон MVC, позволяют организовать код так, что изменения в модели, виде или контроллере оказывают наименьшее воздействие на другие элементы приложения.
  • 5. Зачем? Выдержка из чьего-то блога... Создание современного web приложения представляет собой довольно трудоемкую задачу. В книгах или руководствах все кажется довольно простым. Демонстрационные программы редко бывают больше нескольких страницы. Все красиво работает… Но, проблема в том, что это учебные примеры. Как только вы попытаетесь использовать их на практике, вы увидите, как увеличивается объем кода. Рассмотрим обработку данных, полученных из формы. Мы должны: - проверить тип полученных значений; - убедиться, что значения имеют допустимые величины (или формат); - удалить из текста запрещенные теги (защита от XSS); - заменить в параметрах SQL-запросов служебные символы на их эскейп последовательности (защита от SQL Injection); - если параметры связаны между собой, проверить эти связи; - и т.д. Естественно, этот код должен быть не только написан, но и протестирован. Как видите, приличный кусок работы. Причем в большинстве своем это рутинные операции, которые повторяются практически во всех приложениях.
  • 6. Что нам дает веб фреймворк? • система шаблонов; • система кеширования; • безопасность; • ORM, API доступа к БД; • диспетчер URL; • AJAX; • автоматическое конфигурирование; • расширяемость; • и т.д.
  • 7. Веб фреймворки • PHP: Zend, CodeIgniter, Kohana, Yii, CakePHP, Symphony; • Python: Django, Pylons, TurboGears; • Ruby on Rails; • Java: Spring Framework, JBoss Seam, Apache Wicket, Apache Click, Apache Tapestry, Apache Struts; • и др.

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n