Skip to content

Category: CS Fundamentals

Implicit vs Explicit Dependencies

If our class depends upon other classes to complete its operations, then these other classes are dependencies for our class. Our class can have these dependencies as implicit or explicit dependencies. What does this mean? What effect does it have on our application design? Let’s try to find answers to these questions.   Implicit Dependencies The dependencies are implicit for a class, if they exist only in the code within…

5 Reasons to write Loosely Coupled code

In the last post, we analyzed a tightly coupled application and listed out the problems we found with the same. In this post, we will explore, how writing loosely coupled code helps us keeping our applications easy to write, test and maintain.   Introduction A loosely coupled application has good isolation among its classes, modules and assemblies. Therefore, if we make a change to one part…

Pre/Post Build Events in Visual Studio

Introduction Pre/Post Build Events are useful when we wish to perform some operation before/after a project is build. These operations are nothing but the shell commands being used from the command line. Consider a scenario where we build our library project and its .dll is saved into the Project/bin/Release directory. For some reason we want all our library files in one common directory that we would refer…

Entity Vs Model Vs ViewModel Vs DataModel

Different people define Entity, Model, ViewModel and DataModel in different ways. However, these terms may sometimes differ from their actual meaning, based upon the context. In this post I would like to share my understanding of these terms.   Entity An entity is the tabular representation of your domain class/object in the database and has an identity. In fact, an entity represents a single instance…

Understanding Assemblies

Code reusability has always been one of the major concerns for software developers. You do not ever want to write a similar code for two business problems. You would rather like to write the solution once and reuse it whenever and wherever required. This requirement of code reusability gave rise to the concept of creating assemblies and using them in different applications by adding a reference…