Microsoft's dotnet development is definitely the kind of technology that makes it easier to get started. It is virtually impossible to be able to become a dotnet architect without three years or longer coding accumulation. Especially in large software projects, architects are the core members of the project, so the RUP methodology also agrees with architecture as the core and embodies the important role of 4+1 view in the whole software development process. Architects must be proficient in technology and familiar with the business, and the basic software life cycle of all stages of related technologies need to have the relevant accumulation and knowledge reserves, and these years of training is difficult to achieve this height.
To become a qualified architect must first be a qualified or excellent coding staff, for the development of coding is always the most important skill, in the coding process as long as they are good at thinking and analyzing problems, you can learn a lot of relevant knowledge and technology. Therefore, we must pay attention to the new knowledge and technology in the development process of learning, predecessors experience and results of learning. some of the issues that should be considered during the coding process are :
1. Do you do unit tests in the encoding process, do unit tests with related tools, and if not, what are the reasons why you can't do unit tests?
2. Self-coded leak rate, cause analysis of the bug that encoded the leak
3. Is it consciously refactoring the code, or is the idea of a design pattern introduced in the refactoring process?
4. Whether to learn some advanced features of the C # language, such as reflection invocation, asynchronous processing, and so on.
5. Have you studied and compared the two distributed technologies of remoting and webservice?
6. Do you often study open source projects and open source code, such as Duwamish,petshop,nunit,enterprise library,nant, etc.
7. Research on the object persistence mechanism and related technologies such as O/R Mapping
8. Whether to pay attention to the reuse and extraction of common components and common classes in the encoding process
9. Do you often develop tools to improve work efficiency and learn knowledge when working and studying in peacetime
Design and coding are really close and inseparable, and the waterfall model that separates design and coding is generally used only in large projects. And in time coding and design separation, is not the coder does not need to think, coding activity is always a creative labor, if the negation of this view, it means that the coding process completely does not require personnel intervention and can be fully automated. Therefore, in this talk about the design is mainly refers to the designers of the systematic thinking ability, designers should be higher than the developer station to analyze and consider the problem. One of the most important skills of a designer is the transformation of reality-----abstract, and this need to talk about methodological issues, technical personnel need to accumulate the face of object analysis and design or structural analysis of knowledge accumulation, need to have strong database analysis and design capabilities. The depth and breadth of this accumulation is key to a design being a good architect.
So the issues to be considered in the design process are :
1. Are you currently capable of analyzing and designing for large or medium-sized applications or are they just independent functional analysis and design?
2. Is the design process consciously taking into account the components of the reuse and related interface design guidelines. It is possible to apply the relevant content of the analysis pattern and design pattern to the design process naturally.
3. Whether to Xp,rup, object-oriented, structural and other methodologies have a more systematic study and thinking.
4. Do you really understand the different guiding roles of system functional requirements and non-functional requirements on system design?
5. Is the function designed for yourself to reflect on the changes that have been made to your design so that the changes are not well adapted?
6. Do you often develop prototypes to validate your design ideas during the design process?
7. Do you focus on technology and start the analysis of professional business processes and focus on business modeling?
If we are constantly focusing on these knowledge and skills during the design and development process, it is a matter of time before we become a qualified architect. The knowledge and skills that are usually competent for the development of a job are negligible, and if you do not consciously learn the knowledge, the skills are difficult to improve. I attended two Microsoft architect training, and at the Microsoft Architecture Summit in Beijing, I also had the opportunity to participate in P&p Workshop's study, the training teacher is Microsoft headquarters smartclient Architecture and Design Guide Edward A.jezieski, the author of the book, let me Feel the deepest is the deep technical background of foreigners, the persistence of the development of the program.
1.rup methodology, 4+1 view. Use case driven business modeling, analysis model, design model
2. Design pattern, analysis mode, use case pattern
3. Common distributed Technology
4. Attention to non-functional requirements such as security, exceptions, logs, performance
5. Some reference books about the overall business of the application (Microsoft website and electric donkey can be downloaded to)
Reference books provided by Microsoft website
Enterprise solution Patterns Using Microsoft. NET
. NET Data Accessarchitecture Guide
Application Architecture for. net:designing Applications and Services
Caching Architecture Guide for. NET Framework Applications
Designing Application-managed Authorization
Smart Client Architecture and Design Guide
Bibliography of other architectural aspects
Software Architecture in practice
pattern-oriented Software Architecture
The Art of software Architecture
Beyond Software Architecture
Patterns of Books
Analysis Patterns
Design patterns-elements of reusable object-oriented software
Applying UML and Patterns
Design Patterns Explained
How to alchemy into net frame architect