Krótko o tym jak i kiedy korzystać z Creation methods.
Sztuka programowania 3571 dni, 12 godzin, 57 minut temu 383 źrodło rozwiń
W poprzednim wpisie przedstawiłem podstawy macierzy DSM. Dzisiaj postaram się wyjaśnić, jakie znaczenie ma to w praktyce. Sam fakt, że macierz pokazuje referencje między różnymi elementami systemu nie jest zbyt ciekawy. Pierwszą własność, jaką w łatwy sposób możemy odczytać z DSM jest spójność (cohesion). Dokładna wartość spójności zależy od konkretnej metryki. Ogólnie pisząc, wysoka spójność w systemie oznacza, że elementy w nim są bardzo od siebie zależne. Przyjrzyjmy się następującemu przykładowi (źr...
Sztuka programowania 3571 dni, 12 godzin, 57 minut temu 101 źrodło rozwiń
Opublikowano Do 22 kwietnia JetBrains oferuje zniżkę na swoje produkty w wersji personal. Więcej informacji tutaj: http://www.jetbrains.com/specials/ Tutaj cenniczek:ReSharper (34% OFF)IntelliJ IDEA (50% OFF)WebStorm (41% OFF)AppCode (40% OFF)PyCharm (40% OFF)PhpStorm (40% OFF)RubyMine (40% OFF)dotTrace Performance (35% OFF)dotCover (40% OFF) To też może Cię zainteresować:JetBrains szalejeWebcast z Johnem SkeetemWarsztat czyli moje narzędzia pracyWarsztat czyli moje narzędzia pracy–te używane spor...
Dziś krótki post informacyjny o zbliżającej się wielkimi krokami konferencji. Już niebawem odbędzie się konferencja ...
W dzisiejszym wpisie chciałbym zaprezentować macierz zależności i co można z niej odczytać. Pominiemy aspekty matematyczne – ze względu, że jest to macierz istnieje wiele faktów matematycznych ale myślę, że nie są one najważniejsze dla programisty. Załóżmy, że mamy prostą aplikację składającą się z klienta, warstwy usług, biznesowej oraz DAL. Macierz możemy wygenerować w nDepend – o tym programie kiedyś już pisałem. Umożliwia przede wszystkim liczenie metryk kodu i monitorowanie jakości kodu. Macierz dla...
Sztuka programowania 3572 dni, 11 godzin, 35 minut temu 115 źrodło rozwiń
“Masowa” i “SmtpClient” w jednym zdaniu? Nie, to nie jest żart. Każdy, kto choć raz musiał wysyłać serię maili z poziomu kodu C# pomyśli, że zwariowałem. Blokowanie wątku, cała gama wyjątków, które może rzucić metoda Send(), czy obsługa stanu aplikacji po takim błędzie. To ważniejsze atrakcje, jakie możemy napotkać korzystając z tej klasy. Jest na to jedna prosta metoda. Wróć. Właściwość… DeliveryMethod.
Sztuka programowania 3574 dni, 4 godziny, 39 minut temu 224 źrodło rozwiń
Właśnie został opublikowany kolejny mój artykuł, tym razem o GC. Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/garbage-collector-cz-1
Sztuka programowania 3576 dni, 9 godzin, 14 minut temu 217 źrodło rozwiń
Już od jakiegoś czasu nie "postowałem" na moim blogu... Na usprawiedliwienie napiszę, że po godzinach pracuję obecnie nad własnym czytnikiem RSS online (wiadomo, google reader niebawem zniknie, a jak na razie nic innego nie przypadło mi do gustu, tak że postanowiłem stworzyć coś własnego... zobaczymy co z tego wyjdzie...). W każdym bądź razie czas nadrobić zaległości, a prace nad czytnikiem również potrafią dostarczyć trochę tematów do opisania ;) Jednym z nich tytułowy problem sprawdzania jakości wprowa...
Chwytliwy tytuł, nie ma co, no nie?:) Dobra wiadomość jest taka, że jest on po części prawdziwy! Co prawda nie ma jeszcze sposobu na wpięcie R# w Sublime Text czy dodanie nawigacji R# do notatnika (heh, to by było coś!), ale część funkcjonalności tego doskonałego narzędzia wreszcie będzie można użyć poza Visualem (co mnie raduje niezmiernie). W nowej wersji R# poza VS można wyciągnąć statyczną analizę kodu, wpinając ją np. proces...
Opublikowano Nie zdążyłem dotrzeć przed oblicze komputera na czas aby obejrzeć JetBrainsowy webinar z Johnem Skeetem Big thanks to @jonskeet for the Webinar (and the private class named var). Thank you to everyone that attending. Recording available soon. — JetBrains ReSharper (@resharper) …no właśnie, zaintrygowało mnie “private class named var” Napisałem taki kawałek kodu: public class VarHacking{ private class var{ public string Message { get; set; } } public v...
Sztuka programowania 3576 dni, 9 godzin, 14 minut temu 237 źrodło rozwiń
Co to jest pingback? Jest to rodzaj notyfikacji dotyczącej umieszczenia linku do danego źródła w tekście. Notyfikację tę my możemy zarówno wysłać jak i otrzymać. Dziś napiszę jak my możemy odebrać taki pingback i co musi zostać spełnione, zaś następnym razem opisze sposób wysyłania takiej notyfikacji. To co będziemy potrzebować (choć nie jest to konieczne) to biblioteka XML-RPC.NET – ułatwi nam ona znacząco implementację – gdyż komunikacja odbywa się poprzez XML-RPC, oczywiście dla hardcorów istni...
From few days I’m official member of codeguru redaction. I have hope the cooperation will be delightful. But now time is for rebellion!
Jeśli jest źle, i wiadomo że jest źle, to jest dobrze. Bo może być tylko lepiej. I czas na zmiany. Najważniejsze, aby być zadowolonym z siebie. Czerpać radość i satysfakcję z codziennych obowiązków i nie czuć się “gorszym” względem otoczenia. Wykorzystywać ogromne możliwości rzucane przez naszą profesję. Kilka lat temu miałem niemały kryzys odnośnie swojej roli w z...
W .NET do synchronizacji dostępnych jest wiele mechanizmów. W dzisiejszym wpisie chciałbym przedstawić różnice między semaforem a muteksem. Na pierwszy rzut oka, wyglądają one identycznie. Przykład:class Program { staticvoid Main(string[] args) { Mutex mutex =new Mutex(); mutex.WaitOne(); Console.WriteLine("Sekcja krytyczna tutaj"); mutex.ReleaseMutex(); Semaphore semaphore=new Semaphore(1,1); semaphore.WaitOne(); Console.WriteLine("Sekcja krytyczn...
Sztuka programowania 3578 dni, 11 godzin, 34 minuty temu 187 źrodło rozwiń
O klasie ManualResetEvent pisałem na blogu już wielokrotnie. Prosty przykład:internalstaticclass Sample { privatestaticreadonly ManualResetEvent _manualEvent=new ManualResetEvent(false); publicstaticvoid Main() { Task.Factory.StartNew(Run); _manualEvent.WaitOne(); Console.WriteLine("Exiting..."); } privatestaticvoid Run() { Thread.Sleep(1000); Console.WriteLine("Run"); _manualEvent.Set(); } } Zastosowanie ManualResetEvent oraz AutoResetE...
Sztuka programowania 3580 dni, 12 godzin, 26 minut temu 118 źrodło rozwiń
Opublikowano Wiadomość z ostatnie chwili, dosłownie jeszcze gorąca – prosto z Redmond. Właśnie wyszedł Update 2 dla Visual Studio 2012. Zmiany zaszły w 4 głównych obszarach: Agile planing – teraz wszystko musi być agile więc poprawili TFS-a w tym zakresie – co dokładnie to nie sprawdzałem bo nie mam już przyjemności pracy z TFS-em Jakość – czyli zmiany w Test Managerze, code coverage, asp.net manual testing, “significant” polepszenia w zakresie testowania dla SharePointa Windows Store dev – tutaj ...
Wielowątkowość jest bardzo skomplikowanym tematem. W celu napisania prostego kodu wystarczy znać naprawdę niewiele konstrukcji. Sytuacja znaczącą komplikuje się gdy mamy wysokie wymagania odnoście pamięci czy CPU. RegisterWaitForSingleObject jest metodą dość mało popularną a przydatną gdy chcemy oszczędzić trochę pamięci.Wyobraźmy sobie, że mamy kod, który chcemy wykonać wyłącznie w momencie zasygnalizowania przez WaitHandle (AutoResetEvent, Semafor itp.). Jeśli operacja wewnątrz zajmuje trochę czasu w...
Sztuka programowania 3582 dni, 10 godzin, 7 minut temu 120 źrodło rozwiń
Miałem ostatnio okazję implementować własny provider claimów do SharePointa. Jak prawie całe API SharePointa, ta kupa kupy woła o pomstę do nieba. Postanowiłem wykorzystać okazję i zaprezentować jak to złe API mogłoby wyglądać, gdyby ktoś w teamie odpowiedzialnym za “dev-experience” tego kolosa miał trochę oleju w głowie. Ale najpierw kilka słów wprowadzenia, czyli przedstawienie problemu.
Prosty wzorzec, jak tworzyć kontekst aplikacji z obiektami ładującymi się tylko w razie potrzeby.
Sztuka programowania 3584 dni, 11 godzin, 39 minut temu 296 źrodło rozwiń
.NET Micro Framework to framework z rodziny .NET służący do oprogramowywania systemów typu embedded z ograniczonymi zasobami pamięci. Minimalne wymagania to 256 kB pamięci flash oraz 64 kB pamięci RAM. .NET Micro to taki młodszy brat .NET Framework z bardzo okrojonym BCL, WPF i WCF (wersja 4.x). Jeżeli programowałeś wcześniej w “pełnym dotnecie”, przesiadka na Micro może okazać się szokiem. Niby to ten sam C#, jednak braki w BCL (wynikające z ograniczeń platformy sprzętowej) szybko dają się we znaki.
Sztuka programowania 3584 dni, 11 godzin, 39 minut temu 128 źrodło rozwiń