Menu / szukaj

Snippety

Ostatnio odkryłem na nowo funkcjonalność definiowania własnym szablonów kodu. Funkcjonalność ta jest bardzo często nie wykorzystywana przez programistów, ale potrafi zdziałać cuda. W pisaniu aplikacji biznesowej zawsze przychodzi taki moment, że trzeba napisać kod służący do zapisywania danych do bazy, jak równię ich odczytywania.

W takim przypadku 90% kodu jest taka sama. Po pierwsze odczytujemy numer kolumny, w której przechowywane są dane w np. SQLDataReader. A następnie budujemy na podstawie danych obiekty. W trakcie odczytu danych z bazy należy oprogramować działanie w sytuacji gdy wystąpi null. I tu najczęściej sprawdza się czy w kolumnie odczytywanej występuje wartość null. Jeśli tak to podstawia się jakąś domyślną. Jeśli nie ma nulla to odczytuje się wartość z bazy.

Czytaj dalej

SerializableDictionary

Dzisiejszego dnia potrzebowałem użyć serializacji XML dla klasy Dictionary. Bardzo się zdziwiłem gdy okazało się, że klasa ta nie wspiera tego rodzaju serializacji. Wydawałoby się, że zapis danych w formacie XML jest dzisiaj już standardem, ale okazuje się, że jednak nie wszędzie. Stosując podstawową zasadę programisty po co pisać coś co ktoś inny już napisał uruchomiłem Google i zacząłem szukać rozwiązania. Udało mi się znaleźć kilka przykładów rozwiązania tego problemu, ale każde z nich miało jakiś drobny błąd, który powodował, że słownik nie działał tak jak powinien. Czytaj dalej

Productivity Power Tools – z czym to się je

Dzisiejszy wpis chciałem poświęcić dodatkowi do Visual Studio, bez którego uważam, że nie da się pracować. Osoby, które go nie używały nie wiedzą co tracą. Tym dodatkiem jest Productivity Power Tools. Jest on darmowy i można go pobrać ze strony http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef.

Czytaj dalej

Sprawdzanie wersji Excela

W aplikacjach biznesowych bardzo często występuje funkcjonalność importu / eksportu danych z / do Excela. Jednym ze sposobów pobierania danych z Excela jest zastosowanie OLE DB jako dostawcy danych. Nie jest to może rozwiązanie najbardziej optymalne, ale czasami nie ma możliwości wpływu na jego wybór. W celu skorzystanie z tego sposobu należy zdefiniować łańcuch połączenia. I tu pojawia się problem ponieważ aby ten sposób zadziałał musi być zainstalowany Excel. Dodatkowo definicja łańcucha połączenia zależy od wersji Excela zainstalowanej na komputerze. Oba te warunki wymuszają sprawdzenie tego przed próbą pobrania danych z Excela. Czytaj dalej

Parallel.For – wielowątkowość nigdy nie była tak łatwa

W ostatniej wersji C# pojawiła się możliwość zrównoleglenia obliczeń w bardzo prosty sposób. Pętlę:

for (int n = 0; n <  8; n++)
{
   Console.WriteLine("Normal - iteracja {0} wątek {1}", n,
     Thread.CurrentThread.ManagedThreadId);
}&#91;/code&#93;
<p style="text-align: justify;">można zastąpić następującą konstrukcją:
Parallel.For(0, 8, i =>
{
   Console.WriteLine("Parallel - iteracja {0} wątek {1}", i,
      Thread.CurrentThread.ManagedThreadId);
});

Czytaj dalej

Hello World

Witaj! Mój pierwszy post na tym blogu zacznę w sposób tradycyjny. Każdy programista rozpoczynał swoją przygodę z programowaniem od programu o nazwie „Hello World”. Takie program nic wielkiego nie robi – wyświetla tylko napis na ekranie „Hello World”. Z drugiej strony program ten działa, co jest też dużym osiągnięciem. Czytaj dalej