Dynamic Data (z SQL CE 4.0)

4

Pisałem ostatnio o msmvp.pl. Podczas prac nad portalem (a bardziej podczas rozmyślań nad rozwiązaniem jednego z problemów) przyszło mi wykorzystać w praktyce projekt, który kiedyś obił mi się o uszy… i tyle. Nie poświęciłem mu żadnej uwagi aż do teraz.

Problem, który musiałem rozwiązać, nie był (chyba) banalny. Sam portal o MVP to jedno – robienie go to po prostu frajda po godzinach. Jednak PUSTY portal, bez żadnych danych, to średnia korzyść dla kogokolwiek. Ani ja go publicznie nie uruchomię (bo i po co?), ani nikt się niczego z niego nie dowie.

Pierwszy pomysł na rozwiązanie był bardzo prosty: niech Microsoft da mi wszystkie potrzebne dane, i tyle. Rzeczywistość okazała się jednak dość brutalna: po wymianie kilkunastu (albo i więcej) maili z kilkoma osobami z samego wnętrza jaskini lwa (z 3 krajów) stało się jasne, że większości potrzebnych mi danych nie otrzymam (ze względów prawnych).

Pomysł drugi: pochodzę po guglach i sam pozbieram wszystkie archiwalne dane o programie. Kto, kiedy i w jakiej kategorii został MVP oraz kiedy został z programu wywalony. Po kilku zaledwie godzinach wiedziałem, że to droga donikąd – takie zbieranie danych zajmie mi więcej czasu niż wszystkie pozostałe czynności razem wzięte.

Stąd i genialny pomysł trzeci: udostępnię wszystkim MVP metodę na wprowadzanie/edycję danych i niech każdy sam zadba o poprawne wypełnienie własnego profilu. A jeśli przy okazji komuś będzie się jeszcze chciało dorzucić archiwalne info o ex-MVP to tym lepiej. No i dobra, ale jak to zrealizować? Może jakiś współdzielony Excel online? Nie… nie znam wszystkich maili żeby pozapraszać ludzi do jego edycji. OneNote? Też nie… W końcu i tak trzeba by to było umieścić w bazie danych, a kopiuj/wklej z notatek to żadna dla mnie przyjemność. A może dać po prostu dane do logowania do bazy i niech każdy sobie z management studio pouzupełnia co trzeba? Tak, to by nawet zadziałało, ale bezpośrednia edycja danych z pilnowaniem relacji, ID to średnio wygodne rozwiązanie. No i wymusza uzupełnianie danych z maszyny posiadającej jakiegoś klienta sql server, a chciałem cały proces jak najbardziej uprościć, aby ludzie faktycznie to robili.

I tutaj właśnie pojawiło się wspomnienie o Dynamic Data. Czy przypadkiem to coś podobno nie potrafi wygenerować całej aplikacji WWW do edycji bazy? Czy przypadkiem to nie jest klik-klik-klik->publish… i już? Dałem sobie pół godziny na mały research i…

I po pół godziny miałem gotową aplikację do edycji bazy danych msmvp.pl. To naprawdę TAK PROSTE! Tworzymy "ASP.NET Dynamic Data Entities Web Application", dodajemy Entity Data Model zbudowany na podstawie bazki (w tym przypadku – SQL CE 4.0), usuwamy komentarze z niektórych linii w Global.asax.cs (zgodnie z instrukcjami wygenerowanymi przez szablon DD), uruchamiamy i śmiga! Wystarczyło skopiować na FTP, zablokować dostęp najprostszym .htaccess i wsio.

Naprawdę – osom. Ja dodatkowo ustawiłem ScaffoldAllTables na true aby umożliwić edycję wszystkich (czterech:) ) tabel, wyłączyłem stronicowanie, zmieniłem sposób wyświetlania jednego MVP jako referencji… Zresztą, na GitHubie jest pełny kod z historią więc można sobie pośmigać.

Warto wiedzieć, że coś takiego jest. Możliwość zastosowania Dynamic Data określiłbym raczej jako dość nieczęstą i dziwię się, że Microsoft zainwestował w to czas i kasę, ale jak już jest to czemu nie skorzystać?

Share.

About Author

Programista, trener, prelegent, pasjonat, blogger. Autor podcasta programistycznego: DevTalk.pl. Jeden z liderów Białostockiej Grupy .NET i współorganizator konferencji Programistok. Od 2008 Microsoft MVP w kategorii .NET. Więcej informacji znajdziesz na stronie O autorze. Napisz do mnie ze strony Kontakt. Dodatkowo: Twitter, Facebook, YouTube.

4 Comments

  1. A ja sie wcale nie dziwie ze maja takie cos jak DynamicData. W koncu sam powiedziales, ze "rzeczywistosc okazala sie brutalna" i nie dalo rady dostac danych o MVP ze wzgledow prawnych :D Pewnie oni w wewnatrz organizacji maja podobne "legal issues". Hehe :)

    Fajny poscik.

  2. Paweł,
    To może inaczej: dziwię się, że wypuścili to publicznie, co powoduje że muszą przez X czasu to supportować, pisać dokumentację, artykuły, tutoriale, szablony VS itd… Dużo roboty, a produkt ani nie przysporzy im nowych klientów, ani nie przywiąże obecnych – nie widzę korzyści dla samej firmy wydającej takie coś. Ale widocznie muszę się mylić:)

  3. DynamicData to wspaniałe narzędzie. Tak jak piszesz w prosty i szybki sposób można zrobić interface do edycji całej bazy – takie wspaniałe małe coś dla Administratora. Jeśli jest potrzeba to czasem dodaję jako bonus dla admina, mówiąc, że napracowałem się okrutnie;)