J.D. Meier's Blog

Software Engineering, Project Management, and Effectiveness

  • J.D. Meier's Blog

    patterns & practices Performance Engineering Cheat Sheet

    • 2 Comments

    We posted our patterns & practices Performance Engineering Cheat Sheet to our Application Architecture Knowledge Base on CodePlex.   It’s a bird’s-eye view of applying our performance techniques to the life cycle.  The techniques and approach shipped with VSTS/MSF Agile starting in 2005.

    Performance Engineering Overlay
    Here’s a view that overlays our key performance techniques alongside common software engineering activities:

    PerfEngineering  

    Key Activities in the Life Cycle
    The core activities you should consider performing include the following:

    • Performance Objectives.
    • Budgeting.
    • Performance Modeling.
    • Performance Design Guidelines.
    • Performance Design Inspections.
    • Performance Code Inspections.
    • Performance Testing.
    • Performance Health Metrics.
    • Performance Deployment Inspections.
    • Capacity Planning.

    You can read more about these techniques and how to apply them to your software architecture and your software development life cycle on our Cheat Sheet – patterns & practices Performance Engineering.

    Additional Resources
    You can find more information on performance engineering at:

    My Related Posts

  • J.D. Meier's Blog

    Microsoft Presentation, Data Access, Workflow and Integration Technology Cheat Sheets

    • 3 Comments

    In my previous post, Choosing the Right Presentation Technology, I mentioned that we posted our cheat sheet on Microsoft presentation technologies to CodePlex.  Now, we’ve finished posting our cheat sheets for data access, workflow, and integration on CodePlex:

    Technology Coverage
    Here’s a summary table of the technology coverage in the cheat sheets:

    Category Technologies
    Presentation Compact Framework; ASP.NET Mobile; Silverlight Mobile; Windows Forms; windows Forms with WPF User Controls; WPF WPF with Windows Forms User Controls; XBAP with WPF; Silverlight; Silverlight with AJAX; ASP.NET Web Forms; ASP.NET Web Forms with AJAX; ASP.NET Web Forms with Silverlight Controls; ASP.NET MVC; ASP.NET Dynamic Data
    Data Access ADO.NET Core; ADO.NET Data Services Framework; ADO.NET Entity Framework (EF); ADO.NET Sync Service;s LINQ; LINQ to SQL
    Workflow Windows Workflow Foundation (WF); Workflow Services; Microsoft Office SharePoint Services (MOSS); BizTalk
    Integration BizTalk; Host Integration Server (HIS); Microsoft Message Queuing (MSMQ); Microsoft Enterprise Service Bus (ESB) Guidance


    Agile Architecture Methodology
    You can use the Agile Architecture Methodology to help map and test relevant technologies to your scenario.  At the end of the day, the best techniques for choosing technologies include architectural spikes, scenario-based testing and scenario-based evaluation.

    My Related Posts

  • J.D. Meier's Blog

    New Release: patterns & practices App Arch Guide 2.0 Beta 2

    • 15 Comments

    Today we released our patterns & practices Application Architecture Guide 2.0 Beta 2.  This is our Microsoft playbook for the application platform.  It's our guide to help solution architects and developers make the most of the Microsoft platform.  It's a distillation of many lessons learned.  It’s principle-based and pattern-oriented to provide a durable, evolvable backdrop for application architecture.  It's a collaborative effort among product team members, field, industry experts, MVPs, and customers.  This is the guide that helps you understand our platform, choose among the technologies, and build applications based on lessons learned and proven practices.

    Key Changes in Beta 2
    Beta 2 is a significant overhaul of the entire guide.  We carried the good forward.  We made some key additions:

    • Added a foreword by S. Somasegar.
    • Added technology considerations throughout the guide.
    • Added technology matrixes for choosing technologies, including Presentation, Data Access, Workflow, and Integration technologies.
    • Added a new Agile Architecture Method (see chapter 4.)
    • Tuned and pruned the recommendations across the entire guide.
    • Restructured the guide for simpler parts – fundamentals, design, layers and archetypes.

    4 Parts

    • Part I, “Fundamentals”
    • Part II, “Design”
    • Part III, “Layers”
    • Part IV, “Archetypes"

    Chapters

    Appendix

    Key Scenarios
    The guide helps you address the following scenarios:

    • Choose the right architecture for your application.
    • Choose the right technologies
    • Make more effective choices for key engineering decisions.
    • Map appropriate strategies and patterns.
    • Map relevant patterns & practices solution assets.

    Key Features

    • Canonical app frame - describes at a meta-level, the tiers and layers that an architect should consider. Each tier/layer is described in terms of its focus, function, capabilities, common design patterns and technologies.
    • App Types.  Canonical application archetypes to illustrate common application types.  Each archetype is described in terms of the target scenarios, technologies, patterns and infrastructure it contains. Each archetype will be mapped to the canonical app frame. They are illustrative of common app types and not comprehensive or definitive.
    • Arch Frame - a common set of categories for hot spots for key engineering decisions.
    • Quality Attributes - a set of qualities/abilities that shape your application architecture: performance, security, scalability, manageability, deployment, communication, etc.
    • Principles, patterns and practices - Using the frames as backdrops, the guide overlays relevant principles, patterns, and practices.
    • Technologies and capabilities - a description/overview of the Microsoft custom app dev platform and the main technologies and capabilities within it.

    Conceptual Framework
    At a high level, the guide is based on the following conceptual framework for application architecture:

    ArchMetaFrame2

    Reference Application Architecture
    We used the following reference application architecture as a backdrop for explaining how to design effective layers and components:

    RefAppArch

    Key Links

    Core Dev Team

    • J.D. Meier , Alex Homer, David Hill, Jason Taylor, Prashant Bansode , Lonnie Wall, Rob Boucher, Akshay Bogawat

    Contributors / Reviewers

    • Test team: Rohit Sharma, Praveen Rangarajan
    • Edit team: Dennis Rea.
    • External Contributors/Reviewers. Adwait Ullal; Andy Eunson; Christian Weyer; David Guimbellot; David Weller; Derek Greer; Eduardo Jezierski; Evan Hoff; Gajapathi Kannan; Jeremy D. Miller; John Kordyback; Keith Pleas; Kent Corley; Mark Baker; Paul Ballard; Peter Oehlert; Norman Headlam; Ryan Plant; Sam Gentile; Sidney G Pinney; Ted Neward; Udi Dahan
    • Microsoft Contributors / Reviewers. Ade Miller; Anoop Gupta; Bob Brumfield; Brad Abrams; Brian Cawelti; Bhushan Nene; Burley Kawasaki; Carl Perry; Chris Keyser; Chris Tavares; Clint Edmonson; David Hill; Denny Dayton; Diego Dagum; Dmitri Martynov; Dmitri Ossipov; Don Smith; Dragos Manolescu; Elisa Flasko; Eric Fleck; Erwin van der Valk; Faisal Mohamood; Francis Cheung; Gary Lewis; Glenn Block; Gregory Leake; Ian Ellison-Taylor; Ilia Fortunov; J.R. Arredondo; John deVadoss; Joseph Hofstader; Koby Avital; Loke Uei Tan; Manish Prabhu; Meghan Perez; Mehran Nikoo; Michael Puleio; Mike Walker; Mubarak Elamin; Nick Malik; Nobuyuki Akama; Ofer Ashkenazi; Pablo Castro; Pat Helland; Phil Haack; Reed Robison; Rob Tiffany; Ryno Rijnsburger; Scott Hanselman; Serena Yeoh; Srinath Vasireddy; Tom Hollander; Wojtek Kozaczynski

    My Related Posts

  • patterns & practices App Arch Guide 2.0 Project
  • App Arch Guide 2.0 Beta 1 Release
  • App Arch Guide 2.0 Overview Slides
  • Abstract for Application Architecture Guide 2.0
  • App Arch Meta-Frame
  • App Types
  • Architecture Frame
  • App Arch Guidelines
  • Layers and Components
  • Key Software Trends
  • Cheat Sheet: patterns & practices Catalog at a Glance Posted to CodePlex
  • Cheat Sheet: patterns & practices Pattern Catalog Posted to CodePlex
  • J.D. Meier's Blog

    Application Architecture Checklists Posted to CodePlex

    • 1 Comments

    As part of our patterns & practices Application Architecture 2.0 project, we created a set of application architecture checklists to help sweep our guide.  The act of creating the checklists, forces us to revisit the guidance.  We're still sweeping the guidance, but we're ready to share the checklists.  Improving the checklists improves the guide.  As a side benefit, you get handy checklists you can use as a baseline for your own checklists for application architecture.

    Application Architecture Checklists

    Layer Checklists

    Application Checklists

    Feedback on the Checklists
    To provide feedback on the checklists, you can make your comments either here on my blog or in the App Arch KB forums.

    My Related Posts

  • J.D. Meier's Blog

    Choosing the Right Presentation Technology

    • 8 Comments

    How do you choose among the Microsoft .NET presentation technologies?  Use scenario-based evaluation.  At the end of the day, a technology is a set of capabilities. Map those capabilities to your scenario and requirements.  OK, great, but where do you start?  That's where our cheat sheet comes in.  As part of our Application Architecture Guidance 2.0 project, we created a cheat sheet to help you quickly find your way through the technologies:

    Cheat Sheet – Presentation Technology Matrix
    We posted our latest cheat sheet to CodePlex:

    Presentation Technologies
    Here’s the technology combinations that we identified, evaluated and cataloged:

    • ASP.NET Dynamic Data
    • ASP.NET Mobile
    • ASP.NET MVC
    • ASP.NET Web Forms
    • ASP.NET Web Forms with AJAX
    • ASP.NET Web Forms with Silverlight Controls
    • Compact Framework
    • Silverlight
    • Silverlight with AJAX
    • Silverlight Mobile
    • Windows Forms
    • Windows Forms with WPF User Controls
    • WPF Application
    • WPF with Windows Forms Controls
    • XAML Browser Application (XBAP) using WPF

    That’s a lot of options, but that’s a good thing.  In a mature market, expect lots of options and specialization.  This helps you use the right tool for the job.  The challenge, of course, is knowing which one is the right tool, but that’s where our cheat sheet should help.  Ultimately, the cheat sheet is a support aid and doesn’t replace your own thinking or analysis.  Instead, it helps you consolidate some key information on the technologies, and help you consider some of the benefits and considerations.

    Organizing the Technologies
    To organize the technologies, we use a simple frame:

    • Technology Summary
    • Benefits and Considerations Matrix
    • Common Scenarios and Solutions

    By pinning the technologies against common application types (Mobile, Rich Client, RIA, and Web App), it made it very easy for us to slice and dice the technologies by relevancy, capabilities, and scenarios.

    How We Created the Cheat Sheet

    We started from a base set of application types and scenarios.  We vetted from experience among the p&p development team.  Next, we reviewed with various product team members, including Brad Abrams, Pat Helland, Glenn Block, and Ian Ellison-Taylor.  Next we vetted with some customers.  It’s a work in progress and we’ve been through several iterations.  In fact, the version we posted today is version 35.   Now it’s time to share with a broader community.

    My Related Posts

  • J.D. Meier's Blog

    Software Architecture Best Practices at a Glance

    • 3 Comments

    Today we posted our updated software architecture best practices at a glance to CodePlex, as part of our patterns & practices Application Architecture Guide 2.0 project:

    They’re essentially a brief collection of problems and solutions around building software applications.  The answers are short and sweet so that you can quickly browse them.  You can think of them as a bird’s-eye view of the problem space we tackled.  When we add them to the Application Architecture Guide 2.0, we'll provide quick links into the guide for elaboration.

    This is your chance to bang on the set of problems and solutions before Beta 2 of the guide.

  • Page 31 of 45 (1,117 items) «2930313233»