SOLID 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, then I would recommend you taking my SOLID tutorial just for 10.99$. Interface Segregation Principle Definition Before giving a definition, I want to [...]

By |2019-01-11T11:11:55+03:00December 27th, 2018|.NET, Best Practices, C#, CodeProject, Design|34 Comments

SOLID 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. Liskov. It’s not very hard to grasp what this definition means but I’ll quote the definition of LSP from the book of Uncle Bob “Agile Principles, [...]

By |2019-01-11T11:12:07+03:00December 26th, 2018|.NET, Best Practices, C#, CodeProject, Design|1 Comment

Algorithms 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 important requirements for a great number of work positions. You'll have to solve many problems related to algorithms and data structures at coding interviews. Indeed, you can live without an understanding of algorithms and data structures, [...]

By |2018-12-03T16:22:45+03:00December 3rd, 2018|.NET, C#, Video Courses, Fundamentals|1 Comment

Introduction 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 browsers, e.g. click on buttons, select check boxes, type in some text and so on. There are two major ways of using the power of Selenium: Selenium IDE – There is Selenium IDE which, [...]

By |2019-01-11T11:12:31+03:00October 30th, 2018|CodeProject, Testing, .NET, C#|1 Comment

Complete 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 enormously powerful feature allowed to build a whole framework built upon it called LINQ or Language Integrated Query. I’ve seen many code bases which avoid using LINQ and rely on the [...]

By |2018-11-12T00:14:58+03:00September 12th, 2018|.NET, C#, Video Courses|1 Comment

Multithreading 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 used by software properly. We, as software developers, should know how to write asynchronous and parallel executing code to make our applications faster and more responsive. This course is all [...]

By |2018-07-25T13:18:35+03:00July 25th, 2018|C#, Multithreading, Video Courses, .NET|0 Comments

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 fact, C# is one of the richest on features language among object-oriented languages in the world nowadays. But with great power comes great responsibility. It's challenging to use all those features in a right [...]

By |2018-11-12T00:15:56+03:00July 25th, 2018|Refactoring, Video Courses, .NET, Best Practices, C#|0 Comments

TDD in C# From A to Z

Today unit testing is the absolutely required skill which is required from any professional developer. Companies expect from developers to know how to write unit tests including all the most important topics such as mocking and test-driven development (TDD in short). This course is all about practicing TDD using C# programming language and NUnit as a unit testing framework. Along the way, we [...]

By |2018-11-12T00:14:30+03:00May 8th, 2018|.NET, C#, Video Courses, Functional Programming|0 Comments

What the Hell is Functional Programming in C#?

Why Functional Programming I'm starting a series of posts on functional programming in C#. The series is kind of a preview of a video course I'm working on right now which will be released somewhere at the end of February. So, you may ask yourself again “why would I need to learn functional programming”? You may also think that you’ll never use a [...]

By |2018-02-09T14:40:40+03:00February 9th, 2018|.NET, C#, Functional Programming|0 Comments

SOLID Principles: The Open/Closed Principle (OCP)

The second principle we’re going to talk about is the Open/Closed Principle. If we look at Wikipedia, we will see the following definition: The Open/Closed Principle states that software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification. Problem Statement What it means, in essence, is that when we need to introduce a change, we shouldn’t dig deep into [...]

By |2019-01-11T11:13:14+03:00September 4th, 2017|Design, .NET, C#, CodeProject|0 Comments
Go to Top