Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Podobne dokumenty
Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Microsoft.NET: ASP.NET MVC + Entity Framework (Model First)

Zaawansowane aplikacje internetowe - laboratorium

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Microsoft.NET: Warstwa dostępu do danych (DAL) w aplikacjach ASP.NET Web Forms

Aplikacje internetowe i rozproszone - laboratorium

Platformy Programowania

E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence.

Programowanie Obiektowe GUI

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Enterprise JavaBeans (EJB)

WYKORZYSTANIE WZORCA MVC W ASP.NET

Aplikacje WWW - laboratorium

Web Services (SOAP) Ćwiczenie 1

Aplikacje internetowe i rozproszone - laboratorium

Instrukcja laboratoryjna

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Projektowanie aplikacji internetowych laboratorium

Zaawansowane aplikacje internetowe laboratorium REST

Aplikacje WWW - laboratorium

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

Laboratorium 7 Blog: dodawanie i edycja wpisów

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Aplikacje internetowe laboratorium ASP.NET MVC

4 AS SP.NET MVC. Widok. Zaawansowane programowanie internetowe Instrukcja nr 4

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Aplikacje WWW - laboratorium

5. Integracja stron aplikacji, tworzenie zintegrowanych formularzy i raportów

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Procedury techniczne modułu Forte Kontroling. Ustawienia IIS

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Programowanie obiektowe

Aplikacje internetowe laboratorium

Tworzenie i wykorzystanie usług sieciowych

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

Java EE: JSF + EJB + JPA

Microsoft.NET: ASP.NET Web Forms + Entity Framework (Database First)

Instrukcja laboratoryjna cz.6

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych

Ćwiczenie dotyczące platformy Java EE zostało przygotowane z myślą o środowisku NetBeans w wersji 7.3 (do pobrania z

3. Budowa prostych raportów opartych o bazę danych

6. Formularze tabelaryczne, obiekty nawigacji - rozgałęzienia

Załącznik 1 instrukcje instalacji

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

Aplikacje internetowe - laboratorium ASP.NET praca z bazą danych

Java EE: JSF + EJB + JPA + CDI + BV

Załącznik 1 instrukcje instalacji

Aplikacje WWW - laboratorium

Aplikacje WWW. Laboratorium z przedmiotu Aplikacje WWW - zestaw 01

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

7. Formularze master-detail

Instrukcja importu dokumentów z programu Fakt do programu Płatnik

Oracle Application Express

Korzystanie z aplikacji P-touch Transfer Manager

5 AS SP.NET MVC. Walidacja danych. Zaawansowane programowanie internetowe Instrukcja nr 5

Zadanie 1. Stosowanie stylów

Modelowanie obiektowe - Ćw. 1.

Laboratorium 050. Crystal Reports. Ćwiczenie 1. Otwarte pozycje

Marketing Automation:

Proces ETL MS SQL Server Integration Services (SSIS)

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Instrukcja instalacji

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

PekaoBIZNES 24 Szybki START. Przewodnik dla Użytkowników z dostępem podstawowym

Baza danych sql. 1. Wprowadzenie

Damian Daszkiewicz Tworzenie strony-wizytówki dla firmy XYZ

Kod składa się z kodu głównego oraz z odpowiednich kodów dodatkowych (akcesoriów). Do kodu można przyłączyć maksymalnie 9 kodów dodatkowych.

Instalacja Webroot SecureAnywhere przy użyciu GPO w Active Directory

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Systemy operacyjne. Zasady lokalne i konfiguracja środowiska Windows 2000

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Informatyka I : Tworzenie projektu

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Instrukcja instalacji nośników USB w systemie internetowym Alior Banku

Bazodanowe usługi sieciowe w technologii ASP.NET. dr inż. Tomasz Tatoń

Instalacja i konfiguracja IIS-a na potrzeby dostępu WEB do aplikacji Wonderware InTouch Machine Edition

Instrukcja laboratoryjna cz.3

Uruchomienie aplikacji Plan lekcji w przeglądarce Internet Explorer

,Aplikacja Okazje SMS

TWORZENIE ARKUSZY Z PRZEKROJAMI POPRZECZNYMI

Zaawansowane aplikacje internetowe laboratorium

Walidacja danych w ASP.NET MVC

Wprowadzenie do Doctrine ORM

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Dane słowa oraz wyrażenia są tłumaczone przy pomocy polecenia Przetwarzanie > Tłumaczenie

Transkrypt:

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2015. W ramach projektu budowana jest prosta aplikacja wykorzystująca framework MVC, bazująca na modelu bazy danych utworzonym zgodnie ze strategią Code First. Aplikacja zostanie wygenerowana narzędziem MVC Scaffolding. Kroki ćwiczenia: 1. Utworzenie nowego projektu. a) Uruchom narzędzie Microsoft Visual Studio jeśli nie jest jeszcze uruchomione. b) Z menu głównego wybierz File New Project. Wybierz szablon ASP.NET Web Application z kategorii Visual C# -> Web. Jako nazwę projektu podaj MvcNews. Pozostałe opcje pozostaw domyślne i kliknij przycisk OK. c) W kolejnym kroku kreatora jako szablon projektu wybierz MVC. Nie zaznaczaj opcji tworzenia projektu dla testów jednostkowych.

d) Obejrzyj strukturę projektu w panelu Solution Explorer zwracając uwagę na utworzone przez kreator foldery. e) Obejrzyj kod startowy aplikacji w pliku Global.asax.cs. Odszukaj w folderze App_Start plik zawierający reguły routingu dla aplikacji i obejrzyj jego zawartość. f) Uruchom projekt kombinacją klawiszy Ctrl+F5. g) Przetestuj nawigację po stronach aplikacji zwracając uwagę na zawartość paska adresu w przeglądarce. 2. Utworzenie obiektowego modelu danych w projekcie zgodnie ze strategią Code First. a) W panelu Solution Explorer wywołaj prawym klawiszem myszy menu kontekstowe dla folderu Models projektu i wybierz opcję Add -> Class. Jako nazwę pliku podaj NewsItem.cs.

b) W utworzonej klasie zdefiniuj jako publiczne poniższe właściwości: int DateTime string typ nazwa Id TimeStamp Text c) W tym samym pliku (i w tej samej przestrzeni nazw) dodaj poniższą klasę kontekstu bazy danych: public class NewsDBContext : DbContext { public DbSet<NewsItem> News { get; set; } } Zaimportuj odpowiednią przestrzeń nazw. d) Przejdź do edycji głównego pliku Web.config projektu. W sekcji <connectionstrings> dodaj poniższą definicję połączenia z bazą danych: <add name="newsconnection" connectionstring="data Source=(LocalDb)\ MSSQLLocalDB; Integrated Security=SSPI; AttachDBFilename= DataDirectory \News.mdf" providername="system.data.sqlclient" /> Zwróć uwagę, że wskazany plik bazy danych jeszcze nie istnieje. Zostanie on utworzony automatycznie zgodnie ze strategią Code First. e) Zdefiniowany wcześniej kontekst bazy danych domyślnie oczekuje połączenia z bazą danych o nazwie takiej jak nazwa klasy kontekstu. Ponieważ zdefiniowaliśmy połączenie o innej nazwie, musimy je jawnie przypisać do kontekstu definiując w klasie kontekstu poniższy konstruktor. public NewsDBContext () : base("newsconnection") {} f) Przebuduj projekt (Build). 3. Wygenerowanie kontrolerów i widoków do obsługi modelu. a) Z menu kontekstowego węzła Controllers w panelu Solution Explorer wybierz opcję Add -> Controller. W kreatorze kontrolera wybierz szablon scaffoldingu MVC 5 controller with views, using Entity Framework. W kolejnym kroku kreatora wybierz utworzoną wcześniej klasę modelu i kontekstu bazy danych oraz popraw nazwę klasy kontrolera na NewsController. Pozostałe opcje pozostaw domyślne i kliknij przycisk Add. b) Obejrzyj wygenerowaną klasę kontrolera i związane z nim widoki. c) Odszukaj w strukturze projektu stronę wzorcową _Layout.cshtml i dodaj w menu, które wyświetla się na każdej stronie u góry, link wywołujący akcję Index kontrolera News.

d) Uruchom aplikację (Ctrl+F5) i przetestuj jej działanie dodając, edytując, przeglądając i usuwając dane. Uwaga: Wprowadzając nowe dane etykietę czasową podawaj w formacie YYYY-MM-DD HH24:MI:SS (możesz pominąć czas i podać samą datę). e) Poprzez panel Server Explorer połącz się z bazą danych i obejrzyj zawartość automatycznie utworzonej tabeli NewsItems. 4. Ustawienie domyślnej daty dodawanych newsów na bieżącą. a) Dodaj publiczny konstruktor w klasie NewsItem, który ustawi datę na bieżącą (System.DateTime.Now). b) W metodzie Create() kontrolera News (wywoływanej metodą GET HTTP) utwórz nowy obiekt NewsItem i przekaż go do widoku. c) Uruchom aplikację i przetestuj dodawanie nowych newsów. 5. Dodanie obowiązkowości i weryfikacji długości tekstu newsa. a) Dodaj w klasie encji NewsItem następujące adnotacje: (1) włączającą obowiązkowość tekstu newsa, (2) weryfikującą, że jego długość wynosi od 5 do 140 znaków, (3) wskazującą że etykieta czasowa newsa jest typu daty (aby nie wyświetlały się składniki czasu). Nie zapomnij o zaimportowaniu przestrzeni nazw adnotacji. b) Uruchom aplikację aby przetestować działanie dodanych adnotacji. Zinterpretuj wyjątek, który zostanie zgłoszony. 6. Migracja bazy danych aby odpowiadała ona zmodyfikowanemu modelowi aplikacji. a) Przebuduj projekt (Rebuild). b) Otwórz okno narzędzia Package Manager Console (Tools->NuGet Package Manager->Package Manager Console). c) Wykonaj w oknie Package Manager Console kolejno poniższe komendy. Ewentualnie skoryguj w pierwszym poleceniu nazwę typu kontekstu obsługującego newsy jeśli jest inna w Twoim projekcie. Enable-Migrations -ContextTypeName MvcNews.Models.NewsDBContext add-migration AddDataAnnotationsMig update-database d) Ponownie uruchom projekt i przetestuj walidację ograniczeń na treść newsa. 7. Zmiana formatu daty. a) Poprzedź właściwość TimeStamp w klasie NewsItem poniższą adnotacją ustawiającą format daty. [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]

b) Ponownie uruchom projekt i przetestuj czy zmiana formatu daty została uwzględniona. Zadanie do samodzielnego wykonania 1. Wejdź na stronę aplikacji w dwóch przeglądarkach i sprawdź zachowanie aplikacji w przypadku współbieżnej edycji treści tego samego newsa. 2. Włącz mechanizm optymistycznego zarządzania współbieżnością dla encji NewsItem z wykorzystaniem dedykowanej do tego celu właściwości (rowversion): - dodaj w klasie encji NewsItem publiczną właściwość RowVersion typu byte[] i oznacz ją adnotacją [Timestamp] - dodaj migrację AddRowVersionMig i uaktualnij bazę danych - obejrzyj dodaną w wyniku migracji kolumnę do tabeli, zwracając uwagę na jej typ - zmień adnotację Bind metody kontrolera do edycji newsa wołanej przez POST, tak aby uwzględniała dodaną do encji właściwość wersji - spraw aby właściwość wersji była uwzględniona na stronie do edycji newsa jako ukryte pole formularza, analogicznie do identyfikatora encji (bez tego oryginalna wartość właściwości wersji byłaby tracona w procesie edycji danych w aplikacji ASP.NET MVC!) - uruchom aplikację w dwóch przeglądarkach i ponownie przetestuj współbieżną edycję danych 3. Dodaj obsługę wyjątku optymistycznego zarządzania współbieżnością - otocz instrukcje odpowiedzialne za zapis zmodyfikowanej encji (wewnątrz instrukcji if sprawdzającej poprawność modelu) instrukcją try/catch łapiąc odpowiedni wyjątek - w sekcji obsługi wyjątku pomocą metody ModelState.AddModelError dodaj komunikat informujący o tym że edytowane dane zostały zmodyfikowane lub usunięte przez innego użytkownika - ponownie uruchom aplikację w dwóch przeglądarkach i ponownie przetestuj współbieżną edycję danych