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 3027 dni, 3 godziny, 9 minut temu 171 ź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 3034 dni, 5 godzin, 14 minut temu 101 ź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 3040 dni, 18 godzin, 17 minut temu 150 ź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 3052 dni, 3 godziny, 12 minut temu 164 ź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 3057 dni, 42 minuty temu 213 ź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 3060 dni, 15 godzin, 39 minut temu 46 ź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 3061 dni, 18 godzin, 4 minuty temu 64 ź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 3064 dni, 3 godziny, 55 minut temu 345 ź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 3075 dni, 53 minuty temu 197 ź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 3077 dni, 3 godziny, 13 minut temu 151 źrodło rozwiń
The bad things in Cassandra.
Architektura 3100 dni, 21 godzin, 25 minut temu 60 ź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 3100 dni, 21 godzin, 25 minut temu 681 źrodło rozwiń
Czy warto korzystać z frameworków w wersjach beta lub RC? Moje doświadczenia z ASP.NET Core
Architektura 3114 dni, 3 godziny, 52 minuty temu 137 ź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 3122 dni, 20 godzin, 37 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 3125 dni, 18 godzin, 7 minut temu 187 ź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 3134 dni, 3 godziny, 1 minutę temu 357 ź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 3154 dni, 2 godziny, 11 minut temu 43 ź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 3157 dni, 2 godziny, 52 minuty temu 58 źrodło rozwiń
Opis architektury rozwiązania AppSensor.NET
Architektura 3160 dni, 2 godziny, 54 minuty temu 104 ź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 3168 dni, 43 minuty temu 42 źrodło rozwiń