最近浏览到一本09年出的书,关于企业架构、企业开发部分有些意思,摘录如下,一些内容还可以参考图书的示范例子下载地址
Professional Enterprise .NET
Jon Arking / Scott Millett
ISBN: 978-0-470-44761-1
Enterprise architecture
Enterprise architecture is typically used to describe an agency-wide or organization-wide framework for portraying and incorporating the business processes, information flows, systems, applications, data, and infrastructure to effectively and efficiently support the organization ’ s needs. At the heart of this definition lies a very broad context aimed at including many different portions of an organization’s participating branches, chief among them the business and information technology departments. We could wax intellectual all day long on the merits of these descriptions, but seeing as how this is a book for developers, let ’ s cut to the chase.
What does enterprise architecture mean from a developer ’ s point of view? It means defining a process, framework, and set of patterns to design, develop, build, and maintain all of the software that an agency or company needs to operate. The operative phrase here is all of the software . It is a unified development platform for creating all elements of software at all levels of design. It includes reusable tools for building client applications, websites, databases, office applications, business automation tools, scripts, and just about anything else that a company may use to get things done. Enterprise architecture also endeavors to break down each of an application’s layers into modular pieces for reusability. These reusable elements can then be used to feed or drive other applications with similar needs.
Here ’ s where the picture starts to get a bit fuzzy. Most developers take on projects with a finite set of business goals, goals that satisfy a specific need or company requirement. Within that scope, there is little consideration for modularity or reusability outside of the system that is being built. On the contrary, project goals rarely allot the time and resources needed to accommodate what is in essence the possibility of component reuse. Instead, typical projects focus development on the end goal only, marginalizing or downright ignoring the larger enterprise picture. Understanding enterprise development means first realizing that this kind of myopic, and often cavalier, development is ultimately counterproductive.
Enterprise architecture is also about defining a solid foundation of code and practices that eventually (and inevitably) facilitate interoperability in a heterogeneous software environment. This foundation provides both a toolset for creating software application, as well as a set of boundaries and rules within which those writings said applications need to work. The combination of both process and toolset is one of the key concepts to creating enterprise software. It expands on the otherwise traditional concepts of computer programming that concentrated on what one coded and mostly ignored how one coded. The incorporation of software development methodologies and lifecycle management becomes as important a part of building an application as the code itself.
Enterprise Development
Enterprise development commonly refers to the patterns and practices adopted by programmers endeavoring to implement enterprise architecture. It is the employment of certain approaches and methodologies that aim to achieve many of the root goals inherent to a successful enterprise system.
What these goals are specifically changes from organization to organization; however, at the root, they address five key areas of system development:
1. Reliability
2. Flexibility
3. Separation of concerns
4. Reusability
5. Maintainability
These base tenets are embraced by all developers of enterprise systems, and they help to define the core of what most modern developers consider to be well - designed software. Enterprise development embraces these ideals, weaving them subtly into the tools and processes that drive software logic.
本书主要涉及面向对象设计原则、测试驱动和相关的框架工具、模式、IOC、业务、数据、UI层不同的框架和模式等等
基于以上的原理的示范工程
这些内容有的已经比较老了,主要思想还是一样的。
如WPF程序的MVP模式,现在一般都使用MVVM,结合WPF并能提高效率
相关的可以参考