O programowaniu aspektowym kiedyś już pisałem więc jeśli od strony teoretycznej nie jest to jasne to zachęcam do poszperania na blogu. Dzisiaj zaprezentuje framework Postsharp w wersji express (darmowa edycja, również do zastosowań komercyjnych). Jak wiemy, obsługa wątków czy wykonanie logów mogą być problemami cross-cutting. Postsharp jest typowym framework’iem implementującym AoP Zaczynamy od instalacji z NuGet: Pomimo, że Postsharp express jest w pełni darmowy, musimy zarejestrować się i uzyskać...
Sztuka programowania 4174 dni, 7 godzin, 27 minut temu 221 źrodło rozwiń
C# 5 (.NET Framework 4.5) async - to prelekcja, którą przygotował i poprowadził Patryk Lenza, programista i architekt oprogramowania o wszechstronnym doświadczeniu. Patryk w swojej prezentacji nie ogranicza się do pokazania nowego „lukru składniowego” C#, ale schodzi głębiej, do samej istoty problemu. Krok po kroku tłumaczy różnice między współbieżnością, równoległością i asynchronicznością, następnie przechodzi do omówienia ewolucji technik pisania kodu asynchronicznego w .NET, aż wreszcie omawia najnow...
Few days ago I had to create very simple database, and there was a need to expose API, so first thought was no RDBM!
Bazy danych i XML 4175 dni, 10 godzin, 6 minut temu 116 źrodło rozwiń
Currently a huge number of projects is driven by TDD. (...) In average we spend more than 50% of our time developing front-end side of the app (JavaScript etc) but having in mind, that TDD is only applicable to back-end code. As a ReSharper user I’ll show how easy it is to set up a proper solution with another level of unit testing. (..) Let’s pick out the ColorCalculator as the target. This is a “class” that is responsible for calculating color values between RGB and HEX.
RandomData, to biblioteka pozwalająca na generowanie mockupowych danych. Z pomocą atrybutów w c# wypełnia obiekt losowymi wartościami. Zachęcam do pobierania i testowania.
O kontraktach już kiedyś pisałem tutaj. Dziś z kolei zaprezentuję bardzo złą praktyką, czasami niestety jeszcze spotykaną tzn.:interface IDataFilter { IEnumerable
Sztuka programowania 4177 dni, 20 godzin, 49 minut temu 224 źrodło rozwiń
June was a month of conferences for .NET developers! We had Tech Ed North America, Norwegian Developers Conference, Tech Ed Europe and bunch more, but the biggest one was Microsoft Build Developer Conference.
In this post, I want to write about my conversion to Vim, a complex but powerful text editor. It’s learning curve is quite step but once grasped, it can increase your productivity. You can use it almost everywhere, Linux, Windows, Mac, you name it. It is an OSS software, easily moddable and open. You can write your own plugins and change almost every aspect of it. This process is very natural and easier than Visual Studio’s extensions and configuration hell. You won’t replace Visual Studio with VIM, th...
Rozpocząłem właśnie nowy cykl artykułów o Enterprise Library. Dzisiaj pierwsza cześć o Log Application Block: http://msdn.microsoft.com/pl-pl/library/enterprise-library-logging-application-block–czesc-1 Zapraszam do lektury!
Sztuka programowania 4180 dni, 21 godzin, 3 minuty temu 124 źrodło rozwiń
W tej części cyklu stworzymy nasz pierwszy test jednostkowy. Przedstawię krok po kroku jak napisać i przetestować prostą funkcjonalność wedle zasad TDD. Opiszę tutaj szczegółowo wszystkie kroki, począwszy od tego jak dodać referencję do NUnita, a skończywszy na tym jak uruchomić test.
Sztuka programowania 4181 dni, 20 godzin, 51 minut temu 241 źrodło rozwiń
At the build conference (June 26-28, 2013) Microsoft announced Windows 8.1 Preview and Visual Studio 2013 Preview. I installed them on my Virtual Machine. Just in case, to protect my system from some unexpected features :)
W kilku ostatnich postach pisałem o blokach grupujących. Obiecywałem, że pokaże kilka przykładów ich zastosowania, w szczególności wyjaśniające zachowanie zachłanne i niezachłanne. W dzisiejszym wpisie, zaprezentuję przykład (lekko zmodyfikowany z MSDN) jak JoinBlock i BufferBlock mogą zostać zastosowane. Wyobraźmy sobie, że mamy kilka źródeł danych. Na przykład: WCF, pliki oraz pamięć. Odczyt z WCF prawdopodobnie będzie najwolniejszy. W zależności od lokalizacji, odczyt pliku prawdopodobnie będzie dużo...
Sztuka programowania 4183 dni, 18 godzin, 22 minuty temu 20 źrodło rozwiń
Integrujemy ASP.NET z PayU Cykl artykułów dotyczących integracji strony w ASP.NET z systemem płatności on-line PayU. Artykuły, krok po kroku opisują tworzenie strony zamówienia, następnie tworzenie stron powrotów oraz raportów...
Generowanie plików PDF z poziomu kodu programu to temat rzeka. Wystarczy przejrzeć staka. Temat przewija się w prawie każdej tworzonej dzisiaj aplikacji. Zawsze znajdzie się ktoś komu trzeba wysłać fakturę, raport czy kilka wykresów w PDFie. Problem w tym, że narzędzia do generowania ładnych dokumentów PDF kosztują i to nie mało.
Od jakiegoś czasu myślałem o zebraniu w garść przemyśleń związanych z rozwojem projektów, bazując na doświadczeniach w aplikacjach, przede wszystkim biznesowych, w produkcji których przyszło mi uczestniczyć. Ponieważ pamięć jest zawodna i nie wszystko co chciałem wymienić udało mi się spamiętać i ubrać w słowa...
Sztuka programowania 4187 dni, 12 godzin, 55 minut temu 363 źrodło rozwiń
Wyobraźmy sobie, że mamy jakiś zestaw zmiennych, którym chcielibyśmy nadawać wartości w zależności od kategorii, która je opisuje. Jednocześnie – pomimo przynależności do tej kategorii – jeżeli wartość zmiennej dla owej kategorii nie została zdefiniowana – chcielibyśmy, aby taka zmienna używała wartości domyślnej. Zakładamy też, że wartości domyślne posiadają wszystkie zmienne i jeśli zajdzie potrzeba uzależnienia wartości zmiennej od posiadanej przez nią kategorii, nie ma to oznaczać...
Bazy danych i XML 4187 dni, 12 godzin, 55 minut temu 114 źrodło rozwiń
Czasami w WPF zachodzi potrzeba stworzenia dependency property ale tylko do odczytu. Zwykłą właściwość bardzo łatwo zaimplementować tzn.:publicdouble Area { get { return width*height; } } Jeśli korzystamy z binding’u danych, wtedy powyższe rozwiązanie jest niewystarczające i należy skorzystać z dependnecy property. Dla przypomnienia, standardowa deklaracja wygląda następująco:publicclass MyStateControl : ButtonBase { public MyStateControl() : base() { } public Boolean State { g...
Co w tej metodzie takiego specjalnego? Nazwa metody mówi wszystko, no prawie wszystko. Metoda używana często i gęsto w kodzie HtmlHelper przy okazji tworzenia kontrolek TextBox, CheckBox, DropDown itd. Zamienia...