Enterprise Library Overview Tom Hollander Product Manager Microsoft Edward Jezierski ArchitectMicrosoft Kyle Huntley Architect Avanade Ron Jacobs Product.

Slides:



Advertisements
Similar presentations
DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Advertisements

Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Programming Paradigms and languages
Apache Struts Technology
DEV-2: Getting Started with OpenEdge® Architect – Part I
Enterprise Library 3.0: Overview. Context  Reusable components are important Address common development challenges consistently across applications 
Enterprise development reference architecture (EDRA) -Deepti Seelamsetti.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Leveraging Enterprise Library in Your Applications Keith Elder Quicken Loans Manager, Sr. Software Engineer Microsoft MVP Keith a t keithelder dot net.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
Performed by:Gidi Getter Svetlana Klinovsky Supervised by:Viktor Kulikov 08/03/2009.
Hands-On Microsoft Windows Server 2003 Administration Chapter 5 Administering File Resources.
Patterns & practices Enterprise Library Brian Button Consultant/Developer patterns & practices.
Firefox 2 Feature Proposal: Remote User Profiles TeamOne August 3, 2007 TeamOne August 3, 2007.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 10: Server Administration.
Jeremy Boyd Director – Mindscape MSDN Regional Director
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 7 Configuring File Services in Windows Server 2008.
Passage Three Introduction to Microsoft SQL Server 2000.
SQL Server 2008 for Hosting Key Questions to Address How can SQL Server save your costs? How can SQL Server help you increase customer base? How can.
Winter Consolidated Server Deployment Guide for Hosted Messaging and Collaboration version 3.5 Philippe Maurent Principal Consultant Microsoft.
Microsoft ® Application Virtualization 4.6 Infrastructure Planning and Design Published: September 2008 Updated: February 2010.
Struts 2.0 an Overview ( )
This presentation will guide you though the initial stages of installation, through to producing your first report Click your mouse to advance the presentation.
Creating Business Workflow Using SharePoint Designer 2007 Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server MVP Microsoft SQL Server.
“Behind the Scenes” of the Enterprise Development Reference Architecture (EDRA) Jonathan Wanagel Microsoft patterns & practices
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
©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.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Membership in ASP.Net...if only Presented by: Patrick Hynds President, CriticalSites Microsoft Regional Director.
Crystal Hoyer Program Manager IIS Team Preview of features that will be announced at MIX09 Please do not blog, take pictures or video of session.
Classroom User Training June 29, 2005 Presented by:
Doing Something Useful with Enterprise Library 3.0 Benjamin Day Level: Intermediate.
Enterprise Library for.NET Framework 2.0: Overview.
Enterprise Library Building an Application Block Ed Jezierski Solution Architect Scott Densmore Software Engineer Ron Jacobs Product Manager.
Module 7: Fundamentals of Administering Windows Server 2008.
GPUG ® Summit 2011 November 8-11 Caesars Palace – Las Vegas, NV Connector for Microsoft Dynamics - Integrating Dynamics ERP and Dynamics CRM.
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
Enterprise Library Cryptography Application Block Tim Shakarian Software Design Engineer Avanade Ron Jacobs Product Manager Microsoft Scott Densmore Software.
Advanced Windows 8 Apps Using JavaScript Jump Start Exam Prep M5: Data, Files, and Encryption Michael Palermo Microsoft Technical Evangelist Jeremy.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Office Business Applications Workshop Defining Business Process and Workflows.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Enterprise Library Caching Application Block Brian Button Software Design Engineer Ron Jacobs Product Manager Scott Densmore Software Design Engineer.
Web Services Error Handling and Debugging. Agenda Simple SOAP faults Advanced SOAP faults SOAP headers and faults Error handling From a Service Perspective.
Workforce Scheduling Release 5.0 for Windows Implementation Overview OWS Development Team.
MSG331 Exchange Server 2000/2003 Software Development Kit Susan Hill Lead Programmer Writer Microsoft Corporation.
Microsoft Visual Studio 2005 Tools for the Office System: Building Office Solutions Using Visual Studio 2005 Tools for Office Andrew Coates Developer Evangelist.
Enterprise Library Caching Application Block Peter Provost Software Design Engineer Ron Jacobs Product Manager Scott Densmore Software Design Engineer.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Module 6: Administering Reporting Services. Overview Server Administration Performance and Reliability Monitoring Database Administration Security Administration.
4.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 12: Implementing Security.
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
Packaging Design and Architecture Guidance for Visual Studio Tom Hollander Wojtek Kozaczynski Harry Pierson Microsoft.
Excel Services Displays all or parts of interactive Excel worksheets in the browser –Excel “publish” feature with optional parameters defined in worksheet.
Windows Workflow Foundation Guy Burstein Senior Consultant Advantech – Microsoft Division
Developing Custom ASP.NET Providers For Membership And Role Manager Stefan Schackow PRS404 Program Manager – Web Platform and Tools Microsoft Corporation.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Microsoft Virtual Academy Chris Oakman | Managing Partner Infrastructure Team | Eastridge Technology Curtis Sawin | Technical Solutions Professional |
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
The Holmes Platform and Applications
Building Enterprise Applications Using Visual Studio®
Open Source distributed document DB for an enterprise
Enterprise Library Overview
Creating Novell Portal Services Gadgets: An Architectural Overview
ARCH-1: Application Architecture made Simple
Saravana Kumar CEO/Founder - Kovai Atomic Scope – Product Update.
Windows Forms in Visual Studio 2005: An in-depth look at key features
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Enterprise Library Overview Tom Hollander Product Manager Microsoft Edward Jezierski ArchitectMicrosoft Kyle Huntley Architect Avanade Ron Jacobs Product Manager Microsoft

Agenda Architectural Guidance from patterns & practices Application Blocks Enterprise Library Vision Enterprise Library Application Blocks ConfigurationCryptography Data Access SecurityDemonstrationQuestions Logging & Instrumentation Exception Handling Caching

patterns & practices Architecture Guidance for the Enterprise Reference Architectures Application Blocks Guides Guidance for broad horizontal topics such as security, performance, deployment and operations Patterns DADI A D I DADI A D I Atomic solutions to recurring problems Sub-system-level guidance for common services System-level guidance for common customer scenarios DADI A D I Available online : Books available: Proven Based on field experience Authoritative Offer the best advice available Accurate Technically validated and tested Actionable Provide the steps to success Relevant Address real-world problems based on customer scenarios

Sound familiar? Writing a component to make it simpler to call stored procedures Building a component that allows you to log errors to different sources Building framework / infrastructure components to generally simplify app development Searching on the internet thinking 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 …wishing Microsoft had done some of this for you?

App Block History Application blocks have been around for a couple of years The block program evolved over time with many different teams Blocks range from very simple helpers like the original data access block to powerful frameworks like UIP It’s a good start but you can always do better...and you have been telling us what you want

Application Block 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

Enterprise Library Philosophy Consistency Apply consistent design patterns and implementation approaches Extensibility Include extensibility points allowing developers to customize the behavior of the blocks by plugging in their own code or customize by directly modifying source code Ease of Use Leverage a graphical configuration tool Provide a simpler installation procedure Include clear and complete documentation and samples Integration Application blocks should be designed to work well together and tested to make sure that they do. But it should also be possible to use the application blocks individually

Security Crypto Configuration DataAccessLogging CachingExceptions Enterprise Library v1 Legend Dependency Plug-in ConfigTool

p&p Enterprise Library Enterprise Library Vision Partner blocks Customer blocks Community blocks p&p blocks Partner X library Customer Y library Customer Z library Block Specification

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

Security Crypto Configuration DataAccessLogging CachingExceptions Enterprise Library v1 Legend Dependency Plug-in ConfigTool

Configuration Scenarios Application needs to read and/or write complex configuration data at runtime Application which must store sensitive data (password) in configuration Application or block with design time support in the form of property pages, wizards and validation to assist developers in getting configuration right Administrator deploying an application needs to change configuration and you want to provide a better experience than using notepad to edit XML configuration files

Configuration Application Block Configuration Application Block (Runtime) Improves integration Supports pluggable storage providers and transformations Improves ease of use Read & Write Model Supports object graphs Notifications when config store changes Improves Security Supports Encryption Configuration Tool (Design- time) Uses Configuration Application Block Improves ease of use Wizards Property Sheets Validation Improves Security Supports Encryption Masking   Provides a general purpose configuration runtime which allows applications to easily read and write configuration data from configurable storage locations

Security Crypto Configuration DataAccessLogging CachingExceptions Enterprise Library v1 Legend Dependency Plug-in ConfigTool

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

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 CreateHashCompareHashEncryptSymmetricDecryptSymmetric 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

Security Crypto Configuration DataAccessLogging CachingExceptions Enterprise Library v1 Legend Dependency Plug-in ConfigTool

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

Data Access Application Block Provides 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 Security Leverages the crypto block and configuration system to securely store connection strings Improve ease of use Easily call a stored procedure with one line of code

Data Access - Example Public Function GetProductsInCategory(ByRef Category As Integer) As DataSet ' Create the Database object, using the default database service. The ' default database service is determined through configuration. Dim db As Database = DatabaseFactory.CreateDatabase() ' Invoke the stored procedure with one line of code! return db.ExecuteDataSet("GetProductsByCategory", Category) ' Note: connection was closed by ExecuteDataSet method call End Function

Security Crypto Configuration DataAccessLogging CachingExceptions Enterprise Library v1 Legend Dependency Plug-in ConfigTool

Security Scenarios You need to authenticate users Using one or more security systems or mechanisms You need to authorize users Using one or more security systems or mechanisms You need to determine which roles a user is in Using one or more security systems or mechanisms You need to store and retrieve user profile information Using one or more security systems or mechanisms You need to cache authentication or authorization data for the duration of a logon session

Security Application Block 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

Security Crypto Configuration DataAccessLogging CachingExceptions Enterprise Library v1 Legend Dependency Plug-in ConfigTool

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

Logging & Instrumentation Application Block Provides a simple model for logging events Replaces the Enterprise Instrumentation Framework and the existing Logging Application Block Configuration driven – you decide what messages are logged where at runtime. Sinks provided include Event Log Database Text File MSMQ WMI Create your own…

Logging - Example Dim log As LogEntry = New LogEntry Dim log As LogEntry = New LogEntry log.Message = “Your message here…” log.Message = “Your message here…” log.Priority = 1 log.Priority = 1 log.EventId = 100 log.EventId = 100 log.Category = "Debug" log.Category = "Debug" Logger.Write(log) 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);

Security Crypto Configuration DataAccessLogging CachingExceptions Enterprise Library v1 Legend Dependency Plug-in ConfigTool

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

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…

Exception Handling - Example Try ' some code that may throw Catch Ex As Exception If ExceptionPolicy.HandleException(ex, “DataLayer”) _ Then Throw End Try

Security Crypto Configuration DataAccessLogging CachingExceptions Enterprise Library v1 Legend Dependency Plug-in ConfigTool

Caching Scenarios You are creating a smart client application that uses locally cached reference data to create requests and support offline operations You are creating a Windows Service or Console application which needs a cache to improve performance

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.

Using Enterprise Library Enterprise Library is provided “as-is” You are free to extend or modify it to suit your needs Using Enterprise Library is no different than using code that you wrote yourself If you have used previous versions of application blocks you have some options Leave the code alone Add new functionality using Enterprise library and use it side by side with the old application blocks Rewrite to use the new application blocks, if they provide enough value to justify the extra development time

Announcing: Enterprise Library Download it Today!

Future plans We will continue to invest in blocks and block libraries Additional capabilities and scenarios New blocks, such as Validation Updating existing application blocks, such as UIP Scenarios such as Smart Client Enablement Visual Studio tooling and wizards Deeper community penetration.NET 2.0 / Visual Studio 2005 release Blocks revved to adhere to best practices of new platform Integration with new VS2005 experiences

Enterprise Library Community