Szukasz praktycznej wiedzy
o architekturze oprogramowania?
Zapoznaj się z moimi treściami - od artykułów po wideo
Nazywam się Oskar Dudycz. Od ponad 15 lat, tworzę systemy informatyczne bliskie biznesowi.
Prowadzę warsztaty i szkolenia na temat Event Sourcing, CQRS oraz architektur opartych o zdarzeniach.
Jestem maintainerem biblioteki Marten, umożliwiającej pracę z Event Sourcing.
Na blogu dzielę się wiedzą jak pragmatycznie tworzyć, dobre modularne aplikacje.
The Holy Grail syndrome
Our industry is harmed by the disease of “There has to be something more!” also called “The Holy Grail syndrome”. Instead of trying to…
Anti-patterns in event modelling - I'll just add one more field
Programming origins are in mathematics. Scientists like John Von Neumann and Alan Turing built the foundations for today’s computers. That…
Is the audit log a proper architecture driver for Event Sourcing?
Usually, one of the main drivers for Event Sourcing is the audit log capability. Indeed event stores are append-only logs, theoretically, we…
A few notes on running open source project after Marten v6 release
Last week we released the next major Marten release, and I’d like to share some of my lessons learned and insights with you. And by “you”, I…
General strategy for migrating relational data to document-based
I was recently asked how to migrate a project using relational data to a document-based approach (e.g. from .NET ORM Entity Framework into…
How to test event-driven projections
Projections in an event-driven world are a way to interpret registered events. We can take a sequence of events and build from them read…
Publishing read model changes from Marten
Integrations have different names, shades and colours, but only one adjective: challenging. Trying to glue systems together requires…
Postgres Superpowers in Practice
Look! Up in the sky! It’s a bird! It’s a plane! It’s Superman! I have such a thought quite often while working with Postgres. Why? Let’s say…
Event stores are key-value databases, and why that matters
Event stores are the foundational building block of Event Sourcing. They’re also one of the biggest sources of confusion. They are databases…
ChatGPT, revolution or not?
I started my career when StackOverflow didn’t exist. That’s how I quite often introduce myself. I’m that old. That’s, of course, nothing…
Ensuring uniqueness in Marten event store
Unique constraint validation is one of those things that looks simple but is not always easy. I explained already that, in Event Sourcing…
Projecting Marten events to Elasticsearch
I told you already that Projections are an Event Sourcing killer feature, and today I’d like to repeat that. In Marten, we embraced that and…
How to handle multiple commands in the same transaction
Let’s say that we’re starting a new project. It’s a small tool for internal needs, maybe even some sort of shadow IT project. It may also be…
Fun with serial JSON
JSON serialisation is so much fun. We can make jokes and curse, but we must live with it. Surprisingly, that’s not getting simpler if we use…
Don't let Event-Driven Architecture buzzwords fool you
I see a lot of new terms like Command-Event, Event-Based Compute, etc., presented around Event-Driven Architecture. Let me clear that up…
Set up OpenTelemetry with Event Sourcing and Marten
If I had to select the Distributed Systems Song, I’d choose Land of Confusion. This is the world we live in. And these are the hands we’re…
Event-driven projections in Marten explained
Projections are a neverending story. One does not simply write a single guide. One needs to write more examples of more advanced cases. That…
Explicit validation in C# just got simpler!
Validation is a thriving concept. It enables incredible creativity in developers implementing it in various ways. I explained my general…
Stacking the bricks in the software development process
We, developers, are searching for Holy Grail, one pattern to rule them all. There’s no such. In his excellent book “Atomic Habits”, James…
Guide to Projections and Read Models in Event-Driven Architecture
If I had to choose the killer feature of Event Sourcing, I’d select projections. Why? I’ll explain that in detail in this article. Events…
How to validate business logic
Fox Mulder got advice: “trust no one”. I’m claiming that each software developer should define their level of paranoia. The thing that we…
Let's build event store in one hour!
Last year, I completed two items from my speaker bucket list NDC Oslo and Domain-Driven Design Europe. I’m proud and happy, as those…
Don't be like Ebenezer Scrooge. A few words about workaholism
There is a cult of workaholism in our industry. Just like the guys from the gym brag about how much they pulled on the chest or did in the…
Explicit events serialisation in Event Sourcing
Events serialisation is an intriguing topic. On the one hand, it’s part of the campfire spooky tales, so (in)famous events versioning. On…
The magic is that there is no magic. Or how to understand design patterns.
The magic is that there is no magic. Many patterns perceived as complicated appear to be simple or even simplistic under the cover. Take…
Share your story on Event Sourcing Live 2023
Event Sourcing is a concept that helps to build the bridge between business and technical implementation. It’s a storage pattern that takes…
Testing asynchronous processes with a little help from .NET Channels
Let’s say that you have an event-driven application. It has an event bus that listens for events from asynchronous processes (e.g. Kafka…
Mapping event type by convention
Events are an essential block of Event-Driven Architecture. They represent business facts that happened in our system. We can use them to…
How to get all messages through Postgres logical replication
In an earlier article, I described Push-based Outbox Pattern with Postgres Logical Replication. The idea is to store the outgoing message (e…
How events can help in making the state-based approach efficient
In my last few articles, I showed the power of functional composition. That’s a foundation for effective modelling of your business logic…
Never Lose Data Again - Event Sourcing to the Rescue!
Relational databases are not losing data. They’re robust, consistent and secure! Are they? Too often, we mix technical and logical concepts…
How Postgres sequences issues can impact your messaging guarantees
Big picture descriptions and overall explanations are great. They help us to understand the foundations of new ideas and then find the place…
Writing and testing business logic in F#
My road to functional programming was pretty long. I started with structural programming in C++ and then rebranded into an Object-Oriented…
Push-based Outbox Pattern with Postgres Logical Replication
There are only a few patterns that I’m comfortable saying: “You should use it always if you want to build mature system”. One of them is the…
Testing business logic in Event Sourcing, and beyond!
I’ve heard a few times that Event Sourcing is hard to test. I’m not sure where this myth comes from; maybe from mixing it with event…
Dive a bit deeper, look a bit wider
We live in a time of information overload. We are constantly stimulated. Our focus skills are similar to a goldfish. Seemingly our life is…
On the importance of setting boundaries in team management
Paweł Janas is a significant figure in Polish football history. He was a decent defender on his own, then coaching our best clubs and…
It doesn't have to be toxic at work
We work in an industry that’s full of passionate people. Doing what you like and getting paid for it is a privilege and a curse. We’re…
Event Versioning with Marten
War never changes; migrations are always complex. It’s always a mind gymnastics and searching for risks and what may go wrong. Sometimes we…
Slim your aggregates with Event Sourcing!
In the traditional approach, what we get is what we store. Our write model is too often used directly as our read model, because the typical…
What do the British writer and his fence have to do with Software Architecture?
Gilbert Keith Chesterton was a British writer from the turn of the 19th and 20th centuries. As for his times, we would call him an…
Why are we afraid of our decisions?
I don’t know if it will work well in production! Will it scale? What if we get too many users during Black Friday? Do you know those…
Straightforward Event Sourcing with TypeScript and NodeJS
In the last two articles, I explained how to organise your business logic effectively, showing how proper typing and composition can help to…
Union types in C#
In the article “How to effectively compose your business logic”, I explained how explicit types definition can help in making our codebase…
How to effectively compose your business logic
Let’s say that we’d like to implement Shopping Cart. We have the following requirements: The customer may only add a product to the shopping…
Event-driven distributed processes by example
Some time ago, I wrote the general rules on processing the event-driven services. check my article Saga and Process Manager - distributed…
Is keeping dates in UTC really the best solution?
In many projects, the approach to dates is quite nonchalant. People do as they want. When on-premise systems were king, the common problem…
Should you generate the client code from the API?
I’m often told that dull, repetitive tasks should be automated. However, there are times when it is better not to do this. I regularly see…
Unobvious things you need to know about key-value stores
Today I wanted to talk a bit about Key-Value databases. It is a seemingly obvious subject, but it is easy to overlook the basic assumptions…
Ogooreck, a sneaky testing library in BDD style
Some time ago, I saw an excellent presentation of Dylan’s Beattie presentation - The Art of Code. It reminds us of what we are here for. By…
Should you throw an exception when rebuilding the state from events?
Event Sourcing is not a difficult pattern to understand. Event stores are not conceptually complicated databases (although implementation…
Why I'm leaving Event Store and getting ready for the next episode
I’ve got some news today. Here comes the boom: I’m leaving the Event Store, which means I just became unemployed! How come? I am a pragmatic…
Power of ignorance, or how to write simple code
I was asked to compile various statistics from our Event Store GitHub community some time ago. We wanted to analyze our public repositories…
What onion has to do with Clean Code?
I quite often make fun of Clean Code and Clean Architecture. I’m calling it an Onion Architecture. Not least because it has layers but also…
A few tricks on how to set up related Docker images with docker-compose
In the last few days, I have been working on guidance on piping EventStoreDB logs into Elasticsearch. ELK stack (so Elasticsearch, Logstash…
Persistent vs catch-up, EventStoreDB subscriptions in action
Events can be a great facilitator and glue for business workflows. Subscriptions are an essential block of the event-driven system. They…
How to build a simple event pipeline
Today we will deal with event consumption. I’ll also explain how I wrote the new version of the MediatR library. Curious? We’ll get to that…
Are Temporal Tables an alternative to Event Sourcing?
I’ve been asked recently at least a few times about Temporal Tables and how they relate to Event Sourcing. Beware, and don’t confuse it with…
Agile vs Introverts
I had this thought: most of the “Agile” methodologies and tools are invented by extroverts. Perhaps this is also why, although they are…
The risk of ignoring risks
Do you like playing poker? I used to play Texas Holdem with my friends regularly. We took it easy; each person put 5 PLN into the pool, and…
Twelve things I learned about Java during my last code review
As I have mentioned to you many times, I like to test different approaches, technologies and solutions. I may not have told you yet that I…
Small rant about the Software Design
Some time ago, I listened to an enlightening episode of Scott Hanselman’s podcast on how to teach computer science. The guest was Maria…
Introduction to Event Sourcing - Self Paced Kit
For many developers, Event Sourcing is like a Nessie, most of them have heard of it, but not many have seen it. I was one of them. I started…
How to ensure uniqueness in Event Sourcing
“How do I ensure uniqueness? For example, a unique username or an invoice number.” That’s usually one of the first questions I hear from…
“Nie interesuję się polityką” jest już nieaktualne
War, war never changes… W IT żyjemy w bańce. W porównaniu z innymi zawodami mamy niezwykle komfortowe warunki pracy. Nauczyliśmy się…
15 tips on how to run meetings effectively
It’s always worth talking things through! But is it worth meeting? During my career, I have seen many projects and companies where the…
Immutable Value Objects are simpler and more useful than you think!
I love proper typing. But what does that even mean? I could say that this is a types’ structure defined in a self-explanatory way. But that…
How to quickly scale a legacy monolith?
Working with a legacy monolith is not easy. For years we learned how to tame that beast gently. We nurtured it and tried not to break it. We…
I tested it on production and I'm not ashamed of it
Testing on production usually appears in ridiculous stories. They may be only annoyances like getting questions from customers why they see…
A simple trick for idempotency handling in the Elastic Search read model
Idempotency is a word worth watching out for. It’s easy to miss a few letters and bang, and we have a problem. It is also a general problem…
Using strongly-typed identifiers with Marten
Let’s say that you have the following class definition: Now you can create instance using: So far, so good. What if we accidentally mixed…
Should a programmer's creativity be shown in code formatting?
Each of us has at least a dose of creativity. I have always liked drawing. I wanted to make effective plays in football. Today, I play the…
No, it can never happen!
“No, it can never happen!”. Have you heard this sentence before? For example, a user with the same e-mail address may not register, or the…
Integrating Marten with other systems
In Event Sourcing, events are the source of truth. We save them in the event store to have a permanent history of facts about business…
How to do snapshots in Marten?
Getting the state from events is a basic but controversial topic in Event Sourcing. I wrote on it longer in other article. To recap…
CQRS is simpler than you think with .NET 6 and C# 10
.NET and CQRS are well known for the high ceremony and enterprise feeling. You should treat that as superstition. Let me tell you why. CQRS…
Simple patterns for events schema versioning
Events (schema) versioning is a boogeyman for people learning Event Sourcing. They’re a spooky tale told at the campfire. There’s a truth in…
Event Streaming is not Event Sourcing!
I usually don’t try to fight the HackerNews or Reddit opinions. That said, I cannot deny that they’re powerful platforms. That said, I…
How to register all CQRS handlers by convention
In CQRS, it’s common to define interfaces for the handlers to enforce the unified code structure. Such an approach is used, e.g. by MediatR…
Long-polling, how to make our async API synchronous
I’ll continue today a topic of handling eventual consistency that I started in the previous article. This time let’s learn the trick called…
Dealing with Eventual Consistency and Idempotency in MongoDB projections
Auditability, diagnostics, time travelling are usually the first mentioned features when speaking about Event Sourcing. All of them are…
How to use ETag header for optimistic concurrency
In my article “Optimistic concurrency for the pesimistic times”, I described the premises for optimistic concurrency handling. As a reminder…
Tell, don't ask! Or, how to keep an eye on boiling milk
Some time ago, I thought about writing a cookbook for guys, a set of essential tips on surviving in the kitchen. I thought of starting with…
What does Mr Bean opening the car have to do with programming?
Before reading the article, please watch the video below: Mr Bean wants to add a new business feature to the project. First, the entity…
What does a construction failure have to do with our authorities?
Through my window, I see the result of good plans but poor execution. Opposite my flat, there is a partially completed construction place…
Let's talk about positions in event stores
Discussions about positions can be awkward, to say the least… It is also the case with positions in Event Sourcing. Each event store…
How to build event-driven projections with Entity Framework
Let’s assume that you’re building an Event-Driven system. You may be using Event Sourcing or microservices integrated with message bus or…
10 notes on the 10th blogging anniversary
Yesterday, precisely ten years passed since I released my first blog post. It’s still available in the original place (in Polish) at…
Anti-patterns in event modelling - State Obsession
Some time ago, I tackled the first event modelling anti-pattern: “Property Sourcing”. Today I’d like to tackle the next one: “State…
How to slice the codebase effectively?
The structure of projects is as sensitive as the discussions of spaces versus tabs or indentation size. When we enter someone’s apartment…
Will it scale... down?
Some time ago, I wrote that there aren’t many more annoying questions than “…but will this scale?!”. We usually think prematurely about…
Computer says no! Why we might have an issue with Artificial Intelligence soon
Some time ago, I was doing a pilot project for two well-known American fast-food brands. It was about using image processing and artificial…
Anti-patterns in event modelling - Property Sourcing
The first time I got down to work at Event Sourcing, I was very energized. Book knowledge almost fell out of me. However, when I sat down to…
How to build and push Docker image with GitHub actions?
In the previous post, I explained that with a few simple tricks, you can make your Docker image less cluttered and build faster. I explained…
How to build an optimal Docker image for your application?
Some time ago, I realised that my posts from 2011 about configuration and operation in SCRUM using TFS are still hanging on the Internet…
Notes about C# records and Nullable Reference Types
In the last months, I spent quite some time playing with C# records and Nullable Reference Types. I was hoping that thanks to them, I would…
In what language are programmers writing?
Wikipedia states that there are around 700 programming languages. Some are more popular. Some are less. But what language do programmers…
Form a wall! And other concerns about security
There were 0.3 seconds left till the end of the NBA match. Detroit Pistons were leading by a single point against San Antonio Spurs. The…
Let's take care of ourselves! Thoughts on compatibility
In the last year, the word responsibility is used in all possible ways. Responsibility for us, for others. We can be heroes wearing masks…
How to get the current entity state from events?
Today I’d like to go back a bit to the basics of Event Sourcing. I recently realised that I often cover more advanced topics. So sometimes…
When not to use Event Sourcing?
Event Sourcing is perceived as a complex pattern that’s challenging to learn. Typically it’s matched with the financial industry or big…
Generic does not mean Simple
As you know, I am a fan and practitioner of CQRS.. I believe that it is falsely considered as complicated. In my opinion, it can help even…
Structural Typing in TypeScript
When we talk about typing in programming languages, we usually divide it into static and dynamic. Static typing is checked at the compile…
When Agile is not enough
Today I want to invert the classical pro-agile drawing. Let’s talk about the devaluation of functionality that occurs in Agile projects. In…
How to scale projections in the event-driven systems?
People want to scale up everything. In the past, the recipe for everything was to buy a larger server. Today, the answer is to add another…
Why are senior devs afraid to code?
The job interview is a stressful situation, usually for both parties. Some time ago, I had to recruit senior developers. I had the idea to…
How to create a custom GitHub Action?
As you may know, I’m a fan of documentation. I wrote a few practical tips on this topic on the blog: “How to create projections of events…
Memoization, a useful pattern for quick optimization
Today I would like to show you a simple programming pattern that can be useful for quick code optimization. This pattern is called…
How using events helps in a teams' autonomy
Autonomy is the Holy Grail for the management of multiple teams. At least that’s how it’s perceived; it’s not easy to get the right balance…
How to enhance and configure your site search with Algolia?
Some time ago, I wrote on how to create documentation without the pain (read it here). Documentation is something that has been one of the…
Events should be as small as possible, right?
TV size? The bigger, the better. Debt amount? Opposite. It’s hard to find the right size that suits all. How big should the event be? What…
How to create projections of events for nested object structures?
Did you ever feel so encouraged so much that you immediately thought, “This is great, let’s do it!“. I’m sure you did. I’m also sure that…
How to successfully do documentation without a maintenance burden?
Developers like to complain about the lack of documentation. They complain even more when they have to write it. No programmer wants to do…
How money in Cloud impacts Architectural decisions?
It’s intriguing how our perspective on software development changed in the last few years. We transformed from the on-premise age to the…
Can command return a value?
Last week I busted common myths and explained facts about CQRS. Today I’ll continue my effort. I tackle one of the most common questions…
CQRS facts and myths explained
I’m sure that you know a lot of Urban Legends. They usually start with “hey, my friend’s cousin saw that…” or “you know, I’ve read such…
Why Partial<Type> is an extremely useful TypeScript feature?
If TypeScript were a friend of mine on Facebook, then I’d mark our relation as complicated. It’s a history of love & hate, or rather hate…
How to set up a test matrix in XUnit?
Each country has the go-to place for hiding from daily struggles. In Poland, we have Bieszczady. It’s a mountain range that’s also the…
What's the difference between a command and an event?
What’s the difference between a command and an event? The answer seems apparent, but let’s see if it’s straightforward. The command…
Saga and Process Manager - distributed processes in practice
What can go wrong with distributed systems? Everything! I like to compare distributed systems to Rocky Balboa fighting the last round with…
What if I told you that Relational Databases are in fact Event Stores?
Are you one of those people saying that Event Sourcing is detached from reality? Do you think that you don’t need such extravagance, as you…
What texting your Ex has to do with Event-Driven Design?
We sometimes feel melancholic, blue and a bit messy. When we enhance those feelings with “gummy berry juice” then various dubious ideas come…
Sociological aspects of Microservices
Last week, I started writing about the topic of cutting systems into microservices (read more here). I was sceptical about the frequent…
How (not) to cut microservices
Today, I’m holding a keyboard in one hand and scissors in the other. What do I need these scissors for? According to the post title, I would…
Bring me problems, not solutions!
“Bring me solutions, not problems!” I’ve heard this sentence multiple times from Business and management. You’ve heard it too, haven’t you…
Outbox, Inbox patterns and delivery guarantees explained
Yesterday I was asked by Cezary about the transactional outbox pattern sample implementation. My answer was: The question was short - answer…
How to (not) do the events versioning?
Developers that are not running a system in production might call themselves lucky. They can live in their perfect world. It is a world…
Optimistic concurrency for pessimistic times
Apparently, one of the worst things you can wish someone is “may you live in interesting times”. In these interesting times of ours, I…
Why a bank account is not the best example of Event Sourcing?
While explaining the Event Sourcing, bank account balance calculation is a common starting point. I claim that even though it sounds right…
Revolution now!
Did you ever get an offer that someone will pay you for what you are currently doing as a hobby? What would be your decision if that would…
Architect Manifesto
“Architects are not needed anymore. Those days are gone!” “We’re agile - we’re not doing waterfall, so we’re not designing upfront.” “We…
Jak zacząć z Open Source?
Cześć! Zaczyna się HactoberFest, więc kiedy jak nie teraz zacząć swoją przygodę z Open Source? Jak pewnie wiesz działam trochę w tym temacie…
Relacja z Domain Driven Design Europe 2020 – Event Sourcing
Ten wpis będzie z tych dłuższych. Zrób sobie więc kawkę, wstąp do toalety, zrób kanapki na drogę, usiądź wygodnie na kanapie, uzbrój się w…
Źródła otwartości
6 lipca bieżącego roku Jarek Pałka napisał niewinną wiadomość na Twitterze, że chętnie da szansę wystąpienia na konferencji “nowej twarzy…
Mężczyzna w IT
Dlaczego mężczyźni nie mają cellulitu? O co chodzi ze świnką morską? Gąbka z kokardką na dzień kobiet. Przecież ja tak nie myślę, to…
O tym, co gra na gitarze może dać programiście
Pierwszy raz nie zostałem muzykiem, gdy wzięty przez Babcię do szkoły muzycznej, powiedziałem stanowczo, że nie zamierzam śpiewać i…
Pogłoski o mojej śmierci są mocno przesadzone, czyli co u mnie słychać
No cóż. Ekhm. No tak. W zasadzie to i dziwne i trochę straszne, że zaczynając wpisy na blogu chcę przepraszać. Róż na policzkach. Te sprawy…
Metallica skończyła się na Kill ‘Em All, a ja idę w Open Source'y
Zapuść proszę sobie ten utwór w trakcie czytania. Wczujesz się lepiej w klimacik. Zapewniam. Niektóre zespoły po kilku płytach powinny…
Old man yells at cloud, czyli rzecz o komunikacji
No i koniec lata, zimno, mokro i w ogóle poniedziałek. Jeszcze 4 dni do weekendu, i 10 miesięcy do lata. Żyć się nie chce. Pokrzyczeć zawsze…
Old man yells at cloud, czyli rzecz o komunikacji
Nie bywam na konferencjach tak często jakbym chciał. Dlaczego? Myślę, że moim problemem jest nonkonformizm, przesadny indywidualizm. Będąc…
Nauka uczenia (się)
Człowiek uczy się całe życie. Słyszymy, powtarzamy ten truizm. Czasem jest to pochwała, najczęściej pocieszenie. Wiedza, mądrość…
Cierpienia niemłodego bloggera – czyli próbuję napisać tekst o wczytywaniu komponentów w Knockout.JS na podstawie konwencji nazewniczej. Wymyślając przy okazji najdłuższy wpis w historii tego bloga. Doh! -_-
cover Życie bloggera to nie jest bułka z szynką. To nie prosta sprawa. Co prawda pomysły same wpadają do głowy. Idzie człowiek ulicą…
What really grind my gears – IIIIIIIIIIIIIIIIF!
Jestem spokojnym człowiekiem, niespotykanie spokojnym. Ale… Jestem Oskar, z Polski. Miejsca urodzenia nie przeskoczę. Natura, historia…
Englishman in New York, czyli jak .NETowiec może uwić sobie gniazdko w świecie MSSQL
Wieczór, herbata, ciepłe papcie, nie za twardy, nie za miękki narożnik, na którym wyciągasz swoje zmęczone nogi. Gdzieś w tle leniwie snuje…
SQLowa ciekawostka – Uważaj na Exists kolego
Tym razem, po serii nostalgiczno-branżowo-przemyśleniowych wpisów, będzie krótko i technicznie. Chciałbym się przed wami popisać swoją…
Borys najlepiej dryblował
Borys najlepiej dryblował, Cybor kręcił najlepsze rogale, było kilku kajtków, robiących 200 kapek. Moja piąta B, zawsze bo ciężkim meczu…
Na temat branży
Naszym programistycznym światkiem wstrząsnął ten oto wpis: http://natemat.pl/105597,it-arystokracja. Artykuł jak artykuł, nieco grafomański…
Refleksyjnie plus pierwszy w historii Vlog – Podstawy programowania w Office 2013
Heh. To już ponad 1,5 roku od poprzedniego wpisu. Gdzieś w między czasie uleciał trochu wolny czas, trochu zapał. Tak to już jest. Jutro się…
Prezent od Microsoft – Darmowa książka o programowaniu w Windows 8
Microsoft konsekwentnie kontynuuje taktykę ściągania nie .NETowych programistów – udostępnił darmową książkę w ramach Microsoft Press…
Serializacja dla .NET 4.5 oraz Windows Runtime przy pomocy Sharpserializer
Trochę mnie nie było, dawno już nie pisałem – ten post będzie dla mnie nietypowy – krótki. Mam nadzieję, że to będzie jego zaleta. W swoim…
Jak z kilku dllek zrobić jedną, czyli modularność przy pomocy ILMerge
Wstęp Pracuję aktualnie nad strukturą pewnego projektu. Ideą, która przyświeca przy jej tworzeniu jest to, żeby była jak najbardziej…
WrocNet – Team Foundation Server to nie SVN – Materiały
Przedwczoraj (środa 21.03) debiutowałem w roli “wykładowcy” na spotkaniu Wrocławskiej grupy .NET. Zaprezentowałem tam rozwinięcie moich…
Multiplatforomowe aplikacje w .NET, Silverlight i Windows Phone Cz.3 – Konfiguracja komunikacji socketami
Wstęp W poprzednich dwóch wpisach, przedstawiłem ogólne zasady tworzenia aplikacji multiplatformowych, pokazałem jak można zapisywać i…
Multiplatforomowe aplikacje w .NET, Silverlight i Windows Phone Cz.2 – Wstęp do komunikacji socketami
Wstęp W poprzednim wpisie przedstawiłem wstęp oraz kilka problemów, które napotykamy przy rozpoczęciu zabawy z aplikacji wieloplatformowych…
Multiplatforomowe aplikacje w .NET, Silverlight i Windows Phone Cz.1 – Współdzielenie klas
Wstęp W kilku najbliższych wpisach postaram się przybliżyć tematykę tworzenia aplikacji multiplatformowych. Środowisko .NET dostarcza nam…
Scrum i Team Foundation Server cz.5 – Continuous Integration
W kilku ostatnich wpisach przedstawiłem czym jest metodyka Scrum, po co i jak ją stosować przy użyciu Team Foundation Server. W teorii…
Scrum i Team Foundation Server cz.5 – Continuous Integration
1. Trochę teorii Każdy z nas w trakcie zawodowej kariery miał (nie)przyjemność pracować z systemami kontroli wersji. Codziennie w trakcie…
Scrum i Team Foundation Server cz.4 – Tworzymy projekt
W poprzednich wpisach opisałem ogólne zasady metodyki Scrum, przedstawiłem sposób instalacji i konfiguracji – TFS. W tym wpisie pokażę…
Scrum i Team Foundation Server cz.3 – Wystawiamy się na zewnątrz
Tym razem wpis będzie poświęcony dodatkowej czynności, nie związanej bezpośrednio ze Scrum albo TFS. Pokażę prosty sposób w jaki można…
Scrum i Team Foundation Server cz.2 – Instalacja TFS
Tak jak zapowiedziałem w poprzednim wpisie, część druga mojej opowieści o Scrum i TFS będzie opisywała instalację oraz wstępną konfigurację…
Scrum i Team Foundation Server cz.1 - wprowadzenie do Scrum
1. Wstęp W kilku najbliższych postach postaram się przybliżyć ideę zarządzania projektem w metodyce Scrum przy pomocy Team Foundation Server…
Ciekawostki - Equals
Dzisiaj będę się chwalił się swoją niewiedzą. Kilka dni temu kolega zadał mi pytanie, którym skutecznie mnie zagiął. Ponieważ uważam, że…
Błąd "Cannot update a parent row a foreign key constraint fails" przy pobieraniu rekordów w NHibernate
Dzisiaj kolejny krótki wpis, ponownie dotyczący NHibernate’a. Jak pewnie zdążyliście zauważyć jest to coś co ostatnio sprawia mi najwięcej…
Jak odblokować workspace w TFS
Dzisiaj kolejny przykład z życia wzięty, krótszy ale miejmy nadzieję, przydatny. Zmieniłem na swoim komputerze nazwę grupy roboczej, do…
Wielokrotny join we FluentNHibernate
Wczoraj w pracy natknąłem się na, na pierwszy rzut oka, banalny problem, który jak to często bywa po drugim rzucie okazał się trudniejszy…
Inauguracja
Witam! Jest to mój pierwszy wpis na blogu. Wypadało by przecież jakoś się przywitać i oficjalnie zainaugurować działalność. Zacznijmy od…