Title: Enterprise Frameworks
1Enterprise Frameworks
- Eugenio Pace
- eugeniop_at_microsoft.com
- Product Manager patterns practices
- June 2005
2Agenda
- Introductions
- Definitions
- An exercise
- Experiences
- Resources
3Microsoft patterns practices
- Scenario based guidance
- Enterprise Customers
- http//msdn.microsoft.com/practices
4How Guidance evolves with Products Partner
Offerings
1
patterns practices provides incremental value
today
5
Convergence helps customers evaluate, adopt next
version of platform
6
Partners Customers focus their resources on
value added components rather than plumbing
5Enterprise Frameworks
- Why should you care?
- When to care?
- Productivity?
- Code Reuse?
- Quality?
- Agility?
- Long term investments?
- Decreasing complexity?
- Increase robustness?
- Decrease training costs?
- Break developer-solution dependecy?
ROI on IT
6Enterprise Frameworks
- Framework
- Boundary, bounded, well-defined borders
- Cast, repeatable recipes, proven paths
- An exercise
7Enterprise Applications Challenges
- Integration Capable
- Multiple transport
- Exception handling
- Application hosting
- Extensible architecture
- Services Based
- Stateless Components
- Secure deployment
- Transport choice
- Developer Productivity
- Developer Portability
- Concern Separation
- Live Configuration Updates
- Requirements Change Adaptability (deployment,
transport, etc) - Operations Management
- Consistent Development Experience
- Consistent Usage of Best Practices
- Application Architectural Governance
- Transaction Management
- Authentication
- Authorization
- Validation
- Remote Debugging
- Compensating Transaction
- Timeout Management
- Instrumentation
- Logging
- Duplicate Requests (Idempotency)
- Business Eventing
- Application Monitoring
8Productivity
- Focus on the skills they have
- The framework provides good context where you
get all the things you need - e.g. business logic dev gets database
connections, resources, caches, etc. ready to use - Avoid doing what they dont need to
- Allows getting incremental results, adding
concerns as the requirements skills become
available
Banca Nazionale del Lavoro Study done by the
Customer
Man Hour / Production unit
Production unit 1 use case, medium complexity
? 25 productivity gain
Cumulative units built
9Quality
- Lets the expert do his work
- Encapsulate reuse code around
technology-centric areas - Security Cryptography, Authorization,
Authentication - Management Instrumentation, Configuration,
Adressing - State Management Transactions, Caching, etc
- Prevent the wrong person from having to do a
piece of work hes not skilled at - The environment is resilient to bad behavior
- Avoids pitfalls by design!
- Not catching managing exceptions
- Transactions
- DB Connection Management
- etc.
- Predictable design! Customers know where things
are happening
10Trends of SoC in Distributed Systems
- Good separation of concerns within applications
- Has encouraged consolidation of infrastructure
behavior
- And reducing infrastructure dependencies has led
to efficiency of deployment
Biz Logic
AuthN
Logging
AuthZ
Audit
11LongevityAn example from the last century
Developer View
System Programmer View
About the Program
About Transactions
About the Databases
About Authorization
12RobustnessIn design / requirements on context
and runtime
- Customers want to concentrate any dependency on
specific expertise - Teams change, and knowledge disappears
- Maintainability
- Understandability
- Encapsulate dependencies
- Customer adopts technology because it allows them
to plug into existing infrastructure ? increases
adoptions
Customers Infrastructure
Authorization
13They all look the same
Out-of-Band
Context
Request
Composition Filter
Biz Logic
Response
Plug-In Handlers for specific concerns
Metadata - Pipeline definitions
Concern-specific.- From XML and/or from BizLogic
type
- Just small set of pipeline templates (reuse
within but not across systems) - 1 or few pipelines per layer, with minor
additions for specific sets of logic - Economies of scale 200..4000 business logic
elements, 1..20 pipeline templates - 60..80 of business logic with associated
pipeline - Groups of business logic
- Composition filter could be done via pipelines,
sequenced strategies, chain of responsibility, etc
14Tips and tricks
- The wheel already exists
- Adopt, adapt rather than invent
- Payoff comes in iteration 2 or 3
- Use the (Microsoft ?) platform as much as
possible
15Resources
- patterns practices Application Blocks and
Reference Architectures - http//msdn.microsoft.com/practices
- Enterprise Library
- Composite UI Application Block
- Offline Application Block
- Patterns
16Challenge
- How to package guidelines?
- How to enforce rules?
- How to pro-actively promote proven practices?
17patterns practices GAT Guidance Automation
Toolkit
Guidance Author (Architect)
Guidance Consumer (Developer)
End User
builds
Guidance Package
generates
Guidance Automation Toolkit
Source Code
compiles to
Guidance Automation eXtensions
Application
Visual Studio 2005
18Thanks!
- eugeniop_at_microsoft.com
- http//blogs.msdn.com/eugeniop