I think almost every .NET developer is familiar with INotifyPropertyChanged interface. Typical implementation of this interface looks more or less like that: public class NotifyPropertyBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged( Expression
Po co, na co i dlaczego? We wpisie o absurdach edukacji wspomniałem o książce “ostatni wykład”. Jej autor wspomina o podstawach. Jak bardzo są ważne. Jak wpływają na nasze dalsze życie zawodowe. Tak, jak nie można postawić domu, na nietrwałych fundamentach, tak nie można zostać dobrym programistom bez znajomości podstaw. Większość książek programistycznych zaczyna się od omówienia co to jest obiekt, polimorfizm i dziedziczenie. Na zagadnienia takie jak stos, sterta, szerokość szyny adresowej, architekt...
Druga część artykułu o połączeniu logiki aplikacji Windows Phone i Windows Store. Tym razem opis wstrzykiwania implementacji interfejsów łączących różnice między tymi dwoma platformami.
Mobile development 3986 dni, 3 godziny, 3 minuty temu 237 źrodło rozwiń
W jednym z projektów spotkałem się z problemem dotyczącym wygenerowanej klasy na podstawie .xsd. Po stworzeniu kodu odpowiedzialnego za serializację i jego uruchomieniu...
This article describes some of the pitfalls that one may encounter while working with string in a high frequency environment. Most notably it exposes some of the problems with string Intern Pool.
Sometimes when you write tests you want to check how the code behaves in different cases. I had already experienced that a couple of times before and I always used TestCase annotation available in nUnit library. It’s nice to know that nUnit offers an alternative approach as well...
Kryptografia – sztuka pisania szyfrem, zrozumiałym tylko dla wtajemniczonych – jest rozwijana od zarania dziejów... Niniejszy artykuł stanowi wprowadzenie do tematu, zapoznaje czytelnika z podstawowymi pojęciami związanymi z kryptografią.
MVC)MJLeave a comment Dzisiaj krótki wpis, ale wydaje mi się, że wart uwagi. W zeszłym tygodniu po raz pierwszy miałem do czynienia z dodatkiem do VS 2012 – Razor Generator. I mówiąc szczerze – jestem bardzo pozytywnie zaskoczony. W wielkim skrócie jest to rozszerzenie umożliwiające kompilowanie plików .cshtml. W praktyce wygląda to w ten sposób, że pod widokiem znajduje się klasa o nazwie Widok.generated.cs. Przy każdej zmianie w widoku, następuje automatyczna zmiana w kodzie tej klasy, przez co nie je...
Porównanie kilku grup programistów, z przymrużeniem oka ;)
Korzystamy z ASP.NET MVC, bindujemy model z widokiem, a w modelu mamy pole daty z określonym formatem. Problem pojawia się, gdy walidacja nie działa jak powinna...
Tym razem kilka słów o dosyć często pojawiającym się problemie, który miałem opisać wieki temu, ale inne wpisy jakoś zawsze okazywały się ciekawsze, ważniejsze i mniej udokumentowane. Przy okazji będę mógł zachęcić do zainteresowania się biblioteką procdumpext.dll, która wiele rzeczy bardzo usprawnia. Analizując zrzuty pamięci przygotowane na innym komputerze nietrudno trafić na sytuację, gdy środowisko uruchomieniowe różni się od naszego i wówczas może się okazać, że nie będziemy w stanie korzystać z m...
If there is software, there have to be a bug. FIM 2010 as nice platform for identity management projects is not free from bugs of course, we have to live with them, wait for fixes to come and sometimes get to know how to handle them. This one is the latter case.
Kilka tygodni temu, w jednym z wpisów, porównałem wydajność List z LinkedList. Przykład udowodnił, że dodawanie nowych elementów w LinkedList potrafi być nawet wolniejsze niż w przypadku List. Bardzo często, programiści myślą, że to LinkedList jest lepszy do dodawania nowych elementów, ponieważ łatwiej doczepić nowy wskaźnik niż alokować ponownie pamięć (też tak kiedyś uważałem). W przypadku List jest to jednak nie do końca prawda, ponieważ List
Sztuka programowania 3993 dni, 8 godzin, 22 minuty temu 172 źrodło rozwiń
IIFE albo po prostu iffy jest to funkcja samowykonująca się w JavaScript. Na pewno nie raz na nią natrafiliście albo nawet sami ją pisaliście:(function() { 'use strict'; }()); Prosta sprawa. Nic dodać nic ująć. Jest ona o tyle fajna, że w niej można zawrzeć dyrektywę 'use strict'; która znacząco poprawi jakość naszego kodu w JS – przynajmniej poprawi na tyle na ile będzie mogła ;) Nie zależnie od tego, natrafiłem dzisiaj na coś co mi się bardzo nie spodobało. Szablon funkcji IIFE stworzony prze...
Od czasu do czasu występuje potrzeba sprawdzenia, na czym uruchomiona jest nasza aplikacja – czy na urządzeniu, czy na emulatorze. W tym celu można zastosować następujący kod:if(Microsoft.Devices.Environment.DeviceType== DeviceType.Emulator){ MessageBox.Show("Application has been started in emulator.");} Dzięki takiemu sprawdzeniu możemy przygotować ustawienia dla aplikacji w trak...
Mobile development 3993 dni, 8 godzin, 22 minuty temu 83 źrodło rozwiń
Wiele aplikacji wymaga generowanie dokumentów PDF – i dobrze, bo są fajne. Gdy jednak programista rzucony zostaje w całe wzburzone morze możliwych do zastosowania rozwiązań, bo nie jest już tak wesoło. Kiedyś było prosto: brało się iTextSharp i wsio. Jednak od paru lat (?) licencja tego komponentu się zmieniła, i ja w sumie sam nie wiem kiedy można a kiedy nie można go używać oraz ile to kosztuje. Z niego korzystają inne dostępne rozwiązania,...
Wyszukiwanie pełnotekstowe, to mechanizm wydajnego przeszukiwania kolumn o charakterze tekstowym. W tym celu zakładany jest specjalny indeks na tabeli, która ma zostać przeszukana. Zapytania wykonywane na takim indeksie pozwalają dokonać językowego przeszukiwania opartego na regułach określonego języka. Zwrócone rezultaty, to obiekty zawierające przynajmniej jedno dopasowanie (tzw. hit). P...
Bazy danych i XML 3994 dni, 9 godzin, 40 minut temu 212 źrodło rozwiń
Jednym zdaniem NCrunch to narzędzie do automatycznego uruchamiania testów jednostkowych w Visual Studio. Pisałem już o NCrunch-u ale o tak świetnym dodatku warto napisać jeszcze raz i to z dwóch powodów. Po ostatniej prezentacji na ITAD na bielskiej ATH kilka osób pytało mnie o zielony pasek więc w ramach wyjaśnienia taki zielony pasek to wła...
Czasami można zaobserwować następujący kod:int[] firstArray = Enumerable.Range(1, 1000).ToArray(); int[] secondArray = Enumerable.Range(1, 1000).ToArray(); foreach (int item in firstArray) { Process(item); } foreach (int item in secondArray) { Process(item); } Mam na myśli sytuacje kiedy mamy kilka osobnych tablic, ale przetwarzanie ich jest takie same lub bardzo podobne. Inny przykład to przetworzenie tablicy, a potem pojedynczego elementu pochodzącego z innego źródła...
Sztuka programowania 3999 dni, 21 godzin, 49 minut temu 211 źrodło rozwiń
Na początek roku post minimalistyczny - kilka linków, które gnieżdziły się w mojej głowie ostatnio. Co dalej z Windows, Windows Phone, C#, Visual Studio? Odpowiedź już za niecałe 3 miesiące na BUILD 2014! Pierwsze przecieki o Windows 8.1 Update 1, który ma się ukazać w marcu tuż przed BUILD (choć ciekawszy wydaje się bardziej mglisty “Threshold”). Interesujące rozważania na temat języków programowania prosto z Microsoft. Sienna - genialny przykład minimalistycznej roboczej aplikacji Windows Store, takie...