How to choose architecture before starting a web-application in asp.net?
I am little bit confused that how we can choose a best开发者_Python百科 architecture and a best model before starting a website or web-application in asp.net?
because most of the time i saw we choose a wrong architecture or model for this application and we found this at the middle or end of the application, when we can't change it at that time?
Choosing the "best" architecture is all about understanding the drivers behind the solution that's required. This isn't something that the dev team can do on their own - they need to work with the business / stakeholders to ensure they understand the relative priorities.
One of the reasons for this is that you don't want "architecturally significant" priorities to change mid-stream (the degree of change will probably be too much). If things aren't elaborated enough early on you'll discover major drivers when its essentially too late.
So "how" do you do this?
- Understand the problem and draw up a list / matrix of criteria that is relevant. for example:
- "It's essential that users can swap-out modules with their own implementations, so the architecture must support modular design."
- This might then lead to: "components need to be swapped out at run-time without taking the system off-line", so the architecture must support "hot-swappable" modules.
- The system will need to support desktop and phone based clients so we need to keep the separation of the UI and Business services very clean.
- The system will need to support different database platforms so the dataaccess must be loosely coupled.
- Non-functional Requirements: what ones are important? identify the top 3-5 and prioritze them. Does security always trump usability? Is scalability important - if so should our architecture allow us to deploy different parts of the system to different physical servers?
- Generally speaking what you're trying to do has been done before - go out and do some research: find reference architectures and implementations, evaluate them against your criteria.
- When looking at reference architects just remember that there's different ways you can approach it - by domain (medical, banking, telecom) or by technology (cloud vs web / java vs .net). TOGAF has the concepts of Architecture and Solutions Continuums - see the diagram and text in section 9.6.1. It works on the idea that somewhere someone else will probably have defined a good architecture that might be a good fit for your situation
精彩评论