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 3084 dni, 8 godzin, 5 minut temu 98 ź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 3084 dni, 8 godzin, 5 minut temu 147 ź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.
ASP.NET MVC 6 supports both regular controllers (inheriting from Controller base type) and POCO controllers. Let’s have a look at how the discovery of them happens in ASP.NET MVC 6. Note that the code and mechanisms discussed in this article were introduced after ASP.NET 5 beta3 was released, so it is not yet available if you use the version of ASP.NET 5 bundled with Visual Studio 2015 CTP6.
Architektura 3088 dni, 17 godzin, 53 minuty temu 184 źrodło rozwiń
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 3088 dni, 17 godzin, 53 minuty temu 411 ź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ść ...
Przemysław Walkowski Kontynuując temat bezpieczeństwa, chce zająć się tematem certyfikatów ich tworzeniem i obsługą. Omówię co to jest PKI, CA, X.509. To o czym nie wspomniałem w ostatnim poście a może przydać się w tym poście to wiedza o tym, że algorytm asymetryczny z kluczem publicznym i prywatnym ma możliwość szyfrowania danych przy pomocy klucza publicznego jak i prywatnego. Gdy zaszyfrujemy dane kluczem prywatnym, będziemy mieć możliwość...
Sztuka programowania 3090 dni, 20 godzin, 50 minut temu 446 źrodło rozwiń
Wiele mówi się o dobrych praktykach tworzenia kodu, używaniu wzorców projektowych i innych zmyślnych rozwiązań. W praktyce nie jest jednak tak kolorowo. Często terminy gonią, w kodzie pojawiają się klasy, których liczba linii liczona jest w setkach, a pośród nich znaleźć można wiele bezmyślnych powtórzeń oraz niepraktycznych interfejsów. Ale przecież obiecaliśmy sobie, że kiedyś to zmienimy, prawda?
Architektura 3092 dni, 23 godziny, 34 minuty temu 677 źrodło rozwiń
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 3096 dni, 7 godzin, 21 minut temu 545 ź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)
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 3104 dni, 8 godzin, 33 minuty temu 396 źrodło rozwiń
Dzisiaj ABC, ale chyba warte przypomnienia. Wprowadzony w .NET 3.0 Initializer syntax jest bardzo wygodny. Pozwala skrócić zapis i spowodować, że kod jest trochę czytelniejszy. Jednak coraz częściej mam wrażenie, że przez niego programiści .NET zapomnieli o konstruktorach.
Architektura 3110 dni, 2 godziny, 58 minut temu 484 ź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.
Przemysław Walkowski Bezpieczeństwo jest szerokim tematem i ma jeden poważny minus nigdy się do końca nie wie czy to co się wie na temat bezpieczeństwa jest wystarczające do tego by powiedzieć, że aplikacja, którą napisaliśmy jest bezpieczna. Zawsze się znajdzie, ktoś kto powie, że jakieś zabezpieczenie jest słabe lub niewystarczające. Mimo tego, podstawy trzeba znać, poniżej opisuje podstawy zabezpieczeń aplikacji C#. Z części 1...
Sztuka programowania 3113 dni, 14 godzin, 59 minut temu 438 źrodło rozwiń
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 3113 dni, 14 godzin, 59 minut temu 358 źrodło rozwiń
Today I want to introduce a Circuit Breaker – one of the reactive design patterns, especially useful in areas such as web services interop. They main role is to act as a decorator around your code to ensure, that you can quickly respond on any reliability problems.
Sztuka programowania 3117 dni, 1 godzinę, 44 minuty temu 143 źrodło rozwiń
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 3118 dni, 22 godziny, 35 minut temu 447 źrodło rozwiń
Przemysław Walkowski.Ostatnio chciałem serializować i deserializować liste gdzie typem listy był interfejs. Chciałem do tego wykorzystać XmlSerializer-a. Okazało się, że przy użyciu tej klasy nie można serializować listy interfesjów do XML-a. Już chciałem szukać dlaczego nie można ale miałem trochę czasu i stwierdziłem, że tym razem zrobimy to w trudny sposób. Poniżej prezentuje jak można serializować i deserializować listę interfejsów.
Sztuka programowania 3129 dni, 4 godziny, 27 minut temu 444 źrodło rozwiń
Today I want to present a different point of view on C# applications design. If you are programming in that language most of the time, it’s probably not what you’re used to see. However I found it interesting, because it allows to achieve a few important goals...
Sztuka programowania 3130 dni, 6 godzin, 15 minut temu 297 źrodło rozwiń
strona głównakategorieo blogurssLINQ to ExcelBartosz Lewandowski, 2015-02-11 23:48:30kategoria: C# Dostęp do arkusza programu Excel poprzez mechanizmy bazy danych był już opisywany na łamach naszego bloga. Oprócz wykorzystania mechanizmów OleDB, możemy odpytywać arkusz Excel poprzez technologię LINQ to Excel. Oczywiście wykonamy to w Visual Studio i C#. Pierwszym krokiem jest dodanie do projektu bibliotek LINQ To Excel. Wybieramy więc w Visual Studio opcję Tools -> Library Package Manager -> Package ...
Sztuka programowania 3130 dni, 6 godzin, 15 minut temu 206 źrodło rozwiń