Microsoft Enterprise Library 5.0

Slides:



Advertisements
Similar presentations
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Advertisements

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Feature: Purchase Requisitions - Requester © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
MIX 09 4/15/ :14 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Announcing Demo Announcing.
Feature: OLE Notes Migration Utility
Feature: Web Client Keyboard Shortcuts © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Feature: SmartList Usability Enhancements © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
Session 1.
Built by Developers for Developers…. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Welcome to Grigori Melnik’s talk on Microsoft Enterprise Library patterns & practices symposium 2010 Please wait while the Setup Wizard prepares.
Feature: Assign an Item to Multiple Sites © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Tom Hollander Solution Architect Microsoft Australia Session Code: ARC302.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Tony Goodhew Product Planner DEV328.
Feature: Customer Combiner and Modifier © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.

customer.
demo © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
demo Demo.
demo QueryForeign KeyInstance /sm:body()/x:Order/x:Delivery/y:TrackingId1Z
Windows Azure SQL Data Sync Name Title Microsoft Corporation.
projekt202 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks.
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.

Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
MIX 09 4/17/2018 4:41 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
5/15/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Unit testing your metro style apps built using XAML
2010 Microsoft BI Conference
Возможности Excel 2010, о которых следует знать
ADO.NEXT Advances in Data Access for 2008
Performance Point Services in SP2013
Microsoft Build /15/2018 6:28 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Title of Presentation 11/22/2018 3:34 PM
"Oslo”: Customizing and Extending the Visual Design Experience
SPC2012 – IT-Pro 11/30/2018 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
An Introduction To Microsoft F#
Title of Presentation 12/2/2018 3:48 PM
Building event-driven, long-running apps with Windows workflow
12/9/2018 Desktop Virtualization Corey Hynes Kyle Rosenthal President Technical Lead HynesITe Inc Spider Consulting @windowspcguy.
Tech Ed North America /1/ :36 AM Required Slide
Build /23/2019 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
From Development to Production: Optimizing for Continuous Delivery
Feature: Document Attachment - Flow from Master Records
TechEd /3/ :48 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
8/04/2019 9:13 PM © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Delivering great hardware solutions for Windows
From Development to Production: Optimizing for Continuous Delivery
Windows 8 Security Internals
Виктор Хаджийски Катедра “Металургия на желязото и металолеене”
Leveraging existing code in Metro style apps
PENSACOLA ENERGY WORK PLAN OCTOBER 10, 2016
5/8/2019 3:20 AM bQuery-Tool 3.0 A new and elegant way to create queries and ad-hoc reports on your Baan/Infor ERP LN data. This Baan session is a query.
Title of Presentation 5/12/ :53 PM
Service Template Creation from the Ground Up
Шитманов Дархан Қаражанұлы Тарих пәнінің
Title of Presentation 5/24/2019 1:26 PM
Title of Presentation 7/24/2019 8:53 PM
Microsoft Virtual Academy
WCL425 App Compat for Nerds Chris Jackson.
Microsoft Virtual Academy
5/6/19, Bell #6 12/11/2019 8:26 PM Explain the relationship between this picture and the events that took place in Chapter 7 in Animal Farm. © 2007 Microsoft.
Presentation transcript:

Microsoft Enterprise Library 5.0 Welcome to Bob Brumfield’s talk on Microsoft Enterprise Library 5.0 @ NT konferenca 2011 Please wait while the Setup Wizard prepares to guide you through the presentation

Context Reusable components are important Address common enterprise development challenges consistently across applications Application Blocks are a form factor for reusable components Reusable, testable, extensible and modifiable source code + docs, hands-on labs Enterprise Library is a set of general purpose application blocks Not specific to any one application type or architectural style Can be used as-is or as a starting point for your own libraries or frameworks WHEN IT COMES TO CODE WRITING, LESS IS MORE! YOU SIMPLY CANNOT AFFORD NOT TO REUSE!

Enterprise Library – Big Picture

EntLib Design Goals Consistency Extensibility Ease of use Integration Blocks are written with and used in common patterns Extensibility Pluggable extension points Ease of use Config tool, tons of docs, simple interfaces, labs, webcasts Integration Work well together or separately

Simplification inside and out Key themes Ease of use Learnability Less intrusive Better testability Simplification inside and out

No new blocks Healthy code

Where were we?

EntLib 4.x Core Plug-in Client App Unity DI Unity Extensions Caching Security Data Access Logging Exception Handling Plug-in Config Helpers & Design Instrumen- tation Object Builder2 Cryptography Core Policy Injection Validation

Where are we going?

Conceptual Architecture Functional blocks Wiring blocks

Enterprise Library – Conceptual Architecture Functional blocks Common Infrastructure Config Instrumen- tation Data Access Logging Caching Exception Handling Structural/wiring blocks Cryptography Security Unity Policy Injection Validation

A-la carte approach You only need to use features relevant to you!

.NET 4.0 / VS 2010 Binaries Source Config tool Signed Target .NET 3.5 SP1 Work unchanged in .NET 4.0 projects Source VS 2008 sln/proj targeting 3.5 SP1 VS 2010 sln/proj targeting 4.0 Config tool Fully integrated editor in VS 2008 Launcher from VS 2010 (like WCF config tool)

Adding logging to your app in ~3 mins! Ease of use! Demo Adding logging to your app in ~3 mins!

Getting Enterprise Library objects

Config Experience New config tool IntelliSense in XML editor Programmatic config support New configuration sources

Config Tool Stories Usability: Improve intuitiveness & learnability Simplicity: Reduce the number of design time assemblies Extensibility: Simplify the way config for custom handlers/providers/blocks can be plugged into the config tool

Config Tool Experience Demo

Twelve Architecture & Usage of EntLib

Fluent Configuration Interface Motivation: Customer requested a better way to configure EntLib programmatically Make our own test cases more readable Ref: Martin Fowler, Eric Evans. http://martinfowler.com/bliki/FluentInterface.html

Programmatic Config Experience Demo

Hierarchical / Redirected config Use a non-default config store Split config into multiple physical files Combine them at runtime Allows master + override style of config Runtime version of environmental overrides

Logging Block Performance Originally, planned to implement async logging Perf analysis of the lower level operations of the logging block (v4.1) showed: The formatter took 54% of the total time Of this, the most expensive operations are: 11.76   Getting the machine name 9.63    Computing Severity textual representation 5.70    Undetermined mscorwks.dll work 5.17    Computing DateTime textual representation 4.46    StringBuilder.Append 4.10    Getting the process name

Higher Performing Logging – Preliminary Results Formatter responsible for ~50% of the execution time Improvements N=1M 45% local improvement upto 20% global improvement 53% local improvement

New in Data Access Application Block

Processing Results Data Access block traditionally made it easier to call sprocs Processing the results still means dropping back into classic ADO.NET code Issue: how could we make it easier to consume the results of a sproc?

Introducing Data Accessors Basic idea: Instead of operating on data readers and data records that you get from a query, get back an IEnumerable<T> Now we can do LINQ to Objects magic Accessors provide a higher level abstraction that combines the command, input mapping, output mapping, and result set management into a single object. Note: Accessors are easily injectable

Data Accessors

before after

DAAB Accessors Demo 9/12/2018 8:07 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

DAAB Accessors != ORM

Async DAAB Database API addition Follows classic Begin/End async pattern NonQuery Scalar Reader XmlReader (SQL Server only) Not supported on all databases

Async Data Access var db = EnterpriseLibraryContainer.Current.GetInstance<Database>(); if(db.SupportsAsync) { db.BeginExecuteScalar("Get Top Ten Products", CompletionMethod); } public void CompletionMethod(IAsyncResult async) { int count = (int)db.EndExecuteScalar(async); ...

Policy Injection Application Block Goals Separate cross-cutting concerns from business logic Use interception and injection to apply policies at runtime Provide a declarative way of specifying which policies are applied where Define policies using configuration or attributes Leverage other application blocks to implement common cross-cutting concerns Validation, Logging, Authorization, Exception Handling, Caching, Performance Counters Provide flexibility in interception mechanisms Aspect-Oriented Programming (AOP )

Interception

Interceptors

Interceptors – Pros & Cons

Power of Interception Demo 9/12/2018 8:07 PM Power of Interception Demo © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Learnability With contributions by Nicolas Botto, Bob Brumfield, Grigori Melnik, Erik Renaud, Fernando Simonazzi, Chris Tavares

Key Takeaways Reuse for the win! Improving user experience 9/12/2018 Key Takeaways Reuse for the win! Improving user experience Simpler, more consistent code base Simpler to configure and use Better support for DI-style of development Focus on testability and maintainability Engage with us! © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Call for Action New to EntLib: Seasoned EntLib user: 9/12/2018 Call for Action New to EntLib: Start with reading the Dev Guide Download Hands-on labs (5.0) Play! Seasoned EntLib user: Evaluate v5.0 Read Migration guide Experiment with migration Provide feedback! Tell your story © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Resources Released Enterprise Library and related resources: msdn.microsoft.com/entlib Discussions, learning resources and support: entlib.codeplex.com unity.codeplex.com Enterprise Library Community Extensions: entlibcontrib.codeplex.com patterns & practices dev center msdn.microsoft.com/practices contacts grigori.melnik@microsoft.com blogs.msdn.com/agile @gmelnik bob.brumfield@microsoft.com blogs.msdn.com/bobbrum @bobbrum

Hvala!