Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Packaging Design and Architecture Guidance for Visual Studio Tom Hollander Wojtek Kozaczynski Harry Pierson Microsoft."— 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 patterns & practices Architecture Guidance for the Enterprise Reference Architectures Application Blocks Guides Guidance for broad horizontal topics such as security, performance, deployment and operations Patterns DADI A D I DADI A D I Atomic solutions to recurring problems Sub-system-level guidance for common services System-level guidance for common customer scenarios DADI A D I Available online : http://www.microsoft.com/practices Books available: http://www.amazon.com/practices http://www.amazon.com/practices Proven Based on field experience Authoritative Offer the best advice available Accurate Technically validated and tested Actionable Provide the steps to success Relevant Address real-world problems based on customer scenarios

4 Background Evolution of Guidance patterns & practices produces guidance in various forms GuidesPatterns 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 Background Example: Data Access Application Block private DataSet GetProducts(int categoryId) { Database db = DatabaseFactory.CreateDatabase("Sales"); Database db = DatabaseFactory.CreateDatabase("Sales"); return db.ExecuteDataset("getProductsByCategory", categoryId); return db.ExecuteDataset("getProductsByCategory", categoryId);}

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

7 Background Example: 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 Background The 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 Background We 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 http://microsoft.com/practices

11 Introducing GAT Goals 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 GAT Software Asset Lifecycle Reuse Packaging & Cataloging Search & Retrieval Creation apply feedback Inform harvest inform fit SDLC Simplify ways of creating, packaging and storing reusable, software assets Accelerate solution development with reusable assets by putting them in VS tools Simplify locating, reviewing and obtaining reusable assets

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

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

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 using System; namespace namespace { class class { static void Main(string[] args) static void Main(string[] args) { Console.WriteLine(" "); Console.WriteLine(" "); Console.ReadLine(); 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 Stuff Alignment 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 Stuff Support 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 Stuff Futures 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 http://microsoft.com/practices

29 Questions and Answers Submit questions using the text box

30


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

Similar presentations


Ads by Google