MVC w .NET Adam Żyliński.

Slides:



Advertisements
Podobne prezentacje
0 OFERTA DLA PRACOWNIKÓW Dorota Wałuszko tel Kierownik ds. Sprzedaży i Obsługi Klienta Białystok 15kwietnia 2016 r. Komendy Wojewódzkiej Policji.
Advertisements

Blok I: PODSTAWY TECHNIKI Lekcja 7: Charakterystyka pojęć: energia, praca, moc, sprawność, wydajność maszyn (1 godz.) 1. Energia mechaniczna 2. Praca 3.
Modele biznesowe. Podręcznik Model biznesowy to w pewnym sensie szkic strategii, która ma zostać wdrożona w ramach struktur, procesów i systemów organizacji.
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
„e-Gdańsk – europejska metropolia on-line” Projekt Współfinansowany przez Unię Europejską z Europejskiego Funduszu Rozwoju Regionalnego.
Wyszukiwanie informacji w Internecie. Czym jest wyszukiwarka? INTERNET ZASOBY ZAINDEKSOWANE PRZEZ WYSZUKIWARKI Wyszukiwarka to mechanizm, który za pomocą.
Aplikacja TraKo Zespół Zadaniowy ds. LMN w LP. 2 Powierzchnie odniesienia: geoida i elipsoida.
Grupa: urzędnicy JST (operatorzy przyjmujący wnioski w urzędach)
Przyjmowanie i obsługa wniosków LGD Lokalna Grupa Działania Wadoviana 8 września 2009.
Omówienia dokumentacji przekazanej w ramach projektu uruchomienia rozliczeń transakcji pochodnych i transakcji repo OTC KDPW,
Literary Reference Center Przewodnik
» System Uczniowie Optivum NET+ umożliwia rodzicom bezpłatny stały kontakt ze szkołą. » Pozwala im na bieżąco śledzić postępy edukacyjne dziecka i komunikować.
Solphy GlassNexus System Elektronicznej Wymiany Danych Dla Producentów Szyb Zespolonych.
Prawdy oczywiste Kiedy zarejestrować działalność? - Księgowość bez tajemnic! INFOLINIA: |
Porównywarki cen leków w Polsce i na świecie. Porównywarki w Polsce.
KOSZTY W UJĘCIU ZARZĄDCZYM. POJĘCIE KOSZTU Koszt stanowi wyrażone w pieniądzu celowe zużycie majątku trwałego i obrotowego, usług obcych, nakładów pracy.
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Wydział Informatyki Kierunek: Informatyka Specjalność: Systemy Informatyczne PRACA DYPLOMOWA INŻYNIERSKA.
BIG DATA Przetwarzanie i analiza zbiorów danych w czasie rzeczywistym Marcin Żuchowski SKILLSLEASE Sp. z o.o. |
„Gdański model aktywizacji społeczności lokalnych” Gdańsk, 27 kwietnia 2009.
Model warstwowy OSI Model OSI (Open Systems Interconnection) opisuje sposób przepływu informacji między aplikacjami programowymi w jednej stacji sieciowej.
Budżet rodzinny Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Czym jest gramofon DJ-ski?. Gramofon DJ-ski posiada suwak Pitch służący do płynnego przyspieszania bądź zwalniania obrotów talerza, na którym umieszcza.
Python. Języki Programistyczne Microcode Machine code Assembly Language (symboliczna reprezentacja machine code) Low-level Programming Language (FORTRAN,
Dobre praktyki w projektowaniu aplikacji mobilnych Arkadiusz Waśniewski
Z ASADY BEZPIECZNEGO KORZYSTANIA Z I NTERNETU. 1. C HROŃ SWOJĄ PRYWATNOŚĆ W SIECI ! Jeśli bierzesz udział w jakimkolwiek forum publicznym w Internecie,
Analiza, projekt i implementacja zintegrowanego systemu zarządzania i promocji dla branży gastronomicznej Krzysztof Grabalski 5921.
Usługa ePodatki (MF) Michał Dobrzyński, Departament Informatyki MRPiPS tel
System nawigacji i organizacji transportu Wyzwania logistyczno-transportowe wysokie koszty logistyki utrudniony dojazd do punktów odbioru/dostawy niska.
Magdalena Garlińska Generator wniosków o dofinansowanie Program INNOCHEM.
Apteka Oliwna Jak poprawnie złożyć zamówienie
CZYLI JAK POWSTAŁO PISMO
Urządzenia i technologie mobilne. Tablet Mobilny komputer większy niż telefon komórkowy, którego główną właściwością jest posiadanie dużego ekranu z zastosowaną.
Moduł SDI – zasilanie węzłów IIP oraz wykorzystanie danych. Wprowadzenie. Szkolenie przeprowadzone w ramach projektu „TERYT 3 – Rozbudowa systemów do prowadzenia.
Język Java Paweł Rajba
Dziedziczenie, polimorfizm, Interfejsy
BVMS 5.5 Blok2- Moduł 8: Użytkownicy i grupy
Czy DENY jest zawsze ważniejszy niż GRANT?
WYPEŁNIANIE FORMULARZA – KRÓTKI KURS
Komunikacja ze szkołą i nauczycielami - dziennik elektroniczny
Model ISO/OSI Wykład 4.
Akademia C# - Lab2 Zmienne, instrukcje warunkowe, pętle, debugger,
Akademia C# lab. 9 Zdarzenia i delegaty.
Który system wybrać?.
Budowa, typologia, funkcjonalność
Optymalizacja programów Open-Source
Przewodnik Udoskonalanie listy wyników w wyszukiwarce naukowej
Lekcja 1 – Hello World! Visual Studio, coś łatwego na początek 
Kurs języka C++ – wykład 13 ( )
Tytuł – [najlepiej aby jak najtrafniej oddawał opisywane rozwiązanie]
Wykorzystanie aplikacji użytkowych do przeprowadzenia cyberataku
Dobieranie komputera Podzespoły.
PROGRAMY DO KONTROLI RODZICIELSKIEJ
Bartosz Kowkrak i Aleksander Szydłowski.
Git - system kontroli wersji
Bezpieczeństwo dostępu do danych w systemie Windows
Języki programowania.
Dynamics 365 CE i język TypeScript
Spotkanie informacyjno-szkoleniowe
Koszyk danych.
Podstawy informatyki Zygfryd Głowacz.
Strukturalne wzorce projektowe
SKJ Serwer WWW Michail Mokkas.
Tytuł – [najlepiej aby jak najtrafniej oddawał opisywane rozwiązanie]
Damian Urbańczyk Edytory WYSIWYG.
Zdarzenia (eventy) Zdarzenia służą do powiadomienia użytkownika, gdy w używanej klasie dojdzie do pewnych wydarzeń zdefiniowanych przez twórcę klasy.
POZNAJEMY PULPIT Opracowanie: mgr Barbara Benisz SP nr 20 w Rybniku
Bufory.
Obsługa bazy danych z poziomu phpMyAdmin
Program na dziś Wprowadzenie Logika prezentacji i artykułu
Autor: Magdalena Linowiecka
Zapis prezentacji:

MVC w .NET Adam Żyliński

agenda Czym jest MVC? ASP.NET MVC Windows Azure Przykłady

Czym jest mvc? Model – w którym znajduje się logika biznesowa aplikacji View – odpowiadający za prezentację treści użytkownikowi Controller – zawierający obsługę wejścia - wyjścia w komunikacji z użytkownikiem. Pierwotnie wzorzec architektoniczny MVC powstał pod koniec lat 70-tych ubiegłego wieku w laboratoriach firmy Xerox.

Czym jest mvc? Routing?! – w dalszej części!

zalety Odzielamy logikę biznesową od „sieciowej” Ułatwione dodawanie nowych modułów Architektura sprzyja równoległemu rozwojowi Większa kontrola nad tworzonym rozwiązaniem

Wady Wysoka złożoność rozwiązania Tworzenie zabiera więcej czasu Wyższe koszty Nie nadaje się do małych projektów – koszty tym bardziej w przypadku ASP.NET bo nie jest darmowy

Ruby on Rails Django Spring (opcja) Inne framework’i MVC Django – python spring – Java, mogę się mylić

ASP.NET MVC

Składniki Visual Studio (z ASP.NET) Znajomość C# lub Visual Basic HTML, CSS, jQuery VS – jedyne sensowne środowisko VB raczej tylko w stanach – biblioteka jQuery jest nieodzownym należy się upewnić, że VS został zainstalowany lub doinstalować ASP.NET, serwer IIS jest niezbędny!

schemat Omówimy po kolei co się w każdym z nich dzieje.

Routing w asp.net mvc public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }

Routing w ASP.net MVC Pozwala manipulować danymi przesłanymi w URL’u. Zabezpiecza przed nieuprawnionym dostępem do niektórych zasobów (niezależnie od kontrolera) Znaczenie: controller – nazwa kontrolera, do którego zostanie przekierowane żądanie action – nazwa akcji w kontrolerze id – opcjonalne parametry żądania

Kontrolery w asp.net Mvc [RequireHttps] [Authorize(Roles = "Admin")] public class AllMsgController : Controller { MessagesDataModel msg = new MessagesDataModel(); [HttpGet] public ActionResult Index() return View(msg.getAll()); } [HttpPost] [ValidateAntiForgeryTokenAJAX] public JsonResult GetMsg(int id) return Json(msg.getMsgA(id), JsonRequestBehavior.AllowGet); Atrybuty klasy i metody

Kontrolery w asp.net mvc Implementują obsługę zapytań – jak i gdzie dane są przekazywane oraz sposób odpowiedzi. Atrybuty pozwalają szybko określić specyfikę i ograniczenia metody a nawet klasy Poszczególne metody są „akcjami” kontrolera

Tworzenie atrybutów [AttributeUsage(AttributeTargets.Method)] public class ValidateAntiForgeryTokenAJAX : AuthorizeAttribute { public override void OnAuthorization(AuthorizationContext filterContext) var getRequest = filterContext.HttpContext.Request; if (getRequest.IsAjaxRequest()) var getAFTcookie = getRequest.Cookies[AntiForgeryConfig.CookieName]; var cookieVal = getAFTcookie != null ? getAFTcookie.Value : null; AntiForgery.Validate(cookieVal, getRequest.Headers["__RequestVerificationToken"]); } else new ValidateAntiForgeryTokenAttribute().OnAuthorization(filterContext); Pamiętamy o atrybucie przed klasą, w tym przypadku przeznaczony dla metody

Modele w asp.net mvc public class LocalPasswordModel { [Required] [DataType(DataType.Password)] [Display(Name = "Obecne hasło")] public string OldPassword { get; set; } [StringLength(100, ErrorMessage = "{0} musi mieć długość conajmniej {2} znaków!", MinimumLength = 6)] [Display(Name = "Nowe hasło")] public string NewPassword { get; set; } [Display(Name = "Powtórz hasło")] [Compare("NewPassword", ErrorMessage = "Hasło nie jest zgodne z potwierdzeniem hasła!")] public string ConfirmPassword { get; set; } }

Modele w asp.net mvc public class ResPas { cmt24DBclassesDataContext cmtdb = new cmt24DBclassesDataContext(); public StartUsing ResUP(string email) var get_name = from e in cmtdb.Employees select new { e.Id, e.name, e.mail }; StartUsing su = new StartUsing(); foreach (var n in get_name) if (email == n.mail) su.name = n.name; su.mail = email; var getHash = (from r in cmtdb.regTokens where r.UID == n.Id select r.hash).First(); } return su;

Modele w asp.net mvc Odpowiadają za logikę biznesową aplikacji, działają jak zwykłe klasy w C#. Atrybuty pozwalają na etapie modelu określić jak reprezentujemy pola modelu i jakie są wymagania odnośnie danych. Modele stanowią opis danych, przekazywany do widoku. Wyjaśnić zamieszanie z model, ale przecież tam coś ciągle działa! (model to nie tylko opis danych)

Widoki w asp.net mvc @model CMT24.Models.LocalPasswordModel @{ ViewBag.Title = "Twoje konto"; } <div id="userInfo"><img src="~/Content/ajax-loaderBig.gif" /></div> <p class="message-success">@ViewBag.StatusMessage</p> @Html.Partial("_ChangePasswordPartial") <script> $('#userInfo').load('@Url.Action("User","Company")'); </script> @section Scripts { @Scripts.Render("~/bundles/jqueryval") Od razu: silnik renderujący Razor – do klienta i tak przysyłane są dane html’owe ze stylami i skryptami

Widoki w asp.net mvc <table> <tbody id="msgList"> @foreach(var m in @Model) { <tr id="@m.ID" class="success" onclick="" > <td> @m.invNum </td> @m.rec @m.deadL <td>@m.paidD</td> </tr> } </tbody> </table>

Widoki w asp.net mvc Stanowią wzorzec dla renderowanych po stronie serwera dokumentów HTML’owych ViewBag (ExpandoObject) pozwala łatwo dodawać proste dane do widoku poza modelem. W widoku możemy umieścić nie tylko dane z modelu i jego atrybutów, ale również skrypty, style i inne.

Dostęp do Baz danych Polecane ADO.NET Entity Framework LINQ to SQL jest również wygodnym rozwiązaniem, aczkolwiek ograniczonym.

Dodatkowe pakiety i Nuget NuGet to plugin do VS pełniący rolę managera pakietów Dostępne pakiety w obrębie rozwiązania potrafią dodać dodatkowe możliwości w obrębie jednego z elementów MVC (np. komunikacja z BD mySQL) jak i wszystkich (pakiet AngularJS)

Windows azure

Windows azure Z punktu widzenia tematu jest to usługa hostowania aplikacji webowych w chmurze. Ze względu na pełną integrację z środowiskiem VS jest najlepszą usługa dla projektów ASP.NET MVC Niestety jest platformą płatną.

Pytania?

PRzykłady