Windows Azure

Transkrypt

Windows Azure
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
 Opisanie wzorca, wytłumaczenie zasad jego działania oraz budowy, a także
omówienie konsekwencji, niosących ze sobą stosowanie MVC.
•
Razor
 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
Clasic ASP
<ul>
@for (int i = 0; i < 10; i++) {
<li>@i</li>
}
</ul>
<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
AsInt(), IsInt()
Float
AsFloat(), IsFloat()
Decimal
AsDecimal(), IsDecimal()
Bool
AsBool(), IsBool()
String
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

Podobne dokumenty