Tags

WCF Instance Management

WCF Instance management is a set of techniques to decide whether create a new service instance on each client request or use existing service instance that handles client request. Advantages of WCF Instance Management The biggest advantage of instance management is the use of WCF sessions. With the use of WCF session, a client can use a single service instance for his each request. When ...

Continue Reading

C# Versions and Features

C# versions C# 1 comes in 2002 with .NET framework 1.0 and Visual Studio 2002 C# 2 comes in 2005 with .NET framework 2.0 and Visual Studio 2005 C# 3 comes in 2008 with .NET framework 2.0 and Visual Studio 2008 C# 4 comes in 2010 with .NET framework 4.0 and Visual Studio 2010 C# 5 comes in 2012 with .NET framework 4.5 and Visual Studio 2012 C# 6 preview comes in 2014 with .NET 2015...

Continue Reading

Introduction to Design Patterns

Design patterns is an essential concept in software engineering. Every developer should know about Design patterns and how to apply these patterns in your project. Design Patterns are solutions to some common software design problems. These problems are the recurring design problems that software developers often faced during the development. Design patterns describes a particular problem, its...

Continue Reading

Chain of Responsibility Design Pattern

In Chain of Responsibility pattern, we create a chain of objects which handles a particular request. Each object contains a reference to his next object, if the object does not want to handle the request, it's simply forward the request to next object handler. When a object is ready for handling the request, it's does not forward the request to next object. We use chain of responsibility patte...

Continue Reading

Command Design Pattern

Command design pattern revolves around a single object which encapsulate all the information to execute a method at later time. This command object contains a receiver object instance and a method pointer. A client can use command object with different parameters. Command object uses client parameters and execute the method on the receiver object. Command design pattern is useful when we ha...

Continue Reading

Mediator Design Pattern

In object oriented programming, we have lots of objects interacting with each other. As project continues more objects are introduced and the interaction between these objects becomes dependencies between each other. We modify one object and we have to modify another object too because of dependency with each other. Mediator design pattern provides easy interaction between a set of objects. Me...

Continue Reading

Memento Design Pattern

Memento design pattern provides the ability to store and restore object's internal state without breaking encapsulation. This pattern is useful when we have to support undo or redo operations over an object. In OOPS, every object has internal state. To support undo/redo operations, we must save the state to somewhere. But due to encapsulation, object private/protected properties and methods ar...

Continue Reading

Strategy Design Pattern

Strategy design pattern provides a family of algorithms. Each algorithm implements a single interface and all the algorithms are interchangeable. Client use the interface of the algorithm and can change the algorithm at runtime. Strategy pattern provides loosely coupling between the client and the algorithms. Structure Participants IStrategy: Defines an algorithm contains all ...

Continue Reading

Flyweight Design Pattern

Flyweight design pattern supports sharing of objects. In project, sometimes we have similar kinds of objects. Each object have two types of data. Intrinsic: This data is unique in all objects. Extrinsic: This data is common in all objects. Flyweight pattern gives you a pattern to design these objects lightweight by sharing the extrinsic data to an external object. We store extrinsic ...

Continue Reading

Template Method Design Pattern

In Template Method design pattern, we define our specific algorithm in the base class. A algorithm can compose of several methods. At designing the base class, we don't know the implementation of some methods and we mark these methods as abstract so that subclasses can implement these methods. A method in the base class which use abstract methods are called Template Method. In this pattern, a ...

Continue Reading