XML to XSD? XML to Classes?

Wróciłem po dłuższym czasie do mojego hobbistycznego projektu RubiksCube v2. Zrobiłem ponieważ pojawiła się iskierka nadzieji, że zaliczę na uczelni nim laboratoria z baz danych. Tak więc brakującą częścią do tej pory była cała inteligencja układania kostki. Algorytmy (sekwencje ruchów) już kiedyś postanowiłem przechowywać w pliku XML. Wczoraj dokończyłem projektowanie pliku XML Scheme i.. zacząłem się zastanawiać jak to wykorzystać w projekcie. Rozwiązań było kilka:

  1. Ręcznie parsować plik XML – to już przeszłość...
  2. Skorzystać z zintegrowanego z platformą parsera XML oraz XPath – niestety jest to nadal bardzo wiele roboty i można się zagubić w którymś momencie
  3. Skorzystać z LINQ to XML – to już wygląda dużo lepiej, ale nadal trzeba się odwoływać do elementów poprzez obiekt Xelement, no i brak jest ścisłego typowania obiektów na typy z XSD.
  4. Dzisiaj znalazłem jeszcze taki projekt jak LINQ to XSD. Robi to wszystko co LINQ to XML z jednym małym dodatkiem. Pozwala na ścisłe typowanie obiektów, a to dzięki temu, że sam automatycznie generuje odpowiednie klasy w C#. Niestety wadą uniemożliwiającą skorzystanie z tego cudownego narzędzia jest to, że chwilowo nie jest rozwijany a ostatnia wersja pamięta czasy Visual Studio Orcas beta 1. I z powodu niekompatybilności wersji System.Xml.Linq nie da się tego w prosty sposób uruchomić na wersji RTM. Należy cierpliwie czekać na dalszy bieg wydarzeń...
  5. Szukając dalej znalazłem coś takiego jak CodeXS. Potrafi przekonwertować plik XSD na zestaw klas C# (także VB), a następnie jednym poleceniem wypełnić wszystkie struktury danymi z pliku XML opartego na danym XSD z zachowaniem wszystkich typów (także wyliczeniowych) oraz bardziej skomplikowanych struktur. Na stronie producenta jest dostępna wersja online (wysyłamy plik XSD na serwer i ściągamy archiwum z klasami) oraz postać źródłowa tej aplikacji. W prosty sposób można ją podpiąć pod zdarzenia pre-build w projekcie VS i mamy ładny generator kodu na podstawie XSD. Wadą jest niestety to, że chyba nie będzie można wykorzystać tutaj LINQ, gdyż na pierwszy rzut oka nie ma odpowiedniego wsparcia ze strony IDE. Ale poszukam może jeszcze czegoś na ten temat.

Ostatecznie waham się pomiędy rozwiązaniem trzecim a piątym (czwarte naprawdę niestety odpada). Trzecie na obecną chwilę mimo trochę bardziej skomplikowanej składni pozwala na wygodne przeszukiwanie, piąte natomiast posiada bardzo dobre typowanie danych, a z przeszukiwaniem gorzej.

MS Visual Studio 2008

Wracam po dosyć długim okresie niepisania. Niestety nie miałem żadnego pomysłu na notkę. Teraz spróbuję się w końcu zmobilizować:P.
Wczoraj i dzisiaj (tzn. przedworaj i wczoraj) na uczelni odbywała się konferencja IT Academic Day. Według mnie najciekawsze były wykłady ludzi przysłanych z Microsoft Polska. Jedna o nowinkach w Windows Server 2008, a druga o nowinkach w .NET3.0/3.5

Jeśli chodzi o .NET3.5 to postanowiłem dalej rozwijać moją aplikację badawczą RubiksCube v2, wykorzystując i teraz jakieś względnie nowe rzeczy (dopiero teraz wyszła oficjalna wersja Visual Studio 2008). W tym momencie zapewne najbardziej się skupię na XLINQ, gdyż algorytmy do układania kostki zamierzam zawrzeć w pliku XML, a to powinno ułatwić ich wyciąganie ;) .
Jeśli chodzi o oficjalną wersję VS2008 to zainstalowała się bezproblemowo (w przeciwieństwie do kolegi Dawida ;) ) I na pierwszy rzut oka chodzi trochę lepiej niż wersje beta oraz VS2005. Jak jest w rzeczywistości okaże się w praniu :)

Przy okazji: to jest pierwsza notka dodana z Worda;)

Microsoft Visual Studio codename Orcas beta 1

W zeszłym tygodniu zainstalowałem najnowszą, dostępną publicznie wersje środowiska programistycznego Microsoftu. W sumie na dysku leżała już od ponad miesiąca, ale jakoś bałem się ją instalować. Przerażała mnie objętość wersji instalacyjnej: 4.5GB spakowane rar'em, według mnie to trochę dużo.

W zeszłym tygodniu zainteresowałem się trzecią wersją frameworka .NET, ale wsparcie tegoż w Visual Studio 2005 nie było najwyższych lotów, a zwłaszcza modułu WPF. Krótko mówiąc trochę to przymulało ;) W takim razie warto było przetestować następną wersję Visual Studio. Przyjrzałem się dokładniej opisowi Orcasa i dowiedziałem się jednej istotnej rzeczy, która zmieniła moje zdanie na temat objętości instalki. Ta instalka nie zawiera tylko Orcasa, ale także pełną dokumentację MSDN co zmienia postać rzeczy.
Continue reading »