1 / 30

Packaging Design and Architecture Guidance for Visual Studio

Packaging Design and Architecture Guidance for Visual Studio. Tom Hollander Wojtek Kozaczynski Harry Pierson Microsoft. Agenda. Background Introducing the Guidance Automation Toolkit GAT Concepts Demos More Important Stuff. D. A. D. I. A. D. I.

landry
Download Presentation

Packaging Design and Architecture Guidance for Visual Studio

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Packaging Design and Architecture Guidance for Visual Studio Tom Hollander Wojtek Kozaczynski Harry Pierson Microsoft

  2. Agenda • Background • Introducing the Guidance Automation Toolkit • GAT Concepts • Demos • More Important Stuff

  3. D A D I A D I patterns & practicesArchitecture Guidance for the Enterprise ProvenBased on field experience Authoritative Offer the best advice availableAccurateTechnically validated and testedActionableProvide the steps to success RelevantAddress real-world problems based on customer scenarios Available online: http://www.microsoft.com/practices Books available: http://www.amazon.com/practices Patterns Application Blocks Reference Architectures Atomic solutions to recurring problems Sub-system-level guidance for common services System-level guidance for common customer scenarios D A D I D A D I A A D D I I Guides Guidance for broad horizontal topics such as security, performance, deployment and operations

  4. BackgroundEvolution of Guidance • patterns & practices produces guidance in various forms • Guides • Patterns • Application Blocks • Frameworks and Baseline Architectures • p&p addresses progressively more complex architectural challenges • Complexity of assets increases • More complex assets harder to evaluate, comprehend and use

  5. BackgroundExample: Data Access Application Block private DataSet GetProducts(int categoryId) { Database db = DatabaseFactory.CreateDatabase("Sales"); return db.ExecuteDataset("getProductsByCategory", categoryId); }

  6. BackgroundExample: UI Process Application Block • <views> • <view name="Form1“ • type="Demo.Form1, Demo" • controller="MyController“ • layoutManager=“VerticalLayoutManager” • stayOpen="true"/> • <view name="Form2" • type="Demo.Form2, Demo" • controller="MyController" /> • <view … /> • … • </views>

  7. BackgroundExample: EDRA Application Framework • Application framework supporting • Separation of service interface and implementation • Separation of business logic and cross-cutting concerns • Separation of business logic and underlying transports • Different deployment patterns

  8. BackgroundThe Challenge • As our assets get more involved: • We need to write more documentation • Customers need to read more documentation to use assets correctly • “guidance” value of asset diminishes if if takes a lot of reading to use it effectively • We need a way to make more complex guidance easily consumable without relying entirely on documentation!

  9. BackgroundWe are not alone… • When we started looking at this problem, we realized that it is common • Consumability of components, frameworks and application architectures built by our customers • Consumability of assets derived from patterns & practices deliverables

  10. Introducing the Guidance Automation Toolkit • Light-weight extensibility mechanism to Visual Studio 2005 • Allows to build user experience guiding the developer through how to use code assets in Visual Studio • First preview version will be available soon – check at http://microsoft.com/practices for details

  11. Introducing GATGoals • Simplify authoring reusable, parameterizable software assets • Artifact templates • Actions modifying solution artifacts • Wizards guiding the use of templates and actions • Familiar user experience for developing with reusable assets • Wizard for gathering information from developer • Expanding templates with gathered information • Executing “recipes” with gathered information, where recipe is a sequence of parameterized actions that transform solution artifacts to automate a developer use-case

  12. Introducing GATSoftware Asset Lifecycle Accelerate solution development with reusableassets by putting them in VS tools Reuse feedback apply Creation Search & Retrieval Inform harvest fit SDLC inform Simplify locating, reviewing and obtaining reusable assets Simplify ways of creating, packaging and storing reusable, software assets Packaging & Cataloging

  13. Introducing GATScope Reuse feedback apply Creation Search & Retrieval Inform harvest fit SDLC inform Packaging & Cataloging

  14. Introducing GATGAT and GAX in the guidance lifecycle Guidance Author (Architect) Guidance Consumer (Developer) End User builds Guidance Package generates Guidance Automation Toolkit Source Code compiles to Guidance Automation eXtensions Application Visual Studio 2005

  15. GAT Concepts • Recipe • Visual Studio Template • Text Template • Guidance Package

  16. GAT Concepts Recipe • A Recipe supports a developer use-case, through a structured, parameterized set of actions that transform solution artifacts • A Recipe consists of: • Launch Point(s) • IDE UI element(s) allowing the user to run the recipe • Argument List • List of arguments passed to templates and actions • Argument Value Gathering Strategy • Argument value providers • UI (wizards) to gather arguments from the user • Actions • List of artifact transformations that create, modify or delete VS artifacts

  17. GAT Concepts Visual Studio Template • Predefined artifacts that can be added to your solutions • Three types: • Item Template • Project Template • Solution Template • When a template “unfolds”, it can trigger the executing of recipes • Can launch wizards and modify created artifacts

  18. GAT Concepts Text Template • A text file with script markup that modifies template output • Useful for generating code or configuration on-the-fly • Can receive parameters from recipes • Think ASP for any type of file <#@ Template Language="C#" #/> <#@ Using Namespace="System.ComponentModel.Design" #/> <# IDictionaryService svc = (IDictionaryService) GetService(typeof(IDictionaryService)); #/> using System; namespace<#= svc.GetValue("TargetNamespace") #/> { class<#= svc.GetValue("ClassName") #/> { static void Main(string[] args) { Console.WriteLine("<#= svc.GetValue("Hello") #/>"); Console.ReadLine(); } } }

  19. GAT Concepts Guidance Package • A collection of related templates and recipes • A unit of packaging and distributing code-based guidance • Can be individually • Installed • Enabled and disabled • Uninstalled

  20. GAT Concepts Hypothetical Guidance Packages • Automating common use cases with p&p software assets • Creating and configuring solutions built using reference architectures (EDRA or Smart Clients) • Generating code that uses an Application Block (data layers using the DAAB, connecting smart client to services using OAB) • Creating and configuring extensions to blocks and frameworks • Enforcing best practices for ‘raw’ .NET platform • Creating solutions/projects that adhere to the .NET Application Architecture • Implementing design patterns • Analyzing and fixing code for security, performance, coding standards • Guidance packages for building guidance packages

  21. GAT Concepts Bringing it all together…

  22. Demonstration #1 Guidance Automation eXtensions and Guidance Packages – Developer Experience

  23. Demonstration #2 Guidance Automation Toolkit: Authoring Experience

  24. More Important StuffAlignment with other VS2005 features • GAT is compatible with new VS2005 features • Domain Specific Languages • DSLs are concerned with rich editing of project artifacts • Recipes are concerned with automating specific actions over artifacts • Both are likely to be useful in complex domains • Visual Studio Team System • VSTS provides powerful tools for team development and process management • GAT works with VSTS, but does not prescribe any team process or tools

  25. More Important StuffSupport • GAT is an “emerging technology” provided “as-is” • No formal support policy • Only applicable to development machines, so not relevant for production server environments • The best source of support is the community • Microsoft provides community infrastructure • Microsoft participates in the community

  26. More Important StuffFutures • Initial release of GAT is tested against Visual Studio 2005 Beta 2 • A minor refresh is expected for the final release of Visual Studio 2005 • Future plans to integrate GAT more closely with related authoring tools (eg. DSL, VSIP)

  27. Session Summary • In this session we have talked about: • The challenges that architects and developers face with increasingly complex guidance assets • How the patterns & practices team is addressing this problem with Guidance Automation Toolkit • The key concepts underlying the Guidance Automation Toolkit • Support and future plans for GAT

  28. Call to Action • We want your help to improve GAT and the patterns & practices assets that will use it • You can help by: • Downloading GAT as soon as it is available and trying it out • Participating in the community • Asking and answering questions • Submitting bugs and providing feedback • Sharing any interesting guidance packages you have built • Check back at http://microsoft.com/practices

  29. Questions and Answers • Submit questions using the text box

More Related