What is a difference between a Framework, an design pattern and an architecture
Pradeep Shet
There is basic difference between framework and design pattern, frameworks are skeleton solution which are designed and built to automate the common and repeating development activities. They are like development tools which normally required some input in configurable way to produce desired output. They are consists of dlls, exe and other source files and could be injected in your own code while design patterns do not. Design patterns are high level solution template for software development & design related problems, they are not the direct solution of problems. They are like best practice solutions suggested by experienced people of industry for the problems come in development phase and in modification. For example Log4Net is a framework you can add its dlls in your own project use as ready made solution for logging instead of writing your own code for same. Implementing a separate class to delegate responsibility for object creation is an example of design pattern.
Framework is a set of reusable codes or libraries which serves a common purpose across different projects.Design pattern is a way to solve a problem in a best possible way. For example you want to write a piece of code which will notify all objects of a class that there is some change in other object. This is done through Observer Pattern.Architecture is how the data will flow in your application. For example 3 tier architecture. There is a presentation layer which will communicate with business logic layer. If business logic layer needs some data then it will communicate with Data access layer.
each one is different from other-Framework- This is used for developing a solution (provides an environment) to develop a solutionDesign Pattern- it is very high level things which provide a solution to solve the problemArchitecture- This provide complete graph or structure of an application
Framework:- It provide us a development environment.Design Pattern:- It provide us a solution for similar kind of problem. Architecture:- It provide us a complete structure of any application or software.
http://slynetblog.blogspot.com/2011/04/lightweight-nhibernate-and-aspnet-mvc.html http://weblogs.asp.net/thangchung/archive/2010/10/05/nhibernate-3-and-autofac-can-go-together-part-1.aspx
That's two rather different questions.Architecture is how you design your applications Design patterns is solutions to specific programming problems A Framework solves a larger problem (see below) A framework usually solves a larger problem like how to work with a database (nhibernate) or how to create a web site (ASP.NET MVC), while design patterns solves smaller problems like how do I notify all classes that depend on me when something have happened (observer pattern)
Framework is basically a group of classes which provides different types of functionality to achieve. It could support different programming languages to be used as a same time.Design Pattern deals with the object oriented programming way of solving our problem. Architecture is as aspect to look at the design pattern. It could help us to organize the application
Think this way Framework will provide you API to design your architecture and implement the architecture. Design Patterns are just a solution of existing problems or the may we can write the loosely coupled code. And Architecture is how u will segregate your login in units called class or service.
Architecture is how you design your applications Design patterns is solutions to specific programming problems A Framework solves a larger problem