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

Podobne dokumenty
Co to jest chmura (Cloud Computing)?

CLOUD COMPUTING CHMURA OBLICZENIOWA I PLATFORMA WINDOWS AZURE

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Programowanie obiektowe

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Piotr Bubacz Cloud Computing

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

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure

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

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

Wykład Ćwiczenia Laboratorium Projekt Seminarium

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

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

ActiveXperts SMS Messaging Server

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Forum Client - Spring in Swing

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Przetwarzanie danych w chmurze

REFERAT O PRACY DYPLOMOWEJ

Programowanie aplikacji przetwarzających w chmurze. Bazy danych.

MVVM Light Toolkit. Julita Borkowska

Wykład I. Wprowadzenie do baz danych

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Programowanie MorphX Ax

REFERAT PRACY DYPLOMOWEJ

Instrukcja instalacji Control Expert 3.0

e-off f i f ce: :Sekr k e r tari r at t w chm h urz r e Marcin Pytel

Dane bezpieczne w chmurze

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Programowanie obiektowe

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Katedra Inżynierii Oprogramowania Tematy prac dyplomowych inżynierskich STUDIA NIESTACJONARNE (ZAOCZNE)

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

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. studia pierwszego stopnia

Wybrane działy Informatyki Stosowanej

Wypożyczalnia VIDEO. Technologie obiektowe

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

Virtual Grid Resource Management System with Virtualization Technology

Mateusz Kurleto NEOTERIC. Analiza projektu B2B Kielce, 18 października 2012

PROGRAM MICROSOFT DEVELOPER NETWORK ACADEMIC ALLIANCE MSDN AA

Tworzenie cross-platformowych aplikacji w Xamarin.Forms

Sposób funkcjonowania

Technologie internetowe ASP.NET Core. Paweł Rajba

Administratorzy systemów, inżynierowie, konsultanci, którzy wdrażają i zarządzają rozwiązaniami opartymi o serwery HP ProLiant

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Dokumentacja techniczna

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Microsoft Azure Architect Technologies

Przetwarzanie i zabezpieczenie danych w zewnętrznym DATA CENTER

Reporting Services. WinProg 2011/2012. Krzysztof Jeliński Dawid Gawroński 1 / 11

Uslugi chmurowe dla nauki na podstawie BonFIRE

I.Wojnicki, Tech.Inter.

Programowanie zorientowane obiektowo. Mateusz Kołecki

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Egzamin / zaliczenie na ocenę*

Ruby on Rails. Supersilnik WWW. Łukasz Włodarczyk

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

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

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Dokumentacja aplikacji Szachy online

Generated by Foxit PDF Creator Foxit Software For evaluation only. System Szablonów

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

InPro BMS InPro BMS SIEMENS

Specyfikacja implementacyjna aplikacji serwerowej

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

Wykład 2 Składnia języka C# (cz. 1)

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

ASEM UBIQUITY PRZEGLĄD FUNKCJONALNOŚCI

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

Technologie i usługi internetowe cz. 2

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Licencjonowanie SQL Server. Licencje SAL

Instrukcja krok po kroku Konfiguracja Windows. Strona 2 z 14

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C

Referat pracy dyplomowej

Visual C# dla zupełnie początkujących / Tony Gaddis. Wydanie IV. Gliwice, copyright Spis treści. Wstęp 11. Uwaga, czytelnicy 19

Bezpieczeostwo chmury szansa czy zagrożenie dla Banków Spółdzielczych?

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

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

Szkolenie. IBM Lotus - Podstawy projektowania aplikacji w Domino Designer 8.5. Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Systemy obiegu informacji i Protokół SWAP "CC"

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

System wspomagania zarządzania wirtualizacją

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Transkrypt:

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

AGENDA Model MVC złożony wzorzec projektowy Razor Opisanie wzorca, wytłumaczenie zasad jego działania oraz budowy, a także omówienie konsekwencji, niosących ze sobą stosowanie MVC. Zapoznanie się z budową składni Razor, oraz jej praktycznym wykorzystaniem Azure chmura dla programistów Zapoznanie z technologią Microsoft Azure, wyjaśnienie możliwości oferowanych przez tę platformę, krótki opis użytych technologii, poradnik jak tworzyć aplikacje, a także co nieco o bezpieczeństwie naszych danych w chmurze.

MODEL MVC ZŁOŻONY WZORZEC PROJEKTOWY Jak wygląda? Jak działa? Kosnsekwencje stosowania Kiedy używać?

MVC JAKO WZORZEC MVC - wzorzec architektoniczny służący do organizowania struktury aplikacji posiadających GUI. Można go traktować jak wzorzec złożony z innych wzorców takich jak: Obserwator Strategia Kompozyt Przy konkretnej implementacji można też mówić w MVC o wzorcach takich jak: Metoda wytwórcza Dekorator Most Łańcuch zobowiązań Polecenie

BUDOWA MVC CZ.1 Model-View-Controller zakłada podział aplikacji na trzy główne części: Model jest pewną reprezentacją problemu bądź logiki aplikacji. Widok jest wizualizacją modelu. Ta część będzie pokazana użytkownikowi. Może składać się z podwidoków odpowiedzialnych za mniejsze części interfejsu. Kontroler przyjmuje dane wejściowe od użytkownika i reaguje na jego poczynania, wysyłając odpowiednie polecenia do modelu. Przy czym bardzo ważne jest to, że wszystkie trzy części są ze sobą wzajemnie połączone. Bardzo dobrze logikę aplikacji opisują dwa poniższe schematy.

BUDOWA MVC CZ.2 W typowych aplikacjach wyróżnić można trzy główne rodzaje aktywności: struktury danych, algorytmy przetwarzania oraz kanały komunikacyjne opis problemu, komponenty do prezentacji danych obsługę danych wejściowych, czyli reagowanie na poczynania użytkownika. W Model-View-Controller dla każdego z nich jest jawnie wydzielana osobna część, która komunikuje się z pozostałymi: model do reprezentowania danych przetwarzanych w programie, widok do generowania wyjścia i prezentowania wyników oraz kontroler do obsługi wejścia. Istotne jest, że każda z części MVC ma wyłączność na zarządzanie swoją częścią procesu przykładowo nie może dojść do sytuacji, w której kod odpowiedzialny za wyświetlanie graficznego interfejsu użytkownika znajdzie się w modelu bądź kontrolerze. Komunikacja między widokiem a kontrolerem jest łatwa do opisania, ponieważ oba te komponenty są stworzone do pracy ze sobą, jednak model musi komunikować się z nimi w sposób niejawny

MODEL Model jest aktywną reprezentacją pewnego fragmentu komputerowej reprezentacji problemu. W danej aplikacji może istnieć kilka modeli tego samego elementu. Model jest samodzielny do poprawnej pracy nie wymaga obecności dwóch pozostałych części, dlatego komunikacja z nimi musi zachodzić w sposób niejawny. Wyróżniane są dwa podstawowe rodzaje modeli: pasywny model - kontroler po wywołaniu odpowiedniej metody modelu powiadamia widok o aktualizacji. W tym przypadku widok jest całkowicie nieświadomy modelu to kontroler musi zaktualizować odpowiednie kontrolki aktywny model - widok za pomocą wzorca obserwator (w C# są to zdarzenia) sam dba o odpowiednią synchronizację z modelem.

WIDOK Widok jest odpowiedzialny za prezentację danych w obrębie graficznego interfejsu użytkownika. Może składać się z podwidoków zarządzających mniejszymi elementami składowymi. Widoki posiadają bezpośrednie referencje do modeli, z których pobierają dane, gdy otrzymują od kontrolera żądanie odświeżenia. Widoki mogą także modyfikować stan modelu, jeśli dana modyfikacja dotyczy sposobu prezentacji danych

KONTROLER Zadaniem kontrolera jest odbiór, przetworzenie oraz analiza danych wejściowych od użytkownika. W typowej aplikacji źródłami danych wejściowych będą klawiatura i mysz. Po przetworzeniu odebranych danych kontroler może wykonać następujące czynności: zmienić stan modelu, odświeżyć widok, przełączyć sterowanie na inny kontroler. Każdy kontroler posiada bezpośrednie wskazania na określone modele i widoki, z którymi współpracuje, a jednocześnie w aplikacji może istnieć wiele kontrolerów. W danym momencie tylko jeden z nich steruje aplikacją.

KONSEKWENCJE ZALETY I WADY UŻYCIA MVC Zalety: Wiele widoków ten sam model, można przedstawić na wiele różnych sposobów, co daje pełniejszy ogląd sytuacji/problemu. Zmiany łatwiejsze zmiany zmieniającego się dużo częściej od modelu interfejsu Wady: Nadmierne skomplikowanie dodatkowe warstwy oraz rygor niezależności; intensywne wykorzystanie programowania zdarzeniowego, które jest trudne w debugowaniu. Koszt częstych uaktualnień/powiadomień uaktualnienie widoku zabiera formularzowi jakiś czas; gdy model często zmienia swój stan, może zablokować ekran, a przez to uniemożliwić pracę dla użytkownika

PORADNIKI I PRZYDATNE INFORMACJE O MVC https://msdn.microsoft.com/en-us/library/ff649643.aspx - niestety nie do końca aktualny (Nie obejmuje zmian z MVC6), ale ciągle tłumaczący bardzo wiele zagadnień związanych z MVC, poradnik. http:// docs.asp.net/projects/mvc/en/latest/getting-started/first-mvc-app/start-mvc.html?highlight =mvc poradnik z którym można stworzyć pierwszą aplikację w MVC 6 http:// docs.asp.net/projects/mvc/en/latest/migration/migratingfrommvc5.html?highlight=mvc dla bardziej zaawansowanych co nie co o migracji z MVC 5 do MVC 6 http://docs.asp.net/projects/mvc/en/latest/views/view-components.html?highlight=mvc opis jednej z najważniejszych zmian w MVC 6 czyli View Components

RAZOR Co to jest? Do czego służy? Podstawowa składnia Szablony stron

RAZOR CO TO JEST? Razor to język znaczników działający po stronie serwera Generuje zawartość strony sieciowej w trakcie requestów Opiera się na języku C# oraz visual basic Pojawił się w MVC 3

RAZOR CO TO JEST? Razor <ul> @for (int i = 0; i < 10; i++) { <li>@i</li> } </ul> Clasic ASP <ul> <% for (int i = 0; i < 10; i++) { %> <li><% =i %></li> <% } %> </ul>

RAZOR DO CZEGO SŁUŻY? Pozwala na generowanie kodu html dla stron zależnie od tego, jak wyglądają wyniki wykonywanego kodu Pozwala na wykorzystanie logiki warunkowej oraz pętli w generacji elementów stron Pozwala na dostęp do obiektów w aplikacji Pozwala na wywoływanie metod, w tym takich jak łączenie z bazą danych

RAZOR PODSTAWOWA SKŁADNIA @{ var total = 7; } @{ var mymessage = "Hello World"; } <p>the value of your account is: @total </p> <p>the value of mymessage is: @mymessage</p> @{ var greeting = "Welcome to our site!"; var Today = DateTime.Now; DateTime AlsoToday = DateTime.Now; var greetingmessage = greeting + " Today is: " + Today; } <p>the greeting is: @greetingmessage</p>

RAZOR PODSTAWOWA SKŁADNIA =, +, -, *, / +=, -= ==,!=, >, <, >=, <=. () []!, &&,

RAZOR PODSTAWOWA SKŁADNIA Int Float Decimal Bool String AsInt(), IsInt() AsFloat(), IsFloat() AsDecimal(), IsDecimal() AsBool(), IsBool() ToString()

RAZOR PODSTAWOWA SKŁADNIA <html> <body> @for(var i = 10; i < 21; i++) {<p>line @i</p>} </body> </html> <html> <body> @{ var i = 0; while (i < 5) { i += 1; <p>line @i</p> } } </body> </html>

RAZOR PODSTAWOWA SKŁADNIA <html> <body> <ul> @foreach (var x in Request.ServerVariables) {<li>@x</li>} </ul> </body> </html>

RAZOR PODSTAWOWA SKŁADNIA @{var price=25;} <html> <body> @if (price>=30) { <p>the price is high.</p> } else if (price>20 && price<30) { <p>the price is OK.</p> } else { <p>the price is low.</p> } </body> </html>

RAZOR PODSTAWOWA SKŁADNIA @{ var weekday=datetime.now.dayofweek; var day=weekday.tostring(); var message=""; } <html> <body> @switch(day) { case "Monday": message="this is the first weekday."; break; case "Thursday": message="only one day before weekend."; break; case "Friday": message="tomorrow is weekend!"; break; default: message="today is " + day; break; } <p>@message</p> </body> </html>

< RAZOR SZABLONY STRON <html> <head> <title>@rendersection("title", true)</title> </head> <body> <div>częśc wspólna</div> <div>@renderbody()</div> </body> </html>

< RAZOR SZABLONY STRON @{ Layout="Layout.cshtml ; } <p>jakis Tekst</p> @section title { Tytul strony }

AZURE CHMURA DLA PROGRAMISTÓW Czym tak naprawdę jest Microsoft Azure? Użyte technologie Tworzenie Aplikacji Bezpieczeństwo Komu i kiedy opłaca się z niej skorzystać?

CO TO JEST MICROSOFT AZURE? Microsoft Azure (wcześniej: Azure Services Platform, Windows Azure) platforma chmurowa firmy Microsoft stworzona w modelu PaaS (Platform as a Service). Udostępnia ona mechanizmy pozwalające przetwarzać dane (Windows Azure Compute), a także je składować (Windows Azure Storage, SQL Azure). Platforma Windows Azure występowała pod nazwa kodową Red Dog.

ELEMENTY SKŁADOWE Windows Azure zapewnia środowisko uruchomieniowe dla aplikacji oparte na systemie operacyjnym bazującym na Windows Server (nosi on nazwę Windows Azure Guest OS), a także przestrzeń do składowania danych. System ten uruchamiany jest na maszynach wirtualnych wykorzystujących technologię zbliżoną do Hyper-V. Compute odpowiada za zadania obliczeniowe hostowanych aplikacji. Storage odpowiada za przechowywanie danych w chmurze. Fabric odpowiada za zarządzanie i monitorowanie aplikacji uruchomionych w chmurze, a także nadzór maszyn działających w centrum obliczeniowym. SQL Azure zapewnia możliwość używania relacyjnej bazy danych zaimplementowanej do uruchamiania w chmurze. Windows Azure Platform AppFabric komponent dostarczający dodatkowe funkcjonalności w formie usług. Wśród nich znajdziemy następujące mechanizmy: Service Bus pozwala tworzyć chmurę hybrydową i zapewnia bezpieczne połączenie między zasobami zdalnymi i lokalnymi Access Control Services mechanizm odpowiadający za kontrolę dostępu do usług (wykorzystywany jest np. przez Service Bus). Opiera się on o koncepcję federacyjną. Caching rozproszony cache w pamięci.

KRÓTKI POKAZ MOŻLIWOŚCI I ZYSKÓW AZURE

USŁUGI

JAKIE TECHNOLOGIE W CHMURZE? Tak naprawdę są to wszystkie technologie dające się uruchomić na platformie Windows. Oprócz technologii.net (technologia referencyjna dla chmury Windows Azure) można wykorzystywać także takie technologie jak Java, PHP, C/C++ czy Python. Istnieje także zestaw narzędzi ułatwiających pisanie rozwiązań dla chmury Windows Azure przeznaczonych do popularnych IDE takich jak Visual Studio czy Eclipse. Ze strony Microsoft można pobrać Windows Azure SDK dedykowane dla platformy.net, Java, PHP i Ruby.

EMULATOR CHMURY Ważnym składnikiem SDK jest emulator chmury. Pozwala on na lokalne uruchamianie, testowanie oraz debugowanie tworzonych aplikacji. Nie jest on jednak w 100% zgodny z rzeczywistą platformą. Najważniejsze różnice to: Emulator pozwala na podłączenie się do uruchomionej na nim roli i jej debugowanie w trakcie działania aplikacji. Prawdziwa platforma Windows Azure nie pozwala na to. Instancja uruchomiona na emulatorze posiada dostęp do bibliotek zarejestrowanym w lokalnym Global Assembly Cache (GAC), do rejestru i konfiguracji komputera. Usługi te nie są jednak dostępne na rzeczywistej platformie. Emulator pozwala na wypisywanie informacji diagnostycznych na konsoli lub wykorzystanie Windows Azure Diagnositics do przechwytywania takich wiadomości. Na Platformie Windows Azure, logowanie informacji możliwe jest tylko za pomocą Windows Azure Diagnostics, a wszelkie informacje przechowywane są w specjalnej tabeli w Windows Azure Storage. Wszystkie instancje uruchomione na emulatorze posiadają uprawnienia administratora natomiast te uruchamiane na Platformie posiadają uprawnienia standardowego użytkownika Windows Emulator nie odzwierciedla w pełni zachowania load balancera wykorzystywanego na Platformie Windows Azure.

BEZPIECZEŃSTWO Windows Azure posiada wiele procedur i rozwiązań technicznych zapewniających wysokie bezpieczeństwo danych i aplikacji umieszczonych w chmurze. Można tutaj wyróżnić wielokrotne replikacje danych, tak aby przynajmniej jedna kopia znajdowała się w innym centrum obliczeniowym. Inną cechą jest podział maszyn na tzw. obszary awarii (ang. fault domains), a instancje aplikacji są na nich rozlokowywane tak, aby każda aplikacja znajdowała się w innym obszarze awarii. Dzięki temu, w przypadku fizycznej awarii komputera istnieje mniejsza szansa na awarię aplikacji. Kolejną procedurą bezpieczeństwa jest fizyczne niszczenie wszelkich uszkodzonych dysków, które były wykorzystywane do przechowywania jakichkolwiek danych. Dzięki temu dane informacje, które przesyłane są do chmury i tam gromadzone, są świetnie zabezpieczone przed ich utratą oraz odczytaniem z dysków przez niepowołane osoby.

INWIGILACJA? Bardzo drażliwy temat szczególnie w dzisiejszych czasach. Sprawa tutaj wygląda bardzo podobnie jak z chmurą osobistą decydujemy jakie dane chcemy tam wrzucić na własną odpowiedzialność. Trzeba zapoznać się dokładnie z umową licencyjną i zdecydować czy nam to odpowiada czy nie.

DLA KOGO MICROSOFT AZURE I DLACZEGO? Dla firm które potrzebują dużej mocy obliczeniowej, a nie chcą kupować drogiego sprzętu Dla firm które mają duże bazy użytkowników aby zabezpieczyć się przed utratą danych Dla firm w których skalowalność ma duże znaczenie Azure gwarantuje, że nigdy nie zbraknie miejsca, ani mocy. Płacimy za wykorzystanie rzeczywiste, a nie za możliwości. Dla studentów programistów. Azur udostępnia swoje możliwości w pewnym stopniu za darmo, można testować, sprawdzić czy jest nam to potrzebne.

Dziękujemy za wysłuchanie prezentacji zapraszamy na pokaz ćwiczeniowy