©2004 avanade inc. all rights reserved. the avanade name and logo are registered trademarks in the...

41
©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical Overview Kyle Burkholder & Jeff Donahoe (Ben Reierson – Demo) Avanade 01.06.05 Twin Cities .NET User Group Microsoft Office

Upload: myron-cameron

Post on 26-Dec-2015

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Enterprise Library v1.0A Technical Overview

Kyle Burkholder & Jeff Donahoe

(Ben Reierson – Demo)

Avanade

01.06.05

Twin Cities .NET User Group

Microsoft Office

Page 2: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Agenda

About Avanade

What are Application Blocks?

What is Enterprise Library?

How is EntLib Being Extended?

Demo

Questions

Page 3: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

About Avanade

Page 4: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Joint venture between Accenture & Microsoft in 2000Avanade continues to grow its business; as of October, we have 3,000+ employees worldwideHave delivered (and are currently delivering) on more than 3,000 projects for 1300+ customersMore than 75% of our technologists are Microsoft-certified; many with multiple certificationsCurrently delivering on nine projects utilizing early adoption of EntLib v1.0

Avanade

Avanade Americas•Seattle•San Francisco•Chicago •Dallas •New York•Toronto•St. Louis•San Antonio•Nashville•Kansas City•Cincinnati

Avanade Australia•Sydney•Melbourne•Brisbane•Canberra

Avanade India•Mumbai•Bangalore•Hyderabad

Avanade Asia•Singapore•Kuala Lumpur•Bangkok

Avanade Europe•Paris•London•Milan•Rome•Madrid•Barcelona•Malaga•Kronberg•Almere

Page 5: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

What Are Application Blocks?

Page 6: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Forms of p&p Guidance

Reference Reference ArchitecturesArchitectures

ApplicationApplicationBlocksBlocks

Guidance on architectural principles and cross-cutting Guidance on architectural principles and cross-cutting issues such as security and performanceissues such as security and performance

PatternsPatterns

Atomic solutions to Atomic solutions to recurring problemsrecurring problems

Sub-system-level Sub-system-level guidance for guidance for

common servicescommon services

System-level System-level guidance for common guidance for common customer scenarioscustomer scenarios

GuidesGuides

Page 7: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Why Application Blocks?

Microsoft® .NET platform includes very broad, generic functionality– This makes the platform suitable for a wide variety of

application types and architectures– However, specific customer segments have common

needs at a higher level of abstraction. The platform does not always directly support these without a lot of manual work

– Prescriptive guidance that links functionality together is lacking

Page 8: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Existing p&p Application Blocks

Aggregation Application Block for .NETAsynchronous Invocation Application Block for .NETAuthorization and Profile Application BlockCaching Application Block for .NETConfiguration Management Application Block for .NETData Access Application Block for .NETException Management Application Block for .NETLogging Application BlockSmart Client Offline Application BlockUpdater Application Block for .NETUser Interface Process Application Block (v2.0)

Page 9: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

What Exactly Is The Problem?

How many times do enterprise developers ask: – 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 – …

Page 10: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Application Block Feedback

In general feedback has been extremely positive, but there is room for improvement:– Make blocks consistent – Make blocks work well together – Minimize dependencies

− On other blocks − On infrastructure

– Make evaluation and understanding of blocks easier– Make using blocks easier – Make it easier to configure blocks

Page 11: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

What is Enterprise Library?

Page 12: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Introducing “Enterprise Library”!

Library of reusable software assets to address common enterprise development challenges, consistently, correctly and quicklyPart of the patterns & practices guidance libraryStrong focus on consistency, extensibility, ease of use and integrationv1 produced in partnership with Avanade, leveraging experience from customer engagements and incorporating aspects of the ACA.NET application framework

Page 13: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Enterprise Library Ecosystem

Enterprise Library is a solid core to be leveraged and extended by othersAvanade has built a new version of ACA.NET using Enterprise Library as the foundationEnterprise Library Partner Program will encourage other partners to contribute to EntLib and build their own offerings on topMicrosoft will foster a community of customers and partners using, discussing and extending the library

Page 14: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

p&p Enterprise Library

Enterprise Library ecosystem

Partner blocks

Customer

Community blocks

p&p blocks

ACA.NET

Customer X Library

Customer Y library

*This is a slide from the Microsoft Patterns and Practices Team

Page 15: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Consistency

Design and implementation principles Configuration DocumentationTests ToolingSamplesOperational requirementsInstallation procedures

Page 16: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Extensibility

Extending existing blocks– Pluggable providers

Guidelines how to create new blocks – Design patterns and principles– Hooking into the configuration tool– Documentation guidelines and templates

Page 17: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Ease of Use

Cuts down the amount of code you need to write for common enterprise scenariosMany usability improvements over existing Application Blocks, including– Configuration tooling– Simplified installation and deployment– Improved documentation and samples

Page 18: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Integration

Packaged as integrated library Blocks are designed to work well together, but they can still be used individually– Dependencies are encapsulated into pluggable providers

Configuration understands how to use blocks together in application– Blocks used as providers for other blocks

Page 19: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Enterprise Library v1.0

Seven blocks in the first release– Configuration– Data Access– Caching– Security– Cryptography – Exception Handling – Logging & Instrumentation

Page 20: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Code and Demos

Page 21: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Configuration Application Block

Allows applications to easily read and write configuration data from configurable storage locationsUsed by all blocks in Enterprise Library, can also be used by customer blocks, frameworks and applicationsIncludes two parts:– Configuration Runtime, which applications use at runtime to access

configuration data– Configuration Designtime, which provides nodes that are used by

the configuration tool to give a simple design-time experience

Configuration can be encrypted and individual elements can be masked in the toolEnterprise Library will include standalone and Visual Studio-integrated versions of the configuration tool

Page 22: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Data Access Application Block

Provides simplified access to the most common data access operationsAim was to keep much of the simplicity of the original DAAB blocks, but to provide additional features requested by customersNotable new features:– Support for multiple database types through a factory

(Microsoft® SQL Server™, Oracle and DB2 out of the box). This provides consistent and portable code (caveats apply!)

– Connection strings are stored and managed in external configuration

Page 23: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Data Access Demo

Page 24: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Demo Scenario - Overview

Pricing Web servicePricing Web service

Security Application Block

Cryptography Application Block

Data Access Application

Block

Caching Application Block

Logging & Instrumentation Application Block

Exception Handling Application Block

Configuration Application

Block

Configuration Application Block

Quote FormQuote Form

Pricing &Bookings

Page 25: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Caching Application Block

Provides a flexible and extensible caching mechanism that can be used at all layers of an applicationSupports backing stores that persist cache data into a database or isolated storage, so the data can survive app restartsCan be used in Microsoft® ASP.NET apps, although the ASP.NET cache is preferred for simple scenariosSupports similar scenarios to the original caching block, but with a revised architecture to make it more thread- and exception-safe

Page 26: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Caching Demo

Page 27: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Security Application Block

Provides a simple API and pluggable implementations of core security primitive operationsCovers five security areas: Authentication, Authorization, Roles, Profile and Security CachingEach module supports extensible plug-in providers. In general we supply plug-ins for common Microsoft infrastructure (Active Directory®, AzMan) as well as a light-weight database implementationDevelopers can build their own plug-ins to interface with existing security solutions

Page 28: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Security Demo

Page 29: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Cryptography Application Block

Provides a simplified approach to implementing common cryptography scenariosIncludes modules for symmetric cryptography and hashingEach module supports pluggable algorithms and key stores– Supports all .NET crypto algorithms out of the box, or

developers can implement their own

Algorithms and keys can be managed through the configuration tool

Page 30: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Exception Handling Application Block

Facilitates consistent exception handling behavior at logical boundaries of an applicationAllows the creation of “exception policies” which dictate which actions should be taken for specific exception types at the logical boundary– Example: All security exceptions arising from the business

layer need to be logged, and the messages sanitized before being propagated to the caller

Actions are extensible; we provide Logging, Wrapping one exception with another, and Replacing one exception with an otherBlock has little in common with the existing EMAB which was primarily used to log exceptions

Page 31: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Exception Handling Demo

Page 32: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Logging and InstrumentationApplication Block

Allows applications to log business and operations data to various destinations, which are externally configurableReplaces the Enterprise Instrumentation Framework and the existing Logging Application BlockConfiguration specifies which messages go where, and how they are formattedFormatters and sinks are extensible. We provide sinks for Event Log, Database, Text File, MSMQ, E-mail, WMI and Windows Event Tracing

Page 33: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Demo Scenario - Recap

Pricing Web servicePricing Web service

Security Application Block

Cryptography Application Block

Data Access Application

Block

Caching Application Block

Logging & Instrumentation Application Block

Exception Handling Application Block

Configuration Application

Block

Configuration Application Block

Quote FormQuote Form

Pricing &Bookings

Page 34: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

How Is EntLib Being Extended?

Page 35: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

ACA.NET 4.0 - Quickbeam

ACA.NET 4.0 is Avanade’s differentiating asset on top of Enterprise Library v1Features– Service Oriented Architecture (SOA) & Aspect Oriented

Architecture (AOA) on top of Enterprise Library– Async Support for all Transports – VB.NET Support for ACA.NET’s SOA/AOA attributes– Validation & improved Connections Frameworks– State Machine– WSE2 support (transport and ACA.NET Security)

The Batch Framework will become its own asset in the future: ACA BatchThe Microsoft User Interface Process block (UIP) will be added to Enterprise Library in the future

Page 36: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

How Do I Get Started With EntLib?

Page 37: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Where Are patterns & practices?

They are On Microsoft.com– http://www.microsoft.com/practices/

They are on Bookshelves– http://www.amazon.com/practices/

They are on GotDotNet– http://workspaces.gotdotnet.com/

(search on patterns & practices)

Page 38: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Upgrading existing applications

Enterprise Library is not compatible with previous Application Blocks or ACA.NETMigration guidelines in the documentationRecommended approach: used a phased adoption, using Enterprise Library for new applications and significant redevelopmentMultiple application blocks and frameworks may coexist within an environment (e.g.. UIP)

*This is a slide from the Microsoft Patterns and Practices Team

Page 39: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

What’s next?

Microsoft will continue to enhance Enterprise Library, providing new Application Blocks to assist with scenarios such as Validation, SOA and Smart ClientMicrosoft is planning a Microsoft® .NET 2.0 “Whidbey” compliant release around the time that .NET 2.0 and Microsoft® Visual Studio® 2005 are releasedGet involved in the community to participate in requirements, reviews and beta testing!http://workspaces.gotdotnet.com/entlib

*This is a slide from the Microsoft Patterns and Practices Team

Page 40: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Wrap-Up

Takeaways– EntLib will replace Application Blocks– EntLib won’t cover all the blocks, but can co-exist with

them– You can start preparing with EntLib today (Documentation

on GotDotNet)– Application blocks are ready for the enterprise– Nice opportunities to create extensions and built a

community

Contact info– Kyle Burkholder ([email protected])– Jeff Donahoe ([email protected])

Page 41: ©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical

©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries.

Questions?