Opublikowano Co to jest CodeCoverage? Jest to pokrycie kolejnych linii kodu testami jednostkowymi. Metryka ta pokazuje ile procent linijek kodu ma przynajmniej jeden test jednostkowy, który ją wykonuje. Sprawa wydaje się prosta, tyle tylko, że w świecie .neta kod kompiluje się do… no właśnie do kodu pośredniego. Dopiero ten kod pośredni jest kompilowany w razie potrzeby do kodu maszynowego. Co więcej o ile nie wprowadzamy zmian do kodu źródłowego, to źródła się nie zmieniają ale już kod kompilowany może...
Kompilacja to właściwie nic innego jak tłumaczenie z jednego języka na drugi. W przypadku C# (a dokładniej .net-a) to tłumaczenie odbywa się dwa razy. Raz z języka czytelnego dla kompilatorów aminokwasowych (c#) na MSIL czyli na taki w dużym uproszczeniu zarządzalny asembler (zrozumiały przez rzadko którego białkowca) a drugi raz z owego MSIL do takiego już prawdziwego kodu maszynowego, który jest zrozumiały dla krzemiaków. Każdy program w C# może mieć praktycznie nieskończenie wiele wers...
Opublikowano W zeszłym miesiącu pytałem Was o preferencje jeśli chodzi o białe znaki (whitespaces) w swoim ulubionym IDE. Pora rzucić okiem na wyniki i tak:Blisko 200 osób oddało swój głos – nie spodziewałem się takiego dużego odzewu, cieszy mnie to bardzo (cieszy odzew a nie zdziwienie)
W WPF Adorner to element pozwalający dołączać do innych kontrolek jakieś efekty graficzne. Na przykład jeśli użytkownik wpiszę nieprawidłową wartość w pole edycyjne, wtedy Adorner może dołączyć do takiego pola ikonkę ostrzegając, że wpisano niepoprawną wartość. Adorner zatem doczepiany jest do jakieś kontrolki a rysowany jest na tzw. AdornerLayer. Spróbujmy zaimplementować adroner, który po doczepieniu do kontrolki pozwala zmienić jej rozmiar. Zacznijmy od zadeklarowania naszego adorner’a:publicclass Re...
W dwóch poprzednich wpisach rozważałem odczyt i zapis danych, które były odzwierciedleniem (obrazem) pamięci w tzw. programach Win32 (czyli pracujących w środowisku 32 bitowych Windows, z bezpośrednim, niezarządzanym dostępem do pamięci). Wypadałoby postawić „kropkę nad i” tj. wspomnieć jeszcze o klasie Buffer oraz opisać związane z nią i klasami Encoding i BitConverter niuanse, które, gdybym umieścił je w poprzednich wpisach, niepotrzebne utrudniły by lekturę ...
Sztuka programowania 4488 dni, 2 godziny, 10 minut temu 88 źrodło rozwiń
When working with applications that utilize lots of threads and those threads arent particularry long running we can stumble upon a problem that we may lose most of the processing time for thread context switches, so it would be desirable to do all of the processing on a limited number of threads, usualy this can be done using a queue of delegates that each thread will process, but sometimes we cannot have that and still w...
Myślałem trochę nad tematami na następne wpisy i sądzę, że jest sporo tematów, nad którymi wypada się pochylić, zarówno tematów dla DBA/DEV, jak i tematów z zakresu Business Intelligence. Pierwszy temat wpadł mi do głowy przy okazji przygotowywania prezentacji na 61. spotkanie warszawskiego oddziału PLSSUG (Polish SQL Server User Group). Wspólnie z Małgosią Borzęcką zaprezentowałem wprowadzenie do indeksów columnstore. W zasadzie chyba używając słowa “wprowadzenie” dokonałem nadużycia :-) Sesja miała co...
Bazy danych i XML 4489 dni, 8 godzin, 54 minuty temu 90 źrodło rozwiń
Jestem zafascynowany framworkiem PRISM, czytam, oglądam i piszę jakieś przykładowe aplikacje z wykorzystaniem tej biblioteki. Prism ułatwia tworzenia modularnych i dynamicznych systemów, dostarcza mechanizm do rozwiązywania zależności (Unity Container), umożliwia dynamiczną zmianę zachowania aplikacji poprzez wczytywanie dodatkowych modułów z katalogu lub aktualizację pliku konfiguracyjnego aplikacji - to tylko część z błyszczących bajerów. Prism wspiera Silverlight, WPF czy Windows Phone 7 oraz mocno ...
Architektura 4489 dni, 21 godzin, 56 minut temu 397 źrodło rozwiń
Ostatnio było dużo o wielowątkowości więc może zmieńmy temat i zajmijmy się przez dwa posty tematyką WPF. Celem dzisiejszego wpisu jest wyjaśnienie klasy VisualCollection, która będzie niezbędna aby omówić tzw. Adorner. W większości przypadków, XAML w zupełności wystarcza jeśli chodzi o tworzenie interfejsu użytkownika. W WPF istnieje jednak drugie podejście pozwalające rysować elementy i kontrolki. Można manualnie stworzyć kolekcje VisualCollection oraz dodać do niej wszelkie obiekty. Na przykład:public...
Suspended Dzisiaj opiszę czym jest suspended. Pod tym tajemniczym wyrazem kryje się stan aplikacji która nie jest na pierwszym planie czyli użytkownik aktualnie z niej nie korzysta. Podobny stan posiadają aplikacje pisane na smartfony z Windows Phone 7. Po co wspominam o tym stanie? Ponieważ gdy aplikacja znajduje się w stanie zamrożenia (suspended) może nastąpić sytuacja, że system bez pytania zamknie aplikację a użytkownik gdy będzie chciał powrócić do niej z powrotem zdziwi się, że uruchamia si...
W dzisiejszym wpisie pokażę w jaki sposób dla danego obiektu WPF wygenerować kod XAML oraz jak taki kod wczytać dynamicznie podczas działania programu. W tym celu użyję klas XamlWriter i XamlReader.
I’m a big fan of using conventions when developing applications. I blogged about it in the past (here, here and later here). I also gave a talk about my experience with this approach and how I currently use it at NDC last week (slides are available here, video is here). One problem I faced when trying to build convention validation tests was lack of simple API that would allow me to build the validation rules for my tests. I built a spike of such library (call...
Sztuka programowania 4491 dni, 9 godzin, 33 minuty temu 80 źrodło rozwiń
W dzisiejszym poście kolejna thread-safe kolekcja – słownik danych. Jeśli musimy modyfikować słownik z kilku wątków naraz wtedy ConcurrentDictionary stanowi doskonały wybór. W przypadku gdy chcemy raz uzupełnić słownik a potem tylko czytać z niego dane, wtedy oczywiście nie ma potrzeby wykorzystywania ConcurrentDictionary. Zacznijmy od spisu najważniejszych metod:TryAdd – dodawanie nowego elementu. TryUpdate – aktualizacja wpisu. TryRemove – usuwanie klucza i wartości. AddOrUpdate – ciekawy twór. Za jedn...
Wraz z najnowszą wersją SQL Server firma Microsoft udostępniła darmowy dodatek do Visual Studio 2010 pod nazwą SQL Server Data Tools (SSDT). Z kolei ten produkt niedawno doczekał się rozszerzenia: SQL Server Data Tools Power Tools (SSDT Power Tools). Głównym zadaniem wymienionych narzędzi jest umożliwienie wygodnej pracy z bazami danych SQL Server z poziomu Visual Studio.
Link do wywiadu z jednym z braci, który stworzyli grę Taptitude (jest to jedna z gier, której udało się odnieść duży sukces na Marketplacie)
Mobile development 4495 dni, 8 godzin, 10 minut temu 263 źrodło rozwiń
Dziś kolejny post o kolekcjach, które mogą być używanie swobodnie w środowisku współbieżnym. Tak jak ConcurrentBag, obiekty przedstawione w tym poście również są mocno zoptymalizowane. ConcurrentQueue to po prostu kolejka.
Programowanie rozproszone 4496 dni, 9 godzin, 28 minut temu 121 źrodło rozwiń
Jeśli jeszcze nie jesteś przekonany do potrzeby profesjonalizmu to najwyższa pora zapoznać się z poniższym wywiadem z Robertem C. Martinem. A jeśli nie wiesz kim jest Robert C. Martin to najwyższa pora zapoznać się z jego opiniami na temat programowania, TDD i profesjonalizmu w programowaniu.
Tiles Do tej pory cały czas pisałem o tematach cięższych wymagających więcej uwagi dlatego dziś postanowiłem opisać krótki i przyjemny temat. A jest to temat kafelka aplikacji. Spotykam się u wielu osób z podejściem iż kafelek aplikacji traktują po macoszemu to znaczy wstawiają obrazek który mniej lub bardziej pasuje do aplikacji. A trzeba pamiętać że kafelek aplikacji jest pierwszą rzeczą jaką widzi użytkownik i zarazem jedyną rzeczą jaka zachęci do wejścia w szczegóły aplikacji. Tak więc trzeba ...
Trochę wybranych informacji z tematyki tandemu ASP.NET MVC i HTML5. ASP.NET MVC do udostępniania danych zamiast WCF, jeszcze łatwiej używać danych JSON z poziomu klienta HTML/JSwłasny dependency resolver (np. oparty o Unity.MVC3 zapewniający odpowiednie disposowanie obiektów związanych z aplikacją web) //kontroler do udostępniania danych w JSON, nie dla widoku HTML/CSS public class DataServiceController: Controller { IAppointmentRepository _appointmentRepository; //zasilanie z IoC public DataServi...
W SQL Server 2012 pojawiło się kilka obiektów systemowych pozwalających na uzyskanie szczegółowych informacji odnośnie struktury danych zwracanych przez określone zapytanie, bez konieczności jego uruchamiania.
Bazy danych i XML 4498 dni, 1 godzinę, 55 minut temu 218 źrodło rozwiń