Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

MVC w .NET Adam Żyliński.

Podobne prezentacje


Prezentacja na temat: "MVC w .NET Adam Żyliński."— Zapis prezentacji:

1 MVC w .NET Adam Żyliński

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

3 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.

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

5 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

6 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

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

8 ASP.NET MVC

9 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!

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

11 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 } ); }

12 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

13 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

14 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

15 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

16 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; } }

17 Modele w asp.net mvc public class ResPas {
cmt24DBclassesDataContext cmtdb = new cmt24DBclassesDataContext(); public StartUsing ResUP(string ) 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 ( == n.mail) su.name = n.name; su.mail = ; var getHash = (from r in cmtdb.regTokens where r.UID == n.Id select r.hash).First(); } return su;

18 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)

19 Widoki w asp.net mvc @model CMT24.Models.LocalPasswordModel @{
ViewBag.Title = "Twoje konto"; } <div id="userInfo"><img src="~/Content/ajax-loaderBig.gif" /></div> <p @Html.Partial("_ChangePasswordPartial") <script> </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

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

21 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.

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

23 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)

24 Windows azure

25 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ą.

26 Pytania?

27 PRzykłady


Pobierz ppt "MVC w .NET Adam Żyliński."

Podobne prezentacje


Reklamy Google