ASP.NET Dynamic Data Jakub Binkowski Jakub Binkowski Visual C# MVP

Slides:



Advertisements
Podobne prezentacje
Projektowanie bazy danych
Advertisements

Generics w .NET 2.0 Łukasz Rzeszot.
18/11/ Języki programowania 1 Piotr Górczyński Biblioteki.
WPROWADZENIE DO BAZ DANYCH
XML w zarządzaniu formularzami ubezpieczeniowymi ZUS
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
Architektura systemu Gra strategiczna „Strusia Jama”
Tworzenie ASP.NET Web Form
BIRT.
Programowanie w środowiskach zintegrowanych wykład 1 PSZ Programowanie w Środowiskach Zintegrowanych > Systemy i środowiska zintegrowane > Środowisko zintegrowane.
Projekt i implementacja aplikacji do zasilania bazy danych testowymi danymi Jacek Lis Promotor: prof. dr hab. inż. Włodzimierz KASPRZAK.
Modele baz danych - spojrzenie na poziom fizyczny
Hibernate relacje.
Hibernate uzupełnienie
Język SQL (Structured Query Language) DDL (Data Definition Language)
Multimedialne bazy danych
Evident – Środki Trwałe
II Spotkanie Polskiej Grupy Użytkowników VTLS Virtua 16 – 17 czerwca 2008, Biblioteka Uniwersytecka w Warszawie Magdalena Rowińska Centrum NUKAT
Z A R Z Ą D Z A N I E F I R M Ą WPROWADZENIE DRUŻYN DO SYMULACJI.
Jakub Binkowski Visual C# MVP webEFS sp.j.. GET i POST.
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
MySQL – ODBC - ACCESS.
Systemy zarządzania treścią Wykład 1
Instrukcje: CREATE, INSERT, UPDATE, DELETE, DROP
Technologie tworzenia aplikacji internetowych Wykład 3
Promotor: dr.inż. Aleksandra Werner
System wspierający obsługę przedmiotów projektowych
Lokalizacja i Globalizacja na witrynie w Visual Web Developer 2008 (ASP.Net) Daniel Literski.
System e-zamówienia.
Prezentacja i szkolenie
Bazy danych.
Prezentacja programu do obsługi Biur Nieruchomości Pośrednik MLS Plus.
SQL - Structured Query Language
C# Cz.7 Refleksja, Atrybuty
Systemy zarządzania treścią Wykład 5
Bazy Danych w Mango Mateusz Mikulski
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5 Programowanie komponentowe 1.
K URS JĘZYKA C++ – WYKŁAD 10 ( ) Szablony.
Opinie Prawne Wiki - pomoc Wyszukiwanie dokumentów w na stronie
Responsywne aplikacje w Windows 8 i.NET 4.5 Jakub Binkowski.
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Obiekty DOM.
Podstawy języka skryptów
Opracowanie mgr Karol Adamczyk
Informatyka Stosowana – ROK II / III
Konfiguracja HIBERnate, postgresQL + przykładowa aplikacja
Projektowanie postaci formularza:
Wykład 3 Prowadzący: dr Paweł Drozda. Użytkownik bazy danych – osoba lub aplikacja, mająca dostęp do części danych zgromadzonych w bazie Uprawnienia –
Object-relational mapping (aka O/RM, ORM, and O/R mapping)
Rozpowszechnianie aplikacji KRYSTIAN KOWALCZUK TORUŃ,
1 Co nowego w i-cut Suite i-cut Layout 14.0.
ASP.NET Kontrolki źródła danych i prezentacji danych w ASP.Net
Prototypowanie w ORACLE DESIGNER Transformacja Modelu danych.
Prototypowanie w ORACLE DESIGNER Projektowanie Modułów.
Oracle Data Modeler (4.1). Aplikacja Wymagania biznesowe Tworzenie systemu informacyjnego Procesy Informacje Analiza Projektowanie Browser: Hollywood.
Projekt „NEW-TECH Program rozwoju praktycznych kompetencji nauczycieli zawodów branż nowych technologii” jest współfinansowany przez Unię Europejską Projekt.
Wzorzec MVC na przykładzie CakePHP
Menu Opcje.
Typy wyliczeniowe, kolekcje
T. 18. E Proces DGA - Działania (operatorka).
Projekt modułu BANK INTERNETOWY Moduł funkcji banku
AudaPad / AudaShare AudaShare PRO (2.8)
PROGRAMY DO KONTROLI RODZICIELSKIEJ
PROGRAMY DO KONTROLI RODZICIELSKIEJ
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5
Aplikacje i usługi internetowe
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

ASP.NET Dynamic Data Jakub Binkowski Jakub Binkowski Visual C# MVP Webstruments.pl / webEFS

Cel prezentacji Pokazać: co to jest Dynamic Data, jak zacząć pracę z DD, jak dostosować DD do własnych potrzeb, jak rozszerzać DD, architekturę DD, miejsce DD w poważnej inżynierii oprogramowania.

Podstawowe zastosowania Czym jest ASP.NET Dynamic Data? Pierwsza dynamiczna aplikacja.

Scaffolding ASP.NET Dynamic Data tworzy rusztowanie (ang. scaffolding) dla aplikacji.

DEMO Pierwsza aplikacja

ASP.NET Dynamic Data Generuje UI w ASP.NET na podstawie źródła danych Wsparcie dla operacji CRUD Pełne wsparcie dla technologii: LINQ to SQL Entity Framework Interfejs generowany jest dynamicznie Automatyczna walidacja na podstawie danych o polach

Możliwości dostosowywania Zmiana zachowania: Ograniczanie widoczności do tabel i kolumn Rozszerzanie metadanych kolumn Zmiana UI (strony i kontrolki): Modyfikacja szablonów Specyficzne szablony dla różnych tabel Specyficzne szablony w zależności od konfiguracji Własne strony

Dostosowywanie DD: Zmiana zachowania Rozszerzanie metadanych

Jak dodawać metadane do modelu? [Atrybuty] dopisywane do klas i pól encji Ale encje L2S i EF są generowane… Encje L2S i EF są partial - rozszerzalność Atrybut [MetadataType] – podpięcie zewnętrznej klasy z metadanymi

Ograniczanie dostępności [ScaffoldTable] Generowanie UI dla tabel: widoczne wszystkie, oprócz wybranych widoczne tylko wybrane [ScaffoldColumn] Można wskazać, dla których pól będzie generowany UI [Editable] Ograniczenie edytowalności niektórych pól ang. scaffolding - rusztowanie

DEMO Ograniczenie widoczności

[Display] [Display(ShortName="Nazwa", Order=1, Name="Nazwa produktu", Description="Jak się produkt nazywa?", GroupName="Opis produktu", Prompt="Podaj nazwę...", AutoGenerateField=true, AutoGenerateFilter=false)] public string Name;

DisplayFormat [DisplayFormat( DataFormatString="{0:C}", ApplyFormatInEditMode=false, ConvertEmptyStringToNull=true, HtmlEncode=true, NullDisplayText="wycofano ze sprzedaży")] public decimal StandardCost;

[DisplayColumn] Wyświetlana kolumna Kolumna, po której następuje sortowanie [DisplayColumn("Name", "ProductNumber")] partial class Product { }

[DataType] Custom DateTime Date Time Duration PhoneNumber Currency [DataType(DataType.MultilineText)] public string Comments; Custom DateTime Date Time Duration PhoneNumber Currency Text Html MultilineText EmailAddress Password Url ImageUrl

[EnumDataType] public class Review { [EnumDataType(typeof(Rating))] public int Rating; } public enum Rating Good = 5, Fine = 4, Average = 3, Bad = 2, Terrible = 1

DEMO Wizualizacja danych

Walidacja Atrybuty walidacyjne: [CustomValidation] [Range] [RegularExpression] [Required] [StringLength] [EnumDataType] własny atrybut

DEMO Walidacja

Walidacja spoza DD Walidację można odpalić niezależnie od DD Klasa Validator: (System.ComponentModel.DataAnnotations) ValidateObject / TryValidateObject ValidateProperty / TryValidateProperty ValidateValue / TryValidateValue

Dostosowywanie DD: Zmiana wyglądu

Struktura aplikacji FieldTemplates szablony prezentacji i edycji właściwości EntityTemplates szablony Show/Edit/Insert dla encji PageTemplates szablony stron Filters filtry do przeszukiwania

FieldTemplates Kontrolki prezentacji/edycji pola UI dla poszczególnych kolumn W folderze FieldTemplates: Nazwa.ascx - prezenter Nazwa_Edit.ascx - edytor Użycie szablonu: [UIHint("Rating")] public int Rating;

DEMO FieldTemplates

EntityTemplates Kontrolki dla encji UI dla poszczególnych tabel W folderze EntityTemplates: Tabela.ascx - prezentacja Tabela_Edit.ascx - edycja Tabela_Insert.ascx - dodawanie Tabela – nazwa EntitySet’u a nie klasy (!) np. „ProductReviews”

PageTemplates i CustomPages Szablony widoków UI dla poszczególnych widoków Domyślne szablony w PageTemplates: Widok.aspx (List, Details, Insert, Edit, …) Szczegółowe szablony dla tabel w: CustomPages/Tabela/*.aspx gdzie Tabela – nazwa EntitySet’u

DEMO EntityTemplates i CustomPages

Filters Własne filtry UI dla przeszukiwania listy – filtrów Folder Filters: Nazwa.ascx Użycie filtru: [Display(AutoGenerateFilter=true)] [FilterUIHint("Text")] public string Name;

DEMO Filters

Architektura Dynamic Data Czyli jak to działa?

Jak to możliwe? http://server/Products/List.aspx

1) Baza, model, metamodel Baza danych Model danych Metamodel DataModelProvider

2) Routing routes.Add(new DynamicDataRoute("{table}/{action}.aspx") { Constraints = new RouteValueDictionary( new { action = "List|Details|Edit|Insert" }), Model = DefaultModel });

Zadania Dynamic Data Przechowywanie metadanych Określenie tabeli i akcji (parametry z routingu) Załadowanie odpowiedniej strony Dynamic Data nie odpowiada za operacje na danych (pobieranie, modyfikacje, itp.)... A jeśli nie DD, to kto?

DEMO Działanie Dynamic Data

Podsumowanie

Zalety Gotowa aplikacja w mniej niż minutę Automatyczna aktualizacji UI po zmianach Szerokie możliwości dostosowywania Ciekawa architektura

Wady Testowalność Spłaszczenie architektury aplikacji Pełne wsparcie tylko dla: LINQ to SQL Entity Framework

Czy w idealnej architekturze jest miejsce na Dynamic Data? Nie. Ale czy ktoś widział kiedyś idealną architekturę?

Zastosowania Prototypowanie Szybkie udostępnienie wersji 0.1 Panel administracyjny

Cel prezentacji Czy udało mi się pokazać: co to jest Dynamic Data, jak zacząć pracę z DD, jak dostosować DD do własnych potrzeb, jak rozszerzać DD, architekturę DD, miejsce DD w poważnej inżynierii oprogramowania?

Czy mamy jeszcze czas?

Dziękuję za uwagę