Public, Protected, Private Do czego służą modyfikatory dostępu? Do ograniczania dostępu do metod, pól i właściwości klas (C#). Ograniczenie to sprawdzane jest w trakcie kompilacji i gdy sięgasz za daleko taki komunikat pojawia się na ekranie: Error CS0122 ‚Test.fooPrivate()’ is inaccessible due to its protection level. Ale wystarczy odrobina refleksji tu i tam i można spokojnie olać modyfikatory: Klasa Test (@21) to twór na potrzeby przykładu. Wcześniej (@9) tworzę in...
Architektura 2603 dni, 7 godzin, 41 minut temu 169 źrodło rozwiń
So far we got acquired with a theorythat stands behind the CQRS and Event Sourcing. Moreover, we implementeda (business) heart of our calendar application consisting of a domain objects. Today we are going to reveal next two pieces of our puzzle – Commands and Command Handlers. Once again, I encourage you to share your opinions and suggestions in the comments (if you have any). Commands So, what exactly the commands are? In short, these objects represent intentions of a user. They are in fact imperati...
Architektura 2610 dni, 9 godzin, 46 minut temu 96 źrodło rozwiń
In the first part of our journey, we became familiar with CQRS and Event Sourcing. In this episode, we’re going to implement a few classes in our brand new system. Before we start let’s discuss a little bit about a business problem that we’ll try to model. At first, I thought about something very easy like a bookstore which would allow users only to buy some books. But that would be boring, wouldn’t be? By chance, a few weeks ago I received the kind of interesting recruitment objective from some company....
Architektura 2616 dni, 22 godziny, 49 minut temu 145 źrodło rozwiń
Zaczęły się wakacje i musiałem na razie przerwać spotkania Grupy .NET. Ale nie chciałem całkowicie usypiać grupy, więc postanowiłem nagrać dla nich prezentację o wzorcu Model View ViewModel, ponieważ zaczęliśmy pod koniec semestru robić projekt oparty o Windows Presentation Foundation, a tam MVVM świetnie pasuje. Zacząłem od zrobienia prezentacji, takiej jaką bym wyświetlał mówiąc do nich na żywo...
Architektura 2628 dni, 7 godzin, 44 minuty temu 161 źrodło rozwiń
Małżeństwo to nie taka prosta sprawa. Są różne i różnie się układają, różni ludzie się do tego mieszają czasem wychodzi to lepiej a czasem gorzej. Podobnie jest w programowaniu. Ostatnio musiałem ożenić IOC z Factory. Problem który się pojawił to tworzenie obiektu na podstawie jakiegoś tam parametru wejściowego, na początku miałem tylko jeden przypadek (np. RssChannel) i musiałem tylko ten przypadek obsługiwać, mogłem spokojnie wstrzyknąć handler i było cacy. Potem (w zasa...
Architektura 2633 dni, 5 godzin, 14 minut temu 209 źrodło rozwiń
In the first part How to split monolith solution - part 1: common myths I wrote about common myths. In this post I will try to find "lines" to cut, using the Visual Studio and the ReSharper. Let's go!
Architektura 2636 dni, 20 godzin, 11 minut temu 44 źrodło rozwiń
Do you have a big and heavy solution? Do you want to split it? Are you afraid? I will try to help.
Architektura 2637 dni, 22 godziny, 36 minut temu 62 źrodło rozwiń
Jakiś czas temu zapowiadałem na blogu serię postów poświęconą tematyce CQRS oraz Event Sourcing-u. Niniejszym postem rozpoczynamy naszą podróż badawczą! Dlaczego w ogóle zajmiemy się tym tematem? Otóż sam koncept poznałem stosunkowo niedawno i pomijając wady i zalety tego rozwiązania zawsze spotykałem się ze stwierdzeniem, że implementacja CQRS jest banalna i nie ma nad czym się tu zastanawiać. Już teraz mogę Wam zdradzić, że nie zgadzam się z tą tezą, ale do kodu przejdziemy od następnego „odcinka”. Tu ...
Architektura 2640 dni, 8 godzin, 27 minut temu 340 źrodło rozwiń
Hej, dzisiaj kontynuacja poprzedniego wpisu o niezmiennych obiektach. Jako programiści .Net już teraz pracujemy z niezmiennymi obiektami na co dzień. W tym momencie, aby stworzyć taki obiekt, sami musimy zadbać o jego niezmienność. Co też nie jest trudne. Przykładowa niezmienna klasa może wyglądać w ten sposób...
Architektura 2651 dni, 5 godzin, 26 minut temu 195 źrodło rozwiń
~ Jarosław StadnickiJest pięknie Żeby zgrabnie było, trzeba popróbować i tak ułożyć i siak ułożyć i sprawdzić i obejrzeć i posmakować. Ja chciałem wam opisać krótko jak sobie ułożyłem testy w projekcie i póki co mi podoba taki układ.Od góry Zaczynając od samej solucji: Na testy przeznaczyłem osobny folder, a projekt nazywa się tak samo jak projekt który chce testować, rozszerzony o Tests. Myślę, że większość z was robi tak samo. Dalej wygląda to tak: Kolejne podfoldery odpowiadają klasom, które...
Architektura 2653 dni, 7 godzin, 45 minut temu 149 źrodło rozwiń
The bad things in Cassandra.
Architektura 2677 dni, 1 godzinę, 57 minut temu 59 źrodło rozwiń
Dziś podzielę się z Tobą ciekawą listą materiałów o DDD, czyli Domain Driven Design. Jest to podejście do tworzenia oprogramowania przydatne wtedy, kiedy domena nad którą pracujemy jest skomplikowana. Jednocześnie nie zalecane do trywialnych części aplikacji w stylu „encje na twarz i pchasz” czyli typu CRUD. Ułatwia pracę z kodem jak i… klientem :-). Temat, którym na pewno warto się zainteresować.
Architektura 2677 dni, 1 godzinę, 57 minut temu 671 źrodło rozwiń
Czy warto korzystać z frameworków w wersjach beta lub RC? Moje doświadczenia z ASP.NET Core
Architektura 2690 dni, 8 godzin, 24 minuty temu 136 źrodło rozwiń
Recently I've designed a mechanism to notify external systems (with which we cooperate) about changes in our system. This, obviously, can be done in multiple ways. Let's look at some considerations on a high level, some questions and how that affects our requirements.
Architektura 2699 dni, 1 godzinę, 10 minut temu 25 źrodło rozwiń
Dzisiaj przyszedł czas na wzorzec agregujący w pewien sposób wszystkie poprzednie, a mianowicie wzorzec rekurencyjny. Załóżmy, że mamy następującą hierarchię klas (...) W poprzednich wersjach C#, było możliwe jedynie sprawdzenie czy obiekt jest ty...
Architektura 2701 dni, 22 godziny, 39 minut temu 184 źrodło rozwiń
W C# 7.0 operator Is, a konkretniej dopasowywanie typów, zostało ulepszone. We wcześniejszych wersjach, byliśmy zmuszeni do pisania kodu. Jeśli zmienna jest danego typu, automatycznie zostanie zrzutowana. Innymi słowy, za pomocą jednego operatora wykonujemy 3 operacje: sprawdzenie typu, zrzutowanie oraz wykonanie instrukcji warunkowej. W poprzednich wersjach, możliwe było zrobienie czegoś podobnego, ale powstały kod zwykłe był mniej przejrzysty.
Architektura 2710 dni, 7 godzin, 33 minuty temu 354 źrodło rozwiń
Any Kronos client will be available to use three basic commandsInsertGetDelete In future I want to add few more, like Count and GetKeys. Each of requests to the server serialized to binary form is preceded by few bytes of meta-data, including RequestType. In code its represented as a Request class, which in addition to type has two generic methods. At the beginning they might look difficult, but they are quite simple. First of them is responsible for sending any request to the server via special connec...
Architektura 2730 dni, 6 godzin, 43 minuty temu 41 źrodło rozwiń
Do obecności w sieci Bitcoina wystarczy dowolny klient implementujący jego protokół oraz połączenie Internetem. A jakby tak nauczyć się jego języka i pogaworzyć przy użyciu własnej aplikacji? Zobaczymy o czym gada Bitcoin :)
Architektura 2733 dni, 7 godzin, 24 minuty temu 57 źrodło rozwiń
Opis architektury rozwiązania AppSensor.NET
Architektura 2736 dni, 7 godzin, 26 minut temu 103 źrodło rozwiń
In the third post about XGain I would like to say something about the heart of server. TcpListener is a great class to build server. It has a normal and async methods, you can choose between Socket and TcpClient. Unfortunately writing this same logic for new project might be boring.
Architektura 2744 dni, 5 godzin, 15 minut temu 40 źrodło rozwiń