DEV362.NET Reference Building Blocks Ron Jacobs Product Manager Microsoft Patterns & Practices.

Slides:



Advertisements
Similar presentations
DEV351 ADO.NET Performance Pablo Castro Program Manager – ADO.NET Team Microsoft Corporation.
Advertisements

DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
CSLA Presenter Sergey Barskiy, senior consultant at Magenic Technologies your questions Send an in order.
What’s New for Smart Client Developers in Visual Studio 2005? Mike Pelton Systems Engineer Microsoft Ltd
What’s New for Smart Client Developers in Visual Studio 2005? Mike Pelton Systems Engineer Microsoft Ltd
ASP.NET Programming with C# and SQL Server First Edition
ASP.NET Programming with C# and SQL Server First Edition Chapter 8 Manipulating SQL Server Databases with ASP.NET.
Leveraging Application Blocks in Your Application Development Ihsan Anabtawi Technology Specialist Microsoft ® Corporation.
OFC302 Building Smart Document Solutions in Word & Excel Martin Sawicki Lead Program Manager.
DBA230 Introducing SQL Server 2000 Reporting Services Jason Carlson Product Unit Manager SQL Server Microsoft Corporation.
OFC 322 Building Office Research Web Services: Exposing Corporate Data Through Office Brian Jones Program Manager Authoring Services Martin Sawicki Lead.
Creating Business Workflow Using SharePoint Designer 2007 Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server MVP Microsoft SQL Server.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
DEV334 Creating Application Starting Points & Sharing Best Practices with Enterprise Templates Marc Gusmano Director of Emerging Technologies The Information.
OFC304 Excel 2003 Overview: XML Support Joseph Chirilov Program Manager.
OFC 200 Microsoft Solution Accelerator for Intranets Scott Fynn Microsoft Consulting Services National Practices.
DEV290 Building Office Solutions with Visual Studio Eric Carter Lead Developer Developer Platform & Evangelism Microsoft Corporation.
DAT336 Connected vs Disconnected Data Access in ADO.NET Pablo Castro Program Manager – ADO.NET Team Microsoft Corporation.
Building Web Sites with ASP.NET MVC Framework Noam King CTO Sela College
WEB 304 An Overview of ASP.NET and Windows Workflow Foundation Kashif Alam Program Manager Developer Division Microsoft Corporation.
DAT305 Boost Your Data-Driven Application Development Using SQL Server Centric.NET Code Generator Pascal Belaud Microsoft France.
Slide 2 The Microsoft Office Project 2003 Software Development Kit Jim Corbin Programmer Writer Office Developer Documentation Microsoft Corporation Uma.
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
DEP362 Automated Deployment Services Paul Sutton Program Manager.
OFC290 Information Rights Management in Microsoft Office 2003 Lauren Antonoff Group Program Manager.
DEV339 Best Practices for Debugging Visual Studio.NET Applications Keith Pleas Architect, Guided Design
DEP350 Windows ® Rights Management (Part 1): Introduction, Concepts, And Technology Marco DeMello Group Program Manager Windows Trusted Platforms & Infrastructure.
Migration from Software Update Services to Windows Server Update Services Jeff Alexander IT Pro Evangelist Microsoft Australia Scott Korman WSUS MVP SEC316.
Slide 1.NET Development for Project 2003 Samples from the Project 2003 SDK Jim Corbin Programmer Writer Office Developer Documentation Microsoft Corporation.
DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools.
Module 5: Configuring Internet Explorer and Supporting Applications.
Windows Forms in Visual Studio 2005 Mike Pelton Systems Engineer Microsoft Ltd
DEV333 Instrumenting Applications for Manageability with the Enterprise Instrumentation Framework David Keogh Program Manager Visual Studio Enterprise.
Windows Role-Based Access Control Longhorn Update
MBL206 A First Look at the Microsoft Location Server (MLS) Steve Lombardi Technical Product Manager MapPoint Business Unit Microsoft Corporation.
Patterns & practices for Application Architectures Developer Days, Warsaw, October, 2003 Wojtek Kozaczynski Architect, PAG
EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices.
DEV303 ASP.NET: Leveraging Visual Studio.NET For Web Projects Tony Goodhew Product Manager Microsoft Corp.
DAT 332 SQL Server 2000 Data Transformation Services (DTS) Best Practices Euan Garden Product Unit Manager SQL Server Development Microsoft Corporation.
MBL490 Deploying Applications to Smartphone and Microsoft® Powered Pocket PC Marcus Perryman Consultant.
DAT430 Extending Microsoft ® ADO.NET Building a Custom Data Factory API DAT430 Extending Microsoft ® ADO.NET Building a Custom Data Factory API Gert E.R.
MSG331 Exchange Server 2000/2003 Software Development Kit Susan Hill Lead Programmer Writer Microsoft Corporation.
DAT300 SQL Server Notification Services: Application Development Ken Henderson Technical Lead, SQL Server Support Microsoft Corporation
MBL 305 ASP.NET Mobile Controls: Best Practices Gökşin Bakir CSA Yage Ltd. Microsoft Regional Director.
DEV395 No Touch Deployment for Windows Forms Jamie Cool Program Manager.NET Client Microsoft Corporation.
DBA331 Managing a Microsoft SQL Server 2000 Reporting Services Implementation Brian Welcker Group Program Manager SQL Server Microsoft Corporation.
DEV386 Best Practices for.NET Smart Clients and Web Services Development Marc Ghys & Bart Debeuckelaere.NET architects, Euricom.
DEV394 Windows Forms Performance Tips And Tricks Mike Henderlight Development Manager.NET Client Team Microsoft Corporation
DEV332 Programming for the Middle Tier in Visual Basic.NET Billy Hollis Author / Consultant.
Service Pack 2 System Center Configuration Manager 2007.
Enterprise Library Caching Application Block Peter Provost Software Design Engineer Ron Jacobs Product Manager Scott Densmore Software Design Engineer.
The 2007 Microsoft Office System Servers Enterprise Content Management, Workflow and Forms Martin Parry Developer and Platform Group, Microsoft Ltd
Microsoft Office System UK Developers Conference Radisson Edwardian, Heathrow 29 th & 30 th June 2005.
Gowtham Prasad K N Partner Technical Consultant | Microsoft Corporation |
Module 5: Managing Content. Overview Publishing Content Executing Reports Creating Cached Instances Creating Snapshots and Report History Creating Subscriptions.
Architecting Real-World Enterprise Application. Agenda CPR - Background Challenges in the Architecture Architecture Details Q & A Summary.
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
DAT 390 Advanced ADO.NET Programming Techniques Jackie Goldstein Renaissance Computer Systems
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Office 365 Development July 2014.
Chris Menegay Sr. Consultant TECHSYS Business Solutions
Visual Studio Tools for Office 2005
Enterprise Library Overview
Matt Masson Software Development Engineer Microsoft Corporation
DAT381 Team Development with SQL Server 2005
Visual Studio 2005 Tools For Office: Creating A Multi-tier Application
Windows Forms in Visual Studio 2005: An in-depth look at key features
Introduction to ASP.NET Parts 1 & 2
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

DEV362.NET Reference Building Blocks Ron Jacobs Product Manager Microsoft Patterns & Practices

Agenda What Are Application Blocks? Walkthrough of 4 Application Blocks Community Results Call to Action

Sound familiar? Writing a component to make it simpler to call stored procedures Building a framework component that allows you to log errors to different sources Building framework / infrastructure components to generally simplify app development …wishing Microsoft had done some of this for you?

Application Blocks for.NET Beyond ‘sample code’ Reusable Code – C# and VB.NET Documentation Quick Start samples patterns & practices … showcasing best practices Tested & reviewed: Security, Performance, etc. Considering future direction in design …better solutions, faster!

Architecture Guidance Microsoft patterns & practices Proven Based on field and partner experience Authoritative Best advice available Accurate Technically validated and tested Actionable Provide the steps to success Relevant Address real world scenarios Available online Books available from

EULA and Support Model What about licensing & support? Source Code only – VB.NET and C# No binaries - ‘As is’ EULA Customizations OK Redistribution & repackaging OK GotDotNet Community Support PSS sign-off PSS Training Consistency in recommendations Escalation procedures, bug reporting

Walkthrough of 4 Blocks: Operational Management UI Components SecurityCommunication UI Process Components Business Workflows Service Interfaces Business Components Business Entities Users Data SourcesServices Data Access Logic Components Service Agents Data Access Exception Mgmt UI Process Configuration Mgmt Updater

Data Access Application Block Simplifies calling ADO.NET SqlClient Simplifies returning many formats Get DataSets, DataReaders, Scalars, XmlReaders – all in one line of code Simplifies calling with many sources Connections, Conn. Strings, SQL Transactions Plays well with COM+ dr = SqlHelper.ExecuteReader( CONN_STRING,“SaveCustomer", “John”, “Doe” );

Data Access Application Block SqlHelper static methods ExecuteNonQuery – do not return rows ExecuteDataset – get a dataset from TSQL or sproc ExecuteReader – get a DataReader ExecuteScalar - retrieve a single value resultset from a Transact-SQL statement or stored procedure ExecuteXMLReader - retrieve XML data

SqlHelperSqlHelper.ExecuteDataset(SqlHelper.ExecuteDataset(“connectionstring” First, choose the response format Int DataSet SqlDataReader Object XmlReader Then choose target data source Connection String SqlConnection SqlTransaction …and finally, what type of parameters you want to send Value Array SqlParameter Arrays No Parameters Choosing a DAAB Method SqlHelper.ExecuteDataset(“connectionstring”, CommandType.StoredProcedure, ”CustomersGetByPlanet”, “Earth”);

Data Access Block demo demo

Data Access Application Block Parameter Caching Caches Stored Procedure Parameters Avoids 2 roundtrips Cache can be loaded manually (enforcing type manually) or automatically ‘on the fly’ Important Links.NET Data Access Architecture Guide GotDotNet Workspace d=c20d12b0-af52-402b-9b7c-aaeb21d1f431

Tips ‘Privatize’ functions you don’t need Things you can add Connection String Mgmt Batch Updates* Typed Datasets* * Next rev Instrumentation, DDR, etc.

Exception Management Pluggable Exception Publishing One-Line in the application Event log by default You should use EIF as a plug-in Base Application Exception

ExceptionManager Simplifies reporting Exceptions Pluggable ‘Publishers’ of exception info Event Log as default. Filters for routing / verbosity Adds troubleshooting information Persists Exception Chain try {…} catch( Exception ex ) { ExceptionManager.Publish (ex ) }

Exception Mgmt App Block Runtime flexibility, pluggable stuff <section name="exceptionManagement" type=" Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManagerSectionHandler, Microsoft.ApplicationBlocks.ExceptionManagement" /> <publisher mode="on/off" assembly="AssemblyName" type="TypeName" exclude=“[*]Type,Type" include=“[+]Type,Type" exceptionFormat="xml" customattr = "value" /> <section name="exceptionManagement" type=" Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManagerSectionHandler, Microsoft.ApplicationBlocks.ExceptionManagement" /> <publisher mode="on/off" assembly="AssemblyName" type="TypeName" exclude=“[*]Type,Type" include=“[+]Type,Type" exceptionFormat="xml" customattr = "value" />

Exception Management Block demo demo

Tips Register custom event sources by running installutil on your DLL Understand exception management best practices Build a ‘dump to text file’ publisher for development

Exception Management Important Links Exception Management in.NET us/dnbda/html/exceptdotnet.asp Adding WMI and Instrumentation to.NET Apps us/dnbda/html/monitordotnet.asp

User Interface Process Block Facilitates development of complex UI layers Helps you implement the MVC pattern Describe your UI ‘flow’ as XML Reuse controller logic for win & web Take care of state management Start, pause and resume user tasks without having your code notice

A User Interface Process cart browsecatalog error checkout congrats addItem fail resume passCheckout failCheckout checkout fail <navigationGraph iViewManager="WinFormViewManager" name="Shopping" state="State" statePersist="SqlServerPersistState" startView="cart"> <navigationGraph iViewManager="WinFormViewManager" name="Shopping" state="State" statePersist="SqlServerPersistState" startView="cart"> A User Interface Process represents a ‘use case’ You can draw it as a flow between views The UIP Block uses XML config to manage flow

UIP In Your Application ControllerBase Your Controller Class DALC WinFormView Your Windows Forms WinFormView Your Windows Forms WebFormView Your ASP.NET Pages or Windows Form,s WebFormView Your ASP.NET Pages or Windows Form,s Biz Component s Data Access State Persistence Provider MyFunc() { //do cool code //more good stuff } MyFunc() { //do cool code //more good stuff } Persistence Providers: - SQL Server - Encrypted SQL Server - Memory - ASP.NET Session - Custom ASP.NET Pages or Windows Forms belonging to a use case State Persistence Provider UIP Manager Application XML Configuration File UIP Configuration View Managers: - Windows Forms - Web Pages View Manager WebFormView Your ASP.NET Pages WinFormView Your Windows Forms State Your State Type (Optional) Your State Type (Optional)

UIP Code Writing Controllers: Inherit your class from ControllerBase Use the State object to hold your process data Use the NavigateValue property to set your output Interact with your business layers Writing Views: Inherit your page from WebFormView Inherit your Form from WinFormView Use the MyController property to access the controller UIP sets the reference for you

User Interface Process demo demo

Configuration Management AB Secure configuration in multiple sources Helps maintain application configuration Pluggable Storage Pluggable Signing & Encryption Caching of config data for performance

Using the Config Mgmgt AB Write your application as usual Specify ‘config for the config’ Where a configuration section is stored, whether it’s encrypted or not, caching policy Includes utilities & QuickStarts for encryption <configProvider assembly="Microsoft.ApplicationBlocks.ConfigurationManagement.Storage.XML, Version= ,Culture=neutral, PublicKeyToken=3325ee11de9ffa0a" type="Microsoft.ApplicationBlocks.ConfigurationManagement.Storage.XmlFileStorage" signed="false" refreshOnChange="true" encrypted="false" /> <configCache enabled="true" locationPath="" locationType="Memory" refresh="1 * * * *" signed="true" encrypted=“false" />

Configuration Mgmt Design Your Application Your Application Application XML Configuration File (holds config for config) Configuration Storage Providers: - XML File - SQL Server - Registry - Custom Configuration Manager Configuration Storage Provider Data Protection Provider Data Protection Provider Data Protection Providers: - DPAPI - BCL - Custom Caching Service Configuration Section Handlers Data Protection Provider Data Protection Provider Data Protection Provider Data Protection Provider Configuration Storage Provider

Updater Application Block Adding self-deployment capabilities for applications ‘V Next’ of the popular GotDotNet Application Updater Securely pull assemblies and files Pluggable download mechanism Includes BITS - Background Intelligent Transfer System Run ‘custom actions’ post deployment Downloads validated using RSA or custom validation

Using the Updater Update Controller (Application or separate EXE) Update Controller (Application or separate EXE) Updater Application Block Application Update Manifest 1 1 Server Client Downloader 2 2 Application Poll & Download Controller XML Configuration File File Copy Administrator uses Manifest Utility Validator Post Processor (optional) 5 5 Downloader Validator

Upcoming Blocks Other Blocks Just Released: Caching, Asynch Invocation, Aggregation Available Now Get the code Get samples Get extra plug-ins Use GotDotNetWorkspace for discussion

Sharing Code through Community GotDotNet Workspaces Community Blocks  Workspaces for blocks  Community Blocks  Share ideas / extensions  File bugs, fix them too! GotDotNet Microsoft Blocks Internet

Next Steps Use patterns & practices Download & Use Application Blocks Participate in Workspaces Provide us with your feedback: Are we focused on the topics you need? What other suggestions or requests do you have?

Community Resources Most Valuable Professional (MVP) Newsgroups Converse online with Microsoft Newsgroups, including Worldwide User Groups Meet and learn with your peers

evaluations evaluations

© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.