piątek, 29 maja 2009

Ostatni tydzień maja 2009 – krótkie podsumowanie cz.1

Uważam, że w bieżącym tygodniu jest kilka faktów godnych odnotowania – dlatego postanowiłem zrobić jakieś podsumowanie w dwóch częściach. Dlaczego w dwóch? Pamiętajmy, że ten tydzień się jeszcze nie skończył, a w weekend szykuje się ważna impreza, jakim jest bez wątpienia CodeCamp. Ale o tym napiszę w drugiej części podsumowania …

Z mojej perspektywy niewątpliwie w tym tygodniu były znaczące dwa wydarzenia – ukazanie się nowej odsłony “Oslo” oraz wyprawa na Śląsk.

Co do nowego “Oslo” nie mogę na razie wiele powiedzieć poza tym, że zmiany są dość znaczące, wprowadzono nowe funkcjonalności, zmieniono nieco “M”, zmieniono część narzędzi, a “Quadrant”  w publicznej odsłonie mało przypomina poprzednie wydania – prezentuje się wręcz na ich tle bardzo ascetycznie. Potrzebuję trochę czasu, by rozpoznać, co dokładnie uległo zmianie. Jestem tego bardzo ciekaw (a w szczególności nowego “Quadranta”), więc bardzo prawdopodobne, że niedługo coś więcej na ten temat więcej napiszę…

012

W tym tygodniu wpadłem też na Górny Śląsk, by przedstawić możliwości .NET RIA Services we współpracy z Silverlight  i ASP.NET. Zostałem zaproszony na XVI spotkanie Śląskiej Regionalnej Grupy Microsoft i Polish SQL Server User Group (PLSSUG) Katowice, które w tym miesiącu odbyło się - jak wskazuje nazwa drugiej społeczności - w Katowicach. Spotkanie pierwszorzędne, była też okazja porozmawiać z lokalnymi liderami i przespacerować się ulicami miasta. Tak więc bardzo pozytywnie traktuję czas tutaj spędzony. 

poniedziałek, 25 maja 2009

.NET RIA Services na Warmii i Mazurach

W ostatni czwartek miałem przyjemność aktywnie uczestniczyć w drugim spotkaniu społeczności Microsoft Warmii i Mazur - Olsztyn Microsoft User Group (OLMUG). Opowiedziałem o najnowszym wydaniu .NET RIA Services (May Preview) oraz o jej współdziałaniu z Silverlight 3. Skrótowo wspomniałem też o integracji nowych serwisów z  ASP.NET i ASP.NET Dynamic Data.

017

Chciałbym liderowi grupy Jackowi Barcikowskiemu serdecznie podziękować za zorganizowanie spotkania, pokazanie miasta i wręczenie związanych z nim materiałów (piękne zdjęcia!), spotkanie z częścią grupy w knajpie. Wszystko było naprawdę dobrze zaplanowane, a spotkania w centrum literackim moim zdaniem mają swój urok. Wtedy spotkanie jest otwarte i każdy może podejść i posłuchać, a jednocześnie nie jest to pub… Myślę, że gdyby zrobić taki eksperyment w u nas w Empiku na Rynku,  mogłoby być ciekawie… 

Z uwagi na to, że wcześniej nie pisałem jeszcze tutaj o najnowszym wydaniu .NET RIA Services, dokonam teraz krótkiego podsumowania zmian w tej technologii. Ogólnie rzecz ujmując majowe wydanie jest buildem stabilizacyjnym i zawiera głównie poprawki zgłoszonych bugów. Zasadniczo wszystko, co dotyczyło poprzedniej wersji jest nadal aktualne. Dokumentacja oraz API w zasadzie nie uległy zmianie. Dotychczasowe przykłady kompilują się i wykonują na nowym Preview (czasami zdarza się zmiana zachowania, np. EntityChangeSet.ToString() już nie zwraca napisu złożonego z interesujących nas informacji).

Zatem co nowego? O nowościach tego wydania można przeczytać np. tutaj. Kilka uwag do niektórych zamieszczonych tam punktów: 

  • New Business application Template  - szablon ten wcześniej był dostępny w formie przykładu, obecnie został zintegrowany. Różnice są kosmetyczne, drobne zmiany w nazewnictwie, poprawki literówek, miejscami refaktoryzacja kodu.
  • Authentication Sample – 2 przykłady.
    •  AuthWithASPDotNet – ta sama koncepcja, co używana w szablonie Business Application Template. Dodatkowo pokazane są odczyt i edycja profilu użytkownika.
    •  AuthWithEf -  kod klienta jest ten sam! Dziedziczymy z AuthenticationBase<T> i  nadpisujemy kilka metod, w których komunikujemy się ze swoją bazą danych, zamiast z domyślnym providerem ASP.NET. W tym przykładzie komunikację oparto na innym serwisie domenowym w wersji z EF.
  • XML Metadata provider Sample – przykład wykorzystujący nową infrastrukturę dla metadanych (IMHO – najistotniejsza nowość w wydaniu majowym). Wprowadzona została koncepcja providerów metadanych (DAL i związanych z danym typem). Domain serwisy korzystają ze swoich domyślnych providerów, by uzyskiwać metadane np. z bazy SQL. W generowanych encjach klienta są one mergowane z metadanymi podanymi przez programistę, które mają wyższy priorytet.  Można pisać własne providery, które będą dokładać metadane w czasie kompilacji / runtime. Przykład stanowi provider pobierający metadane z pliku XML, będącego zasobem assembly serwisu domenowego.
  • Linq2Sql Domain Provider Sample – przykład pokazujący jak pisać własny rodzaj serwisu domenowego, który komunikuje się z danym źródłem danych (owszem zawsze możemy bezpośrednio z klasy DomainService, ale np. przy korzystaniu z NHibernate może wygodniej jest stworzyć dedykowany rodzaj serwisu, podobnie jak dla LinqToSql predefiniowano LinqToSqlDomainService). Aby stworzyć własny rodzaj serwisu domenowego, należy napisać dla niego provider metadanych DAL oraz nadpisać kilka metod do procesowania danych.
  • Integracja serwisu domenowego z ASP.NET Dynamic Data (IMHO – druga najważniejsza nowość w wydaniu majowym). ASP.NET Dynamic Data ma na celu automatyzację budowy interfejsu użytkownika. Powiedziałbym, że pod względem obsługi szablonów i metadanych jest nawet lepiej niż obecnie w SL3 – mamy obsługiwane więcej metadanych oraz możemy definiować szablony dla pól, stron, encji, filtrów…

Poniżej zamieszczam materiały z wystąpienia w Olsztynie, w których uwzględniłem najnowsze wydanie .NET RIA Services.

Prezentacja PDF

Przykłady

Nagrania video używane przy prezentowaniu

Domain services & ASP.NET Dynamic Data from Marcin Kruszyński on Vimeo.

Wcześniejsze materiały video