Download presentation
Presentation is loading. Please wait.
Published byErika Butler Modified over 9 years ago
1
Enterprise Library for.NET Framework 2.0: Overview
2
Some History… Application Blocks are reusable, extensible source-code components that provide guidance for common development challenges Enterprise Library is a library containing seven general purpose application blocks Caching, Configuration, Cryptography, Data Access, Exception Handling, Logging & Instrumentation, Security Emphasis on Consistency, Extensibility, Ease of Use and Integration Originally designed for.NET Framework 1.1. First released in January 2005 and updated in June 2005
3
p&p Enterprise Library Enterprise Library Ecosystem Partner blocks Customer blocks Community blocks p&p blocks Partner X library Customer Y library Customer Z library Block Specification
4
Enterprise Library Enterprise Library is… A library of application blocks which solve common challenges A set of helper classes which work in any architectural style Architectural guidance embodied in code which ships with full source allowing you to modify and extend Available as a free download Enterprise Library is not… A part of the.NET Framework An application framework that imposes an architectural style A Microsoft product with support, compatibility and localization For sale
5
Enterprise Library for.NET Framework 2.0 Major new release of Enterprise Library First.NET Framework 2.0 release in January 2006 Designed for Microsoft®.NET Framework 2.0 Leverages key new capabilities provided by the platform Certain features from Enterprise Library v1.x have been deprecated in favor of the platform Scenarios and features largely unchanged Public application programming interfaces (APIs) not identical, but changes are minor …but many improvements are hiding under the covers!
6
Key changes from Enterprise Library 1.x Configuration now built on System.Configuration Configuration Application Block no longer exists Easier to use blocks with or without configuration files Instrumentation configurable and disabled by default Much improved Logging Application Block Flexibility and performance Simpler and more powerful Data Access Application Block Use with OLE-DB, Open Database Connectivity (ODBC) or any managed provider Most of the Security Application Block has been removed Deprecated in favor of.NET’s Membership and Profile features
7
Caching Security DataAccessLogging ExceptionHandling Enterprise Library for.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider Dependency
8
Caching Security DataAccessLogging ExceptionHandling Enterprise Library for.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider Dependency
9
The Core Configuration Configuration Design & Tooling Instrumentation Object Builder
10
Configuration All Enterprise Library blocks are configurable Controls how the blocks work in your app Specifies which plug-ins you are using New architecture makes it much easier to use blocks with or without configuration files Factories build up block objects using data from the configuration files Objects can be “newed up” directly with primitive data types
11
Configuration Configuration is now built on System.Configuration Configuration in app.config / web.config by default Supports reading/writing of complex objects Supports data protection Alternative “Configuration Sources” can be used Sample SQL Configuration Source will be included Common assembly contains helper classes Configuration Application Block no longer exists Migration guidance to System.Configuration included
12
Configuration Design & Tooling Configuration tool eliminates the need to edit the blocks’ XML configuration files Quickly add default configuration for a block Strongly typed properties and providers Validate configuration before you save No major changes to configuration tool experience from previous versions of Enterprise Library Configuration Design-time subsystem can be used in your own applications and blocks to provide a similar experience for your users
13
Instrumentation All Enterprise Library blocks include instrumentation to assist in development, testing and operations Event Log events Performance Counters WMI events All instrumentation is disabled by default, but each type can be individually enabled using the configuration tool Installing instrumentation requires admin rights, and can be done using installutil.exe Instrumentation code contained in Common assembly can be reused in your apps
14
Object Builder New subsystem shared between EntLib and Composite UI Application Block Responsible for building objects inside the application blocks Invoking the necessary custom factory using data from configuration Configuring instrumentation for the blocks Can be leveraged from your own apps, but understanding ObjectBuilder is not required to use Enterprise Library
15
Caching Security DataAccessLogging ExceptionHandling Enterprise Library for.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider Dependency
16
Exception Handling Needs You need consistent exception handling behavior throughout your application You need to implement best practice guidance for exception handling Don’t inadvertently disclose security sensitive information to remote callers Add context to exceptions by wrapping or replacing exceptions with more relevant exceptions You need to make it simple to add exception management boilerplate code
17
Exception Handling Application Block Provides simple mechanism that allows you to consistently deal with exceptions throughout your application Define “Exception Policies” which link an exception to an action Exceptions of type ApplicationException should be logged Exceptions of type SqlClientException should be caught and wrapped with an exception of type DataLayerException and re-thrown Exceptions of type SecurityException should caught and replaced with an AccessDeniedException which will be thrown Actions provided include Logging Wrapping one exception with another Replacing one exception with an other Create your own actions…
18
Exception Handling - Example Try ' some code that may throw Catch Ex As Exception If ExceptionPolicy.HandleException(ex, “DataLayer”) _ Then Throw End Try
19
Caching Security DataAccessLogging ExceptionHandling Enterprise Library for.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider Dependency
20
Logging Needs You need to log business and operations data to various destinations, which are externally configurable You need to provide tracing to support production debugging You need to provide auditing for increased security You need to be able to specify which messages go where, and how they are formatted You need to be able to log messages to a wide variety of destinations
21
Logging Application Block Provides a simple model for logging events Strongly typed, extensible log schema Built on top of System.Diagnostics Configuration driven – you decide what messages are logged where at runtime. Use any.NET TraceListener, including EntLib formatter- aware listeners: EventLog, Database, Text File, MSMQ, E-mail, WMI, or create your own Tracer class lets you time key activities and correlate any enclosed events
22
New In This Release Built on System.Diagnostics features, such as TraceListener, TraceSource and CorrelationManager Simplifies EntLib code, enables better integration with ‘core’ System.Diagnostics functionality Eliminated Distribution Strategies concept Same scenarios supported by ‘chaining’ instances of the block together via TraceListeners (eg MSMQ) One LogEntry in multiple Categories Increased flexibility and control in event routing, enabling/disabling Pluggable, extensible filters Can be queried from API to avoid creating expensive log messages
23
Logging - Examples Dim log As LogEntry = New LogEntry log.Message = “Your message here…” log.Priority = 1 log.EventId = 100 log.Categories.Add("UI") log.Categories.Add("Debug") Logger.Write(log) // Or if you prefer one line... Customer cust = GetCustomer(123); // Log the customer – will call cust.ToString() for the log entry Logger.Write(cust, category, priority);
24
Caching Security DataAccessLogging ExceptionHandling Enterprise Library for.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider Dependency
25
Data Access Needs A simple and efficient way of working with commonly used databases Transparency when developing for multiple types of databases A way to place an indirection between a logical database instance and a physical database instance An easy way to adjust and validate the database configuration settings
26
Data Access Application Block Provides simplified access to the most often used features of ADO.NET with applied best practices Improve Consistency Write code that works against multiple database brands (caveats apply!) Improve ease of use Easily call a stored procedure with one line of code Let the block manage the lifetime of database connections Work with database connection strings stored in configuration or specified in code
27
Data Access - Examples Public Function GetProductsInCategory(ByRef Category As Integer) As DataSet ' Create the Database object, using the database instance with the ' specified logical name. This is mapped to a connection string in ' the configuration file Dim db As Database = DatabaseFactory.CreateDatabase("Sales") ' Invoke the stored procedure with one line of code! return db.ExecuteDataSet("GetProductsByCategory", Category) ' Note: connection was closed by ExecuteDataSet method call End Function public Dataset GetProductsInCategory(string connectionString, int category) { // Create the Database object, using the specified connection string SqlDatabase db = new SqlDatabase(connectionString); // Invoke the stored procedure with one line of code! return db.ExecuteDataSet("GetProductsByCategory", category); // Note: connection was closed by ExecuteDataSet method call }
28
New In This Release Use with or without configuration Reuses.NET’s new section Or, use your own connection string Simplified API Uses ADO.NET’s DbCommand instead of DBCommandWrapper Use with any managed ADO.NET 2.0 provider GenericDatabase class works with any provider, including OLE-DB and ODBC (advanced functionality like parameter discovery is unavailable) Use database-specific Database derived classes to support the full API with improved transparency
29
Caching Security DataAccessLogging ExceptionHandling Enterprise Library for.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider Dependency
30
Caching Scenarios You are creating a smart client application that uses locally cached reference data to create requests and support offline operations You are building an application that requires cache data to be durable across application restarts Note: ASP.NET cache (System.Web.Caching) can be used across multiple application types and is generally a better choice for applications that don’t require the cache to be persisted
31
Caching Application Block Provides a flexible and extensible caching mechanism that can be used at all layers of an application Supports backing stores that persist cache data into a database or isolated storage, so the data can survive app restarts Easy to use Easy to configure, using the Enterprise Library Configuration Tool Thread-safe Ensures that the states of the in-memory cache and the backing store remain synchronized.
32
Caching Security DataAccessLogging ExceptionHandling Enterprise Library for.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider Dependency
33
Cryptography Scenarios You need to encrypt sensitive data using a symmetric key before storing in the database and decrypt when reading You need to encrypt information (without using keys) for use on a single machine You need to create a hash of a password to store in a database and be able to compare that hash with a user supplied hash to see if you have a match without storing the user password
34
Cryptography Application Block Improves Security Provides a simplified approach to implementing common cryptography scenarios Improves Ease Of Use Provides operations on both strings and byte streams CreateHash CompareHash EncryptSymmetric DecryptSymmetric Improves Integration Supports all.NET crypto algorithms out of the box, or implement your own Supports DPAPI for keyless crypto on a single machine Algorithms and keys can be managed through the configuration tool
35
Caching Security DataAccessLogging ExceptionHandling Enterprise Library for.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider Dependency
36
Security Scenarios You need to authorize users Using one or more security systems or mechanisms You need to cache authentication or authorization data for the duration of a logon session Note: Previous versions of the Enterprise Library Security Application Block also supported Authentication, Profile and Roles. This is now supported by the.NET Membership and Profile class, so this functionality has been removed from the block.
37
ASP.NET Security Application Block + ASP.NET Encapsulate common application security tasks Present a standard, provider model for common security tasks Minimize the need for custom security-related code Incorporate best practices for application security Client Code Security Application Block Membership Profile Membership Provider Profile Provider Authorization Factory Security Cache Factory IAuthorization Provider ISecurity Cache Provider Authorization Rule Provider Caching Store Provider AzMan Authorization Provider ActiveDirectory Membership Provider Sql Membership Provider Sql Profile Provider CachingApplicationBlock
38
Migration from previous versions This release is not 100% API compatible with previous releases of Enterprise Library Most API changes are minor and upgrading will be simple Exceptions: Configuration Application Block, which no longer exists convert to System.Configuration Authentication, Role and Profile providers in Security Application Block convert to ASP.NET providers Migration guidance is included in docs and samples Configuration file formats have changed, and all configuration needs to be rebuilt using the tool
39
Resources Download Enterprise Library and related resources from: http://msdn.microsoft.com/practices Join the Enterprise Library Community at: http://practices.gotdotnet.com/projects/entlib Read blogs from the Enterprise Library team at: http://msdn.microsoft.com/practices/Comm/EntLibBlogs/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.