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 3424 dni, 9 godzin, 30 minut temu 171 ź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 3424 dni, 9 godzin, 30 minut temu 81 ź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 3425 dni, 10 godzin, 48 minut temu 209 ź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 3430 dni, 22 godziny, 56 minut temu 208 ź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...
W trakcie mojej niedawnej prezentacji poświęconej technologii in-memory OLTP w systemie SQL Server 2014 padło pytanie (w pełni zasadne), czy w związku z wprowadzeniem na potrzeby definiowania tabel in-memory możliwości definiowania indeksów inline w składni polecenia CREATE TABLE podobne definiowanie indeksów będzie możliwe dla tradycyjnych tabel. Okazuje się, że tak. W dokumentacji SQL Server 2014 w części poświęconej nowościom w silniku bazodanowym została wymieniona specyfikacja indeks...
Bazy danych i XML 3430 dni, 22 godziny, 56 minut temu 138 źrodło rozwiń
Kiedyś pisałem o modyfikatorze sealed i dlaczego warto go używać jeśli chodzi o kwestie dobrych praktyk. Podobne mam zdanie co do modyfikatora virtual – używam wyłącznie jak mam takie wymagania. Zawsze zaczynam od najbardziej restrykcyjnych modyfikatorów. Klasy deklaruję jako sealed internal, a metody jako private. Nie zaznaczam metod jako virtual “na zapas”, ponieważ skoro nie są one zaprojektowane pod tym kątem to może przynieść to więcej kłopotów niż korzyści. Analogiczne zasady stosuje się np. w bezp...
Sztuka programowania 3430 dni, 22 godziny, 56 minut temu 261 źrodło rozwiń
O IntelliTrace pisałem już wielokrotnie. Do tej pory nie wyjaśniłem jednak, że chociaż IntelliTrace nazywamy debugger'em historycznym to w rzeczywistości IntelliTrace jest profilerem. Dokładniej mówiąc jednym z komponentów składowych IntellITrace jest niezarządzana implementacja interfejsu ICorProfiler. Profiler ten komunikuje się z zarządzaną częścią IntelliTrace, czyli z programem IntellITrace.exe. IntellITrace.exe jest natomiast używane przez Visual Studio...
Ostatnio intensywnie pracuję w .NET Micro Framework. Na tyle intensywnie, że pokusiłem się o stworzenie emulatora do urządzenia, dla którego piszę oprogramowanie. Przykładowy emulator znalazłem w katalogu przykładów dołączonych do .NET Micro Framework, zaś wiedzę uzupełniłem lekturą rozdziału poświęconego emulacji z tej książki. Emulator ma postać aplikacji, której klasa Program dziedziczy po klasie Emulator z Microsoft.SPOT.Emulator. Dodatkowo należy stworzyć odpowiedni plik konfiguracyjny opisujący em...
If you work on small and relatively simple projects (in terms of number of components) you may not encounter this limitation. But in any non trivial ‘line of business’ application it is very likely that sooner or later you will come across this troublesome problem: Visual Studio refuses to open a project when the length of its (or any of its references) file system path is longer than 260 characters.