Dr inż. Piotr Czapiewski. Framework (rama projektowa, szkielet) to w programowaniu struktura wspomagająca tworzenie, rozwój i testowanie powstającej.

Slides:



Advertisements
Podobne prezentacje
20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Advertisements

Decyzje projektowe w .NET Framework
Kamil Smitkiewicz Bezpieczeństwo w PHP.
Prezentacja o MS-DOS’ie
PROGRAMOWANIE STRUKTURALNE
WEB SERVICE Stefan Rutkowski.
Uwierzytelnianie i autoryzacja dostępu do portali
ISOiWUT Internetowy System Oferowania i Wyszukiwania Usług Transportowych.
Architektura systemu Gra strategiczna „Strusia Jama”
Model – View - Controler
Tworzenie ASP.NET Web Form
Wprowadzenie do Unix’a
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Wykład 2. Wprowadzenie do architektur systemów rozproszonych
Wzorce projektowe w J2EE
Jak przeżyć w Internecie? Czyli o bezpieczeństwie słów kilka… Michał Jankowski MJ Software Solutions Services.
Rozwój aplikacji przy wykorzystaniu ASP.NET
Systemy zarządzania treścią Wykład 1
Architektura Systemu MunSOL
Rozwój aplikacji. To zestaw narzędzi do budowania i optymalizacji złożonych aplikacji opartych na przeglądarce. To zestaw narzędzi do budowania i optymalizacji.
Instytut Tele- i Radiotechniczny WARSZAWA
Projektowanie obiektowe
Podstawy programowania II
Opracował : Przemysław Drzymała
Technologie tworzenia aplikacji internetowych Wykład 3
Generatory dokumentacji kodu źródłowego
Przeznaczenie produktu Opis funkcjonalności
Promotor: dr.inż. Aleksandra Werner
Prezentacja i szkolenie
Programowanie obiektowe – zastosowanie języka Java SE
Model – View – View Model
Aplikacje bazodanowe ADO.NET PHP i MySQL
Tworzenie Aplikacji Internetowych
Internetowe surfowanie
Kostyantyn Doronovych, 79129, sr1640 Łukasz Marciniak, 79166, sr1640
ZAKŁAD SYSTEMÓW KOMPUTEROWYCH
SOS SYSTEM OBSŁUGI SZKOŁY
„Kalkulator zużycia oraz kosztu energii elektrycznej online „
Systemy zarządzania treścią Wykład 5
Logowanie do platformy PEUP
Jak przeżyć w Internecie? Czyli o bezpieczeństwie słów kilka… Michał Jankowski MJ Software Solutions Services.
Walidacja danych alina suchomska.
Technologie programowania systemów internetowych
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Uprawnienia w Windows Server
Podstawy języka skryptów
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
Wzorce Projektowe w JAVA
Podstawy programowania
Informatyka – szkoła gimnazjalna – Scholaris - © DC Edukacja Tworzenie stron WWW w programie Microsoft FrontPage Informatyka.
Moduł e-Kontroli Grzegorz Dziurla.
Portal edukacyjny J A V A S C R I P T JĘZYK PROGRAMOWANIA STRON HTML Opracowała: Anna Śmigielska.
A long time ago, in Redmond far, far away…. WSTĘP DO PRISM 5.0 Jak przygotować aplikację WPF do współpracy z Prism? Łukasz Rabiec
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Zarządzanie stanem w aplikacjach ASP.NET Elżbieta Mrówka-Matejewska
Politechnika Warszawska Wydział Elektryczny Kierunek: Informatyka stosowana Praca dyplomowa inżynierska Aplikacja do kontroli wydajności produkcji w.
ASP.NET Tworzenie i zarządzanie wyglądem aplikacji, tworzenie mapy witryny. Kontrolki nawigacyjne.
Implementacja wzorca MVVM w Prism 5.0
InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: – Innowacyjne metody.
Wyższa Szkoła Informatyki i Zarządzania W Bielsku-Białej Kierunek informatyka Specjalność : Systemy informatyczne Praca dyplomowa inżynierska : System.
Przykłady zewnętrznych bibliotek do PHP Laboratorium z Baz Danych Łukasz Zubkowicz.
Wzorzec MVC na przykładzie CakePHP
Programowanie obiektowe – zastosowanie języka Java SE
Windows Workflow Foundation
Zapis prezentacji:

dr inż. Piotr Czapiewski

Framework (rama projektowa, szkielet) to w programowaniu struktura wspomagająca tworzenie, rozwój i testowanie powstającej aplikacji. Z reguły na framework składają się programy wspomagające, biblioteki kodu źródłowego i inne podobne narzędzia. (Wikipedia) Czym jest framework?

Wzorce projektowe – MVC, Front Controller Narzucona organizacja kodu, struktura projektu – łatwiejsze utrzymanie projektu Wspomaganie typowych zadań związanych z budową aplikacji internetowych (np. walidacja formularzy, autoryzacja) Generowanie kodu, np. formularzy, scaffolding Testowanie Bogate biblioteki dodatkowe W czym może nam pomóc framework?

Popularne frameworki PHP Zend FrameworkSymfonyCakePHPYiiCodeIgniterKohana Inne popularne frameworki Ruby on Rails (Ruby)Django, Pylons (Python)Spring, Struts,(Java)ASP.NET MVCCatalyst (Perl)Grails (Groovy)

Biblioteka dla PHP 5 wspomagająca produktywność programistów aplikacji internetowych Pełna obiektowość Wsparcie wzorca MVC Bogata dokumentacja Zend Framework Convention over configuration Gotowe, proste rozwiązania dla 80% zadań Łatwa rozszerzalność dla osiągnięcia pozostałych 20% Elastyczność – prostota i rozszerzalność

Model Zapewnia dostęp do danych Zawiera same dane lub mechanizmy dostępu do nich Widok Wyświetla interfejs użytkownika Wyświetla dane pobrane z modelu, przekazane przez kontroler Odpowiedzialny wyłącznie za prezentację informacji Kontroler Przyjmuje żądanie użytkownika, manipuluje modelem, tworzy widok lub powoduje jego odświeżenie Decyduje, jakie operacje wykonać, jakie modele i widoki wywołać

Dwa istotne podziały Model ––––––––– Prezentacja Widok ––––––––– Kontroler

 Rozdzielenie modelu i prezentacji  Dwa aspekty programowania ▪ Inne problemy, inne punkty widzenia, inne technologie ▪ Widok – mechanizmy UI, projekt interfejsu, układ kontrolek ▪ Model – logika biznesowa, procesy, interakcja z bazą danych  Kierunek zależności ▪ Prezentacja zależy od modelu, ale model od prezentacji nie

 (c.d.) Rozdzielenie modelu i prezentacji  Prezentacja zależna od kontekstu ▪ Różne sposoby prezentacji tego samego modelu ▪ Zmiana prezentacji nie wpływa na model  Ponowne użycie kodu ▪ Wielokrotne użycie elementów modelu, także w innych projektach ▪ Możliwość udostępnienia usług sieciowych  Testowanie ▪ Testowanie obiektów niewizualnych jest łatwiejsze ▪ Łatwe testowanie całej logiki dziedzinowej bez uwzględniania GUI

Rola kontrolera Obsługa żądania HTTP Decyzja – co dalej zrobić z żądaniem? Jakiego użyć modelu i widoku? Dwa wzorce kontroli Page Controller Osobny obiekt kontrolera dla każdej strony lub dla każdej akcji W najprostszym przypadku łączy w sobie role widoku i kontrolera Front Controller Jeden obiekt obsługuje wszystkie żądania Sprawdza parametry żądania i tworzy kolejne obiekty, przekazując do nich sterowanie Scentralizowana obsługa żądań HTTP, łatwiejsze zarządzanie

HTTP Request HTTP Response HTTP Client

 Zawartość ZendFramework minimal  library – pliki tworzące bibliotekę Zend Framework  bin – pliki uruchamiane z linii poleceń podczas pracy nad projektem

 Narzędzie do tworzenia projektu, dodawania kontrolerów, akcji, formularzy, itp.  Wywoływane z linii poleceń  zf.php  zf.bat (Widnows) lub zf.sh (Linux)  Wymagane php.exe w ścieżce systemowej

 Wywołanie Zend Tool:  zf create project nazwa_projektu  Wynik:  Struktura katologów  Kontrolery: ▪ IndexControler ▪ ErrorController  Widoki: ▪ index.phtml ▪ error.phtml

<?php class IndexController extends Zend_Controller_Action { public function init() { /* Initialize action controller here */ } public function indexAction() { // action body } }

 Klasy kontrolera  Klasa kontrolera musi dziedziczyć z Zend_Controller_Action  Nazwa klasy powinna kończyć się słowem Controller, np.: IndexController, ErrorController  Zachowanie konwencji nazw plików i klas jest konieczne do poprawnego działania aplikacji

 Katalog widoków  Widoki odpowiadające kontrolerowi IndexController umieszczamy w katalogu: application/views/scripts/index/  Widok dla akcji indexAction umieszczamy w pliku: index.phtml  Plik widoku  Zwykły plik PHP – mieszanka HTML i PHP  Kod PHP ograniczamy do niezbędnego minimum związanego z wyświetlaniem danych

 Katalog publiczny /public  Powinien być jedynym katalogiem udostępnianym przez WWW  Początkowo zawiera pliki: ▪.htaccess ▪ index.php  Wymagane włączenie mod_rewrite na serwerze

 Ustawienie środowiska aplikacji  Włączenie silnika mod_rewrite  Przekierowanie wszystkich żądań do index.php SetEnv APPLICATION_ENV development RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] SetEnv APPLICATION_ENV development RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]

 Adresowanie kontrolerów w URL  Załóżmy, że katalog publiczny umieszczony jest na serwerze WWW i widoczny pod adresem: ▪  Ścieżka do kontrolera IndexController: ▪  Ścieżka do akcji indexAction w kontrolerze IndexController: ▪

 Aplikację uruchamiamy wchodząc na adres katalogu publicznego ▪

 Odebranie danych z żądania HTTP  $x = $this->getRequest()->getParam('zmienna');  Dostęp do widoku z poziomu kontrolera:  $this->view  Ustawienie zmiennej w widoku:  $this->view->zmienna = $x;

public function indexAction() { $this->view->napis = "Ala ma kota"; } Witamy w Zend Framework napis; ?> controllers/IndexController.php views/scripts/index/index.phtml

 Zend Framework Manual  Tomasz Skaraczyński, Andrzej Zoła: PHP5. Programowanie z wykorzystaniem Symfony, CakePHP, Zend Framework. Helion 2009  Włodzimierz Gajda: Zend Framework od podstaw. Wykorzystaj gotowe rozwiązania PHP do tworzenia zaawansowanych aplikacji internetowych Helion 2011  M. Fowler et al.: Patterns of Enterprise Application Architecture. Addison Wesley 2002