130 likes | 302 Views
Enterprise development reference architecture (EDRA). -Deepti Seelamsetti. Agenda. Current challenges in building enterprise class applications. Best practices and Patterns EDRA What is EDRA? EDRA High Level Logical view EDRA Pipeline Flow Application Blocks Summary.
E N D
Enterprise development reference architecture(EDRA) -Deepti Seelamsetti
Agenda • Current challenges in building enterprise class applications. • Best practices and Patterns • EDRA • What is EDRA? • EDRA High Level Logical view • EDRA Pipeline Flow • Application Blocks • Summary
Challenges in Enterprise Application Development • Complex data • Multiple simultaneous users • Varying business requirements • Heterogeneous platforms.
Best practices and patterns • What is a pattern? A pattern is a form, template, or model (or, more abstractly, a set of rules) which can be used to make or to generate things or parts of a thing, especially if the things that are generated have enough in common for the underlying pattern to be inferred or discerned, in which case the things are said to exhibit the pattern.
Best practices and patterns • What is a pattern? Describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.
EDRA • EDRA provides architectural guidelines that an organization can use to standardize the development of distributed applications.
EDRA Guiding Principles • Separation of Concerns • Separating the service interface from the internal service implementation. • Separating business logic from cross-cutting concerns such as logging, monitoring, or raising business events. • Separating business logic from the underlying transport so that multiple transports can be used to access a single service implementation. • Benefits • Leverage strengths of different types of developers. • Preserves business logic through changes to “plumbing”.
Enterprise Development Application Framework (EDAF) is one possible implementation of the conceptual architecture. Frameworks are useful for: Productivity: Frameworks standardize the way in which a class of problems is solved. Time to market: Increased productivity due to the need to develop and test only code that is related to business requirements. Predictability: Reusable, tested solutions based on a predefined architecture reduce risk and increase the predictability of the development process. EDRA Framework (EDAF)
EDRA-Application Blocks • Application blocks are a type of guidance, provided as source code that can be used "as is," extended, or modified by developers to use on enterprise development projects.
Summary • EDRA is one model for building distributed applications with the following characteristics: • Enterprise scale projects • Advanced architecture • Large, diverse, and distributed development teams • Includes an extensible application framework that incorporates reusable assets allowing you to use: • ASP.NET Web services • Message Queuing • Enterprise Services • Brings together patterns & practices guidance: • Design patterns • Application blocks • Security and performance guidance
Benefits • Productivity: Frameworks standardize the way in which a class of problems is solved. • Time to market: Increased productivity due to the need to develop and test only code that is related to business requirements. • Predictability: Reusable, tested solutions based on a predefined architecture reduce risk and increase the predictability of the development process.
What EDRA Is Not • EDRA is not a supported Microsoft product. • EDRA is architectural guidance provided in the form of code which you can use “as-is”. • Support: EDRA is considered “user-written code” by product support. • Compatibility: EDRA is not guaranteed to be forward or backward compatible. • Localization: EDRA is not localized. • EDRA is not the only “right” way to build distributed applications. • EDRA is not the Microsoft reference architecture for building service oriented applications. • EDRA can be used for building any kind of distributed application. • Much of what EDRA does is orthogonal to service orientation.