Presentation is loading. Please wait.

Presentation is loading. Please wait.

Enterprise Library for.NET Framework 2.0: Overview.

Similar presentations


Presentation on theme: "Enterprise Library for.NET Framework 2.0: Overview."— Presentation transcript:

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/

40


Download ppt "Enterprise Library for.NET Framework 2.0: Overview."

Similar presentations


Ads by Google