Post ma na celu ukazanie kilku ciekawych własności C# i CLR, o których niewielu programistów pamiętam, a których znajomość może oszczędzić niespodziewanych wystąpień NullReferenceException.
Nie jest tajemnicą, że dużo i dużych serwisów ma specjalne tagi po stronie klienta i serwera, które sprawdzają z jaką przeglądarką mają do czynienia zanim zaczną obrabiać HTML/CSS/JS. To aspekt historyczny, który w dużej mierze zakładał, że każda przeglądarka inaczej rozumie te elementy (HTML/CSS/JS) przez co potrzeba osobnych plików – a w rzeczywistości rozdzielał użytkowników Chrome/Opery/Firefoxa i Safarii od Internet Explorera, który w teorii wszystko wspierał najgorzej, inaczej i dla niego należało ...
Załóżmy, że w kodzie zobaczymy enum’a np.:publicenum Colors { Black, Red, Yellow }; Jeśli budujemy framework lub jakąkolwiek bibliotekę należy być świadomym zagrożeń wynikających z wewnętrznej budowy enum’a. Warto zajrzeć do Reflector’a aby przekonać się o tym:.classpublic auto ansi sealed Colors extends [mscorlib]System.Enum { .field publicstatic literal valuetype ConsoleApplication1.Colors Black = int32(0) .field publicstatic literal valuetype ConsoleApplication1.Colors Red = i...
Sztuka programowania 2781 dni, 8 godzin, 29 minut temu 252 źrodło rozwiń
XAdES to najbardziej popularny format podpisu elektronicznego w Polsce. Występuje on w kilku odmianach: zwykły, ze stemplem czasowym, dodatkowymi informacjami itd. Czasami zachodzi potrzeba zweryfikowania podpisu elektronicznego w .NET. Jakiś czas temu miałem podobny problem. Pokopałem trochę w Google i w MSDN i znalazłem w .NET Framework ciekawą klasę SignedXml...
Sztuka programowania 2783 dni, 4 godziny, 41 minut temu 1269 źrodło rozwiń
W ostatnim wpisie przedstawiłem aspekt do obsługi wyjątków. Dzisiaj trochę więcej o samych aspektach dla metod. Oprócz wyświetlenia nazwy metody czy przekazanych parametrów można wyciągnąć trochę więcej informacji. Dla przypomnienia, parametry można wyświetlać następująco:publicoverridevoid OnEntry(MethodExecutionArgs args) { var argValues =new StringBuilder(); foreach (var argument in args.Arguments) { argValues.Append(argument.ToString()).Append(","); } Console.WriteLin...
Sztuka programowania 2783 dni, 4 godziny, 41 minut temu 103 źrodło rozwiń
Jakiś czas już się tutaj nie odzywałem, w tym poście sprzed trzech miesięcy wspominałem nawet dlaczego (od tego czasu udało się napisać jeszcze tylko dwa wpisy...). Wszystko to za sprawą tytułowego RSS readera, nad którym pracowałem w pocie czoła.... a którego pomysł zrodził się, jak pewnie się domyślacie za sprawą zamknięcia przez google swojego readera. Z jednej strony niby zewsząd słychać glosy, że format RSS się kończy bla, bla, bla... Ja jednak bez readera nie mogę się obejść - od przeglądania najno...
If you were asked to mention new features of C# 5.0, then you would probably say, first of all, async / await. However, on MSDN there is list of changes that could hardly be considered as well-known, even after almost 1 year after .NET 4.5 RTM was published. In this post I briefly explain one of them, that in my opinion is worth remembering.
Sztuka programowania 2785 dni, 15 godzin, 26 minut temu 181 źrodło rozwiń
In my previous post I wrote about first steps in creating Rest-full API by using ApiController. Now it`s time to make next step and go a little bit dipper inside web services created in MVC. In this post I want to describe two very important aspect:creating a real life scenario for web service implementation of POCO entityextend presented scenario and make it asynchronous To complete this tutorial one more class is needed. This class is a simple fake of some database which is wrapper around a very few c...
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 2785 dni, 19 godzin, 4 minuty 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 2786 dni, 21 godzin, 43 minuty temu 114 ź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 2789 dni, 8 godzin, 25 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 2792 dni, 8 godzin, 39 minut 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 2793 dni, 8 godzin, 27 minut temu 238 źrodło rozwiń