Author: Dhanik Lal Sahni

With over 18 years of experience in web-based application development, I specialize in Salesforce technology and its ecosystem. My journey has equipped me with expertise in a diverse range of technologies including .NET, .NET Core, MS Dynamics CRM, Azure, Oracle, and SQL Server. I am dedicated to staying at the forefront of technological advancements and continuously researching new developments in the Salesforce realm. My focus remains on leveraging technology to create innovative solutions that drive business success.

We have two approaches to build web applications in current time: Traditional web applications and Single page applications (SPAs). Traditional web applications perform most of the application logic on the server side whereas single page applications (SPAs) perform most of the user interface logic in a web browser. Single Page Application communicate with the web server primarily using web APIs. When to Choose Traditional Web Pages We can use below factor to use Traditional Web Pages. 1. Application is simple and very less user interaction Many web application has very less user interaction like google.com, where user only search any query and they get result in result box…

Read More

The Liskov Substitution Principle states that subtypes must be substitutable for their base types. In order to substitute work, child class must not Remove base class behavior Violate base class invariants In general calling code should not know they are different from base types. LSP suggests that IS-A relationship should be replaced with IS-SUBSTITUTABLE-FOR. Let us take example of any web site subscription. Web site offer two types of customer, one is free and other is paid customer. So we will be having an interface like below public interface ICustomer { string CustomerName { set; get; } int CustomerCode { set; get; }…

Read More

Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification. According to this principle, component should be Open to ExtensionNew behavior can be added in the future. Closed to Modification Changes to source code is not required. Based on above statement, software entities should change behavior without changing code. For this, we have to use abstraction to implement behavior. In .NET we can use Interface and Abstract class to implement abstraction. Let us see an example of e-commerce application to calculate cart’s total amount. public class OrderItem { public string StockKeepingUnit { get; set; }…

Read More

According to Wikipedia the Dependency Inversion Principle (popularized by Robert Martin) states that: High Level Modules should not be depend upon low level modules. Both should depend upon abstractions. Abstraction should not depend upon details. Details should depend upon abstraction. In application architecture, UI is always on top level. All request goes from UI to business layer and then database layer. Database layer connects with database and fetch required data.   When we define Dependency Inversion Principle in above architectute, The presentation layer defines the abstractions it needs to interact with an business layer and the business layer defines the…

Read More

SRP states, “An object should have only one reason to change”. If an object has more than one reason to change then it has more than one responsibility and is in violation of SRP. An object should have one and only one reason to change. Let us take example of below code, where XML file with product information is parsed and displayed on screen. FileDialogReader.Filter = “XML Document (*.xml)|*.xml|All Files (*.*)|*.*”; var result = FileDialogReader.ShowDialog(); if (result == DialogResult.OK) { txtFileName.Text = FileDialogReader.FileName; lstProduct.Items.Clear(); var fileName = txtFileName.Text; using (var fs = new FileStream(fileName, FileMode.Open)) { var reader = XmlReader.Create(fs);…

Read More

SOLID Design Principle is a collection of best-practice,object-oriented design principles which can be applied to your application design. This allow us to accomplish various desirable goals such as loose-coupling, higher maintainability. SOLID is an acronym where: (S)RP: Single Responsibility Principle There should never be more than one reason to change any class. (O)CP: Open Closed Principle Software Entities (Classes, Modules, Functions, etc. ) should be open for extension but closed for any modification. (L)SP: Liskov Substitution Principle Function that use objects of base clasesses must be able to use objects of other dervied class wihout knowing it. (I)SP: Interface Segregation…

Read More

Singleton Design Pattern is used when we want to ensure that only one object of a particular class need to be created. All other objects will refer that object to get values. This pattern create object so it falls under Creation Pattern of Gang Of Four design patterns. Condition for Singleton Design Pattern: Singleton Design Pattern need to be implemented where below three requirements are satisfied Controls concurrent access to a shared resource Access to the shared resource will be requested from multiple, disparate parts of the system There can only be one object of class Some Example where we can use Singleton Design Pattern:…

Read More