Architektura MVC w ASP.NET. Autor wykładu: Marek Wojciechowski



Podobne dokumenty
ASP.NET MVC. Autor wykładu: Marek Wojciechowski

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Podstawy wzorca MVC MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.

Technologie internetowe ASP.NET Core. Paweł Rajba

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Ruby i Ruby on Rails. Mateusz Drożdżyński

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Czym jest Ruby on Rails?

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień Uniwersytet Warszawski

Nowy projekt: - ASP.NET MVC 3 Web Application - [Other Languages] Visual C# Web ASP.NET MVC 3 Web Application - okno dialogowe:

Budowa nowoczesnej aplikacji SPA z wykorzystaniem biblioteki Ember.js

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Realizacja Aplikacji Internetowych 2013 laboratorium K. M. Ocetkiewicz

Realizacja Aplikacji Internetowych 2013 laboratorium cz. 2 K.M. Ocetkiewicz

Realizacja Aplikacji Internetowych 2012 laboratorium K. M. Ocetkiewicz

MVC w praktyce tworzymy system artykułów. cz. 1

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Infrastruktura aplikacji WWW

Kurs języka Ruby. Ruby on Rails ActionPack

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Program szkolenia: Symfony, nowoczesny framework PHP


Microsoft.NET: ASP.NET MVC + Entity Framework (Model First)

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Zaawansowane aplikacje internetowe laboratorium REST

Systemy internetowe ASP.NET mgr inż. Andrzej Sobecki

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Architektura mikroserwisów na platformie Spring IO

Testowanie aplikacji Java Servlets

Projekt: Mikro zaprogramowane na sukces!

WYKORZYSTANIE WZORCA MVC W ASP.NET

Szkolenie wycofane z oferty

Walidacja po stronie serwera Walidacja po stronie klienta:

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Wzorce prezentacji internetowych

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF

Programowanie obiektowe

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

ASP.NET MVC. Uwierzytelnianie i routing. Zaawansowane programowanie internetowe Instrukcja nr 6

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Walidacja danych w ASP.NET MVC

Programowanie w Ruby

EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails

Zaawansowane aplikacje internetowe - laboratorium

Platformy Programowania

Modele danych walidacja widoki zorientowane na model

REFERAT O PRACY DYPLOMOWEJ

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

4 AS SP.NET MVC. Widok. Zaawansowane programowanie internetowe Instrukcja nr 4

Kurs rozszerzony języka Python

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

MVC, Razor i Azure technologie dla programistów. Wykonanie: Adam Augustyniak Kamil Kołodziejski Łukasz Żmudziński UWM 2015

Testowanie aplikacji. Kurs języka Ruby

Aplikacje Internetowe

Agenda. Wstęp Zmiany Co nowego dla web developerów? Nowości we front-end developingu Czego spodziewać się może końcowy użytkownik?

Wzorce architektoniczne

REFERAT PRACY DYPLMOWEJ. Temat pracy: Projekt i realizacja warstwy serwerowej gry internetowej

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Programowanie obiektowe

I.Wojnicki, PHP. Smarty. Igor Wojnicki. Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie. 28 marca 2014

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Zagrożenia trywialne. Zagrożenia bezpieczeństwa aplikacji internetowych. Parametry ukryte. Modyfikowanie parametrów wywołania

Aplikacje Internetowe

Podstawy programowania III WYKŁAD 6

Tworzenie cross-platformowych aplikacji w Xamarin.Forms

Szkolenie wycofane z oferty. Programowanie w JavaScript (zawiera jquery)

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

media Blitz wydajne sytemy szablonów

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

KARTA PRZEDMIOTU. Warsztaty z Ruby on Rails. Ruby on Rails Workshop

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Wstęp. Ale po co? Implementacja

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Web frameworks do budowy aplikacji zgodnych z J2EE


Tworzenie i wykorzystanie usług sieciowych

Transkrypt:

Architektura MVC w ASP.NET Autor wykładu: Marek Wojciechowski

Modele programistyczne ASP.NET Web Forms Komponentowy interfejs użytkownika (kontrolki) Programowanie wizualno-zdarzeniowe Klasyczna składnia ASP.NET ASP.NET MVC Implementacja wzorca MVC Klasyczna składnia ASP.NET lub silnik Razor Web Pages Proste aplikacje webowe jak w PHP lub starym ASP Składnia Razor Web Forms ASP.NET MVC Web Pages ASP.NET ASP.NET (2)

ASP.NET (3) ASP.NET Web Pages Najnowszy i najprostszy model programistyczny framework do tworzenia dynamicznych stron internetowych w stylu PHP i klasycznego ASP wykorzystuje składnię i silnik Razor (ASP.NET Web Pages 2) open source tworzone w Visual Studio lub darmowym środowisku WebMatrix oparte o silnik widoków (ang. view engine) Razor obsługiwane języki programowania: C# i Visual Basic (rozszerzenia stron.cshtml i.vbhtml)

Silnik widoków Razor ASP.NET MVC od początku wspierał koncepcję silników widoków modułów implementujących różną składnię szablonów stron Spark i NHaml jako przykłady silników szablonów do użycia w ASP.NET MVC zamiast tradycyjnego, znanego z Web Forms, silnika ASP.NET Razor opracowany dla MVC3, stosowany również w MVC4, ale też w ASP.NET Web Pages 2 Cechy silnika Razor przejrzysty kod bazujący na językach C# i VB zwarta i przejrzysta składnia: @{ }, @wyrażenie inteligentny parser umożliwia naturalny przeplot HTML z językiem programowania wspiera IntelliSense, unit tests, layouts helpery do generacji formularzy HTML ASP.NET (4)

ASP.NET Web Pages Przykład (1/2) Test.cshtml @{ var title = Request.QueryString["title"]; if (String.IsNullOrEmpty(title)) { title = "Razor Web Page"; } var count = Request["count"].AsInt(1); } <html> <head><title>@title</title></head> <body> <form method="post"> First name: @Html.TextBox("name", @Request["name"]) # of greetings: @Html.TextBox("count", @count) <input type="submit" value="submit" /> </form> @{ if(ispost) { for(int i = 0; i < count; i++) { <p>hello @Request.Form["name"]!</p> } } } </body></html> ASP.NET (5)

ASP.NET Web Pages Przykład (2/2) ASP.NET (6)

ASP.NET (7) ASP.NET MVC Framework firmy Microsoft dla ASP.NET oparty o wzorzec Model-View-Controller (MVC) pierwsza wersja produkcyjna: marzec 2009 przedstawiany jako alternatywa dla Web Forms, a nie następca aktualna wersja MVC4 open source (licencja MS-PL) darmowy w pełni wspierany od wersji MVC3 oferuje silnik widoków Razor jako alternatywę dla klasycznej składni ASP.NET

ASP.NET (8) Zalety ASP.NET MVC Pełna kontrola nad generowanym kodem HLML Embrace HTTP and HTML - don't hide it brak view state i formularzy po stronie serwera Bogate możliwości integracji z Ajax Intuicyjne adresy URL w aplikacji RESTful i przyjazne wyszukiwarkom Podział kompetencji i odpowiedzialności komponentów aplikacji (ang. separation of concerns) Testowalność wsparcie dla Test-Driven Development (TDD) Nacisk na zarządzanie nawigacją w aplikacji wzorzec Front Controller, routing

ASP.NET (9) Web Forms na tle ASP.NET MVC Abstrakcja od HTML i HTTP view state, postbacks, kontrolki, cykl życia strony ułatwia programistom szybki start trudno porządnie implementować duże systemy mniej kodu RAD, małe zespoły projektowe Orientacja na stronę jako atomową jednostkę aplikacji Website jako domyślny sposób organizacji kodu w VS ścisły związek nazwy pliku strony z adresem URL trudne i mało wydajne testowanie aplikacji wzorzec Page Controller

ASP.NET (10) Role komponentów w ASP.NET MVC Models komponenty odpowiedzialne za pamiętanie stanu stan często utrwalany w bazie danych Views komponenty odpowiedzialne za wyświetlanie interfejsu użytkownika aplikacji widok może być tworzony kreatorem w oparciu o model (CRUD scaffolding) Controllers komponenty odpowiedzialne za obsługę interakcji z użytkownikiem, manipulowanie modelem i wybór widoku do wyświetlenia

ASP.NET (11) Struktura projektu ASP.NET MVC Nowo utworzony projekt zawiera zaczątek aplikacji, który można następnie dostosować i rozwinąć szablon strony (master page) domyślna reguła routingu obsługa logowania użytkowników proste kontrolery i widoki opcjonalnie towarzyszący projekt do testów jednostkowych

Aplikacja startowa ASP.NET MVC ASP.NET (12)

ASP.NET (13) Routing Global.asax.cs public class MvcApplication : System.Web.HttpApplication { public static void RegisterRoutes(RouteCollection routes) {... routes.maproute( "Default", // Route name "{controller}/{action}/{id}", // URL with params new { controller = "Home", action = "Index", id = "" } // Param defaults ); } } protected void Application_Start() { RegisterRoutes(RouteTable.Routes); }

ASP.NET (14) Controller public class HomeController : Controller { public ActionResult Index() { ViewData["Message"] = "Welcome to ASP.NET MVC!"; HomeController.cs } return View(); } public ActionResult About() { return View(); }

ASP.NET (15) View Index.aspx <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>... <asp:content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server"> <h2><%= Html.Encode(ViewData["Message"]) %></h2> <p> To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="asp.net MVC Website">http://asp.net/mvc</a>. </p> </asp:content>

Master Page <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>... <div id="menucontainer"> </div> Site.Master <ul id="menu"> <li><%= Html.ActionLink("Home", "Index", "Home")%></li> <li><%= Html.ActionLink("About", "About", "Home")%></li> </ul> <div id="main"> <asp:contentplaceholder ID="MainContent" runat="server" /> </div>... Obecnie (dla silnika widoków Razor i C#): _Layout.cshtml ASP.NET (16)

ASP.NET (17) Przekazywanie danych z kontrolera do widoku ViewData, ViewBag (od MVC 3) Dane dostępne w ramach pojedynczego żądania nie przetrwają operacji Redirect ViewData["klucz"], ViewBag.klucz TempData Dane przetrwają operację Redirect TempData["klucz"] Wewnętrznie wykorzystuje sesję HTTP View models i strongly typed views Obiekty modelu przekazywane do widoku Rozwiązanie zalecane

ASP.NET (18) Ochrona przed atakami CSRF Cross Site Request Forgery (CSRF, XSRF) atak wykorzystujący zaufanie serwisu do przeglądarki użytkownika (żądanie z przeglądarki zalogowanego użytkownika, podrzucone mu z innego serwisu) Mechanizm obrony w ASP.NET MVC poprzez Anti-Forgery Token generowana losowo informacja dołączona do formularza w polu ukrytym i jednocześnie ustawiana jako cookie po odebraniu formularza wysłanego z przeglądarki test zgodności tokena z pola ukrytego i cookie

ASP.NET (19) AntiForgeryToken w ASP.NET MVC widok z formularzem <% using (Html.BeginForm()) {%> <%= Html.AntiForgeryToken() %> <! elementy formularza <% } %> kontroler przetwarzający dane z formularza [ValidateAntiForgeryToken] public ActionResult Akcja(FormCollection form) {... }

Podsumowanie ASP.NET MVC to nowy framework dla ASP.NET oferowany przez Microsoft implementacja architektury MVC zastosowanie podejść zalecanych w dużych projektach separation of concerns test-driven development Powrót do korzeni: HTML i HTTP niekiedy przypomina ASP: <% %> wsparcie dla REST; helpery ułatwiające kodowanie Ma stanowić alternatywę dla Web Forms każde z rozwiązań ma zalety i wady należy wybrać framework odpowiedni dla realizowanego projektu i kompetencji programistów ASP.NET (20)