Best Practices with Enterprise Library. 10/28/2008 Introductions Toi B Wright President, Dallas ASP.Net User Group Microsoft.

Slides:



Advertisements
Similar presentations
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Advertisements

Yii – How Power Comes Introduction, OOP & Design Patterns Presented at: Nextbridge Multan Center Aug 25, 2011.
1 DB2 Access Recording Services Auditing DB2 on z/OS with “DBARS” A product developed by Software Product Research.
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.
Mark Harr Multi-Tier Development in.Net.
Tom Hollander Solution Architect Solutions Development Centre Microsoft Australia ARC307.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
Patterns & practices Enterprise Library Brian Button Consultant/Developer patterns & practices.
Chris Sfanos Program Manager Forefront Client Security Microsoft Session Code: SW17.
Nu Project Management Office A web based tool to Manage Projects.
ASP.NET Programming with C# and SQL Server First Edition Chapter 8 Manipulating SQL Server Databases with ASP.NET.
Chapter 12 Database Connectivity with ASP.NET JavaScript, Third Edition.
Working with SQL and PL/SQL/ Session 1 / 1 of 27 SQL Server Architecture.
Visual Studio & Expression By: Arabind Coomaraswamy.
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.
Discover, Master, InfluenceSlide 1 SQL Server Compact Edition and the Entity Framework Rob Sanders Readify.
Welcome to the Minnesota SharePoint User Group. Introductions / Overview Project Tracking / Management / Collaboration via SharePoint Multiple Audiences.
Create with SharePoint 2010 Jen Dodd Sr. Solutions Consultant
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Creating Business Workflow Using SharePoint Designer 2007 Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server MVP Microsoft SQL Server.
6/1/2001 Supplementing Aleph Reports Using The Crystal Reports Web Component Server Presented by Bob Gerrity Head.
“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.
IT Academy Benefit Overview
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Introducing Visual Studio ® LightSwitch™ Andrew Coates Microsoft DEV201 #auteched #dev201.
Introducing the Validation Application Block. Agenda  Enterprise Library 3.0 Introduction  Validation Application Block Overview  Applying, using and.
Doing Something Useful with Enterprise Library 3.0 Benjamin Day Level: Intermediate.
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
Enterprise Library for.NET Framework 2.0: Overview.
Enterprise Library 3.0: What’s New?. The Story So Far…  Application Blocks are reusable, extensible source-code components that provide guidance for.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
Web application project Advertising board web site Created by : Alon Nagar Supervisor:Victor Kulikov.
Enterprise Library Building an Application Block Ed Jezierski Solution Architect Scott Densmore Software Engineer Ron Jacobs Product Manager.
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
Visual Studio 2005 Team System: Building Robust & Reliable Software Tejasvi Kumar Technology Specialist - VSTS Microsoft Corporation
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
Presentation. Recap A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate. Taken advantage of Spring’s multi layer.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
Getting Started with Enterprise Library 4.x in ASP.NET Pawas Goyal
Enterprise Library Caching Application Block Brian Button Software Design Engineer Ron Jacobs Product Manager Scott Densmore Software Design Engineer.
Building State of the art presentation tiers Nauzad Kapadia
Getting Started with.NET Getting Started with.NET/Lesson 1/Slide 1 of 31 Objectives In this lesson, you will learn to: *Identify the components of the.NET.
Enterprise Library Caching Application Block Peter Provost Software Design Engineer Ron Jacobs Product Manager Scott Densmore Software Design Engineer.
Windows NT ® Security Management: Extending Windows NT 5.0 Security Management Tools, Part 2 Praerit Garg Program Manager Windows NT Security Microsoft.
Architecting Real-World Enterprise Application. Agenda CPR - Background Challenges in the Architecture Architecture Details Q & A Summary.
Enterprise Library Overview Tom Hollander Product Manager Microsoft Edward Jezierski ArchitectMicrosoft Kyle Huntley Architect Avanade Ron Jacobs Product.
What was new in VS Studio 2008 A bird eye view from the height of ft By: Shahzad Sarwar Software Architect Comsoft computer consultants.
Entity Framework Database Connection with ASP Notes from started/getting-started-with-ef-using-mvc/creating-an-
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
A Web Service Software Factory Introduction Don Smith Product Manager patterns & practices.
Developing Custom ASP.NET Providers For Membership And Role Manager Stefan Schackow PRS404 Program Manager – Web Platform and Tools Microsoft Corporation.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Building Enterprise Applications Using Visual Studio®
Introducing the Microsoft® .NET Framework
ASP.NET Programming with C# and SQL Server First Edition
Chris Menegay Sr. Consultant TECHSYS Business Solutions
Visual Studio Tools for Office 2005
Enterprise Library Overview
…and web frameworks in general
Tech Ed North America /1/ :36 AM Required Slide
LitwareHR v2: an S+S reference application
DAT381 Team Development with SQL Server 2005
…and web frameworks in general
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Best Practices with Enterprise Library

10/28/2008 Introductions Toi B Wright President, Dallas ASP.Net User Group Microsoft MVP ASP.NET Microsoft Developer’s Guidance Council Organizer, WE ARE MICROSOFT – Charity Challenge Weekend President, Geeks in Pink

10/28/2008 Welcome The purpose of this user group is to help developers learn ASP.NET. -My intent is to provide a forum for you to learn about and discuss the various components of a production quality ASP.NET application.

10/28/2008 Our Website

10/28/2008 Agenda User Group Business Announcements Main Presentation Door Prizes

User Group Business

10/28/2008 Paperwork Door Prizes Dues Renewal / Joiner Gift RSVP by Noon

10/28/2008 Upcoming Meetings Sept 22  Windows Communication Foundation (WCF)  Stephen Fulcher October 27  Silverlight 3 for Business Applications –  Jason Beres November 24  LINQ  INETA Speaker ?? December 22 – No Meeting

10/28/2008 Upcoming Meetings January 26, 2010  Consulting Roundtable February 23, 2010  Entity Framework March 23, 2010  Visual Studio 2010  Chris Koenig

10/28/2008 Later Tonight Chili’s Grill & Bar 1300 Market Place Blvd Irving, TX Turn RIGHT onto access road 0.96 mo 2.Turn LEFT onto N MACARTHUR BLVD mi 3.Turn LEFT onto access road I-635 W/W LBJ FWY mi 4.Restaurant is on RIGHT

Announcements

10/28/2008 asp.netPRO Magazine FREE asp.netPRO – Print Subscription 3 Year/36 Issues

10/28/2008 DevCares Amir Rajan Silverlight and MVVM Crash Course TekFocus, Friday, August 28 8:30 a.m. – 11:30 a.m. So what's the big deal with the Model-View-View-Model (MVVM) design pattern? How does it differ from the Model-View-Controller (MVC) and Model-View-Presenter (MVP) design patterns? How can I leverage this pattern in Silverlight? The answers to your questions are here. 2/24/2009

10/28/2008 Geeks in Pink Networking Event Tuesday, September 15 BlackFinn American Saloon 5 p.m. – 8 p.m Belt Line Rd. Addison, Texas

10/28/2008 Windows 7 Launch Northpark Center 15 November 4, 8 a.m. – 5 p.m. Get your FREE copy of Windows 7 at the event. Tracks: 1.Windows 7 2.Windows Server 2008 R2 3.Exchange Server thenewefficiency 2/24/2009

10/28/2008 WAM – Charity Challenge Weekend BravoTECH January 15-17, 2010 The We Are Microsoft - Charity Challenge Weekend is a software development competition for a good cause. This 3-day event matches developers with charities to develop applications for those charities. At the end of the 3 days, all of the participants will vote and the winners will be proclaimed champion coders. 2/24/2009

10/28/2008 Microsoft BizSpark BizSpark is designed to give startups access to the tools, support and visibility they need, when they need it the most. Support Software Visibility

10/28/2008 Microsoft BizSpark Requirements Your Business  1.Is in the business of software development 2.Is privately held 3.Has been in business for less than 3 years 4.Has less than US $1 million in annual revenue 5.Is sponsored by a BizSpark Network Partner

10/28/2008 Ramp Up Ramp Up is a free, online, community-based learning program, with a number of different tracks that will help you build your portfolio of professional development skills.

Best Practices with Enterprise Library

10/28/2008 Definition Enterprise Library is a collection of application blocks and services intended for use by developers who build complex, enterprise-level applications. Their design encapsulates the Microsoft recommended best practices for.NET applications

10/28/2008 Enterprise Library 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 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

10/28/2008 Goals Consistency All Enterprise Library application blocks feature consistent design patterns and implementation approaches. Extensibility All application blocks include defined extensibility points that allow developers to customize the behavior of the application blocks by adding their own code. Ease of use. Enterprise Library offers numerous usability improvements, including a graphical configuration tool, a simpler installation procedure, and clearer and more complete documentation and samples. Integration. Enterprise Library application blocks are designed to work well together and are tested to make sure that they do. It is also possible to use the application blocks individually.

10/28/2008 Application Blocks Caching Application Block. Developers can use this application block to incorporate a local cache in their applications. Caching Application Block Cryptography Application Block. Developers can use this application block to incorporate hashing and symmetric encryption in their applications. Cryptography Application Block Data Access Application Block. Developers can use this application block to incorporate standard database functionality in their applications. Data Access Application Block

10/28/2008 Application Blocks Exception Handling Application Block. Developers and policy makers can use this application block to create a consistent strategy for processing exceptions that occur throughout the architectural layers of enterprise applications. Exception Handling Application Block Logging Application Block. Developers can use this application block to include standard logging functionality in their applications. Logging Application Block The Policy Injection Application Block. Developers can use this application block to implement interception policies that streamline the implementation of common features, such as logging, caching, exception handling, and validation, across an application. The Policy Injection Application Block

10/28/2008 Application Blocks Security Application Block. Developers can use this application block to incorporate authorization and security caching functionality in their applications. Security Application Block Unity Application Block. Developers can use this application block to implement a lightweight, extensible dependency injection container with support for constructor, property, and method call injection. Unity Application Block The Validation Application Block. Developers can use this application block to create validation rules for business objects that can be used across different layers of their applications. The Validation Application Block

10/28/2008 Core Common Assembly Instrumentation Configuration Helper Classes Microsoft.Practices.EnterpriseLibrary.Common.dll Microsoft.Practices.ObjectBuilder2.dll

10/28/2008 Application Blocks CachingCaching SecuritySecurity DataAccessDataAccessLoggingLogging ExceptionHandlingExceptionHandling ConfigHelpers & Design ConfigHelpers Instrumen- tation Object Builder CryptographyCryptography Core Policy Injection ValidationValidation

10/28/2008 CachingCaching SecuritySecurity Data Access LoggingLogging ExceptionHandlingExceptionHandling Plug-in ConfigHelpers & Design ConfigHelpers Instrumen- tation Object Builder CryptographyCryptography Core Policy Injection ValidationValidation

10/28/2008 Unity Dependency Injection Container

10/28/2008 Benefits Testability Testability Injecting objects instead of calling static methods means you can mock them out Injecting objects instead of calling static methods means you can mock them out Uniformity Uniformity You always get access to the blocks the same way You always get access to the blocks the same way Extensibility Extensibility Your own services can be put into the container too Your own services can be put into the container too Easier to write blocks – container handles the config Easier to write blocks – container handles the config Flexibility Flexibility Container-friendly design means you can switch containers if you need/want to Container-friendly design means you can switch containers if you need/want to

10/28/2008 Quick Details Enterprise Library October 2008.msi Version: 4.1 Date Published: 10/27/2008 Language: English Download Size: 30.7 MB

10/28/2008 System Requirements Microsoft Windows XP Professional, Windows Server 2003, Windows Server 2008, or Windows Vista operating system Microsoft.NET Framework 3.5 or later Microsoft Visual Studio 2008 development system (any of the following editions): Microsoft Visual Studio 2005 Standard Edition Microsoft Visual Studio 2005 Professional Edition Microsoft Visual Studio 2005 Team Edition for Software Development Microsoft Visual Studio 2005 Team Edition for Software Testers Microsoft Visual Studio 2005 Team Edition for Software Architects Microsoft Visual Studio 2005 Team Suite Some blocks and samples require the use of Microsoft SQL Server or other database products.

10/28/2008 Contents Source Code Unit Tests Quick Starts Documentation Binaries - NEW

10/28/2008 Caching Application Block scenarios … Adding items to the cache Removing items from the cache Retrieving items from the cache Flushing the cache

10/28/2008 brief … The caching block is not designed to replace the ASP.NET cache but to work with it. The caching block provides a number of features that are not available to the ASP.NET cache such as: The ability to use a persistent backing store Multiple methods of setting expiration times Can be used for project types other than web applications The core settings are described in configuration and can be changed without recompilation of the project. Ability to encrypt a cache item's data You cannot synchronize caching across a web farm Does not support encryption of data that is cached in memory Caching Application Block

10/28/2008 ICacheManager productsCache = CacheFactory.GetCacheManager(); string id = "ProductOneId"; string name = "ProductXYName"; int price = 50; Product product = new Product(id, name, price); productsCache.Add(product.ProductID, product, CacheItemPriority.Normal, null, new SlidingTime(TimeSpan.FromMinutes(5))); // Retrieve the item. product = (Product) productsCache.GetData(id); Caching Application Block

DEMO

10/28/2008 Cryptography Application Block scenarios … Encrypting data using a symmetric provider Decrypting data using a symmetric provider Obtaining a has value Checking whether a hash value matches some text

10/28/2008 Cryptography Application Block brief … Managing and Distributing Keys Symmetric encryption encrypts and decrypts data with the same key. Protect your keys with access control lists (ACL). Selecting an Algorithm For hashing algorithms, SHA256Managed is recommended For symmetric algorithms, AES, also known as Rijndael, is recommended

10/28/2008 string encryptedContentsBase64 = Cryptographer.EncryptSymmetric("symmProvider", "SensitiveData"); // Decrypt the base64 encoded string string readableString; readableString = Cryptographer.DecryptSymmetric("symmProvider", encryptedContentsBase64); Cryptography Application Block

DEMO

10/28/2008 Data Access Application Block scenarios … Using a DataReader to retrieve multiple rows of data Using a DataSet to retrieve multiple rows of data Executing a command and retrieving the output parameters Executing a command and retrieving a single-value item Performing multiple operations within a transaction Retrieving XML data from a SQL Server Updating a database with data contained in a DataSet object

10/28/2008 Data Access Application Block ExecuteDataSet LoadDataSet ExecuteReader ExecuteScalar ExecuteNonQuery UpdateDataSet

10/28/2008 Database db = DatabaseFactory.CreateDatabase(); // Create a database object DbCommand dbCommand = db.GetStoredProcCommand("GetProductsByCategory"); // Supply the parameters db.AddInParameter(dbCommand, "CategoryID", DbType.Int32, 7); // Call the appropriate method DataSet productDataSet = db.ExecuteDataSet(dbCommand); Data Access Application Block

DEMO

10/28/2008 Logging Application Block scenarios … Populating and raising events from code Populating a log message with additional context information Tracing activities and propagating context information Checking filter status before constructing log messages

10/28/2008 LogEntry logEntry = new LogEntry(); logEntry.EventId = 100; logEntry.Priority = 2; logEntry.Message = "Informational message"; logEntry.Categories.Add("Trace"); logEntry.Categories.Add("UI Events"); Logger.Write(logEntry); Logging Application Block

10/28/2008 Processing of log entries in the Logging Application Block

DEMO

10/28/2008 Exception Handling Application Block scenarios … Logging an Exception Wrapping an Exception Replacing an Exception Propagating an Exception Displaying User-Friendly Messages Notifying the User

10/28/2008 Exception Handling Application Block

10/28/2008 try { // Run code. } catch(Exception ex) { bool rethrow = ExceptionPolicy.HandleException(ex, “My Policy"); if (rethrow) throw; } Exception Handling Application Block

DEMO

10/28/2008 Security Application Block scenarios … Obtaining a temporary token for an authenticated user Authenticating a user using a token Ending a user session (expire a token) Determining if a user is authorized to perform a task

10/28/2008 Validation Application Block scenarios … Using Attributes to Define Validation Rule Sets Using Self Validation Validating Objects Integrating with ASP.NET, Windows Forms, and WCF

10/28/2008 Resources Download Enterprise Library and related resources from: Download Enterprise Library and related resources from: Join the Enterprise Library Community at: Join the Enterprise Library Community at: