Strona głównaUżytkownik

jdubrownik | użytkownik

jdubrownik
jdubrownik
2 048,13
3816 dni, 9 godzin, 43 minuty temu
23 sierpnia, 2010
dotnetomaniak.pl

Obiecałem sobie nie pisać przez jakiś czas o (Fluent) NHibernate ale jak widać nie potrafię =) Przy okazji refactoringu kodu przypomniałem sobie o pewnym drobny problemie, który napotkałem testując kod repozytoriów. Podczas przeprowadzania testów z wykorzystanie SQLite zauważyłem, że właściwości typu enum zapisywane są w bazie danych pod postacią ciągu znaków, a nie jak oczekiwałoby się pod postacią typu całkowitego (najczęściej i najprawdopodobniej pod postacią integera =)....

Dziel się z innymi:
Fluent NHibernate i enum

Windows 4941 dni, 22 godziny, 55 minut temu jdubrownik 72 źrodło rozwiń

Od pewnego czasu namiętnie oddaję się programowaniu urządzeń mobilnych w .NET Compact Framework 2.0. Niestety, nie mogę korzystać z nowszej wersji frameworka niż 2.0. Po dłuższym okresie obcowania z WPF'em, LINQ i innymi dobrodziejstwami .NET 3.5  przesiadka na .NET CE 2.0 powoduje u mnie odczucia podobne do tych, jakie można doświadczyć chodząc w za małych butach. Ale do rzeczy. Pierwsza rzecz, która na prawdę mnie zdenerwowała to emul...

Visual Studio i !@#$ emulacja Windows CE

Mobile development 4946 dni, 12 godzin, 7 minut temu jdubrownik 116 źrodło rozwiń

Od jakiegoś czasu staram się wykształcać w sobie nawyk regularnego pisania testów jednostkowych dla wykrytych błędów. Dlaczego? Możliwość sprawdzenia działania programu przy pomocy testów jednostkowych jest najprostszym wskaźnikiem jakości (choć bardzo ogólnym i nie jedynym!) wytwarzanego kodu. Testy jednostkowe są swego rodzaju drogowskazem, który stale pokazuje programiście dobry kierunek "jeżeli-czegoś-nie-można-przetestować-to-trzeba-to-przebudować".

Dziel się z innymi:
Testy jednostkowe w służbie dobra i prawdy

Windows 4946 dni, 12 godzin, 7 minut temu jdubrownik 139 źrodło rozwiń

Ostatnio, z powodu choroby, zaniedbałem trochę projekt Rankingu Sejmowego. Przez ten czas nie powstało zbyt dużo nowego kodu (ledwie kilka poprawek i jakieś pojedyncze testy). Żeby to trochę zrekompensować postanowiłem napisać kilka słów o tym jak ułatwić sobie życie pracując z Visual Studio i Resharperem, a przynajmniej jak ja je staram się sobie ułatwiać. Jak wiadomo Reshaper to nieoceniony narzędzie wspomagające pracę w Visual Studio na każdym kroku. Oprócz osławionego skrótu...

Tagi: Resharper
Dziel się z innymi:
Resharper combo list

Narzędzia 4946 dni, 7 godzin, 33 minuty temu jdubrownik 83 źrodło rozwiń

[RS] Lets Moq! Moq to biblioteka służący do tzw. mockowania lub inaczej zaślepiania obiektów na potrzeby testów jednostkowych. Zaślepianie polega na wygenerowaniu obiektu implementującego określony interfejsu, w którym metody zamiast wykonywać skomplikowane operacje np. dostępu do bazy danych zwracają po prostu z góry ustalone obiekty lub wartości. Taką zaślepkę przekazujemy do testowanego obiektu w miejsce oryginalnej implementacji. Umożliwia to prostsze i szybsze testowanie interesującego nas kawałka ...

Tagi: Moq, unit tests
Dziel się z innymi:
Lets Moq!

Windows 4956 dni, 2 godziny, 16 minut temu jdubrownik 255 źrodło rozwiń

W drugiej części ćwiczeń zaprezentuję bardziej skomplikowane zapytania Criteria API w NHibernate. Jako materiał treningowy, podobnie jak to było w pierwszej części, posłużą mi wcześniej opisywane statystyki. Metodyka pozostaje bez zmian - na początku T-SQL, później NH. Rozumiem, że może to budzić wątpliwości (zwłaszcza u obiektowych ortodoksów), jednak jak to w praktycznych zastosowaniach NH bywa, prędzej czy później trzeba zerknąć do środka zapytań i pobrudzić się trochę T-SQLem. Posunę się nawet do stw...

Dziel się z innymi:
NHibernate ćwiczenia praktyczne - część 2

Windows 4960 dni, 5 godzin, 33 minuty temu jdubrownik 173 źrodło rozwiń

Podczas prac związanych ze statystykami zauważyłem, że przy okazji pisania kolejnych testów dla obiektów repozytoriów powielam kod odpowiedzialny za przygotowanie bazy SQLite. Jak nakazuje dobry obyczaj, powtarzający się kod należy wydzielić.

Tagi: C#, nHibarnate, sqlite
Dziel się z innymi:
[RS] NHibernate - klasa bazowa testu

Windows 4961 dni, 14 godzin, 18 minut temu jdubrownik 38 źrodło rozwiń

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).

Tagi: C#, nHibarnate
Dziel się z innymi:
[RS] NHibernate w praktyce (część 1)

Windows 4966 dni, 5 godzin, 56 minut temu jdubrownik 113 źrodło rozwiń

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...

Dziel się z innymi:
Problemy po reinstalacji Visual Studio 2010

Narzędzia 4968 dni, 3 godziny, 2 minuty temu jdubrownik 39 źrodło rozwiń

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...

SAP Business One i transakcje w .NET

Windows 4973 dni, 2 godziny, 34 minuty temu jdubrownik 35 źrodło rozwiń

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...

Dziel się z innymi:
Generyczne repozytorium z NHibernate

Windows 4975 dni, 3 godziny, 27 minut temu jdubrownik 62 źrodło rozwiń

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...

Dziel się z innymi:
[RS] NHibernate - Cascade, Inverse i stara szafa - .net.coding.blog

Windows 4975 dni, 14 godzin, 13 minut temu jdubrownik 116 źrodło rozwiń

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...

Tagi: C#, NHibernate
Dziel się z innymi:
[RS] NHibernate przychodzi z pomocą - zabija smoka i ratuje księżniczkę - .net.coding.blog

Windows 4983 dni, 10 godzin, 27 minut temu jdubrownik 85 źrodło rozwiń

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...

[RS] Import danych - Html Agility Pack - .net.coding.blog

Windows 4989 dni, 19 godzin, 40 minut temu jdubrownik 108 źrodło rozwiń

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...

Tagi: architektura, C#
Dziel się z innymi:
[RS] Import danych - część 1 - .net.coding.blog

Architektura 4996 dni, 7 godzin, 46 minut temu jdubrownik 44 źrodło 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...

Dziel się z innymi:
[RS] Projekt w VS2008 i VS2010 - (prawie) bez problemu - .net.coding.blog

Windows 4995 dni, 5 godzin, 50 minut temu jdubrownik 69 źrodło rozwiń

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 ...

Dziel się z innymi:
Geocoding z Google Maps API - .net.coding.blog

Windows 4999 dni, 7 godzin, 10 minut temu jdubrownik 194 źrodło rozwiń

1 2

Najaktywniejsi w tym miesiącu