Refactoring: Extract a Method, When It’s Meaningful
Well, now it’s hard to remember the moment, when I first time realized that it’s actually a good idea to extract functions from the massive chunks of useful code. Either I got this knowledge from the...
View ArticleUpdateableSpin synchronization primitive
Today we are going to look at a relatively rare case of synchronization. In order to understand the case we’re going to talk about you can imagine the following case: “Your code makes a call to the...
View ArticleHandling Errors and Exceptions. Part 1 – Intro.
Have you ever seen that recommendation to avoid exception handling like this: try { //do something } catch(Exception ex) { } Well, indeed, I agree that this kind of code looks pretty bad. But is it...
View ArticleHidden Dependencies as a Smell
Mark Seemann has written a nice post “Service Locator violates encapsulation”. The name of the post speaks for itself that it’s about a pattern (anti-pattern) named Service Locator. When a programmer...
View ArticleCryptography in .NET for Beginners
This is a brief introduction into Cryptography in .NET. Hashes Hashing is a transformation process of some input data of an arbitrary length into an array of bytes of fixed size. Hash is a one-side...
View ArticleGlobal Exceptions Handling in WPF
Are you sure know the difference between the following events? Dispatcher.UnhandledException Application.DispatcherUnhandledException AppDomain.UnhandledException TaskScheduler.UnobservedTaskException...
View ArticleObjects Equality in C#
Don’t forget that if you want to get my upcoming video courses with 50% discount, then fill the following form. C# provides many ways to compare objects, not only to compare class instances, but also...
View ArticleMoney Type as Value Object, or Don’t Rely on Primitive Types!
Primitive Types Obsession Problem Today I’m going to discuss the problem of using primitive types instead of abstractions. This problem was discussed in the blog of Mark Seemann. Read it, if you...
View ArticleLearn Enterprise WPF with XAML from Scratch
My first course “Learn Enterprise WPF with XAML from Scratch” went live on Udemy.com and it is absolutely FREE! It is a great WPF tutorial for beginners! In this course you can learn deeply the...
View ArticleC# Static Code Analysis with NDepend
Have you heard about the “goto fail” fail? This is a security bug which was introduced by Apple in one of the iOS updates. Long story short, there was a piece of unreachable code which had to perform...
View ArticleMVVM in WPF Survival Guide Went Live!
My second video course “MVVM in WPF Survival Guide From A to Z” is done and released. This is a great MVVM Tutorial for Beginners! Learn how to create a maintainable Windows application applying MVVM...
View ArticleMVVM: When EventAggregator (aka MessageBus) is an Anti-Pattern
Very often we can see that developers tend to use static message buses for all kind of interactions between objects. For those, who unaware of this pattern I want to recall that this pattern allows...
View ArticleThe Truth About Martin Fowler and Uncle Bob
– Why did you do that? – Fowler (Uncle Bob, Mark Seemann) said this is the best practice. Very often we can hear and read such conversations. When I was younger I also argued by using names of famous...
View ArticleDesigning and Implementing API in C#
Nowadays I’m writing my new programming video course. I chose an interesting topic for the next course: “Designing and Implementing API in C#”. How to design API? In this course, you’ll learn how to...
View ArticleAbstract Class VS Interface in C#
You can open any C# tutorial and you’ll find some information about abstract classes and interfaces. Most likely, you’ll not find any information about what is the difference between abstract class and...
View ArticleAPI in C#: The Best Practices of Design and Implementation
I’m excited to announce that my new “API in C#: The Best Practices of Design and Implementation” course is now live on Udemy. You can take it with 60% off! In this course, over 3.5 hours, you’ll learn...
View ArticleHandling Errors and Exceptions in C#. Part 3
This is the third and most comprehensive part about handling errors and exceptions in C#. Here are the first and the second part. Also, you can take a look at the blog post about global exceptions...
View ArticleModern .NET Ecosystem and .NET Core
Last years a great number of technologies came up to the world of .NET platform: nowadays we have the full (classic) .NET framework with CLR as a runtime, Mono with its own runtime, .NET Core with Core...
View ArticleWhat’s New in C# 6, C# 7 and Visual Studio 2017
C# is one of the most powerful languages in the modern world of programming. It has one of the most powerful type systems. There was a battle for some time between Java and C# and now we can say for...
View ArticleLearn Unit Testing with NUnit and C#
Learn deeply the concepts and tools that you will need to build maintainable and reliable software. Teaching Approach No fluff, no ranting, no beating the air. I esteem your time. The course material...
View Article