Master the Art of Writing Clean Code in C#
Foundations of building object-oriented infrastructures Despite the fact that C# is a very rich on features language, it’s very common to see poorly designed and implemented types in a real world. In...
View ArticleMultithreading and Parallel Programming in C#
For the last two decades, computers became faster by increasing the number of CPU cores. However, the fact of having more cores itself doesn’t make a computer drastically faster if those cores are not...
View ArticleDouble Your Coding Speed with Visual Studio and ReSharper
Learn how to speed up the coding process in bear Visual Studio 2017 and VS empowered by ReSharper (R#). Modern integrated development environments or IDEs, in short, allows us to perform miracles....
View ArticleComplete Practical LINQ Tutorial in C#
LINQ to Entities, LINQ to Objects, LINQ to XML, Functional Programming and LINQ Extension methods were introduced in C# 3 and since then became an indispensable part of the .NET platform. That...
View ArticleAcceptance and UI Testing with SpecFlow and Selenium
Pyramid of Tests Basically, tests can be divided into three major groups: unit tests integration tests acceptance tests Unit tests are those tests which verify the behavior of a unit under test in...
View ArticleWriting the First Acceptance Test with SpecFlow
To write acceptance tests using SpecFlow, we need to properly set up the environment and a testing project. At first, we need to install a SpecFlow extension for Visual Studio. We need it because...
View ArticleIntroduction to Selenium
What is Selenium Selenium is a portable software testing framework for web applications. Basically, it automates browsers what in other words means that it simulates how human beings interact with...
View ArticleAlgorithms and Data Structures in C#: Complete Tutorial
Why learn about data structures and algorithms? Algorithms and data structures constitute the fundamentals of programming. Good understanding of algorithms and data structures is one of the most...
View ArticleSOLID Principles: Liskov Substitution Principle (LSP) In Practice
LSP Definition The official definition from Barbara Liskov sounds like this: “If S is a subtype of T, then objects of type T may be replaced with objects of type S, without breaking the program” – B....
View ArticleSOLID Principles: Interface Segregation Principle (ISP)
In this part of the SOLID series, we’re going to revisit the ISP or Interface Segregation Principle. Yep, this is a very long article. If you want an easier way of learning SOLID principles in depth,...
View Article