Mityczne 100% pokrycia W środowisku deweloperskim wciąż żywy jest mit 100% pokrycia kodu testami jednostkowymi. Co gorsza, mit ten ma się równie dobrze (a może nawet lepiej?) wśród decydentów (kierowników, dyrektorów itp.). Celem poniższej notki jest pokazanie, jak bardzo naiwne jest podejście "100% pokrycia". Popatrzmy na następujący trywialny kod:
Strona głównaUżytkownik
macko | użytkownik
Dzisiaj kolejna porcja nadrabiania zaległości z podstawowych podstaw(bo jak inaczej to idzie nazwać?), tym razem serializacja.
Architektura 5525 dni, 1 godzinę, 46 minut temu 152 źrodło rozwiń
Zapraszam na pierwszą część z serii screencastów dotyczących wykorzystania AJAXa w ASP.NET. Pierwsza część jest jednocześnie jedyną w pełni teoretyczną. Omawia historię powstania AJAXa oraz krótkie wprowadzenie, które pozwoli rozumieć działanie przykładów przedstawionych w kolejnych częściach. Zapraszam do oglądania i czekam na komentarze :)
Autor: Ponieważ ostatnio często w moim otoczeniu pojawiało się pytanie „Jak skleić wartości z jednej kolumny w ciąg znaków oddzielonych przecinkami” postanowiłem przedstawić jedną z najszybszych metod na zrealizowanie tego zadania (oczywiście nie jest ona pozbawiona wad).
Bazy danych i XML 5525 dni, 1 godzinę, 46 minut temu 122 źrodło rozwiń
Znasz się na oprogramowaniu Microsoft? Masz ochotę pokazać innym ile wiesz? To poszukaj na polskiej Wikipedii artykułów, do których mógłbyś dodać coś od siebie. Uzupełnij je, uaktualnij albo napisz od nowa. W pierwszym etapie konkursu liczy się ilość artykułów poprawionych przez jedną osobę.
Autor: W przedostatnim wpisie, poruszyłem temat napisania własnego walidatora do daty. Dziś napotkałem na podobny problem – walidacja kontrokli CheckBoxList pod kątem zaznaczenia przynajmniej jednej wartości. Jakieś było moje zaskoczenie ;-) gdy okazało się, że żadna z domyślnych kontrolek walidatorów nie potrafi tego niezmiernie skomplikowanego zadania wykonać ;-) Oczywiście można to załatwić banalnie: CustomValidator i odpowiednia prosta funkcja. Gdzie jednak ponowne wykorzystanie kodu – tak przec...
Architektura 5525 dni, 1 godzinę, 46 minut temu 111 źrodło rozwiń
Autor: Kilka dni temu powstał w mej głowie misterny plan opakowania DatePickera od jQuery we własną kontrolkę ASP.NET. Dość łatwo poszło (postaram się to opisać w kolejnym wpisie), jednak chciałem jednocześnie móc walidować wprowadzone dane po stronie klienta i serwera. Niezbędne więc okazało się napisanie własnego Validatora. Nie jest to zadanie zbyt trudne – przedstawię dziś sposób na jego realizację.
Dziś zaczniemy cytatem. Jak ktoś wie z czego to i kto to mówi to pogratulować dobrego gustu :) Czemu nie ma prądu? Bo u nas nie ma minusów, tylko same plusy... A czemu taki cytat? A no dlatego, że chciałem wykonać wydawałoby się banalną czynność wyświetlenia wartości double z '+' z przodu.
Architektura 5529 dni, 17 godzin, 39 minut temu 73 źrodło rozwiń
Dzisiejszy wpis to praktycznie dokończenie dwóch poprzednich, stanowiące jakieś ich uzupełnienie, lub też swojsko rzecz ujmując ‘dobicie’. Do zbadania na dziś przygotowałem klasy Timer i BackgroundWorker. Ta druga trochę nietypowo, ponieważ wykorzystana zostanie w ‘aplikacji’ konsolowej, a głównym(tak mi się zdaje) jej zastosowaniem są aplikacje okienkowe i puszczanie złożonych czasowo operacji w tle, by GUI nie zostało ‘zawieszone’. Timer(System.Threading) Tutaj prosto i przyjemnie: jeśli chcemy odpala...
Być może się komuś przyda. Ta darmowa biblioteka: http://www.carlosag.net/Tools/ExcelXmlWriter/ o nazwie CarlosAg Excel Xml Writer Library umożliwia tworzenie plików Excela w formacie XML (dokładniej jako: XML Spreadsheet). Nie wymaga ona zainstalowanego Excela. Wspiera formatowanie, wyrównania, formuły, tabele przestawne i inne rzeczy.
Zwykle kod kompiluje się i wykonuje build bezpośrednio ze środowiska IDE, czasami jednak zachodzi potrzeba, że chcemy wykonać build poza środowiskiem IDE, np. wykorzystując skrypty linii poleceń systemu Windows. Jak można to zrobić? Są przynajmniej trzy możliwości: kompilator CSC, MSBUILD lub Visual Studio wywołane z linii poleceń.
Krótka ciekawostka, pewnie znana większości: wrzucając do katalogu głównego aplikacji ASP.NET plik o nazwie app_offline.htm spowodujemy, że będzie on serwowany jako odpowiedź na wszystkie żądania do tej aplikacji.
Czy zauważyliście kiedyś nad startową procedurą aplikacji (main) atrybuty: [STAThread] i [MTAThread]? Od nich zależy w jakim trybie będzie działał wątek główny aplikacji: Single Threaded Apartment, czy Multi Threaded Apartment?
Architektura 5534 dni, 6 godzin, 13 minut temu 257 źrodło rozwiń
Samo XNA, nie oferuje nam klas pomocnych w obliczeniach związanych z fizyką. Co prawda istnieje możliwość wykrywania samych kolizji, ale to jak zachowają się obiekty po jej wykryciu, zależy już tylko od napisanego przez nas kodu. Chyba, że skorzystamy z gotowych bibliotek do tego służących. Na tapetę wziąłem najpopularniejszą XNA’ową bibliotekę OpenSource – JigLibX.Co można osiągnąć? Powołując się na filmy na stronie autorów, 2 przyk...
Wspomnę dzisiaj o dość dziwnej funkcji, która została dodana w wersji 3.0 języka C#. Polega ona na możliwości dodania nowych metod do istniejących klas bez zmiany ich definicji. Odbywa się to poprzez zdefiniowanie tych dodatkowych metod jako statycznych (w innych klasach) i użyciu specjalnej składni dla jej pierwszego parametru.
Architektura 5536 dni, 1 godzinę, 41 minut temu 114 źrodło rozwiń
Czy próbowaliście wytworzyć kiedyś element klasy XmlElement?...mmmhm... przy pomocy konstruktora się nie da, gdyż jest on protected internal. Cóż więc można zrobić? Odpowiedź jest prosta...
Bazy danych i XML 5536 dni, 1 godzinę, 41 minut temu 60 źrodło rozwiń
Autor: Jakiś czas temu opisywałem jak można przy pomocy platformy .NET utworzyć i zainstalować serwis w systemie Windows. W tamtym przypadku do instalacji bądź deinstalacji serwisów zostały wykorzystane odpowiednie klasy instalacyjne, które wykorzystane są podczas instalacji, bądź deisntalacji całego produktu. Zdarza się jednak, że nie zadziałają one jak należy (np. nie potrafią usunąć serwisu), czasami po prostu nie chcemy uruchamiać instalatora produktu by przetestować nasz serwis lub chcemy jako serwi...
Teraz możliwość zabawy z wersją Azure CTP została bardziej “upubliczniona”. Wystarczy zalogować się na swoje konto (lub je założyć jeśli się go nie posiada) na witrynie Connect.
Czym jest owy NDepend? To narzędzie dla .NET, którego autorem jest Patrick Smacchia. Służy ono do badania i raportowania złożoności oraz jakości tworzonego kodu. Na chwilę obecną posiada 82 metryki wyświetlające bardzo szczegółowe dane. Dodatkowo generator raportów sprawiają, że nawet “nieprogramista” może ocenić w jakiej kondycji jest dostarczony...