Jak wiadomo w bajkach kryje się ukryta mądrość. W takim razie pora na bajkę, ale strzeżcie się – ukryta w niej mądrość może przewrotnie obrócić się przeciwko wam. Gotowi? No to zaczynam...
Architektura 3517 dni, 19 godzin, 6 minut temu 219 źrodło rozwiń
I have started to think, what is the reason that people see it as hard and complex at the beginning? I have a theory: it has rules! Entering the world with rules is always uncomfortable, we need to adjust to rules. In this post I’d like to prove that in this case those rules are quite digestible.On the way to CQRS… Basically, we can say that CQRS is an implementation of Command Query Separation principle to the architecture of software. What I noticed during my work in this approach is that there is a c...
Architektura 3531 dni, 4 godziny, 53 minuty temu 304 źrodło rozwiń
Kilka wpisów wcześniej zacząłem tematykę micro-serwisów oraz wzorca bramki. Jednym z wyzwań podczas rozłupywania monolitu jest zbyt wysoka liczba zapytań do innych serwisów, co powoduje utratę wydajności. Jeśli w monolicie była klasa np. CustomersRepository to teraz będzie to kompletnie nowa usługa. Wysłanie wiadomości do takiej usługo odbywa się przez jakiś protokół – w przypadku REST zwykle jest to HTTP. W monolicie nie było ważne to, że wywołaliśmy np. GetCustomerById(1), potem GetCustomerById(2) i...
Architektura 3532 dni, 17 godzin, 5 minut temu 165 źrodło rozwiń
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 3539 dni, 3 godziny, 8 minut temu 185 ź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 3543 dni, 8 godzin, 49 minut temu 678 źrodło rozwiń
TL;DR 1. Define events in the system Define sources (commands, process managers) and actors Group commands around aggregates Implement… Post-it, long piece of paper and people…Let’s play Generally speaking „event storming” is about extracting domain from events which describe it. In most of the complex domains there are events that represent important changes in the state of our domain, simply begin with them. We’ll need the following things:Unlimited modelling space – sounds impossibl...
Architektura 3546 dni, 16 godzin, 36 minut temu 197 źrodło rozwiń
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 3551 dni, 14 godzin, 42 minuty temu 672 źrodło rozwiń
Microsoft is a massive software corporation, and like all other corporations, they’re in business to make money. Duh, right? Unfortunately, this is probably the #1 reason for all the ASP.NET hate: it’s a Microsoft technology, and the “evil” taint still lingers over the giant in many people’s minds. I’ve always found this interesting because the other major technology companies, such as Google and Apple, are just as “evil” as Microsoft, but the zealots fans of those other companies typically turn a blind ...
Architektura 3556 dni, 7 godzin, 42 minuty temu 301 ź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 3560 dni, 12 godzin, 12 minut temu 485 źrodło rozwiń
Architektura 3572 dni, 15 godzin, 4 minuty temu 203 ź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 3572 dni, 15 godzin, 4 minuty temu 125 źrodło rozwiń
Ten post jest pierwszym z cyklu poświęconego architekturze systemów informatycznych. Zaczynamy od wyjaśnienia pojęć logiki biznesowej i logiki aplikacji na przykładzie małej aplikacji ASP.NET MVC. Więcej na temat MVC w kolejnym artykule. Już teraz zapraszam. Uczestnicząc w dyskusjach zarówno w życiu zawodowym jak i wirtualnym spotykam się z myleniem wymienionych w tytule artykułu pojęć, bądź używaniem ich zamiennie...
Architektura 3664 dni, 10 godzin, 21 minut temu 886 źrodło rozwiń
Simple backend system based on the Command Design Pattern where each command has own independent scope.
Architektura 3709 dni, 16 godzin, 55 minut temu 313 źrodło rozwiń
Dzisiejszy wpis będzie dotyczył oczywistej oczywistości. Ale czy na pewno? Zostałem kiedyś zapytany na jednej z pierwszych rozmów o pracę, żeby wymienić jak najwięcej zdarzeń związanych z cyklem życia strony. Pierwszymi (i niestety jedynymi)...
Architektura 3747 dni, 8 godzin, 49 minut temu 920 źrodło rozwiń
Skomplikowane aplikacje mogą wymagać skomplikowanego kodu. Jeżeli jego złożoność wynika ze złożoności modelowanego problemu to wszystko jest ok. Gorzej, jeżeli złożoność kodu wynika ze… złożoności kodu. W takim przypadku mówimy o złożoności przypadkowej.
Architektura 3768 dni, 17 godzin, 48 minut temu 311 źrodło rozwiń
Jak zdefiniować rozwój zawodowy? Rozwój zawodowy to proces zwiększania zakresu swojej wiedzy w czasie. Niby dobrze, ale jak to rozumieć? Może najprościej jak się da: każdego dnia uczymy się X nowych metod ( z danej klasy Frameworka etc.). I jeśli mówimy o początkach kariery zawodowej to jest to z pewnością prawda. Tylko, że jeśli z biegiem czasu dalej będziemy tak rozumieć rozwój to chyba coś z nami jest nie do końca w porządku. Chociaż to za dużo powiedziane. Może lepiej zabrzmi, że taka ścieżka r...
Architektura 3775 dni, 16 godzin, 3 minuty temu 563 źrodło rozwiń
Nigdy nie podobały mi się te magic stringi przy wywoływaniu PropertyChanged okazuje się że innym też nie
Architektura 3825 dni, 4 godziny, 7 minut temu 233 źrodło rozwiń
Zgodnie z powiedzeniem "im mniej wiesz, tym lepiej śpisz", postanowiłem napisać krótką notkę o tym, jak ukryć HelpPage w usłudze WCF. Warto wspomnieć na początku, że sporo się naszukałem w Google, żeby dowiedzieć się, że ta strona nazywa się HelpPage :- D Dla niewiedzących, mam na myśli to: Po wyłączeniu HelpPage'u, pozostaje nam ukryć WSDL. Jeśli tak jak w tym przypadku nasza usługa nie działa jako SOAP, możemy sobie pozwolić na ukrycie WSDL. Programistom piszącym aplikacje klienckie, będzie i tak ci...
Architektura 3833 dni, 17 godzin, 1 minutę temu 120 źrodło rozwiń
Sprawa komunikowania klienta w usłudze WCF pracującej jako RESTful może nie być proste na pierwszy rzut oka, jednak chwila googlingu i sprawa okazała się banalna. Jak skonfigurować usługę WCF żeby działała jak RESTful? Nasz interfejs, oraz usługa wygląda mniej więcej tak: Interfejs: [ServiceContract] public interface Iv1 { [OperationContract] [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "user/{id}")] User g...
Architektura 3840 dni, 10 godzin, 44 minuty temu 118 źrodło rozwiń
W tym wątku opiszę jak odpowiednio skonfigurować usługę WCF by uzyskać efekt RESTful API. Będziemy zwracać obiekty typu jSON/XML - co kto woli. Jeśli już utworzyłeś projekt WCF Service Application, możesz do niego dodać nową usługę lub skorzystać z dodanej domyślnie. Zmieniamy/dodajemy sekcję w Web.config Zwróć uwagę na sekcje service, servicebehaviors, endpointbehaviors - prawdopodobnie w tych miejscach musiałeś wprowadzić zmiany. Mając gotowy Web.config, pokażę prosty przykład, jak pisać metody...
Architektura 3849 dni, 13 godzin, 56 minut temu 235 źrodło rozwiń