Title: Md Microsoft for udviklere
1Mød Microsoft for udviklere
arkitekterArkitektur Introduktion
- Jørgen Thyme
- Microsoft Danmark
- jorgenpe_at_microsoft.com
- http//www.rolighed.net/weblog
2Outline
- Introduction
- patterns practices (pp)
- Other frameworks
- Describing the Enterprise Architectural Space
- Feedback
3Introduktion
- Baggrund for arkitektspor _at_ Mød Microsoft
- Indhold og form vil variere
- www.microsoft.dk/arkitektur ?
- Profilering af jer
- Efterlysning af feedback
4Outline
- Introduktion
- patterns practices (pp)
- What are pp and PAG?
- pp Application Blocks
- Enterprise Library
- Building With Blocks
- Other frameworks
- Describing the Enterprise Architectural Space
- Feedback
5patterns practices
- Specific recommendations illustrating how to
design, build, deploy, and operate
architecturally sound solutions to challenging
business and technical scenarios
Platform Architecture Guidance (PAG) team
Application Platform
Built for architects and developers
Architecture, design, development, deployment,
and operations of custom applications.
Focus of this presentation is on PAGs work with
the Application Platform
6Where Can You Find pp?
- On Microsoft.com
- http//www.microsoft.com/practices/
- On Bookshelves
- http//www.amazon.com/practices/
- On GotDotNet
- http//workspaces.gotdotnet.com/ (search on
patterns practices)
7Forms Of Guidance
Reference Architectures
Application Blocks
Patterns
Atomic solutions to recurring problems
Sub-system-level guidance for common services
System-level guidance for common customer
scenarios
Guidance on architectural principles and
cross-cutting issues such as security and
performance
Guides
8Outline
- Introduktion
- patterns practices (pp)
- What are pp and PAG?
- pp Application Blocks
- Enterprise Library
- Building With Blocks
- Other frameworks
- Describing the Enterprise Architectural Space
- Feedback
9How Many Times
- Have you asked or said?
- Most applications need something like this
- People must have written hundreds of things like
this - I wish I could find a solution for this that I
could reuse
10Application Block This
- Reusable, extensible, modifiable
- Common mechanism
- Logging
- Caching
- Configuration management
- Reusable fragment of app architecture
- User interface process management
- Smart disconnected client
- Service aggregation
11What Does A Block Look Like?
- Source Code
- Documentation
- Quick Start samples
- Community
12Block Component Or Framework
- APIs to perform services
- At abstraction level you want from application
- Configurable behavior
- Reduces need for modifications
- Provider plug-ins
- Lets you choose strategies and dependencies
- Provides fragment of your application
architecture - Base classes, interfaces, IOC pattern
13Calling Data Access Block
- private DataSet RetrieveDataset(string
connectionString, int categoryID) -
- // ExecuteDataset static method of SqlHelper
that returns a DataSet - // Parameters database connection string,
command type, stored procedure name - // and categoryID SqlParameter
- DataSet ds SqlHelper.ExecuteDataset
(connectionString, CommandType.StoredProcedure, - "getProductsByCategory",
- new SqlParameter("_at_CategoryID", categoryID) )
- return ds
14Extending UIP Block v2
ltviewsgt ltview name"Form1 type"Demo.Form1,
Demo" controller"MyController layoutManager
VerticalLayoutManager stayOpen"true"/gt ltvie
w name"Form2" type"Demo.Form2, Demo"
controller"MyController" /gt ltview /gt
lt/viewsgt
15Current Blocks
UIP
Smart Client Offline
Operational Management
Security
Communication
UI Components
Application Updater
UI Process Components
Authorization Profile
Service Gateways
Logging
Service Interface
Caching
Business Components
Exception Management
Data Access Components
Service Gateways
Config Management
Data Access
Asynch Invocation
Service Aggregation
16Summary Of The Feedback
- Make blocks consistent
- Make blocks work well together
- Minimize dependencies
- On other blocks
- On infrastructure
- Make it easier to configure blocks
- Make evaluation and understanding of blocks
easier - Make using blocks easier
- Come up with predictable upgrade and support
policies
17Outline
- Introduktion
- patterns practices (pp)
- What are pp and PAG?
- pp Application Blocks
- Enterprise Library
- Building With Blocks
- Other frameworks
- Describing the Enterprise Architectural Space
- Feedback
18Enterprise Library
- Developed following consistent design and
development principles - Developed to encourage community participation
- Developed with a partner
- Expected release date Dec. 2004
19Block Library v1
Security
Exceptions
Logging
Data Access
Caching
Crypto
Config Tooling
Config Run-Time
20Consistency
- Design and implementation principles
- Configuration
- Documentation
- Tests
- Tooling
- Samples
- Operational requirements
- Installation procedures
21Integration
- Packaged as integrated library
- Configuration understands how to use blocks
together in application - Blocks used as providers for other blocks
22Extensibility
- Pluggable providers
- Replaceable block implementations
- Guidelines how to create new blocks
- Design patterns and principles
- Hooking into config tool
- Documentation guidelines and templates
- Testing requirements
23Compatibility With Current Blocks
- No binary compatibility
- There will be migration guidelines
- Recommendation
- Dont upgrade a working application to new blocks
unless it is a part of a larger upgrade
24Outline
- Introduktion
- patterns practices (pp)
- What are pp and PAG?
- pp Application Blocks
- Enterprise Library
- Building With Blocks
- Other frameworks
- Describing the Enterprise Architectural Space
- Feedback
25Cross-Cutting Logic Blocks
- Logging, Caching, Exception Management
- Dont change application architecture
- Aspect-like
- Plugged into use case flow at interception
points - Provide functionality orthogonal to the main
business flow
26Framework Blocks
- UIP, Smart Client, Service Aggregation
- Use of frameworks changes the way you write parts
of applications - You write inside frameworks
- Frameworks impose application structure
27Outline
- Introduction
- patterns practices (pp)
- Other frameworks
- Describing the Enterprise Architectural Space
- Feedback
28Enterprise Development Reference Architecture
(EDRA) aka Shadowfax
- Enterprise Development Reference Architecture
(EDRA) aka Shadowfax - Enterprise scale projects
- Advanced architecture
- Large, diverse 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
- NOT SUPPORTED IN ANY WAY
29EDRA (Shadowfax)
- Application framework supporting
- Separation of service interface and
implementation - Separation of business logic and cross-cutting
concerns - Separation of business logic and underlying
transports - Different deployment patterns
30Other
- Spring.NET (Rod Johnson, SpringFramework),
- PicoContainer
- FABRIQ
- One way async queing net architecture
- WSE 2.0 and WS-Adressing
- High performance dist. apps
31Outline
- Introduction
- patterns practices (pp)
- Other frameworks
- Describing the Enterprise Architectural Space
- Feedback
32Introduktion
- Behov for organisering af enterprise arkitektur
- Forskellige artefakter
- Forskellige roller
- Bygget på eksisterende ideer
- The Zachman Framework for Enterprise Architecture
- IEEE 1471
- Andersen Consultings Enterprise Information
Architecture - test-driven development.
33(No Transcript)
34Viewpoints (rækkerne)
- Business architecture
- Fundament, forretningsværdi
- Integration architecture
- EAI, broker, B2B, web services
- Application architecture
- Lag, netværk, logik, frameworks
- Operational architecture
- Stabilitet, sikkerhed, skalérbarhed, NFR
- Development architecture
- Tools, builds, test, tracking
35Interrogatives (kolonnerne)
- Formål (Why)
- Data (What)
- Funktion (How)
- Timing (When)
- Netværk (Where)
- Mennesker (Hvem)
- Scorecard (Test)
36Fra artefakter til mønstre
- Formål At lære af ting der er
- pp anvender matricen til at kategorisere mønstre
m.v.
37Eksisterende pp mønstre
- Enterprise Solution Patterns
- http//msdn.microsoft.com/architecture/patterns/de
fault.aspx?pull/library/en-us/dnpatterns/html/Esp
.asp - Data patterns
- http//msdn.microsoft.com/architecture/patterns/de
fault.aspx?pull/library/en-us/dnpatterns/html/Dp.
asp - Integration patterns
- http//msdn.microsoft.com/library/default.asp?url
/library/en-us/dnpag/html/intpatt.asp
38Outline
- Introduction
- patterns practices (pp)
- Other frameworks
- Describing the Enterprise Architectural Space
- Feedback
39Input fra jer!
- SOA
- Design
- Udvikling
- Integration
- Interoperabilitet
- Security
- Identity management
- Modellering
- Mønstre
- Applikations-arkitektur
- EDRA Shadowfax
- FABRIQ
- Enterprise Library (2005)
- Business processes
- Test driven development
- Agile metoder
40Input fra jer!
- Form
- Specifikke
- Talere?
- Firmaer
- ½ vs. heldag
- Frivillige til arkitektur fokusgruppe efterlyses
medio november
41Ressourcer
- Links til yderligere information
- msdn.microsoft.com/practices
- msdn.microsoft.com/architecture
- software factories
- Flere events?
- www.microsoft.dk/msdn/events
- Arkitektur ERFA gruppe
- EOS, opstart d. 9.11, info khc_at_eos.dk
- Jørgen Thyme, jorgenpe_at_microsoft.com