Catalyst – MVC framework на Perl Сергей Скворцов $Revision:: 11$

Презентация:



Advertisements
Похожие презентации
Где хранить данные в web- приложении page –JSP страница request – HTTP запрос session – сессия пользователя application – веб-приложение Static Java class.
Advertisements

Сервер приложений С++ Андрей Шетухин Rambler Internet Holding.
Тренинг ASP.NET MVC 3 Гайдар Магдануров Microsoft.
Сервер приложений С++ Андрей Шетухин, Илья Космодемьянский SUP Fabrik.
Организация программного кода при создании информационных систем Подготовил: Студент группы МЭК-21 Акименко В. И. Руководитель: Доц. Яровенко А. Н.
Платформа разработки ASP.NET Гайдар Магдануров t: e: m: +7.
Симпозиум 2008 Сергей Шутов, ДИМАС Борис Егоров, Интерсистемс Практика использования Zen и Прототип-6.
AGPsource Game Platform 3.0 Универсальная платформа для браузерных онлайн игр ( с ) AGPsource Lab Team.
1 Введение Информационные системы Альтернативы задачи доступа к данным Стандарт JPA и коммерческие ORM имплементации Определение ORM Проблемы полного преобразования.
Catalyst and Rose::DB сборка. Rose::DB Описание работы с ORM смотри здесь.
Рогов Павел (271 ПИ ) Назаренко Дмитрий (272 ПИ ) Научный руководитель : Гринкруг Е. М. Курсовая работа. Клиент - серверное Android- приложение для планирования.
Django: инструкция по применению KharkivPy #1 23 ноября 2011 Колодяжный Иван 1 из 21.
Лекция 1 MVC (Model-View-Controller) - это конструкционный шаблон, который описывает способ построения структуры приложения, сферы ответственности и взаимодействие.
Архитектура новой почты Рамблера Андрей Шетухин. Rambler Mail сегодня 240 тысяч новых регистраций в день 66 миллионов пользователей 20 миллионов живых.
App Engine Cloud Computing платформа от Google Петр Чардин, Михаил Дайчик Апрель 2009.
Разработка мультисервисного корпоративного файлового хранилища Дмитрий Шурупов группа С
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
World Wide Web Обработка запросов на стороне сервера Тема 8.
Ruby On Rails: Web- разработка по-другому! Несколько простых причин перейти на Ruby (and) Rails. Проблематика web-разработки. Разработка web-проектов всех.
ADO.NET Data Services Данила Корнев Developer Evangelist Microsoft Россия Установите Silverlight 1.0 для просмотра демонстрации:
Транксрипт:

Catalyst – MVC framework на Perl Сергей Скворцов $Revision:: 11$

2 Кто аудитория этого доклада? Разработчики на Perl –на May Perl 2008 будет более детальный доклад Разработчики не на Perl –которые почему-то (?!) его не знают Менеджеры –спокойно, в докладе не будет ни строчки Perl-кода

3 Что такое Catalyst? Web framework на Perl Архитектурный паттерн MVC Принцип TIMTOWTDI - «всегда есть более чем один способ сделать это» вместо « one way to do it ». Постмодернизм – как в Perl, так и в Catalyst

4 Что делает web-framework? Взаимодействие с веб-сервером – Apache, CGI, Zeus, FastCGI, … –Сделать что-то согласно URL – – last_name=Ivanov&curator= last_name=Ivanov&curator=1245 Управление пользователями –Аутентификация, авторизация, сессии

5 Что ещё делает web-framework? Прочесть и/или сохранить что-то в модели источника данных (БД, …) – DBIx::Class, LDAP, Обработка HTML-форм – FormBuilder, FormFu Собственно логика приложения Отображение результатов – (x)HTML, PDF, , JSON, …

6 Что такое MVC? 1. Request 2. Dispatch 3. Read / Store 4. Forward 5. Render 6.Response

7 Какие могут быть Modelи? Реляционные БД (через ORM или нет) – DBIx::Class, Class::DBI, DBI Данные как результат запроса –SOAP, XMLRPC, Jabber, LDAP, RSS/Atom Данные через API веб-служб – YouTube, Flickr, Amazon -S3 «Простые» модели – Filesystem, , SVN, …

8 Какие могут быть View? Системы шаблонов (template systems): – Template-Toolkit, Mason, HTML-Template, … Представление данных для «машин» (REST): – JSON, YAML, XML, … Графика (SVG, PNG, …) и специальные форматы ( )

9 View: какие есть Templateы? Template-Toolkit – очень популярный [% FOREACH book IN books %] [% book.title %] by [% book.author.name %] [% END %] HTML-Mason – тоже популярный HTML-Template – очень простой XSLT - стандартный XML-язык шаблонов ClearSilver - языка-независимый, очень быстрый

10 View: какие есть Templateы? MicroMason – компилятор шаблонов Petal – реализация спецификации TAL из Zope PSP – Perl Server Pages (похож на JSP) Template::Declare PHP – (нет, правда!)

11 URI-to-Action dispatch package MyApp::Controller::Foo; sub login :Global # /login sub one :Path("foo") # /foo/foo sub two :Path("/bar") # /bar sub three :Path # /foo/* sub four :Regex("/group(\d+)/view") # /group12345/view sub five :LocalRegex("baz/(.*)/quux") # /foo/baz/(.*)/quux

12 Поддержка сессий Session::State – Cookie, URI Session::Store – Cache, DBI, FastMmap, Delegate, File, Memcached

13 Аутентификация и авторизация Аутентификация – Credentials – способ / алгоритм Password, HTTP, OpenID, Atom, PAM, Facebook –Store – хранилище данных о пользователе Htpasswd, DBIx-Class, LDAP, … –набор Realms – пары Авторизация – Authorization::Roles – Authorization:: ACL

14 …и еще разного полезного HTML-формы –CGI::FormBuilder, HTML::FormFu AJAX –нет жесткой привязки, любой из: – Dojo, jQuery, script.aculo.us, Prototype, MochiKit, YUI –Jemplate - шаблоны на стороне клиента Unicode, L10N, I18N, … –Unicode прекрасно поддерживает Perl – Catalyst::Plugin::I18N ( через Locale::Maketext)

15 Runtime: среда запуска development: –Standalone (Engine::HTTP) –CGI (не рекомендуем в production) production: –mod_perl 1. x / 2. x – FastCGI – nginx, apache, lighttpd – Catalyst-Engine-*: HTTP-POE, HTTP-Prefork, Wx, Zeus, XMPP2, Embeddable

16 Работа с Catalyst Готовые компоненты на CPAN –порядка 200 модулей Детальная документация –POD, Wiki, книги Helpers & scaffolding – scripts/myapp_create.pl model … Тесты –Catalyst::Test –Test::WWW::Mechanize::Catalyst

17 TIMTOWTDI There is more than one way to do it –«всегда есть более чем один способ сделать это» Итеративная миграция –с других платформ или существующих проектов Гибкость будущего развития One way to do it –«есть только один верный путь» –«opinionated software» Миграция путем переписывания всего кода сразу Зависимость от «линии партии»

18 Постмодернизм: Perl и Catalyst Мы с благодарностью используем новые придумки из других систем и языкав… … и с одобрением смотрим, как адаптируют наши. Интересные идеи легко и непринуждённо инкорпорируются, ведь… …это мир open-source, не надо быть скупыми! Постмодернизм – это круто!

19 Спасибо! mailto: Catalyst – ваш технологический и философский выбор :)