Original edition copyright 2011 by Adam Freeman and Steven Sanderson. All rights reserved.
|
|
- Adam Świderski
- 8 lat temu
- Przeglądów:
Transkrypt
1
2 Tytuł oryginału: Pro ASP.NET MVC 3 Framework Tłumaczenie: Paweł Gonera ISBN: Original edition copyright 2011 by Adam Freeman and Steven Sanderson. All rights reserved. Polish edition copyright 2012 by HELION SA. All rights reserved. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Wydawnictwo HELION dołożyło wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Wydawnictwo HELION nie ponosi również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, GLIWICE tel , helion@helion.pl WWW: (księgarnia internetowa, katalog książek) Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/aspmv3.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. Kup książkę Poleć książkę Oceń książkę Księgarnia internetowa Lubię to!» Nasza społeczność
3 Spis tre ci O autorach...5 O recenzencie technicznym...7 Cz I Wprowadzenie do ASP.NET MVC Rozdzia 1. Zagadnienia ogólne...21 Krótka historia programowania witryn 21 Tradycyjna technologia ASP.NET Web Forms Co poszło nie tak z ASP.NET Web Forms? Programowanie witryn WWW stan obecny Standardy WWW oraz REST Programowanie zwinne i sterowane testami Ruby on Rails Sinatra Node.js Najważniejsze zalety ASP.NET MVC...26 Architektura MVC Rozszerzalność Ścisła kontrola nad HTML i HTTP Łatwość testowania Zaawansowany system routingu Zbudowany na najlepszych częściach platformy ASP.NET Nowoczesne API ASP.NET MVC jest open source Kto powinien korzystać z ASP.NET MVC? Porównanie z ASP.NET Web Forms Migracja z Web Forms do MVC Porównanie z Ruby on Rails Porównanie z MonoRail Co nowego w ASP.NET MVC 3? Podsumowanie... 31
4 SPIS TRE CI Rozdzia 2. Przygotowania...33 Przygotowanie stacji roboczej Instalowanie Visual Studio Instalowanie podstawowego oprogramowania Instalowanie opcjonalnych komponentów Przygotowanie serwera Włączanie roli serwera 37 Instalowanie dodatkowych komponentów Konfigurowanie Web Deployment Uzyskiwanie dalszych informacji Podsumowanie Rozdzia 3. Pierwsza aplikacja MVC...43 Tworzenie nowego projektu ASP.NET MVC Dodawanie pierwszego kontrolera Przedstawiamy ścieżki Generowanie stron 47 Tworzenie i generowanie widoku Dynamiczne dodawanie treści...50 Tworzenie prostej aplikacji wprowadzania danych Przygotowanie sceny Projektowanie modelu danych Łączenie metod akcji Budowanie formularza Obsługa formularzy Dodanie kontroli poprawności...60 Kończymy Podsumowanie Rozdzia 4. Wzorzec MVC...67 Historia MVC Wprowadzenie do wzorca MVC Budowa modelu domeny Implementacja MVC w ASP.NET Porównanie MVC z innymi wzorcami Przedstawiamy wzorzec Smart UI Modelowanie domeny Przykładowy model domeny...73 Wspólny język Agregaty i uproszczenia Definiowanie repozytoriów Budowanie luźno połączonych komponentów Wykorzystanie wstrzykiwania zależności Przykład specyficzny dla MVC...78 Użycie kontenera wstrzykiwania zależności Zaczynamy testy automatyczne Zadania testów jednostkowych...80 Zadania testów integracyjnych Podsumowanie Rozdzia 5. Najwa niejsze cechy j zyka...89 Najważniejsze cechy C# Użycie automatycznie implementowanych właściwości Użycie inicjalizatorów obiektów i kolekcji
5 SPIS TRE CI Użycie metod rozszerzających Użycie wyrażeń lambda Automatyczne wnioskowanie typów Użycie typów anonimowych...99 Wykonywanie zapytań zintegrowanych z językiem Przedstawiamy składnię silnika Razor Tworzenie projektu Prosty widok korzystający z silnika Razor Podsumowanie Rozdzia 6. Wa ne narz dzia wspieraj ce MVC Użycie Ninject Tworzenie projektu Zaczynamy korzystać z Ninject Tworzenie łańcucha zależności Definiowanie wartości właściwości i parametrów Użycie samodzielnego łączenia Dołączanie do typu pochodnego Użycie łączenia warunkowego Użycie Ninject w ASP.NET MVC Testowanie jednostkowe w Visual Studio Tworzenie projektu Tworzenie testów jednostkowych Uruchamianie testów (nieudane) Implementacja funkcji Użycie Moq Dodawanie Moq do projektu Visual Studio Tworzenie imitacji za pomocą Moq Testy jednostkowe z użyciem Moq Weryfikowanie przy użyciu Moq Podsumowanie Rozdzia 7. SportsStore kompletna aplikacja Zaczynamy Tworzenie rozwiązania i projektów w Visual Studio Dodawanie referencji Konfigurowanie kontenera DI Uruchamiamy aplikację Tworzenie modelu domeny Tworzenie abstrakcyjnego repozytorium Tworzenie imitacji repozytorium Wyświetlanie listy produktów Dodawanie kontrolera Dodawanie widoku Konfigurowanie domyślnej ścieżki Uruchamianie aplikacji Przygotowanie bazy danych Tworzenie bazy danych Definiowanie schematu bazy danych Dodawanie danych do bazy Tworzenie kontekstu Entity Framework Tworzenie repozytorium produktów
6 SPIS TRE CI Dodanie stronicowania Wyświetlanie łączy stron Ulepszanie adresów URL Dodawanie stylu Definiowanie wspólnej zawartości w pliku układu Dodanie zasad CSS Tworzenie widoku częściowego Podsumowanie Rozdzia 8. SportsStore nawigacja i koszyk na zakupy Dodawanie kontrolek nawigacji Filtrowanie listy produktów Ulepszanie schematu URL Budowanie menu nawigacji po kategoriach Poprawianie licznika stron Budowanie koszyka na zakupy Definiowanie encji koszyka Tworzenie przycisków koszyka Implementowanie kontrolera koszyka Wyświetlanie zawartości koszyka Użycie dołączania danych Tworzenie własnego łącznika modelu Kończenie budowania koszyka Usuwanie produktów z koszyka Dodawanie podsumowania koszyka Składanie zamówień Rozszerzanie modelu domeny Dodawanie procesu zamawiania Implementowanie procesora zamówień Rejestrowanie implementacji Dokańczanie kontrolera koszyka Wyświetlanie informacji o błędach systemu kontroli poprawności Wyświetlanie strony podsumowania Podsumowanie Rozdzia 9. SportsStore administracja Dodajemy zarządzanie katalogiem Tworzenie kontrolera CRUD Generowanie tabeli z produktami dostępnymi w repozytorium Tworzenie nowego pliku układu Implementowanie widoku listy Edycja produktów Tworzenie nowych produktów Usuwanie produktów Zabezpieczanie funkcji administracyjnych Konfiguracja uwierzytelniania Forms Realizacja uwierzytelniania z użyciem filtrów Tworzenie dostawcy uwierzytelniania Tworzenie kontrolera AccountController Tworzenie widoku Przesyłanie zdjęć Rozszerzanie bazy danych Rozszerzanie modelu domeny
7 SPIS TRE CI Tworzenie interfejsu użytkownika do przesyłania plików Zapisywanie zdjęć do bazy danych Implementowanie metody akcji GetImage Wyświetlanie zdjęć produktów Podsumowanie Cz II ASP.NET MVC 3 szczegó owy opis Rozdzia 10. Przegl d projektu MVC Korzystanie z projektów MVC z Visual Studio Użycie kontrolerów aplikacji internetowej i intranetowej Przedstawiamy konwencje MVC Debugowanie aplikacji MVC Tworzenie projektu Uruchamianie debugera Visual Studio Przerywanie pracy aplikacji przez debuger Visual Studio Użycie opcji Edit and Continue Wstrzykiwanie zależności na poziomie projektu Podsumowanie Rozdzia 11. Adresy URL, routing i obszary Wprowadzenie do systemu routingu Tworzenie projektu routingu Wprowadzenie do wzorców URL Tworzenie i rejestrowanie prostej ścieżki Definiowanie wartości domyślnych Użycie statycznych segmentów adresu URL Definiowanie własnych zmiennych segmentów Definiowanie opcjonalnych segmentów URL Definiowanie ścieżek o zmiennej długości Definiowanie priorytetów kontrolerów na podstawie przestrzeni nazw Ograniczenia ścieżek Routing żądań dla plików dyskowych Pomijanie systemu routingu Generowanie wychodzących adresów URL Przygotowanie projektu Generowanie wychodzących adresów URL w widokach Generowanie wychodzących adresów URL w metodach akcji Generowanie adresu URL na podstawie wybranej ścieżki Dostosowanie systemu routingu Tworzenie własnej implementacji RouteBase Tworzenie własnego obiektu obsługi ścieżki Korzystanie z obszarów Tworzenie obszaru Wypełnianie obszaru Rozwiązywanie problemów z niejednoznacznością kontrolerów Generowanie łączy do akcji z obszarów Najlepsze praktyki schematu adresów URL Twórz jasne i przyjazne dla człowieka adresy URL GET oraz POST wybierz właściwie Podsumowanie
8 SPIS TRE CI Rozdzia 12. Kontrolery i akcje Wprowadzenie do kontrolerów Przygotowanie projektu Tworzenie kontrolera z użyciem interfejsu IController Tworzenie kontrolera przez dziedziczenie po klasie Controller Odczytywanie danych wejściowych Pobieranie danych z obiektów kontekstu Użycie parametrów metod akcji Tworzenie danych wyjściowych Wyniki akcji Zwracanie kodu HTML przez generowanie widoku Przekazywanie danych z metody akcji do widoku Wykonywanie przekierowań Zwracanie danych tekstowych Zwracanie danych XML Zwracanie danych JSON Zwracanie plików i danych binarnych Zwracanie błędów i kodów HTTP Tworzenie własnego wyniku akcji Podsumowanie Rozdzia 13. Filtry Użycie filtrów Wprowadzenie do czterech podstawowych typów filtrów Dołączanie filtrów do kontrolerów i metod akcji Użycie filtrów autoryzacji Użycie filtrów wyjątków Użycie filtrów akcji i wyniku Użycie innych funkcji filtrów Użycie filtrów wbudowanych Podsumowanie Rozdzia 14. Rozszerzanie kontrolerów Komponenty potoku przetwarzania żądania Tworzenie własnej fabryki kontrolerów Definiowanie własnej fabryki kontrolerów Rejestrowanie własnej fabryki kontrolerów Wykorzystanie wbudowanej fabryki kontrolerów Nadawanie priorytetów przestrzeniom nazw Dostosowywanie sposobu tworzenia kontrolerów w DefaultControllerFactory Tworzenie własnego obiektu wywołującego akcje Użycie wbudowanego obiektu wywołującego akcje Użycie własnych nazw akcji Selekcja metod akcji Użycie selektorów metod akcji do obsługi żądań REST Poprawianie wydajności z użyciem specjalizowanych kontrolerów Użycie kontrolerów bezstanowych Użycie kontrolerów asynchronicznych Podsumowanie
9 SPIS TRE CI Rozdzia 15. Widoki Tworzenie własnego silnika widoku Tworzenie własnej implementacji IView Tworzenie implementacji IViewEngine Rejestrowanie własnego silnika widoku Korzystanie z silnika Razor Sposób generowania widoków przez Razor Wstrzykiwanie zależności w widokach Razor Konfigurowanie wyszukiwania lokalizacji widoków Dodawanie dynamicznych treści do widoku Razor Użycie kodu wbudowanego Użycie metod pomocniczych HTML Tworzenie wewnętrznej metody pomocniczej HTML Tworzenie zewnętrznej metody pomocniczej HTML Użycie wbudowanych metod pomocniczych Zastosowanie sekcji Sprawdzanie istnienia sekcji Generowanie sekcji opcjonalnych Użycie widoków częściowych Tworzenie widoku częściowego Użycie silnie typowanych widoków częściowych Użycie akcji podrzędnych Tworzenie akcji podrzędnych Wywoływanie akcji podrzędnych Podsumowanie Rozdzia 16. Szablony modelu Użycie metod pomocniczych widoku szablonowego Nadawanie stylów wygenerowanym znacznikom HTML Użycie metadanych modelu Użycie metadanych wartości danych Korzystanie z parametrów typów złożonych Dostosowywanie systemu metod pomocniczych widoku szablonowego Tworzenie własnego szablonu edytora Tworzenie własnego szablonu wyświetlania Tworzenie szablonu ogólnego Wymiana szablonów wbudowanych Użycie właściwości ViewData.TemplateInfo Przekazywanie dodatkowych metadanych do szablonu System dostawców metadanych Tworzenie własnego dostawcy metadanych modelu Dostosowywanie adnotacji danych dostawcy metadanych modelu Podsumowanie Rozdzia 17. Do czanie modelu Użycie dołączania danych Użycie domyślnego łącznika modelu Dołączanie typów prostych Dołączanie typów złożonych Dołączanie tablic i kolekcji
10 SPIS TRE CI Jawne wywoływanie dołączania modelu Ograniczanie dołączania do wybranego źródła danych Obsługa błędów dołączania modelu Użycie dołączania modelu w celu pobierania przesłanych plików Dostosowanie systemu dołączania danych Tworzenie własnego dostawcy wartości Tworzenie łącznika modelu obsługującego zależności Tworzenie własnego łącznika modelu Tworzenie dostawcy łączników modelu Użycie atrybutu ModelBinder Podsumowanie Rozdzia 18. Kontrola poprawno ci modelu Tworzenie projektu Jawna kontrola poprawności modelu Wyświetlanie komunikatów kontroli poprawności Wyświetlanie komunikatów kontroli poprawności poziomu właściwości Użycie alternatywnych technik kontroli poprawności Kontrola poprawności w łączniku modelu Definiowanie zasad poprawności za pomocą metadanych Definiowanie modeli samokontrolujących się Tworzenie własnego dostawcy kontroli poprawności Użycie kontroli poprawności po stronie klienta Aktywowanie i wyłączanie kontroli poprawności po stronie klienta Użycie kontroli poprawności po stronie klienta Jak działa kontrola poprawności po stronie klienta? Modyfikowanie kontroli poprawności na kliencie Wykonywanie zdalnej kontroli poprawności Podsumowanie Rozdzia 19. Nieprzeszkadzaj cy Ajax Użycie nieprzeszkadzających wywołań Ajax w MVC Tworzenie projektu Włączanie i wyłączanie nieprzeszkadzających wywołań Ajax Użycie nieprzeszkadzających formularzy Ajax Sposób działania nieprzeszkadzających wywołań Ajax Ustawianie opcji Ajax Zapewnienie kontrolowanej degradacji Informowanie użytkownika o realizowanym żądaniu Ajax Wyświetlanie pytania przed wysłaniem żądania Tworzenie łączy Ajax Zapewnienie kontrolowanej degradacji dla łączy Korzystanie z funkcji wywołania zwrotnego w Ajaksie Wykorzystanie JSON Dodanie obsługi JSON do kontrolera Przetwarzanie JSON w przeglądarce Wykrywanie żądań Ajax w metodach akcji Odbieranie danych JSON Podsumowanie
11 SPIS TRE CI Rozdzia 20. jquery Tworzenie projektu Odwoływanie się do jquery Tworzenie kodu jquery Utworzenie środowiska testowego dla jquery Podstawy jquery Poznajemy selektory jquery Użycie filtrów jquery Poznajemy metody jquery Czekając na DOM Użycie metod CSS z jquery Manipulowanie modelem DOM Użycie zdarzeń jquery Użycie efektów wizualnych jquery Użycie jquery UI Odwoływanie się do jquery UI Tworzenie lepszych przycisków Użycie kontrolki Slider Podsumowanie Cz III Tworzenie udanych projektów ASP.NET MVC Rozdzia 21. Bezpiecze stwo i s abe punkty Każde dane mogą być sfałszowane Fałszowanie żądań HTTP Skrypty międzywitrynowe i wstrzykiwanie HTML Przedstawiamy ataki XSS Kodowanie HTML w Razor Kontrola żądań Kodowanie ciągów znaków JavaScript a XSS Przejęcie sesji Obrona przez sprawdzanie adresu IP klienta Obrona przez ustawienie w cookie znacznika HttpOnly Międzywitrynowe fałszowanie żądań Atak Obrona Ochrona przed atakami CSRF z użyciem metod zapobiegających fałszerstwom Wstrzykiwanie SQL Atak Obrona z użyciem zapytań parametrycznych Obrona z użyciem odwzorowania obiektowo-relacyjnego Bezpieczne korzystanie z biblioteki MVC Nie udostępniaj przypadkowo metod akcji Nie używaj dołączania modelu w celu zmiany wrażliwych właściwości Podsumowanie Rozdzia 22. Uwierzytelnianie i autoryzacja Użycie uwierzytelniania Windows Użycie uwierzytelniania Forms Konfiguracja uwierzytelniania Forms Uwierzytelnianie Forms bez użycia cookies
12 SPIS TRE CI Członkostwo, role i profile Konfigurowanie i wykorzystanie członkostwa Konfigurowanie i wykorzystanie ról Konfigurowanie i wykorzystanie profili Dlaczego nie należy korzystać z uwierzytelniania bazującego na adresach URL Ograniczanie dostępu z użyciem adresów IP oraz domen Podsumowanie Rozdzia 23. Instalacja Przygotowanie aplikacji do dystrybucji Wykrywanie błędów przed instalacją Kontrolowanie dynamicznej kompilacji stron Przygotowanie do instalacji binarnej Przygotowanie pliku Web.config do przekształcania Przygotowanie projektu do instalacji bazy danych Podstawy działania serwera IIS Witryny Web Katalogi wirtualne Pule aplikacji Wiązanie witryn z nazwami hostów, adresami IP oraz portami Przygotowanie serwera do instalacji Instalowanie aplikacji Instalowanie aplikacji przez kopiowanie plików Użycie pakietu instalacyjnego Publikowanie jednym kliknięciem Podsumowanie Skorowidz
13 ROZDZIA 18 Kontrola poprawno ci modelu W poprzednim rozdziale przedstawiliśmy, w jaki sposób na podstawie żądań HTTP biblioteka MVC tworzy obiekty modelu w procesie dołączania modelu. Zakładaliśmy, że dane wprowadzone przez użytkownika były prawidłowe. W rzeczywistości użytkownicy często wprowadzają dane, z których nie możemy skorzystać, i tym zajmiemy się teraz kontrolą poprawności danych modelu. Kontrola poprawności modelu jest procesem, dzięki któremu upewniamy się, że otrzymane dane nadają się do użycia w modelu, a jeżeli nie, dostarczamy użytkownikom informacje pomagające rozwiązać problem. Pierwsza część procesu sprawdzanie otrzymanych danych jest jednym ze sposobów zapewnienia integralności danych w modelu domeny. Przez odrzucenie danych, które nie mają sensu w kontekście naszej domeny, zapobiegamy powstawaniu dziwnych i niechcianych stanów aplikacji. Druga część pomoc użytkownikowi w rozwiązaniu problemu jest równie ważna. Jeżeli nie zapewnimy użytkownikowi informacji i narzędzi potrzebnych do interakcji z aplikacją w oczekiwany przez nas sposób, szybko spowodujemy jego frustrację. W przypadku aplikacji dostępnych publicznie często powoduje to wycofywanie się użytkowników, natomiast w przypadku aplikacji korporacyjnych może to skutkować spowolnieniem ich działań. Każda z tych sytuacji jest niepożądana. Na szczęście biblioteka MVC zapewnia rozbudowaną obsługę kontroli poprawności modelu. Pokażemy teraz, w jaki sposób korzystać z podstawowych funkcji, a następnie przejdziemy do bardziej zaawansowanych technik sterowania procesem kontroli poprawności. Tworzenie projektu Potrzebna jest nam prosta aplikacja MVC, w której będziemy mogli stosować różne techniki kontroli poprawności modelu. Na jej potrzeby utworzyliśmy klasę modelu widoku o nazwie Appointment, zamieszczoną na listingu Listing Klasa modelu widoku using System; using System.ComponentModel.DataAnnotations; namespace MvcApp.Models { public class Appointment { public string ClientName { get; set; [DataType(DataType.Date)] public DateTime Date {get; set;
14 CZ II ASP.NET MVC 3 SZCZEGÓ OWY OPIS public bool TermsAccepted { get; set; Na listingu 18.2 zamieszczony jest widok generujący edytory dla klasy Appointment, zapisany w pliku MakeBooking.cshtml. Listing Widok ViewBag.Title = "Rezerwacja"; <h4>rezerwacja (Html.BeginForm()) { => m.clientname)</p> <p>data => m.date)</p> <p>@html.editorfor(m => m.termsaccepted) Akceptuj warunki</p> <input type="submit" value="wy lij rezerwacj " /> Na listingu 18.3 zamieszczona jest klasa kontrolera, AppointmentController, posiadająca metody akcji operujące na obiektach Appointment. Listing Klasa AppointmentController public class AppointmentController : Controller { private IAppointmentRepository repository; public AppointmentController(IAppointmentRepository repo) { repository = repo; public ViewResult MakeBooking() { return View(new Appointment { Date = DateTime.Now ); [HttpPost] public ViewResult MakeBooking(Appointment appt) { repository.saveappointment(appt); return View("Completed", appt); Kontroler realizuje znany już nam wzorzec. Metoda akcji MakeBooking generuje widok MakeBooking.cshtml. Widok ten zawiera formularz, którego dane są przesyłane do drugiej wersji metody MakeBooking, oczekującej parametru Appointment. Łącznik modelu tworzy obiekt Appointment na podstawie wartości elementów formularza HTML, a następnie przekazuje go do metody akcji, zapisującej nowy obiekt w repozytorium, które zostanie dostarczone poprzez wstrzykiwanie zależności (utworzyliśmy tylko szkielet repozytorium dane wizyty są ignorowane, ponieważ chcemy się tu skupić wyłącznie na kontroli poprawności). Po przekazaniu wizyty do repozytorium kontroler generuje widok Completed.cshtml, który pozwala przekazać informację zwrotną dla użytkownika. Na rysunku 18.1 przedstawiona jest ta sekwencja widoków. 480
15 ROZDZIA 18. KONTROLA POPRAWNO CI MODELU Rysunek Kolejność widoków w przykładowej aplikacji Obecnie nasza aplikacja będzie akceptowała dowolne przesłane przez użytkownika dane, ale aby zachować integralność aplikacji i modelu domeny, wymagamy spełnienia trzech warunków przed zaakceptowaniem przesłanych przez użytkownika danych wizyty: użytkownik musi podać nazwisko, użytkownik musi podać przyszłą datę (w formacie mm-dd-rrrr), użytkownik musi zaznaczyć pole wyboru informujące o zaakceptowaniu zasad. Kontrola poprawności modelu jest procesem umożliwiającym wymuszenie tych wymagań. W kolejnych punktach pokażemy różne techniki pozwalające weryfikować dane przesłane przez użytkownika oraz przekazanie użytkownikowi informacji, dlaczego nie możemy wykorzystać dostarczonych danych. Jawna kontrola poprawno ci modelu Najbardziej bezpośrednim sposobem kontroli poprawności modelu jest wykonanie tej operacji w metodzie akcji. Realizacja tego zadania jest zamieszczona na listingu Listing Jawna kontrola poprawności modelu [HttpPost] public ViewResult MakeBooking(Appointment appt) { if (string.isnullorempty(appt.clientname)) { ModelState.AddModelError("ClientName", "Prosz poda swoje nazwisko."); if (ModelState.IsValidField("Date") && DateTime.Now > appt.date) { ModelState.AddModelError("Date", "Prosz poda przysz dat."); if (!appt.termsaccepted) { ModelState.AddModelError("TermsAccepted", "Zaakceptowanie zasad jest wymagane."); if (ModelState.IsValid) { repository.saveappointment(appt); return View("Completed", appt); else { return View(); 481
16 CZ II ASP.NET MVC 3 SZCZEGÓ OWY OPIS Sprawdzamy tu wartości przypisane przez łącznik modelu do właściwości obiektu parametru i rejestrujemy wszystkie znalezione błędy we właściwości ModelState, którą kontroler dziedziczy po swojej klasie bazowej. Dla przykładu przeanalizujemy, w jaki sposób sprawdzamy właściwość ClientName: if (string.isnullorempty(appt.clientname)) { ModelState.AddModelError("ClientName", "Prosz poda swoje nazwisko."); Chcemy, aby użytkownik podał wartość tej właściwości, więc do jej sprawdzenia wykorzystujemy statyczną metodę string.isnullorempty. Jeżeli nie otrzymamy wartości, wywołujemy metodę ModelState.AddModelError, podając nazwę właściwości, której dotyczy błąd (ClientName), oraz komunikat, jaki powinien być wyświetlony użytkownikowi, aby mu pomóc przy rozwiązaniu problemu (Proszę podać swoje nazwisko.). Za pomocą właściwości ModelState.IsValidField jesteśmy w stanie sprawdzić, czy łącznik modelu był w stanie przypisać wartość do właściwości. Wykonaliśmy to dla właściwości Date, aby upewnić się, czy łącznik modelu skonwertował przekazaną przez użytkownika wartość; jeżeli nie, nie ma sensu wykonywać dodatkowych sprawdzeń i raportować kolejnych błędów. Po sprawdzeniu wszystkich właściwości w obiekcie modelu odczytujemy właściwość ModelState.IsValid w celu sprawdzenia, czy wystąpiły błędy. Właściwość ta ma wartość false, jeżeli zarejestrowane zostały jakiekolwiek błędy lub jeżeli łącznik modelu napotkał problemy: if (ModelState.IsValid) { repository.saveappointment(appt); return View("Completed", appt); else { return View(); Jeżeli nie wystąpiły błędy, zapisujemy wizytę za pomocą repozytorium i generujemy widok Completed. Jeżeli pojawiły się problemy, wywołujemy po prostu metodę View bez parametrów. Powoduje to ponowne wygenerowanie bieżącego widoku, dzięki czemu użytkownik zobaczy informacje o błędach i będzie mógł skorygować wprowadzane dane. Metody pomocnicze widoku szablonowego używane do wygenerowania edytorów dla właściwości modelu obsługują błędy kontroli poprawności. Jeżeli dla właściwości zostanie zaraportowany błąd, metoda pomocnicza doda do pola tekstowego klasę CSS o nazwie input-validation-error. Plik ~/Content/Site.css zawiera następującą domyślną definicję tego stylu:.input-validation-error { border: 1px solid #ff0000; background-color: #ffeeee; Powoduje ona ustawienie czerwonej ramki oraz różowego tła w elemencie, w którym wystąpił błąd. Na rysunku 18.2 przedstawiony jest ten efekt dla wszystkich trzech właściwości. Wy wietlanie komunikatów kontroli poprawno ci Style CSS dołączane przez metody widoku szablonowego do elementów tekstowych informują o wystąpieniu problemu w polu, ale nie pozwalają przekazać mu danych o samym problemie. Na szczęście dostępne są inne metody pomocnicze HTML wspierające nas w tym zadaniu. Na listingu 18.5 pokazane jest użycie jednej z tych metod w widoku MakeBooking. Listing Użycie metody pomocniczej ViewBag.Title = "Rezerwacja"; 482
17 ROZDZIA 18. KONTROLA POPRAWNO CI MODELU Rysunek Błędy powodują wyróżnienie elementów Nadawanie stylu polom wyboru Niektóre przegl darki, w tym Chrome i Firefox, ignoruj style nadawane polom tekstowym, co prowadzi do powstania niespójnego wygl du strony. Rozwi zaniem jest zast pienie szablonu edytora Boolean w asnym, umieszczonym w ~/Views/Shared/EditorTemplates/Boolean.cshtml, w którym pole wyboru jest osadzone w elemencie div. Poni ej jest zamieszczony u ywany przez nas szablon, ale mo esz go dostosowa do swoich (ViewData.ModelMetadata.IsNullableValueType) => m, new SelectList(new [] {"Nie ustawiono", "Prawda", "Fa sz", Model)) else { ModelState state = ViewData.ModelState[ViewData.ModelMetadata.PropertyName]; bool value = Model?? false; if (state!= null && state.errors.count > 0) { <div class="input-validation-error" value) </div> else value) W szablonie tym umie cili my pole wyboru w elemencie div, do którego do czany jest styl input- validation-error, je eli zosta y zarejestrowane b dy modelu skojarzone z w a ciwo ci obs ugiwan przez szablon. Wi cej informacji na temat wymiany szablonów edytorów znajduje si w rozdziale 16. <h4>rezerwacja (Html.BeginForm()) => m.clientname)</p> 483
18 CZ II ASP.NET MVC 3 SZCZEGÓ OWY OPIS <p>data => m.date)</p> <p>@html.editorfor(m => m.termsaccepted) Akceptuj warunki</p> <input type="submit" value="wy lij rezerwacj " /> Metoda pomocnicza Html.ValidationSummary pozwala wyświetlić podsumowanie błędów kontroli poprawności zarejestrowanych dla strony. Jeżeli nie ma błędów, metoda pomocnicza nie generuje żadnego kodu HTML. Na rysunku 18.3 przedstawione jest działanie pola podsumowania. Rysunek Wyświetlanie podsumowania kontroli poprawności Pole podsumowania wyświetla komunikaty zarejestrowane przez metodę akcji w obiekcie ModelState. Na listingu 18.6 zamieszczony jest kod HTML wygenerowany przez tę metodę. Listing Kod HTML wygenerowany przez metodę pomocniczą ValidationSummary <div class="validation-summary-errors" data-valmsg-summary="true"> <ul> <li>prosz poda swoje nazwisko.</li> <li>prosz poda przysz dat.</li> <li>zaakceptowanie zasad jest wymagane.</li> </ul> </div> Informacja o błędach są wyrażane jako lista umieszczona w elemencie div, do którego jest dołączona klasa CSS validation-summary-errors. Styl jest zdefiniowany w pliku ~/Content/Site.css i w razie potrzeby może być zmieniony. Domyślny styl powoduje użycie pogrubionego, czerwonego tekstu:.validation-summary-errors { font-weight: bold; color: #ff0000; Metoda ValidationSummary posiada kilka przeciążonych wersji; najprzydatniejsze są zamieszczone w tabeli Niektóre z przeciążonych wersji metody ValidationSummary pozwalają nam na wskazanie, że powinny być wyświetlone wyłącznie komunikaty o błędach na poziomie modelu. Błędy, jakie rejestrowaliśmy do tej pory w ModelState, były błędami na poziomie właściwości, co oznacza, że wystąpił problem z wartością podaną w danej właściwości i jej zmiana może rozwiązać problem. 484
19 ROZDZIA 18. KONTROLA POPRAWNO CI MODELU Tabela Najprzydatniejsze przeciążone wersje metody ValidationSummary Przeci ona metoda Html.ValidationSummary() Html.ValidationSummary(bool) Html.ValidationSummary(string) Html.ValidationSummary(bool, string) Opis Generuje podsumowanie dla wszystkich błędów. Jeżeli parametr bool ma wartość true, to wyświetlane są tylko komunikaty o błędach poziomu modelu (patrz wyjaśnienie pod tabelą). Jeżeli parametr ma wartość false, wyświetlane są komunikaty o wszystkich błędach. Wyświetla komunikat (przekazany w parametrze typu string) przed podsumowaniem wszystkich błędów. Wyświetla komunikat przed błędami. Jeżeli parametr bool ma wartość true, wyświetlane są wyłącznie komunikaty o błędach poziomu modelu. Z kolei błędy na poziomie modelu mogą być wykorzystywane, jeżeli powstaje problem z interakcją pomiędzy dwoma właściwościami (lub większą ich liczbą). Wyobraźmy sobie, że klient Jan nie może składać rezerwacji w poniedziałki. Na listingu 18.7 pokazany jest sposób wymuszenia tej zasady i raportowania problemów za pomocą błędów kontroli poprawności na poziomie modelu. Listing Błąd kontroli poprawności na poziomie modelu public ViewResult MakeBooking(Appointment appt) { if (string.isnullorempty(appt.clientname)) { ModelState.AddModelError("ClientName", "Prosz poda swoje nazwisko."); if (ModelState.IsValidField("Date") && DateTime.Now > appt.date) { ModelState.AddModelError("Date", "Prosz poda przysz dat."); if (!appt.termsaccepted) { ModelState.AddModelError("TermsAccepted", "Zaakceptowanie zasad jest wymagane."); if (ModelState.IsValidField("ClientName") && ModelState.IsValidField("Date") && appt.clientname == "Jan" && appt.date.dayofweek == DayOfWeek.Monday) { ModelState.AddModelError("", "Jan nie mo e rezerwowa w poniedzia ki."); if (ModelState.IsValid) { repository.saveappointment(appt); return View("Completed", appt); else { return View(); Zanim sprawdzimy, czy Jan próbuje zarezerwować wizytę na poniedziałek, korzystamy z metody ModelState.IsValidField w celu upewnienia się, że mamy prawidłowe wartości pól ClientName oraz Date. Oznacza to, że nie możemy wygenerować błędu poziomu modelu do momentu spełnienia warunków dla właściwości. Błędy poziomu modelu rejestrujemy, podając pusty ciąg znaków ("") jako pierwszy parametr metody ModelState.AddModelError: ModelState.AddModelError("", "Jan nie mo e rezerwowa w poniedzia ki."); 485
20 CZ II ASP.NET MVC 3 SZCZEGÓ OWY OPIS Użycie metody ValidationSummary z parametrem bool pozwala nam wyświetlić informacje wyłącznie o błędach na poziomie modelu, co jest pokazane na rysunku Rysunek Wyświetlanie wyłącznie informacji o błędach na poziomie modelu Jak można zauważyć na rysunku, mamy tu dwa błędy kontroli poprawności. Pierwszym jest błąd na poziomie modelu, który wystąpił, gdy Jan próbował zarezerwować wizytę na poniedziałek. Drugi wynika z braku zaznaczenia pola akceptacji zasad. Ponieważ w podsumowaniu wyświetlamy wyłącznie komunikaty o błędach poziomu modelu, użytkownik nie zobaczy żadnej informacji o braku zaznaczenia opcji. Wyświetlanie komunikatów kontroli poprawności poziomu właściwości Powodem ograniczania komunikatów o błędach wyświetlanych w podsumowaniu do błędów poziomu modelu jest możliwość wyświetlania komunikatów o błędach poziomu właściwości obok pól. W takim przypadku nie chcemy powielać komunikatów z poziomu właściwości. Na listingu 18.8 zamieszczony jest zaktualizowany widok MakeBooking, w którym komunikaty o błędach poziomu modelu są wyświetlane w podsumowaniu, a o błędach na poziomie właściwości obok odpowiedniego pola. Metoda pomocnicza Html.ValidationMessageFor wyświetla komunikaty o błędach dla poszczególnych właściwości modelu. Na rysunku 18.5 przedstawiony jest wynik działania tej metody. Listing Użycie komunikatów o błędach poziomu ViewBag.Title = "Rezerwacja"; <h4>rezerwacja (Html.BeginForm()) <p> => m.clientname) 486
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.
Tytuł oryginału: The LEGO MINDSTORMS EV3 Idea Book Tłumaczenie: Dorota Konowrocka-Sawa ISBN: 978-83-283-1246-3 Copyright 2015 by Yoshihito Isogawa. Title of English-language original: The LEGO MINDSTORMS
Bardziej szczegółowoSmarty PHP. Leksykon kieszonkowy
IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK
Bardziej szczegółowoBudowa aplikacji ASP.NET z wykorzystaniem wzorca MVC
Akademia MetaPack Uniwersytet Zielonogórski Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Krzysztof Blacha Microsoft Certified Professional Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Agenda:
Bardziej szczegółowoModele danych walidacja widoki zorientowane na model
Modele danych walidacja widoki zorientowane na model 1. Wprowadzenie Modele danych Modele danych w ASP.NET MVC to klasy znajdujące się w katalogu Models. Ich zadaniem jest mapowanie danych przesyłanych
Bardziej szczegółowoWalidacja danych w ASP.NET MVC
Walidacja danych w ASP.NET MVC 1. Prosta walidacja 2. Walidacja z Data Annotation public ActionResult Edit(Person person) bool blad = false; if(person.name.trim().length == 0) ViewData["Blad1"] = "Nazwisko
Bardziej szczegółowoMicrosoft.NET: ASP.NET MVC + Entity Framework (Code First)
Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta
Bardziej szczegółowoTOPIT Załącznik nr 3 Programowanie aplikacji internetowych
Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć
Bardziej szczegółowo5 AS SP.NET MVC. Walidacja danych. Zaawansowane programowanie internetowe Instrukcja nr 5
5 AS SP.NET MVC Walidacja danych 1 1. Cel zajęć Celem zajęć jest zapoznanie się z metodami walidacji danych wprowadzanych przez użytkownika oraz z tworzeniem własnych walidatorów. 2. Zadanie Proszę przebudować
Bardziej szczegółowoInstrukcja użytkownika Porównywarki cen Liquid
Instrukcja użytkownika Porównywarki cen Liquid Wersja Spis treści 1 Wstęp... 3 2 Opis obszaru... 4 Towary... 5 Relacje... 6 Edytuj... 7 2.3.1 Konfiguracja... 7 2.3.2 Kategorie... 7 2.3.3 Ustawienia...
Bardziej szczegółowoCzęść I Rozpoczęcie pracy z usługami Reporting Services
Spis treści Podziękowania... xi Wprowadzenie... xiii Część I Rozpoczęcie pracy z usługami Reporting Services 1 Wprowadzenie do usług Reporting Services... 3 Platforma raportowania... 3 Cykl życia raportu...
Bardziej szczegółowoASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3
3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0
Bardziej szczegółowoAplikacje WWW - laboratorium
Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,
Bardziej szczegółowoĆwiczenie: JavaScript Cookies (3x45 minut)
Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.
Bardziej szczegółowoZaawansowane aplikacje internetowe - laboratorium
Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych
Bardziej szczegółowoNIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna
NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI asix Aktualizacja pakietu asix 4 do wersji 5 lub 6 Pomoc techniczna Dok. Nr PLP0016 Wersja:08-12-2010 ASKOM i asix to zastrzeżony znak firmy ASKOM Sp. z o. o.,
Bardziej szczegółowoRealizacja Aplikacji Internetowych 2013 laboratorium cz. 2 K.M. Ocetkiewicz
Realizacja Aplikacji Internetowych 2013 laboratorium cz. 2 K.M. Ocetkiewicz Walidacja po stronie klienta: - w MVC 3 i 4 domyślnie jest włączona także walidacja po stronie klienta - wykorzystuje ona JavaScript
Bardziej szczegółowoasix Autoryzacja dostępu do zasobów WWW systemu asix (na przykładzie systemu operacyjnego Windows 2008)
NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI asix (na przykładzie systemu operacyjnego Windows 2008) Pomoc techniczna Dok. Nr PLP0018 Wersja: 2011-08-26 ASKOM i asix to zastrzeżony znak firmy ASKOM Sp. z
Bardziej szczegółowoWszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną,
Bardziej szczegółowoTechnologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny
Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny AiRIII gr. 2TI sekcja 1 Autorzy: Tomasz Bizon Józef Wawrzyczek 2 1. Wstęp Celem projektu było stworzenie sklepu
Bardziej szczegółowoUżytkowanie Web Catalog
COPYRIGHT 2014 IGE+XAO. All rights reserved Użytkowanie Web Catalog V7R2 Copyright 2014 IGE-XAO. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji
Bardziej szczegółowoKurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE
Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE Cena szkolenia Cena szkolenia wynosi 100 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie
Bardziej szczegółowoSzczegółowy opis zamówienia:
Szczegółowy opis zamówienia: Rok 2016 budowa stron w html5 (8h v + 4h ćw) 8 szt. html5 - zaawans. (7h v + 5h ćw) 8 szt. programowania w java script (9h v + 7h ćw) 8 szt. java script zaawans (8h v + 4h
Bardziej szczegółowoPrzewodnik użytkownika (instrukcja) AutoMagicTest
Przewodnik użytkownika (instrukcja) AutoMagicTest 0.1.21.137 1. Wprowadzenie Aplikacja AutoMagicTest to aplikacja wspierająca testerów w testowaniu i kontrolowaniu jakości stron poprzez ich analizę. Aplikacja
Bardziej szczegółowoProgramowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz
Programowanie komponentowe Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System Application
Bardziej szczegółowoZawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6
Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki
Bardziej szczegółowo- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy
Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Bardziej szczegółowoSerwer Sieci Web (IIS)
NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI Serwer Sieci Web (IIS) Instalacja składników Internetowych Usług Informacyjnych dla potrzeb system Asix Pomoc techniczna Dok. Nr 0021 Wersja:04-12-2014 ASKOM
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w
Bardziej szczegółowoWprowadzenie do projektu QualitySpy
Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować
Bardziej szczegółowoWidoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych
Widoki zagnieżdżone, layout 1. Wprowadzenie Repozytoria danych Identyczne operacje na danych często się powtarzają np. pobierz książkę. Jeśli zapytanie realizowane jest za każdym razem w metodzie kontrolera
Bardziej szczegółowoInstrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.2/2015
Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.2/2015 Informacje ogólne Wnioski o dofinansowanie projektu w ramach konkursu nr 1/1.1.2/2015 mogą
Bardziej szczegółowoTechnologie internetowe ASP.NET Core. Paweł Rajba
Technologie internetowe ASP.NET Core Paweł Rajba pawel@cs.uni.wroc.pl http://itcourses.eu/ Plan wykładu Wprowadzenie Podstawowa aplikacja Usługi i middleware Obsługa błędów Request, Response, ciastka i
Bardziej szczegółowoLeonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014
Leonard G. Lobel Eric D. Boyd Microsoft TM Azure SQL Database Krok po kroku Przekład: Marek Włodarz APN Promise, Warszawa 2014 Spis treści Wprowadzenie........................................................
Bardziej szczegółowoBaza danych sql. 1. Wprowadzenie
Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Bardziej szczegółowoLaboratorium 7 Blog: dodawanie i edycja wpisów
Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą
Bardziej szczegółowoSpis treści. 1. Konfiguracja systemu ewuś...3. 2. Logowanie się do systemu ewuś...6. 3. Korzystanie z systemu ewuś...6. 4. Weryfikacja cykliczna...
Centralny Ośrodek Informatyki Górnictwa S.A. KSOP Obsługa systemu ewuś Katowice, 2013 Spis treści 1. Konfiguracja systemu ewuś...3 2. Logowanie się do systemu ewuś...6 3. Korzystanie z systemu ewuś...6
Bardziej szczegółowoInstrukcja konfiguracji funkcji skanowania
Instrukcja konfiguracji funkcji skanowania WorkCentre M123/M128 WorkCentre Pro 123/128 701P42171_PL 2004. Wszystkie prawa zastrzeżone. Rozpowszechnianie bez zezwolenia przedstawionych materiałów i informacji
Bardziej szczegółowo16) Wprowadzenie do raportowania Rave
16) Wprowadzenie do raportowania Rave Tematyka rozdziału: Przegląd wszystkich komponentów Rave Tworzenie nowego raportu przy użyciu formatki w środowisku Delphi Aktywacja środowiska Report Authoring Visual
Bardziej szczegółowoInstrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015
Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015 INFORMACJE OGÓLNE 1. Wnioski o dofinansowanie projektu w ramach konkursu nr 1/1.1.1/2015
Bardziej szczegółowoZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja
ZPKSoft WDoradca 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja 1. Wstęp ZPKSoft WDoradca jest technologią dostępu przeglądarkowego do zasobów systemu ZPKSoft Doradca.
Bardziej szczegółowoSystem epon Dokumentacja użytkownika
System epon Dokumentacja użytkownika Prawa autorskie tego opracowania należą do MakoLab S.A. Dokument ten, jako całość, ani żadna jego część, nie może być reprodukowana lub rozpowszechniana w jakiejkolwiek
Bardziej szczegółowoFunkcje dodatkowe. Wersja 1.2.1
Funkcje dodatkowe Wersja 1..1 Dokumentacja SMSAPI (https) FUNKCJE DODATKOWE z dnia 1.06.01 Wersja 1..1 SPIS TREŚCI 1.Wprowadzenie 1.1 Adresy URL do połączenia z aplikacją dla funkcji zarządzania kontem
Bardziej szczegółowoSymfonia Produkcja Instrukcja instalacji. Wersja 2013
Symfonia Produkcja Instrukcja instalacji Wersja 2013 Windows jest znakiem towarowym firmy Microsoft Corporation. Adobe, Acrobat, Acrobat Reader, Acrobat Distiller są zastrzeżonymi znakami towarowymi firmy
Bardziej szczegółowodokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika
asix 4 Edytor Bazy Zmiennych Podręcznik użytkownika asix 4 dokumentacja Edytor Bazy Zmiennych ASKOM i asix to zastrzeżone znaki firmy ASKOM Sp. z o. o., Gliwice. Inne występujące w tekście znaki firmowe
Bardziej szczegółowoAndroid poradnik programisty
Android poradnik programisty 93 PRZEPISY TWORZENIA DOBRYCH APLIKACJI Wei-Meng Lee APN Promise SA Spis treści Wprowadzenie.......................................................... xi 1 Podstawy systemu
Bardziej szczegółowoAsix.Evo - Uruchomienie aplikacji WWW
Pomoc dla użytkowników systemu Asix 8 www.asix.com.pl Asix.Evo - Uruchomienie aplikacji WWW Dok. Nr PLP8E014 Wersja: 2014-07-31 Asix.Evo - Uruchomienie aplikacji WWW ASKOM i Asix to zastrzeżone znaki firmy
Bardziej szczegółowoZadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.
T: Konfiguracja usługi HTTP w systemie Windows. Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http. HTTP (ang. Hypertext Transfer Protocol) protokół transferu plików
Bardziej szczegółowoInstrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015
Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015 INFORMACJE OGÓLNE 1. Wnioski o dofinansowanie projektu w ramach konkursu nr 1/1.1.1/2015
Bardziej szczegółowoPrzesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii
Przedmowa...ix Podziękowania....xi Wprowadzenie.... xv Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii Część pierwsza: Modele wykonywania
Bardziej szczegółowoAngular, cz. II. Tworzenie serwisów Web 2.0. dr inż. Robert Perliński rperlinski@icis.pcz.pl
ngular, cz. II 1/24 Angular, cz. II Tworzenie serwisów Web 2.0 dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej i Stosowanej 10 kwietnia 2015
Bardziej szczegółowoJarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne
Jarosław Kuchta Internetowe Usługi Informacyjne Komponenty IIS HTTP.SYS serwer HTTP zarządzanie połączeniami TCP/IP buforowanie odpowiedzi obsługa QoS (Quality of Service) obsługa plików dziennika IIS
Bardziej szczegółowoBudowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych
Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych widok ankiety w przeglądarce Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy
Bardziej szczegółowoĆwiczenie 8. Kontrolki serwerowe
Ćwiczenie 8 Temat: Kontrolki serwerowe ASP.NET cz.2 Cel ćwiczenia: W ramach tego ćwiczenie student zapozna się z kolejnymi kontrolkami serwerowymi oraz z metodami ich walidacji, a także z kontrolkami umożliwiającymi
Bardziej szczegółowoWYMAGANIA EDUKACYJNE. Witryny i Aplikacje Internetowe klasa I
WYMAGANIA EDUKACYJNE Witryny i Aplikacje Internetowe klasa I Dopuszczający definiuje pojęcia: witryna, portal, wortal, struktura witryny internetowej; opisuje rodzaje grafiki statycznej wymienia i charakteryzuje
Bardziej szczegółowoTEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Bardziej szczegółowoREFERAT O PRACY DYPLOMOWEJ
REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i budowa systemu zarządzania treścią opartego na własnej bibliotece MVC Autor: Kamil Kowalski W dzisiejszych czasach posiadanie strony internetowej to norma,
Bardziej szczegółowo1. Rejestracja 2. Logowanie 3. Zgłaszanie nowego wniosku projektowego
1. Rejestracja Dostęp do wniosku projektowego możliwy jest jedynie dla zarejestrowanych użytkowników. Aby zostać zarejestrowanym należy wypełnić formularz dostępny na stronie www.polskapomoc.gov.pl, a
Bardziej szczegółowoTajniki ASP.NET Core 2.0 : wzorzec MVC, konfiguracja, routing, wdrażanie i jeszcze więcej / Ricardo Peres. Warszawa, 2018.
Tajniki ASP.NET Core 2.0 : wzorzec MVC, konfiguracja, routing, wdrażanie i jeszcze więcej / Ricardo Peres. Warszawa, 2018 Spis treści Wstęp 1 Rozdział 1: Początki pracy z ASP.NET Core 7 Wprowadzenie do
Bardziej szczegółowoPoznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11
Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET
Bardziej szczegółowoWYKŁAD 1 ANGULARJS CZĘŚĆ 1
WYKŁAD 1 ANGULARJS CZĘŚĆ 1 DEFINICJA ANGULARJS Framework JavaScript na licencji open-source wykorzystywany do tworzenia aplikacji SPA (single page applications) w oparciu o wzorzec projektowy Model-View-Controler.
Bardziej szczegółowoD:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44
Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne
Bardziej szczegółowoBudowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych
Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych widok ankiety w przeglądarce Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy
Bardziej szczegółowoSystem Obsługi Zleceń
System Obsługi Zleceń Podręcznik Administratora Atinea Sp. z o.o., ul. Chmielna 5/7, 00-021 Warszawa NIP 521-35-01-160, REGON 141568323, KRS 0000315398 Kapitał zakładowy: 51.000,00zł www.atinea.pl wersja
Bardziej szczegółowo1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1
1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie
Bardziej szczegółowoA Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów
A Zasady współpracy Ocena rozwiązań 3.0 25 40 punktów 3.5 41 65 punktów 4.0 66 80 punktów 4.5 81 100 punktów 5.0 101 130 punktów Warunki zaliczenia przedmiotu Student uzyska ocenę zaliczającą (3.0) o ile
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.
Bardziej szczegółowo4. Podstawowa konfiguracja
4. Podstawowa konfiguracja Po pierwszym zalogowaniu się do urządzenia należy zweryfikować poprawność licencji. Można to zrobić na jednym z widżetów panelu kontrolnego. Wstępną konfigurację można podzielić
Bardziej szczegółowoPodstawy wzorca MVC 2011-10-18 MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.
Podstawy wzorca MVC MODEL KON- TROLER WIDOK Zawiera dane aplikacji oraz jej logikę. MODEL WIDOK Odpowiada za wyświetlenie danych użytkownikowi KON- TROLER KON- TROLER MODEL WIDOK Jedyna część aplikacji,
Bardziej szczegółowoPolish edition copyright 2014 by Helion S.A. All rights reserved.
Tytuł oryginału: The Abundance Manifesto Tłumaczenie: Joanna Sugiero ISBN: 978-83-246-9226-2 2013 by Hypnotic Marketing, Inc. All rights reserved. Reproduction and distribution are forbidden. No part of
Bardziej szczegółowoPlan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza
4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza
Bardziej szczegółowoSamsung Universal Print Driver Podręcznik użytkownika
Samsung Universal Print Driver Podręcznik użytkownika wyobraź sobie możliwości Copyright 2009 Samsung Electronics Co., Ltd. Wszelkie prawa zastrzeżone. Ten podręcznik administratora dostarczono tylko w
Bardziej szczegółowoPlatforma Informacyjno-Płatnicza PLIP
Platforma Informacyjno-Płatnicza PLIP Podręcznik użytkownika COIG SA Grupa Kapitałowa 40 065 KATOWICE ul. Mikołowska 100 www.coig.pl coig@coig.pl marzec 2016 r. Copyright COIG SA Wszelkie prawa zastrzeżone
Bardziej szczegółowohttps://lsi.ncbr.gov.pl
Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 2/1.1.2/2015 INFORMACJE OGÓLNE 1. Wnioski o dofinansowanie projektu w ramach konkursu nr 2/1.1.2/2015
Bardziej szczegółowoBackend Administratora
Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona
Bardziej szczegółowoInstrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2017 INFORMACJE OGÓLNE 1. Wnioski o dofinansowanie projektu w ramach konkursu nr 1/1.1.1/2017
Bardziej szczegółowoWdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5
Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie
Bardziej szczegółowoDokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.
Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->. Następnie wybieramy Serwer aplikacji (IIS, ASP.NET) i klikamy
Bardziej szczegółowoPROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec
PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych
Bardziej szczegółowoDjango : praktyczne tworzenie aplikacji sieciowych / Antonio Mele. Gliwice, cop Spis treści
Django : praktyczne tworzenie aplikacji sieciowych / Antonio Mele. Gliwice, cop. 2016 Spis treści O autorze 13 O recenzentach technicznych 14 Wprowadzenie 17 Rozdział 1. Utworzenie aplikacji bloga 21 Instalacja
Bardziej szczegółowoProgram szkolenia: REST i Microservices w PHP
Program szkolenia: REST i Microservices w PHP Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: REST i Microservices w PHP PHP-rest PHP developerzy 4 dni 50% wykłady / 50% warsztaty
Bardziej szczegółowoBudowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości
Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości część 2 Zaprojektowaliśmy stronę dodaj_dzial.aspx proszę jednak spróbować dodać nowy dział nie podając jego nazwy
Bardziej szczegółowoAplikacje Internetowe
Aplikacje Internetowe ITA-103 Wersja 1 Warszawa, październik 2008 Spis treści Wprowadzenie i-4 Moduł 1 Podstawy HTML 1-1 Moduł 2 Kaskadowe Arkusze Stylów CSS 2-1 Moduł 3 Podstawy JavaScript 3-1 Moduł 4
Bardziej szczegółowoProgramowanie aplikacji dla Sklepu Windows w języku C#
Programowanie aplikacji dla Sklepu Windows w języku C# Matt Baxter-Reynolds i Iris Classon przekład: Natalia Chounlamany Krzysztof Kapustka APN Promise Warszawa 2014 Spis treści Przedmowa...........................................................
Bardziej szczegółowoTworzenie prezentacji w MS PowerPoint
Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje
Bardziej szczegółowoLaboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark
Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark Topologia Cele Część 1: Zapisanie informacji dotyczących konfiguracji IP komputerów Część 2: Użycie programu Wireshark do przechwycenia
Bardziej szczegółowoLicencja SEE Electrical Free
Instrukcja Instalacji Licencja SEE Electrical Free V7R2 COPYRIGHT 2013 Wszelkie prawa zastrzeżone COPYRIGHT sierpień 2016 IGE+XAO Polska Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości
Bardziej szczegółowoFunkcje dodatkowe. Wersja 1.2.1
Funkcje dodatkowe SPIS TREŚCI 1.Wprowadzenie 1.1 Adresy URL do połączenia z aplikacją dla funkcji zarządzania kontem 1.2 Adresy URL do połączenia z aplikacją dla funkcji zarządzania polami nadawcy I. ZARZĄDZANIE
Bardziej szczegółowoCentrum Informatyki "ZETO" S.A. w Białymstoku. Wysyłanie danych o licencjach i zezwoleniach do CEIDG w systemie ProcEnt Licencje
Centrum Informatyki "ZETO" S.A. w Białymstoku Wysyłanie danych o licencjach i zezwoleniach do CEIDG w systemie Białystok, 29 czerwca 2012 Tytuł dokumentu: Wysyłanie danych o licencjach i zezwoleniach do
Bardziej szczegółowoInstrukcja użytkownika
Instrukcja użytkownika Bydgoszcz 2017 Strona: 1/12 Spis treści 1 Konfiguracja i obsługa funkcjonalności... 3-1.1 Wstęp... 3 1.2 Konfiguracja stacji klienckiej... 3 1.3 Weryfikacja istniejącego dokumentu...
Bardziej szczegółowoPrzygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)
Program szkolenia: Przygotowanie do nowoczesnego programowania po stronie przeglądarki (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania:
Bardziej szczegółowoBudowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości
Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy dwie Encje (tabele) prawym
Bardziej szczegółowoLista błędów poprawionych w uaktualnieniach Hot Fix. w wersji 2013.4
Lista błędów poprawionych w uaktualnieniach Hot Fix w wersji 2013.4 Copyright 2013 COMARCH Wszelkie prawa zastrzeżone Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek
Bardziej szczegółowoPlan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy
Plan Podstawy narzędzia Application Builder, 2 budowa strony, kreatory Architektura Tworzenie Tworzenie formularza tabelarycznego Budowa strony 2 Architektura Aplikacja kolekcja stron połączonych ze sobą
Bardziej szczegółowoDodawanie operacji dodatkowych w WAPRO Mag.
Dodawanie operacji dodatkowych w WAPRO Mag. obowiązuje od wersji 8.21.0 Opracował i wykonał: Grzegorz Lenarczyk Asseco Business Solutions SA Oddział w Warszawie Warszawa, ul. Branickiego 13 02-972 Warszawa
Bardziej szczegółowo