In der Softwareentwicklung kann man sehr weit kommen, ohne sich systematisch mit Informatik beschäftigt zu haben. Frameworks, Programmiersprachen, Cloud-Plattformen und Libraries lassen sich lernen, indem man sie benutzt. Viele Probleme können mit…
Für mich bedeutet Digitalisierung deutlich mehr als die Umwandlung analoger Informationen in digitale Daten oder die Einführung neuer Software. Aus meiner beruflichen Erfahrung in der Softwareentwicklung und heute insbesondere in der Softwarearchitektur…
Das Interface existiert. Es ist injiziert. Der Reviewer sieht ein I und geht weiter. Das kompiliert. Es lässt sich mocken. In der Architekturfolie steht Persistence hinter Interface. Der Caller schreibt trotzdem: Er…
Designing Explainable Change History with JSON Snapshots Most applications can save data. Far fewer can explain what changed, when it changed, and why the current state looks the way it does. That…
C# is one of the most versatile and beginner-friendly programming languages available today. It powers everything from enterprise applications and cloud solutions to video games (thanks to Unity) and mobile apps. But…
Introduction In the ever-evolving world of software architecture, the debate between monolithic and microservices architectures continues to spark discussions. While microservices have gained immense popularity for their scalability and flexibility, they also…
Learning computer science concepts can sometimes feel overwhelming with the sheer number of topics to cover: data structures, algorithms, programming paradigms, memory management, and more. One of the most effective ways to…
In object-oriented programming (OOP), two key approaches for code reuse and structuring are inheritance and composition. Understanding when to use each can significantly affect the scalability, maintainability, and flexibility of your applications.…
When developing software, applying established design principles helps ensure your code is clean, maintainable, and scalable. In this article, we explore some of the most important principles, including SOLID, DRY, and WET,…
When designing software systems, the concept of cohesion plays a crucial role in determining the quality and maintainability of your code. Cohesion refers to how closely related the responsibilities of a single…
Polymorphism is a fundamental concept in object-oriented programming (OOP) that allows objects to be treated as instances of their parent class rather than their actual derived class. This makes your code more…
Delegates in C# are a cornerstone of functional programming, enabling developers to pass methods as arguments, define callbacks, and create flexible, reusable code. Among the most commonly used delegates are Action, Func,…
For anyone delving into the world of C# and .NET development, C# in a Nutshell by Joseph and Ben Albahari has become a gold standard. Renowned for its concise, in-depth, and approachable…
In C#, the variety of collection interfaces and classes can sometimes be overwhelming, especially for developers new to the language. Understanding the differences between IEnumerable, ICollection, IList, and List is crucial for…
When it comes to learning .NET development, finding a concise, practical, and easy-to-follow resource can be challenging. This is where DotNetPerls shines. As a trusted repository of .NET programming examples and performance…
Gernot Starkes Buch Effektive Softwarearchitekturen – Ein praktischer Leitfaden ist ein Standardwerk für Softwareentwickler und Architekten, die robuste, wartbare und effiziente Softwarelösungen entwerfen möchten. Mit einem klaren Fokus auf praxisnahe Methoden bietet…