Ostatnio uruchamiając synchronizację na jednym z agentów otrzymałem następujący błąd dotyczący własnego rozszerzenia: The management agent failed on run profile. The run step stopped because a required rules extension „Demo.FIM.ActiveDirectory.dll” could not be loaded. Po upewnieniu się, że wspomniana biblioteka znajduje się w katalogu Extensions zajrzałem do loga systemowego. Tam opis błędu był znacznie bardziej rozbudowany i wyglądał tak:
Sztuka programowania 3504 dni, 12 godzin, 35 minut temu 100 źrodło rozwiń
W dzisiejszym poście pokażę bibliotekę Noda Time. Generalnie jest ona stworzona, aby zastąpić DateTime, który często powoduje problemy. Dzisiaj jednak, chciałbym pokazać Noda Time na przykładzie testów jednostkowym, bo to jest miejsce, gdzie DateTime po prostu nie nadaje się do użycia (przynajmniej bezpośrednio).
Sztuka programowania 3504 dni, 12 godzin, 35 minut temu 148 źrodło rozwiń
Już od jakiegoś czasu dość aktywnie (choć z przerwami) udzielam się na StackOverflow wokół tagów .NET/C#. Pomyślałem, że przekroczenie okrągłych 10k punktów jest dobrą okazją do spisania swoich różnorakich przemyśleń na temat tego serwisu.
Największa zaleta mikro-serwisów, a mianowicie pojedyncza odpowiedzialność, często bywa również problemem, a raczej wyzwaniem. Załóżmy, że nasz system ma następujący mikro-usługi:CustomerService – podstawowe informacje o klientach AddressService – wyszukiwarka adresów CreditCardDetails – dane o kartach Nie chce wymieniać tutaj długiej listy, ale wyobraźmy sobie...
Sztuka programowania 3508 dni, 22 godziny, 22 minuty temu 412 źrodło rozwiń
Czasami zachodzi potrzeba ponownego wykonania jakiegoś kodu, w przypadku np. wyrzucenia błędu. Można samemu zaimplementować to za pomocą np. pętli, kontynuować daną operację w kolejnych iteracjach. Problem w tym, że taki mechanizm można dość znacząco rozbudowywać. Zwykle, chcemy poczekać przed następną iteracją ponieważ szanse, że ponowna próba, natychmiast po pierwszej próbie zakończy się sukcesem jest niska. Ponadto, zdefiniowanie “niepowodzenia” też jest dość skomplikowane. Polly to mała, ale dość ...
Ale o czym dzisiaj, dzisiaj o obcisłości po angielsku w programowaniu. Słowo tight będzie jednym z bohaterów wpisu. A nawet tight coupling, czyli coś mocno wiążącego. Co tak mocno wiąże w programowaniu? Moim zdanie new jest temu winny. Wiąże bowiem ono ze sobą klienta, klasę którą korzysta z new aby zaspokoić swoje potrzeby, oraz dostarczyciela usługi, czyli klasę, która jest w stanie zaspokoić tę (tą) potrzebę.
Sztuka programowania 3516 dni, 11 godzin, 51 minut temu 545 źrodło rozwiń
Z życia wzięta historia .NETowca, który po przeprowadzce zaczął nowe życie z MSSQL. Ku pokrzepieniu serc, że jest jeszcze nadzieja. A SSDT może pomóc ją urzeczywistnić.
Od jakiegoś czasu wzorzec “microservices” jest popularny w wielu firmach. Szczegółowe informacje znajdują się na blogu Martin’a Fowler’a, aczkolwiek na blogu chciałbym naszkicować koncepcję. Pomysł nie jest nowy, jednak pewne usystematyzowanie moim zdaniem ma sens. Dla mnie osobiście, to nic innego jak przestrzeganie zasady “Single rensponsibility” na poziomie usług. Wzorzec ma zastosowanie w systemach złożonych, SOA, a nie w prostych aplikacjach klient-serwer. Skrajnie zła sytuacja, to taka, w które...
Architektura 3521 dni, 9 godzin, 56 minut temu 672 źrodło rozwiń
Dzisiaj chciałbym pokazać Swagger, doskonałe narzędzie służące do dokumentacji REST API. Swagger, korzysta z plików JSON, którymi można opisać nasze API. W przypadku RESTful api m.in. możemy określić:Nazwę zasobuTyp zwracanych danychOpis obiektówWersję APIZwracane kody statusu HTTPParametry (np. query lub HTTP body)HTTP verbs (PUT, GET, POST etc)
W .net ASP.MVC są różne mechanizmy. Są też takie, które umożliwiają zbadanie argumentów przesłanych do akcji, jak i argumentów oczekiwanych w akcji. I właśnie o nich dzisiaj. Można je wykorzystywać na dobry i zły sposób, jak każde narzędzie. Najpierw mały pokaz a potem filozofowanie...
Sztuka programowania 3522 dni, 12 godzin, 54 minuty temu 214 źrodło rozwiń
OObsługa błędów nigdy nie była łatwym zadaniem, ale w większości przypadków zawsze wiedziałem z czego mogę skorzystać. Myślałem że z ASP.NET MVC będzie podobnie, a może nawet lepiej (w końcu jest to dosyć dobrze przemyślana platforma, co wielokrotnie już podkreślałem na blogu) i po części tak jest w istocie - mamy tu wręcz nadmiar możliwości...
Sztuka programowania 3524 dni, 13 godzin, 2 minuty temu 398 źrodło rozwiń
W ostatnim temacie cyklu poświęconego usłudze Azure Service Bus chciałbym przedstawić bardziej rozbudowane scenariusze pracy z wiadomościami takie jak: obsługa pod-kolejek DeadLetter, opóźnione przetwarzanie, wykrywanie zdublowanych wiadomości, harmonogram dostarczania wiadomości, transakcje przy wysyłaniu i odbieraniu wielu wiadomości, sesje oraz praca w modelu request-response.
Dobry programista zawsze będzie się starał pisać czytelny kod. Kluczem do sukcesu jest w tym przypadku ciągła refaktoryzacja wsparta wzorcami projektowymi. Wzorce projektowe w wielu przypadkach pozwalają na zapewnienie elastycznych i skalowalnych rozwiązań, a ponadto sprzyjają w tworzeniu unikalnego kodu. Oczywiście nieodpowiednio użyte mogą również zaszkodzić - tak jak inne rzeczy w naszym codziennym życiu;-)
Sztuka programowania 3533 dni, 19 godzin, 29 minut temu 359 źrodło rozwiń
Ot taka ciekawostko z automappera, kto zna to niech czyta dalej, kto nie zna może zapoznać sie z...
Jeśli ktoś spytałby mnie o element który kojarzy mi się z programowaniem niezależnie od zastosowanego języka, to odpowiedziałbym prosto - instrukcje warunkowe. Wszelkiej maści IFy i switche pojawiają się w praktycznie każdym szanującym się języku programowania i tak naprawdę trudno sobie wyobrazić jakąkolwiek sensowną aplikację, która by z nich nie korzystała. I choć w teorii dają one wiele dobrego, to w praktyce, przy nieodpowiednim użyciu, mogą w sposób znaczący obniżyć czytelność tworzonego kodu.
Sztuka programowania 3539 dni, 3 godziny, 4 minuty temu 447 źrodło rozwiń
Authentication and Authorization Authentication and authorization are two closely related concepts, which are used to build security mechanism in systems and applications. Information security is the practice of protecting information from unauthorized access, use or even modification. Confidentiality, integrity and availability (known as CIA triad) is a model designed to guide policies of information security within an organization. In this article we are focusing on confidentiality, which refers to re...
Architektura 3542 dni, 10 godzin, 19 minut temu 125 źrodło rozwiń
Ostatnio w pracy miałem do rozwikłania pewien banalny problem (przynajmniej tak mi się pierwotnie wydawało). Moim zadaniem było znalezienie programowego rozwiązania, które w sposób jednoznaczny pozwoli zidentyfikować smartfon z systemem Windows Phone. Aplikacja wykorzystywała architekturę WinRT (Universal Apps).
Mobile development 3567 dni, 11 godzin, 52 minuty temu 181 źrodło rozwiń
Dzisiaj goszczę dwóch Pawłów. Paweł Łukasik bloguje, występuje na konferencjach, jest założycielem dotnetomaniaka, jednym z organizatorów Wroc.NET oraz opiekuje się devPytaniami a tweetuje jako @pawel_lukasik. Paweł Sawicz również bloguje i jest prelegentem, a dodatkowo jednym z trzech organizatorów świetnej inicjatywy dotnetconfPL… a to wszystko robi w połączeniu ze studiami, tweetując jako ...
Ciekawostki.NET, 3wymiary, praca, rozwójPrzemysław Walkowski Gdy zaczynałem pracę, jako programista cieszyłem się jak dziecko, gdy mogłem 8 godzin siedzieć i programować. Robiłem to, co lubiłem i jeszcze mi sporo płacili. Programowałem szybko, solidnie i byłem rzemieślnikiem. Unikałem jak ognia zbyt dużego zaangażowania w biznes, który oprogramowałem i skupiałem się na pojedynczych zadaniach. To był błąd! Poniżej zebrałem to, co w pracy programisty powinno być najważniejsze, to, co sprawa, że z łatwo za...
Pisanie aplikacji będziemy realizować w Xamarin Studio for Mac. Podstawowa wersja licencyjne narzędzia pozwala nam na tworzenie aplikacji bez konieczności ponoszenia jakichkolwiek opłat, z wyjątkiem kosztów związanych z późniejszym publikowaniem aplikacji na AppStore.Założenia Aplikacja będzie oferować nam dwie podstawowe metody szacowania czasu: standardową oraz t-shirt. Metoda standardowa musi oferować nam karty z następującymi symbolami: Metoda t-shirt musi dostarczyć nam następujących kart z m...
Mobile development 3579 dni, 6 godzin, 1 minutę temu 133 źrodło rozwiń