.net.coding.blog

jarosław.dubrownik

Przeniosłem się

W końcu przeniosłem się na własną domenę i własny hosting. Nowy blog pod adresem jdubrownik.com. Zapraszam.

R# live template dla ConfigurationElement

Przy okazji czwartku i pisania nudnych klas do obsługi własnej sekcji w pliku konfiguracyjnych app/web.config popełniłem drobny template w R#, który trochę przyśpiesza ten żmudny proces.






private static readonly System.Configuration.ConfigurationProperty $NAME$ = new System.Configuration.ConfigurationProperty("$NAME$", typeof($TYPE$), $DEFAULT$, System.Configuration.ConfigurationPropertyOptions.IsRequired);

[System.Configuration.ConfigurationPropertyAttribute("$NAME$", IsRequired = true)]
public string $PROPERTY_NAME$ { get { return ($TYPE$) this[$NAME$]; }}



gdzie $PROPERTY_NAME$ ma ustawione makro "Value of NAME with first character in upper case". Tyle.

Filed under  //   #template   resharper  

Czas się przenieść

Po blisko 50 postach poddaje się. Posterous doprowadza mnie do szału. Nigdy, ale to nigdy nie zakładajcie tutaj bloga! Zwłaszcza o programowaniu. Możliwości posterousa do s*!#*@*&$#!* Waszej misternej pracy są wręcz nadzwyczajne. Przy każdym jednym poście zamieszczonym na tym blogu miałem problemy z formatowaniem kodu wklejonego z Visual Studio. Kod rozjeżdżał się, wszędzie pojawiały się znaczniki <br> i trzeba było się naklikać do nieprzytomności enterem i backspacem, żeby doprowadzić to do normalnej postaci. Czasami nie wiedzieć czemu część tekstu po zapisie była zmniejszoną czcionką w stosunku do reszty i trzeba było usuwać całe formatowanie i rzeźbić od nowa. Koniec z tym. Szukam nowej platformy i przenoszę się stąd tak szybko jak tylko się da. Myślałem o dasBlog, BlogEngine.Net lub WordPress. Który z nich jest najlepszy do prowadzenia bloga o programowaniu?

Filed under  //   posterous  

Profilowanie aplikacji przy użyciu dotTrace

Przyznam się, że nie miałem w planach poruszania tematu profilowania aplikacji jeszcze przez jakiś czas. Rozpoczęcie masowego importu danych ze strony sejmu do projektu Rankingu Sejmowego zmusiło mnie do zmiany planów. Po przerobieniu przez kilka godzin około 30% danych z ostatniej kadencji Sejmu (około 20 tysięcy plików HTML ważących razem 120 MB) zacząłem zastanawiać się czy dałoby się ten proces trochę przyspieszyć. Do badania wydajności kodu posłużyły mi dwa narzędzia - genialny dotTrace od JetBarins oraz stary dobry SQL Profiler dołączany do niedarmowych wersji SQL Servera. 

Read the rest of this post »

Filed under  //   c#   dotTrace   profilowanie   ranking sejmowy  

FormCollection + LINQ

Dzisiaj kolejny odcinek z serii "krótki kod prowadzącego". W tym odcinku zajmę się obiektem FormCollection (NameValueCollection). Obiekt ten jest dobrze znany każdemu programiście piszącemu w ASP.NET MVC. FormCollection jest to kolekcja przechowująca dane formularza przekazywanego do serwera podczas POSTa. Ot zwykły obiekt typu "kolekcja". Niestety przymiotnik "zwykły" po jakimś czas zaczął mi doskwierać. "Zwykłość" tego obiektu objawia się bowiem brakiem możliwości potraktowania go LINQ. Postanowiłem pogodzić FormCollection i LINQ.

Read the rest of this post »

Filed under  //   ASP.NET MVC   LINQ   extensions  

Reactive Framework i FromAsyncPattern

Kilka postów temu wspominałem, że piszę aplikację pod Windows Phone 7. Chyba pochwaliłem się przedwcześnie bo zaraz potem musiałem odstawić projekt na boczne tory. Po pewnym czasie wróciłem do niego. Problemem, na którym zatrzymałem się poprzednio był związany z synchroniczną obsługą żądań wysyłanych przez obiekt HttpWebRequest. Co w tym nadzwyczajnego? Ano w Silverlight, w obiekcie HttpWebRequest, nie istnieje metoda GetReposne. Dostępna jest "tylko" wersja asynchroniczna tej metody w znanej i nie lubianej przez programistów konwencji Begin/End (BeginGetResponse, EndGetResponse). Programowanie asynchroniczne w konwencji Begin/End bardzo skutecznie zaciemnia kod programu. Te wielopiętrowe lambda expressions czy zestawy podobnych do znudzenia funkcji ze słowem callback w nazwie (opcja dla tradycjonalistów). Fu!

Read the rest of this post »

Filed under  //   #reactive framework   #rx   c#  

Daj się poznać - podsumowanie

Z małym poślizgiem (musiałem się pozbierać po porażce =) podsumuję swój udział w konkursie "Daj się poznać" Macieja Aniserowicza. Projekt wystartował 1 sierpnia 2010, niestety nie zdołałem go zakończyć do dnia 15.11.2010. Od 1.08.2010 do 15.11.2010 Opublikowałem 45 wpisów z czego 31 było wpisami konkursowymi. Trochę liczb według Google Analitics. Blog projektu zanotował 4658 odwiedzin, 2878 niepowtarzalnych użytkowników i 6738 odsłon. Statystyki Posterousa pokazują w tym samym czasie ok 13 tys. odsłon... nie wnikam skąd Posterous bierze takie liczby, najprawdopodobniej z kapelusza. Średni czas spędzony na stronie to 1min 1sekunda, a współczynnik odrzuceń to ok. 83%. Dorobiłem się też 25 subskrybentów RSS, zaś Top5 najlepszej treści wg. Google prezentuje się tak:

  1. http://dubrownik.posterous.com/rs-linq-tips-tricks
  2. http://dubrownik.posterous.com/rs-nhibernate-w-praktyce-czesc-1
  3. http://dubrownik.posterous.com/rs-linq-tips-tricks-maly-dodatek
  4. http://dubrownik.posterous.com/rs-resharper-combo-list
  5. http://dubrownik.posterous.com/rs-import-danych-html-agility-pack

Wniosek na przyszłość. Popracować nad jakością i formą treści jakie serwuję na swoim blogu. Będzie mniej ale mam nadzieje lepiej. Ostatecznie zająłem 11 miejsce w finale z 57 punktami na koncie. Muszę jeszcze sobie przeanalizować ile to by było punktów jak odejmę wszystkie babcie, dziadków i rodzinę do 3 pokolenia wstecz, która na mnie głosowała =). Wygrałem kontrolki Telerik For WPF z czego bardzo się cieszę, chociaż nie tak bardzo jak mógłbym się cieszyć z nowiutkiego MSDN'a Utlimate.

EDIT: Wygrałem CAŁY zestaw kontrolek telerika + ORM i JustCode :) Jestem bardzo zadowolony!

Na koniec chciałem serdecznie podziękować za wszystkie oddane na mnie głosy zarówno w pierwszym jak i w drugim etapie. Projekt idzie dalej i na pewno nie omieszkam skrobnąć na jego temat kilku słów w przyszłości. конец передачи.

Filed under  //   daj sie poznac  

Dominik Paszkiewicz wesprze Ranking Sejmowy

Niezmiernie mi miło poinformować, że projekt Ranking Sejmowy postanowił wesprzeć Dominik Paszkiewicz z ngomedia.pl. Dominik zadba o wygląd Rankingu Sejmowego (frontend). Nada mu przejrzystą i przyjazną dla użytkownika formę (w odróżnieniu ode mnie =). Stay tuned!

Filed under  //   ranking sejmowy  

Fluent Async Job

Ten wpis miał powstać na koniec zeszłego tygodnia, ale dopiero teraz znalazłem trochę czasu aby coś napisać. Ostatnimi czasy dość intensywnie wykorzystuje wzorzec projektowy MVVM (MVVM Light Toolkit). Zgodnie ze sztuką, nie blokuję UI i wszystkie bardziej skomplikowane operacje wykonuję asynchronicznie. Do tego celu najczęściej używam BackgroundWorker lub ThreadPool, ze wskazaniem na BackgroundWorker względu na bogatszą funkcjonalność (OnProgressChanged, OnCompleted itd.). Z czasem gdy ViewModel pęcznieje od asynchronicznych wywołań w kodzie zaczyna się robić niepotrzebny zamęt związany ze zwiększającą się ilością obiektów BackgroundWorker i kawałków kodu tego typu:

Read the rest of this post »

Filed under  //   asynchronous programming   fluent async  

[RS] Finał konkursu "Daj się poznać"

Dzisiaj w nocy dostałem wiadomość od organizatora konkursu "Daj się poznać" Macieja Aniserowicza, że projekt "Ranking Sejmowy" przeszedł do finałowego etapu konkursu (szczegóły i link do głosowania finałowego na blogu Maćka pod tym adresem) . Niezmiernie mnie to cieszy. Mam nadzieję, że informacje, które zamieszczałem na tym blogu przez czas trwania konkursu okazały się interesujące i pomocne dla czytleników. Powoli przyzwyczajam się do pisania i zaczyna mi się to się podobać, chociaż kariery Ayende czy Scotta Hanselmana sobie nie wróżę. Co do dalszego rozwoju projektu: Ranking Sejmowy i blog zostały powołane do życia przy okazji konkursu. Projekt nie został jeszcze ukończony, ale na pewno nie umrze wraz z zakończeniem konkursu "Daj się poznać". Będą w miarę regularnie zamieszczał kolejne wpisy o "okołonetowej" i projektowej tematyce (chociaż nie koniecznie w takim natężeniu jak w przypadku konkursu). Wracając do projektu. Dopiero teraz Ranking Sejmowy nabiera rozpędu. Niedawno zgłosił się do mnie ktoś, kto chciałby pomóc przy UI, które nie ukrywam jest moją piętą achillesową. Podejrzewam, że wspomniany "ochotnik" zobaczył wcześniej mój prototyp UI i coś w nim pękło =). Wkrótce więcej szczegółów na temat tajemniczego ochotnika. 

Filed under  //   daj sie poznac