Podobnych zestawień można znaleźć w sieci całe mnóstwo. Jednakowoż dorzucę swoje 11 kopiejek w postaci 11 punktów, o których dowiadywałem się z czasem i częstokroć niespodziewanie. Dlaczego 11? Bo nie mogłem się zdecydować na wykreślenie któregokolwiek z nich z listy. Poza tym Rammstein na każdym al...
[More]
Lambda expressions - brzmi groźnie. To właśnie tym elementem języka C# 3.0 straszono programistów (a raczej programiści straszyli się nawzajem) jeszcze dobre kilkanaście miesięcy przed premierą .NET 3.5. A bo to "funkcyjne", a bo to "nowe", "nieznane" i trudne do pojęcia. Jak za chwilę zobaczymy - n...
[More]
Właściwości (properties) to przyjemny mechanizm do zapewniania enkapsulacji, czyli jednej z najważniejszych cech programowania obiektowego. Przyjemniejszy niż zwykłe metody zwane "getters & setters". Zwrócę jednak uwagę na ciekawy fakt (zapewne znany większości czytelników, ale...). Popatrzmy na...
[More]
Właśnie włączyłem mozliwość oceniania postów na blogu - to pozwoli mi podążać w odpowiednim kierunku i wybierać najbardziej pożądane tematy. Let the rating begin!
Czy wiemy co to "abstract class"? WIEMY! A wiemy co to "sealed class"? WIEMY! Teoretycznie - dwa przeciwieństwa. Jedno zabrania tworzenia instancji klasy, drugie - zabrania dziedziczenia z klasy.Czy spotkał się ktoś kiedyś z klasą zadeklarowaną w ten sposób? 1: abstract sealed class AbstractSealed...
[More]
Oto praktyczny przykład użycia wyrażeń lambda i metod rozszerzających, który lekko i prymitywnie "ociera się" o programowanie aspektowe i imituje jego podstawowe założenia:Najpierw tworzymy klasę zawierającą roszerzenia dla windowsowych formatek (ewentualnie naszej klasy bazowej): 1: public static...
[More]
W dobie tak potężnych narzędzi jak Visual Studio programiści często zdają się całkowicie na ich funkcjonalność. Jedną z (wspaniałych zresztą) cech współczesnych IDE jest Intellisense. Czy wyobraża ktoś sobie pisanie kodu bez podpowiedzi? Zobaczmy jednak, że nie zawsze można na tym elemencie polegać ...
[More]
Czasami zdarza się, że jesteśmy świadomi istnienia jakiejś funkcjonalności, jednak wredny twórca biblioteki bezwstydnie ją przed nami ukrył. A my ją odkryliśmy na przykład przy pomocy Reflectora.Zasymulujmy taką sytuację. Wyobraźmy sobie bibliotekę z klasą Jarek oznaczoną jako internal. Klasa Jarek ...
[More]
6 marca w Warszawie miała miejsce konferencja z cyklu Heroes Happen Here. Okazja: premiera trzech produktów Microsoft (Visual Studio 2008, Windows Server 2008 oraz Sql Server 2008). Całość składała się z dziesięciu dużych sesji podzielonych na dwie grupy: dev i itpro. Wysłuchałem wszystkich pięciu w...
[More]
Zdarza się, że mamy w projekcie grupę plików powiązanych ze sobą logicznie. Na przykład - jeden wygenerowany automatycznie i drugi uzupełniający go własnoręcznie napisanym kodem. Przykładem "z życia" są tu klasy form z .NET, gdzie to Visual Studio standardowo pokazuje swoją ciekawą funkcjonalność "z...
[More]
Wraz z pojawianiem się kolejnych wersji .NET do świata programistów wchodziło coraz większe zamieszanie. Co oznacza każdy następny numerek, jakie zmiany wnosi, jak się owe zmiany mają do poprzedników? Przykładowy fakt, że piszemy program używając Visual Studio 2008 w języku C# 3.0 i korzystając jedn...
[More]