Systemy internetowe ASP.NET mgr inż. Andrzej Sobecki



Podobne dokumenty
Technologie internetowe ASP.NET Core. Paweł Rajba

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

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

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

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

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

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

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

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

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Program szkolenia: Symfony, nowoczesny framework PHP

Instrukcja laboratoryjna cz.6

MVVM Light Toolkit. Julita Borkowska

Baza danych sql. 1. Wprowadzenie

REFERAT O PRACY DYPLOMOWEJ

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

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

Walidacja danych w ASP.NET MVC

Tworzenie i wykorzystanie usług sieciowych

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

Kontrola dostępu w ASP.NET

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

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Encje w Drupalu. Tworzenie własnych encji i ich wpływ na poprawę wydajności

Modele danych walidacja widoki zorientowane na model

Studia podyplomowe. Programowanie na platformie Microsoft Visual Studio.NET

Wzorce architektoniczne

Budowanie aplikacji biznesowych przy użyciu. Presentation Foundation i wzorca MVVM

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

WYKORZYSTANIE WZORCA MVC W ASP.NET

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

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

Programowanie obiektowe

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

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

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

Programowanie obiektowe

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

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Aplikacje WWW Wprowadzenie

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

Wprowadzenie do programowania aplikacji mobilnych

Projektowani Systemów Inf.

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35

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

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

Aplikacje w środowisku VBA. Visual Basic for Aplications

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

REFERAT O PRACY DYPLOMOWEJ

Zaawansowane aplikacje internetowe - laboratorium

Aplikacje Internetowe

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

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

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

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Web frameworks do budowy aplikacji zgodnych z J2EE

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji src/ - folder zawiera cały kod PHP aplikacji

Załącznik nr 1 do zapytania ofertowego nr 1/POKL/2015

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

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016

mylittlemvc Framework MVC dla ASP.NET Autor: Michał Skowronek

URL, URI różnice i podobieństwa

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Infrastruktura aplikacji WWW

Warstwa prezentacji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Wybrane działy Informatyki Stosowanej

Programowanie zorientowane obiektowo. Mateusz Kołecki

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

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

6. Bezpieczeństwo przy współpracy z bazami danych

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

Programowanie komponentowe 5

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

Projekt warsztatów. Full Stack Developer. Autor: Kamil Wołczyk

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Szkolenie wycofane z oferty

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

Ajax. 1. Wprowadzenie. 2. Aplikacja serwerowa

Django : praktyczne tworzenie aplikacji sieciowych / Antonio Mele. Gliwice, cop Spis treści

Platformy Programowania

Wzorce prezentacji internetowych

Platforma e-learningowa

Transkrypt:

Systemy internetowe ASP.NET mgr inż. Andrzej Sobecki

Plan wykładu Wprowadzenie do ASP.NET Omówienie środowiska pracy Przykładowy projekt Omówienie komponentów składowych projektu ASP.NET Utworzenie i omówienie cech przykładowego przekierowania Charakterystyka możliwości środowiska ASP.NET

Wprowadzenie do ASP.NET Środowisko do wytwarzania serwisów internetowych (pierwotnie ASP+) Strony ((X)HTML) podobne JSP, PHP, ASP Częściowa separacja kodu funkcyjnego od prezentacji Dodanie modelu Code-behind (Plik.aspx.cs lub Plik.aspx.vb) Dyrektywy <%@ %> - charakterystyka danej strony

Wprowadzenie do ASP.NET Przetwarzanie stron wg ustalonego cyklu (Page LifeCycle)

Wprowadzenie do ASP.NET

Wprowadzenie do ASP.NET ViewState

Omówienie środowiska pracy Microsoft Visual Developer 2010 EE.NET 4.0 MS SQL 2008 R2 EE Można wykorzystać platformę Web Installer www.microsoft.com/web

Przykładowy projekt File -> New Project -> ASP.NET Web Application Pokaz i omówienie przykładowego projektu

Elementy składowe projektu Web.config (globalne + lokalne) Global.asax MasterTemplate Strony + CodeBehind Kontrolki Designer

Elementy składowe projektu Struktura folderów App_code pre-compiled code App_data statyczne bazy danych App_LocalResources pliki pomocnicze np. z tłumaczeniami: MusicList.aspx.pl-PL.resx App_GlobalResources przechowuje pliki resx; wartości słownikowe App_Themes przechowuje pliki definiujące wygląd Bin skompilowana wersja aplikacji

Przekierowania Metody na definiowanie przekierowań: Hyperlinki (nie przenosi stanu strony, możliwość przekierowań poza projekt, przesyłanie danych definiowanie w QueryString) Cross-page posting (przesyła stan strony i informacje w niej zawarte do kolejnej, formularze i inne, możliwe przekierowanie do stron spoza projektu) Browser redirect (prawie swobodny redirect, żądanie HTTP GET) Server transfer (render innej strony w miejscu aktualnie wyświetlanym, ukrywanie url przed userem)

Przykład przekierowania zaawansowanego Najbardziej swobodne z przekierowań + przesyłanie wartości parametrów Design: <asp:linkbutton ID="LinkButton1" runat="server" onclick="linkbutton1_click">nasz link button</asp:linkbutton> Code-behind: Session["test"] = "Wartość nr 1 ; Response.Redirect("~/About.aspx"); Odbiór parametru: <%= (string)session["test"] %> <br /> Inna opcja modyfikacja url np.: String url = strona.aspx?par1=xx&par2=yy Response.Redirect(url); Odbiór: (string) Request.QueryString[ par1 ];

Charakterystyka możliwo liwości środowiska ASP.NET rodowiska ASP.NET Środowisko przewidziane dla aplikacji codziennych, bez wyróżników Elementy dostosowane do wyklikania standardowych reakcji na akcję użytkownika Słaba kontrola przepływu danych Mała zdolność do tworzenia projektów średnich i dużych Środowisko przeznaczone do szybkiego wytwarzania prostych aplikacji internetowych

Serwisy internetowe ASP.NET MVC mgr inż. Andrzej Sobecki

Plan prezentacji Omówienie wzorca projektowego MVC Omówienie ORM Omówienie MVVM Omówienie procesu wytwórczego systemów internetowych w rzeczywistym środowisku produkcyjnym Charakterystyka i omówienie szablonu ASP.NET MVC Różnice w przetwarzaniu żądań pomiędzy ASP.NET i ASP.NET MVC Struktura projektu ASP.NET MVC 2

Wzorzec MVC Rozdzielenie kodu na części Model: metody i obiekty związane z wymianą i obsługą danych z bazą danych View: zestaw operacji, szablonów i styli umożliwiający wygenerowanie widocznej części aplikacji Controller: serce projektu, logika biznesowa, funkcje, które generują dochód projektu

Różnice w przetwarzaniu żąda dań

Warstwa ORM ORM (ang. Object Related Model) Warstwa pośrednicząca w wymianie danych między projektem, a silnikiem baz danych Oddzielenie zapytań w określonym języku bazodanowym od reszty aplikacji Możliwość posługiwania się dobrze zdefiniowanym interfejsem i obiektami, które są z nim związane Dysponowanie po stronie kodu aplikacji zbiorem obiektów, typów i funkcji, które umożliwiają działanie na bazie danych

Warstwa ORM Jak działa ORM? Aplikacja Getery; setery; LINQ SELECT * ; INSERT ; UPDATE ORM Baza danych Wartość, wartości, klasa wypełniona wartościami Wartość, Wartości, Widok

Warstwa ORM Zalety ORM Developer operuje w całym projekcie wyłącznie na obiektach Brak konieczności znajomości zapytań SQL dla podstawowych operacji Utrzymywanie połączeń i zarządzanie nimi Wstępna ochrona przed atakami SQL Injection Wady ORM Występowanie problemów z wydajnością Konieczność wprowadzania ręcznych zmian w ORM w przypadku bardziej skomplikowanych zapytań

Warstwa ORM Przykład z użyciem LINQ: cerset cr = (cerset)(from c in hdb.cersets where c.machine_id == ms.id orderby c.created_at descending select c).firstordefault();

Warstwa ORM (ASP.NET) Uwaga domyślnie dostępne są dwie metody linkowania do bazy danych: ADO.NET Entity Data Model (EDMX) (duża automatyzacja, wiele problemów z użyciem) LINQ to SQL Classes (DBML) (mała automatyzacja, konieczność ręcznego zarządzania polami podczas zmian, w zasadzie bezproblemowy)

Warstwa MVVM Model View ViewModel Warstwa pośrednicząca w komunikacji pomiędzy kontrolerem i widokiem Klasa zawierająca komplet danych i dodatkowe pola na wybór Wyłączny element wymiany danych Widoki silnie typowane klasą (MVVM)

Omówienie procesu wytwórczego systemów w internetowych Prace wstępne (specyfikacja, plan modułów, technologia) Przypisanie osób do zadań Utworzenie testów jednostkowych (TDD) Tworzenie poszczególnych modułów 80 % projektu zabiera 20 % czasu Poprawki, dopracowanie, dodatki to 20 % projektu, który zajmuje najwięcej czasu Poprawki i zmiany w gotowym kodzie najczęściej powodują błędy (stąd wykorzystanie TDD)

Charakterystyka i omówienie ASP.NET MVC Pełna kontrola przez HTML TDD, IoC Wyłączenie z użycia wielu kontrolek, zalecane Html. oraz Ajax. Elementy stron należy wprowadzać ręcznie Dużo więcej JS po stronie widoku (jquery, DOJO, PrototypeJS) Odrzucono utworzone wcześnie metody przekierowań Cykl w ramach żądań został uproszczony

Charakterystyka i omówienie ASP.NET MVC Brak automatycznego zapisywania stanów stron (stateless) Manualne zarządzanie elementami przetrzymywanymi w cache i sesji Kod jest izolowany w zależności od kontekstu, bardziej związany wyłącznie z interfejsem Adresy i mechanizmy przejść przyjazne SEO i pagerank

Różnice w przetwarzaniu żąda dań

Struktura projektu MVC 2 Pokaz Visual Studio EE

Serwisy internetowe ASP.NET mgr inż. Andrzej Sobecki

Plan wykładu Pliki konfiguracyjne Tworzenie nowych kontrolerów Tworzenie nowych akcji Wymiana danych pomiędzy kontrolerem, a widokiem Sposób na uwierzytelnianie Wykorzystanie modelu do komunikacji z bazą danych Transakcje Szablony stron (MasterPage) Helpery Biblioteki i referencje Testy jednostkowe Wdrażanie na serwer docelowy

Pliki konfiguracyjne Web.config Podpięcie i konfiguracja bibliotek, baz danych, modułów uwierzytelniania i innych Global.asax.cs Wykorzystywany do definiowania routingu i podpięcia funkcji wywoływanych za każdym razem przy przejściach adresu

Tworzenie nowych kontrolerów Klasa umiejscowiona w folderze Controllers (domyślnie) Nazwa klasy XxxxController Dziedziczy z klasy Controller

Tworzenie nowych akcji Funkcja typu ActionResult Zwraca View() - ew. z parametrami Istnieje możliwość atrybutowania jej definiując wymaganą role, użytkownika, typ żądania i inne Parametry funkcji muszą być zgodne z żądaniem do niej skierowanym brak dopasowania generuje błąd Parametrami mogą być typy generyczne jak również samodzielnie przygotowane klasy

Wymiana danych kontroler-widok Kontroler: return View(obiekt klasy) return RedirectToAction( Akcja, Kontroler ) return PartialView( Akcja, obiekt) ViewData[ klucz ] = wartość Widok: Widoki silnie typowane Formularze na podstawie klasy widoku (wszystko co użytkownik wpisze zostanie przesłane w tej klasie, uwaga!! To czego sami nie przepiszecie w polach ukrytych zostanie usunięte przed requestem) ViewData[ klucz ] = wartość

Sposób b na uwierzytelnianie Wymagania wobec systemu zarządzania użytkownikami Pamięta stan Pamięta role usera Pamięta inne dane usera Potrafi zweryfikować podane dane Możliwa jest rejestracje i swobodne operowanie na wartościach Współpracuje z systemem atrybutów ASP.NET MVC Rozwiązanie: Przeciążenie klas MembershipUser, RoleProvider, MembershipProvider Rejestracja swoich klas w web.config (w aplikacji)

Wykorzystanie modelu do komunikacji z bazą danych var dane = from d in hdb.inspectionsets join m in hdb.machinesets on d.machine_id equals m.id join u in hdb.users on d.user_id equals u.id join cu in hdb.users on d.user_id equals cu.id join s in hdb.statussets on d.status_id equals s.id equals ii.id join ii in hdb.inspection_instructionsets on d.inspection_instruction_id where (d.user_id == user_id d.checking_user_id == user_id) && s.name.equals("new") && s.name.equals("to Verify") && d.date <= datado && d.date >= new DateTime(DateTime.Now.Year -1, DateTime.Now.Month, DateTime.Now.Day) orderby s.name ascending, d.date ascending select new { pole1, pole2, pole3, pole4 = s.pole_z_bazy };

Transakcje Należy utworzyć własny mechanizm kontroli przebiegu zapytań Np. jako atrybut nad akcje Nasza klasa powinna dziedziczyć z ActionFilterAttribute Należy utworzyć obiekt typu CommittableTransaction Zainicjować go przed akcją w funkcji OnActionExecuting( ) Sprawdzić wyjątki w funkcjach OnActionExecuted i OnResultExecuted

Szablony stron MasterPage Tworzymy szablon stron, który posiada z góry zdefiniowane pozycje elementów i podpięte biblioteki np. jquery Najczęściej w View/Shared/ Prawie sam XHTML poza wstawkami, które wskazują rodzaj elementu do wyświetlenia: <% Html.RenderAction("Menu", RodzajUsera"); %> <% Html.RenderPartial( PartialZCzasem"); %> Oraz wskazują miejsca gdzie można będzie wpisać zawartość swojej strony (aspx) <asp:contentplaceholder ID="MainContent" runat="server" > </asp:contentplaceholder>

Helpery Zastępowanie kodu html, funkcjami silnie typowanymi Klasy (publiczne i statyczne) umieszczane w katalogu Helpers Umieszczane w przestrzeni nazw System.Web.Mvc.Html Funkcja zwracająca String przyjmująca przynajmniej 1 argument: this HtmlHelper htmlhelper

Biblioteki i referencje Możliwość podłączenia tradycyjnych bibliotek do projektu ASP.NET MVC Możliwość wykorzystania referencji do zasobów systemowych zarejestrowanych w GAC Możliwość wykorzystania bibliotek COM Najczęściej stosowane: log4net Elmah

Testy jednostkowe Istnieje możliwość połączenia w jednym projekcie dwóch elementów: Serwisu internetowego Testów jednostkowych

Systemy internetowe ASP.NET mgr inż. Andrzej Sobecki

Plan wykładu Opis ASP.NET MVC 3 Wykorzystanie silnika Razor Podstawowe różnice względem MVC 2