FUN301 - MMC 3.0: Developing Managed Code Snap-ins

Download Report

Transcript FUN301 - MMC 3.0: Developing Managed Code Snap-ins

MMC 3.0: Developing
Managed Code Snap-ins
Jon Rowlett (jrowlett), Ian Lucas (ianlucas)
FUN301
Operations and Control Platform
Microsoft Corporation
MMC 3.0 Goals And Investments
Goals
Reduce the cost of snap-in
development
Improve reliability
Consistent administrator user
experience
Investments
Managed code framework
(SDK)
Heap isolation
ETW tracing
App domain isolation and
threading (managed code)
Actions Pane
New Add/Remove dialog
UI guidelines and samples
Key User Benefits
Improved Usability
Discoverability of actions
Simpler customization of consoles
More Reliable
Improved detection and reporting of snap-in problems
Ability to isolate hung snap-ins from console (new
snap-ins only)
Better perceived robustness (Async)
Richer Snap-ins
Functionally rich views through Windows Forms
Consistency across snap-in design
Reduced development cost equates to increased
functionality
Key Developer Benefits
Easier and faster snap-in development
Takes less time to get a snap-in up and
running
Design/Develop/Debug in Visual Studio
Easier to debug, integrated trace support
Integrated Windows Forms support
Full integration with Windows Forms (unlike
old OCX views)
Design Guidelines
Prescriptive guidance on standardized layout
and behaviors
Discussions on common MMC design issues
Design Best Practices
Design Guidelines
Consistency of user experience
Guidance on layout
Layout of views
Use of controls
System themes (fonts, colors)
Guidance on structure
Simplifying navigation (use of tree)
Granularity of composition
Protecting investments in managed
snap-ins
Standardized Design
List View with Roll-up
Summary
List View with
Preview Pane
Start Page
Microsoft Confidential
MMC 3.0 Architecture
MMC 3.0
Managed
Framework
MMC V3.0
Managed
Support
MMC 3.0
Core UI
Snap-in
Legacy Snap-In
Interfaces
V2.0 Snap-in
V2.0
Snap-in
V2.0
Snap-in
V1.2
/ V2.0
Snap-ins
Managed System
AppDomain 0
AppDomain n
Microsoft Confidential
MMC 3.0 Reliability Architecture
App Domain Separation
Asynchronous Activation
MMC Core
Private
Heap
Bookkeeping
Heap Separation
Process
Heap
Managed
Snap-ins
Legacy Snap-In
Interfaces
V2.0 Snap-in
V2.0 Snap-in
V2.0Legacy
Snap-in
Snap-ins
Watson
ETW Tracing
Programming Model - Primary SDK Classes
Snap-in
Result Pane
Tree Pane
Node
ViewDesc
ViewDesc
HTML
Message
List
Windows Form
Views
View
Node
Node
Selected Data
Action
Action
Action
Action
Verbs
Action
Action
Verbs
Action Pane
Property Page
Property Page
Property Sheet
Building A Software Catalog
Snap-in
Jon Rowlett
Lead Developer
Operations and Control Platform
Software Catalog
A snap-in for managing installed applications on a system
Creation of a snap-in that will utilize WMI
to list the applications installed on a
machine
Declaration and registration of a snap-in
Creating nodes in the scope tree
Using actions and standard verbs
Creating a list view
Adding the ability to extend Computer
Management
Developer Experience
“400 lines of code instead of 6000”
“Shorter ramp-up time to get a basic snapin working”
“Ties well into the “rapid application
development” model”
“MMC 3.0 abstracts core concepts in simpler
to understand .net primitives”
“Hands down it makes the job of creating a
snap-in almost trivial”
“New developer with no MMC experience
productive within a day”
“Supporting drag-drop has gone from near
impossible to almost trivial”
MMC 3.0 Versus MMC 2.0
MMC 3.0 managed interfaces provides parity with
existing MMC 2.0 functionality with the following
exceptions:
Context Menu extensions are not supported.
Virtual Lists are not supported in MMC ListView – use standard
list controls on Windows Forms Views instead.
Toolbar support is removed – Actions Pane provides a better and
consistent surfacing of actions.
MMC 3.0 managed interfaces support the following
additional features:
Managed / Unmanaged snap-in extensibility (Namespace and
Property Page)
Action Pane Support – program actions once for consistent
surfacing through Action Pane & Context Menus.
Integrated Windows Forms Views (replaces OCX Views)
Multiple Views per node
Status Management
Platform Support
MMC 3.0 is fully backwards compatible
supporting all existing snap-ins:
Snap-ins written to MMC 1.0, 1.2, 2.0
MMC 3.0 will be available on:
Windows Vista/Longhorn Server
Windows Server 2003 R2
Windows Server 2003 (SP1)
Windows XP (SP2)
Community Resources
At PDC
For more information, go see
Labs: FUNHO06 – Writing Managed Code Snap-in
FUN Track lounge: I’ll be there Thu 2-5 p.m., Fri
9am-12 p.m.
After PDC
If you missed this related session, watch it on
the DVD
FUN301: MMC 3.0 Developing Managed Code
Snap-ins
Get the MMC 3.0 SDK
Platform SDK for Windows Vista Beta
Platform SDK for Windows Server 2003 R2 Beta.
Wrap Up
MMC 3.0 reduces the cost to develop
snap-ins and improves the administrator
user experience
MMC 3.0 supports existing snap-ins for
backward compatibility and is more robust
MMC 3.0 will ship in Windows Server R2
and Longhorn Client and Server, with
downloads available on XP SP2 and
WS03 SP1
“Hands down it makes the job of creating a
snap-in almost trivial”
FAQ
When will MMC 3.0 be available on XP and WS03?
MMC 3.0 will be made available for XP SP2 and WS03 SP1 around the
WS03 R2 RTM timeframe
How will MMC support future versions of managed framework?
Future versions of MMC will provide for side-by-side execution of managed
snap-ins built against different MMC Fx versions
How do I debug issues in my existing snap-in detected by the new
MMC 3.0 reliability features?
MMC provides a whitepaper to help analyze, understand and resolve the
common problems detected by the new book-keeping features
Which Microsoft tools will be using MMC 3.0 in the Longhorn release?
A number of tools including Event Viewer, Task Scheduler, and Terminal
Services are already in Beta1. Many more are still to come, including tools
shipping in WS03 R2 for new features like Distributed File System
Manager (DFS) and File Server Resource Manager
What are the performance considerations for managed snap-ins?
MMC programmers guide recommends approaches for minimizing
performance issues, including reducing any initial startup delays due to JIT
requirements. The API includes several performance focused features
including batch update modes to allow snap-ins to optimize UI
redraw issues
© 2005 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.