45. Omówić istotę i przeznaczenie frameworków internetowych na wybranym przykładzie.
W każdej większej aplikacji internetowej możemy wyodrębnić elementy, które zawsze są nam potrzebne. Możemy do nich zaliczyć komunikację z baza danych, zarządzanie sesją czy np. obsługę użytkowników i ich uprawnień. Jako, ze pisanie ich od nowa przy każdym projekcie mija się z celem należy stworzyć je tak, aby można było je wykorzystać za każdym razem bez konieczności ich modyfikacji.
I tu z pomocą przychodzą frameworki dając nam większość potrzebnych mechanizmów za pomocą prostych interfejsów.
Podstawowe elementy większości frameworków to:
1. Mechanizm uruchamiania i przetwarzania akcji.
2. Mechanizm tworzenia logiki biznesowej aplikacji.
3. Zarządzanie konfiguracją.
4. Zarządzanie komunikacją z bazą danych.
5. Obsługa formularzy.
6. System szablonów.
7. Obsługa błędów.
8. Mechanizmy bezpieczeństwa, uwierzytelniania i kontroli dostępu.
9. Generatory kodu.
Przykładowe Frameworki to:
ruby-on-rails django zend-framework cakephp laravel codeigniter symfony
Opisujac na konkretnym przykładzie chciałbym, nawiązując od razu do kolejnego pytania o wzorzec projektowy MVC,
46. Architektoniczny wzorzec projektowy MVC.
Model-Widok-Kontroler to w tej chwili chyba najczęściej używany wzorzec projektowy. Niemal każda aplikacja, a zwłaszcza aplikacje internetow, wykorzystują go w swoich frameworkach.
Model - reprezentuje logikę naszej aplikacji. Tutaj znajdują się wszelkie obiekty, które służą do wykonywania wszelkich operacji związanych z implementacją funkcjonalności naszej aplikacji, np.
połączenie z bazą danych.
Widok - warstwa prezentacji. Widok odpowiedzialny jest za prezentację użytkownikowi wyników działania Modelu.
Kontroler - obsługuje żądania i akcje użytkownika. Następnie przekazuje je do odpowiednich metod Modelu.
MODEL jest też stała część naszej aplikacji, czyli powinniśmy mieć możliwość dowolnie wymieniać pozostałe części (Widok i Kontrolery), a aplikacja nadal powinna robić to samo.
Widok służy jedynie prezentacji danych dla użytkownika końcowego. W klasycznym podejściu MVC to model informuje komponenty Widoku o zmianach w Modelu i potrzebie aktualizacji Widoku.
Komponenty Widoku mogą natomiast wykorzystywać komponenty Modelu do pobierania danych potrzebnych do wygenerowania Widoku. Niedopuszczalnym błędem jest modyfikowanie Modelu z poziomu Widoku.
Kontroler natomiast ma za zadanie przekierowywać wszelkie żądania użytkownika na odpowiednie wywołania Modelu. Można powiedzieć, że Kontroler pełni rolę swoistego routera.