Od pewnego czasu odgrażałem się, że napiszę kilka zapytań przy użyciu NHibernate. Teraz nadszedł ten czas. Za materiał treningowy posłużą mi wcześniej opisywane statystyki. Metodyka pisania zapytań jest następująca: najpierw SQL, później zapytanie w NH. Ma to na celu pokazanie w jaki sposób można przekładać T-SQL na język zapytań NH (w tym przypadku Criteria API).
Strona głównaUżytkownik
jdubrownik | użytkownik
Kilka dni temu byłem zmuszony przeinstalować Visual Studio 2010. Nie przewidywałem żadnych problemów. Ot zwykłe odinstalowanie i zainstalowanie na nowo programu. Po zakończeniu procesu instalacji uruchomiłem losowy projekt by sprawdzić czy wszystko w porządku. Niestety podczas ładowania solucji pojawiły się błędy: The 'Microsoft.Data.Entity.Design.BootstrapPackage.BootstrapPackage...' package did not load correcly. The 'VSTS for Database Professionals Sql Server Data-tier Application' package did not loa...
Dzisiaj coś zupełnie z innej beczki. SAP Business One (SB1) , czyli "program księgowy". Jakiś czas temu miałem okazję popracować trochę z tym programem i zapoznać się z DI API. DI API to zestaw metod, za pomocą których możemy zautomatyzować proces tworzenia dokumentów księgowych w SB1. Czyli wygenerować dokumenty z poziomu własnego programu, przy użyciu "odpowiednich bibliotek". Bardzo przydatne w sytuacji gdy integrujemy program księgowy z innymi systemami i chcemy zautomatyzować proces powstawania doku...
Przeglądając istniejący kod i planując utworzenie kolejnych obiektów repozytoriów doszedłem do wniosku, że warto zaoszczędzić sobie trochę czasu i napisać uniwersalny (na ile to możliwe) obiekt bazowy repozytorium. Obiekt ten powinien zawierać podstawowe metody manipulacji i dostępu do danych. Dużym ułatwieniem jest to, że wszystkie obiekty dziedziny dziedziczą po obiekcie Entity (przed refaktoringiem BaseEntity), który zawiera pole Id z bazy danych oraz ważną z punktu widzenia NH implementacje metod E...
Przed przystąpieniem do właściwych prac związanych z zapowiadanymi w ostatnim wpisie statystykami chciałem napisać jeszcze jeden test związany z zapisem danych do bazy. Chodziło o zapis obiektów kadencji i sprawdzenie czy zapisywany jest cały graf obiektów, czyli kadencja > posiedzenia > głosowania itd. Myślałem, że będzie to tylko formalność, ale jak to zazwyczaj w takich sytuacjach bywa nie obeszło bez problemów. Na szczęście były to tylko przejściowe problemy. W przypadku NHibernate (Fluent NHibernate...
Od pewnego czasu stałem przed problemem synchronizacji danych znajdujących się w bazie danych i danych pobranych ze strony Sejmu. Założyłem sobie, że za każdym razem, przy imporcie danych będę pobierał i przetwarzał wszystkie dane ze strony Sejmu dla określonej kadencji, porównywał z tym co już mam w bazie danych i zapisywał tylko dane, które pojawiły się na stronie od czasu ostatniego importu. Wynikiem tych założeń były dwa obiekty kadencji (grafy obiektów), które trzeba ze sobą porównać, a różnicę zap...
Po ostatnim wpisie nt. importu danych sejmowych ze strony Sejmu zostałem skarcony przez kolegę za parsowanie stron przy użyciu wyrażeń regularnych. Nie jest to zła praktyka, jednak mizerna czytelność wyrażeń, ich stopień trudności, mała odporność na zmiany schematu danych wejściowych powodują, że po pewnym czasie wyrażenia regularne mogą stać się prawdziwym utrapieniem dla programisty. Mój pomocny kolega zaproponował mi w miejsce wyrażeń regularnych użycie Html Agilty Pack. HAP jest to biblioteka do scre...
Małymi kroczkami, dotarłem do miejsca, w którym czas złapać za klawiaturę i zacząć pisać kod. Plan działania (pierwsza pięciolatka) wygląda następująco: import i parsowanie danych ze strony sejmu, obliczanie różnych statystyk na podstawie zgromadzonych danych, warstwę dostępu do bazy danych i UI w formie strony internetowej. Uszeregowałem sobie zadania od najtrudniejszego do najłatwiejszego, przynajmniej teoretycznie. Na pierwszy ogień idzie import i parsowanie danych ze strony sejmu. Fasadę procesu impo...
Architektura 630 dni, 4 godziny, 53 minuty temu 40 rozwiń
Dzisiaj, przy okazji chwilowej przesiadki na inną maszynę (bez zainstalowanego VS2010) pomyślałem sobie, że dobrze byłoby, gdyby projekt Ranking Sejmowy można było uruchamiać również w środowisku VS2008. Jak można podejrzewać, solucja (plik .sln) stworzona w nowszym środowisku - VS2010 nie uruchomi się w starszym środowisku. Poszperałem trochę w plikach solucji i projektów (pliki .csproj) i okazało się, że same pliki projektów (MSBuild) z VS2010 nie różnią się od plików z VS2008. Różnice można znaleźć ty...
Dzisiaj kolejny przepis. Tym razem na geocoding w oparciu o Google Maps API, czyli translacje adresu z formy tekstowej - np. ul. Długa 1, 11-123 Pcim na współrzędne geograficzne. Aby móc korzystać z usługi geocoding w Google Maps należy założyć konto w serwisie i skopiować wygenerowany dla nas klucz (przypisany do domeny). Kod do dokonywania konwersji adresu na współrzędne geograficzne ...
Polecamy
Ostatnio na blogu
Podsumowanie #5 - tydzień 2...
Najaktywniejsi
