J.D. Meier's Blog

Software Engineering, Project Management, and Effectiveness

October, 2010

  • J.D. Meier's Blog

    Windows Azure Code Samples Collection

    • 0 Comments

    image

    The Microsoft Windows Azure Code Samples Collection is a roundup and map of Windows Azure code samples from  various sources including the MSDN library, Code Gallery, CodePlex, and Microsoft Support.

    You can add to the Windows Azure code examples collection by sharing in the comments or emailing me atFeedbackAndThoughts at live.com.

    Common Categories for Windows Azure Code Samples
    The Windows Azure Code Samples Collection is organized using the following categories:

    image

    Windows Azure Code Samples Map

    Category

    Items

    Sample Apps

    DPE

    Windows Azure Training Kit

    Architecture and Design

    Code Gallery

    DPE

    patterns & practices

    Claims / Identity

    patterns & practices

    Windows Azure Training Kit

    Configuration

    Data Access and Storage

    MSDN Magazine

    Windows Azure Training Kit

    Deployment

    patterns & practices

    General

    Windows Azure Training Kit

    Logging and Instrumentation

    Migration

    patterns & practices

    Service Bus

    All-in-One Code Framework

    MSDN Magazine

    Service Management API

    · Windows Azure Service Management CmdLets from http://code.msdn.microsoft.com/azurecmdlets

    SQL Azure

    Code Gallery

    Microsoft Support

    WCF

    Code Gallery

    All-in-One Code Framework

    Windows Azure Storage

    Code Gallery

    All-in-One Code Framework

    Windows Azure UE Team Code Samples
    The Windows Azure UE team now has an organized collection of code samples available at:


    My Related Posts

  • J.D. Meier's Blog

    WCF Code Samples Collection

    • 4 Comments

    image

    The Microsoft WCF Code Samples Collection is a roundup and map of WCF code samples from  various sources including the MSDN library, Code Gallery, CodePlex, and Microsoft Support.

    You can add to the WCF code examples collection by sharing in the comments or emailing me atFeedbackAndThoughts at live.com.

    Common Categories for WCF Code Samples
    The WCF Code Samples Collection is organized using the following categories:

    image

    WCF Code Samples Collection

    Categories

    Items

    Addresses

    AJAX / JSON

    Bindings

    Clients

    Cloud / Windows Azure

    Contracts

    Cryptography

    Discovery

    Exception Management

    Extensibility

    General

    Hosting

    Interoperability

    Performance and Scalability

    Queues and Reliable Sessions

    Security

    Session Management

    Transactions

    WCF Data Services

    WCF RIA Services

    WCF Syndication

    Web

    My Related Posts

  • J.D. Meier's Blog

    Silverlight Code Samples Collection

    • 0 Comments

    image

    The Microsoft Silverlight Code Samples Collection is a roundup and map of Silverlight code samples from  various sources including the MSDN library, www.Silverlight.net, Code Gallery, CodePlex, and Microsoft Support.

    You can add to the Silverlight code examples collection by sharing in the comments or emailing me atFeedbackAndThoughts at live.com.

    Common Categories for Silverlight Code Samples
    The Silverlight Code Samples Collection is organized using the following categories:

    image

    Silverlight Code Samples Collection

    Category

    Items

    Getting Started

    Channel 9

    Code Gallery

    Architecture and Design

    MSDN Magazine

    Animation

    Channel 9

    Microsoft Support

    MSDN Library

    Controls

    Microsoft Support

    Data Access

    Microsoft Support

    MSDN Magazine

    Data Binding

    Code Gallery

    Microsoft Support

    MSDN Library

    Deep Zoom

    Microsoft Support

    General

    Code Gallery

    MSDN Library

    MSDN Magazine

    Graphics and 3D

    Channel 9

    Code Gallery

    Microsoft Support

    MSDN Library

    HTML Bridge

    Microsoft Support

    Local Resources

    Microsoft Support

    MSDN Magazine

    Navigation

    Networking / Communication

    Microsoft Support

    Out-of-Browser

    Microsoft Support

    Performance

    MSDN Magazine

    Styles and Templates

    Microsoft Support

    Text and Rich Text

    Microsoft Support

    Unit Testing

    Code Gallery

    MSDN Magazine

    User Controls

    MSDN Magazine

    Video and Audio

    Microsoft Support

    MSDN Learn

    MSDN Magazine

    Visual States

    Microsoft Support

    WCF RIA Services

    Web Services

    DPE (MIX 08)

    MSDN Library

    MSDN Magazine

  • J.D. Meier's Blog

    ASP.NET Code Samples Collection

    • 14 Comments

    image

    The ASP.NET Code Samples Collection is a roundup and map of ASP.NET code samples from  various sources including the MSDN library, www.ASP.net, Code Gallery, CodePlex, and Microsoft Support.

    You can add to the ASP.NET code examples collection by sharing in the comments or emailing me atFeedbackAndThoughts at live.com.

    Common Categories for ASP.NET Code Samples
    The ASP.NET Code Samples Collection is organized using the following categories:

    image

     

    ASP.NET Code Samples Collection

    Category

    Items

    Sample Applications

    ASP.NET MVC

    AJAX / jQuery

    All-in-One Code Framework

    Code Gallery

    Microsoft Support

    Authentication

    Code Gallery

    Customer Support

    Authorization

    Code Gallery

    CSS 2

    Data Access

    All-in-One Code Framework

    Code Gallery

    Exception Management

    Code Gallery

    Microsoft Support

    JavaScript / JSON

    Code Gallery

    Logging and Instrumentation

    patterns & practices

    MVC

    Code Gallery

    Navigation

    Codeplex

    Request Processing

    ASP.NET Developer Center (www.ASP.NET)

    State / Session Management

    Code Gallery

    Validation

    Code Gallery

    Visual Studio and ASP.NET Development

    Code Gallery

    Microsoft Support

     

    My Related Posts

  • J.D. Meier's Blog

    ADO.NET Code Samples Collection

    • 0 Comments

    image

    The ADO.NET Code Samples Collection is a roundup and map of some of the various data access code samples from  various sources including the MSDN library, Code Gallery, CodePlex, and Microsoft Support.

    You can add to the code examples collection by sharing in the comments or emailing me at FeedbackAndThoughts at live.com.

    Common Categories for ADO.NET Code Samples
    The ADO.NET Code Samples Collection is organized using the following categories:

    image

    ADO.NET Code Samples Collection

    Category

    Items

    Data Binding

    MSDN Library

    Data Models

    Code Gallery

    Microsoft Support

    DataReader

    MSDN Library

    DataSet

    MSDN Library

    DataTable

    MSDN Library

    Entity Framework

    All-in-One Code Framework

    Code Gallery

    General

    All-in-One Code Framework

    MSDN Library

    LINQ to DataSet

    MSDN Library

    LINQ to Entities

    MSDN Library

    LINQ to Objects

    All-in-One Code Framework

    LINQ to SQL

    All-in-One Code Framework

    Code Gallery

    Code Gallery

    N-Tier

    Code Gallery

    O/RM Mapping

    Code Gallery

    OData

    Code Gallery

    POCO

    Silverlight

    Code Gallery

    SQL Server

    MSDN Library

    Streaming

    Code Gallery

    WCF Data Services

    All-in-One Code Framework

    Code Gallery

    My Related Posts

  • J.D. Meier's Blog

    Scenario Maps Roundup for ADO.NET, ASP.NET, Silverlight, WCF, Windows Azure, and Windows Phone

    • 0 Comments

    image

    Scenario Maps are a simple way we collect, organize, and share user scenarios for a given problem space or technology.  They serve as a fast and scannable index of the problems that users face.  They are one of the most effective ways to see the forest from the trees.  Rather than get lost in a single scenario, they are a step back and a look across all the key scenarios.  This helps for ranking and prioritizing the problems for a given space.  They are also a powerful way to perform competitive assessments, shape a product, and to drive prescriptive guidance (I’ve used Scenario Maps to create platform Blue Books for patterns & practices.)

    Here is a roundup of my most recent Scenario Maps related to building block technologies for building applications for Cloud, Web, and Phone, and for building Web services:

    Why Scenario Maps
    The better the map of the problem space we have, the better we can shape our platform and technologies, improve our tooling, and create more effective prescriptive guidance.  The key to an effective map of the problem space is creating a simple lens for the problem space, and getting customers to share their key scenarios.  When customers share their scenarios in a Scenarios Map, it helps make sure their problems are heard in a simple and effective way.  The better their problems are heard and understood, the easier they are to address.

    What is a Scenarios Map
    A Scenarios Map is simply a collection of user scenarios organized using categories.  The categories with the most pain or opportunity serve as “Hot Spots.”    You can think of this map as a “Heat Map” of user scenarios where “Hot Spots” bubble up.  This helps see show the forest from the trees and to prioritize investments.

    5 Keys to Effective Scenario Maps
    The most effective way I’ve found to collect customer scenarios is to create “Scenario Maps.”  The Scenario Map ends up being a highly scannable index of one-liner scenarios.  The scenarios serve as test cases that we can measure the platform, tooling, and prescriptive guidance against.  An effective Scenario Map has five key attributes:

    1. “How To” - Each scenarios is stated using a one-liner “how to” statement, such as “How to connect to SQL Server from an ASP.NET Application using ADO.NET.”   This is crucial.  This helps turn a scenario right down into an actionable goal that can be easily understood, analyzed, and tested against.
    2. Hot Spots – Hot Spots are simply categories that group the scenarios.  Think of the problem space as a heat map.  On this heat map are pain points and opportunities or key choice points.  By focusing on the extreme pain points or opportunity, you can simplify the map and get the highest ROI.  This also keeps the map dynamic, since patterns of problems can keep bubbling up and then create a new category or Hot Spot.   
    3. Prioritized – In the early stages, a Scenario Map is simply a laundry list or brain dump.  But the key is to refine this map over time.  As you refine this map, you get rid of duplication, improve the clarity of each scenario, and you prioritize the lists.  While I’ve prioritized using P1, P2, P3, I’ve actually found it more helpful to prioritize using “Core,” “Common,” and “Niche.”  Core represents the most fundamental scenarios.  Common represents the common cases, which you can find with SEO or by getting a group of domain experts in a room to share their stories or by combing the forums.  Niche represents the corner cases or advanced scenarios, such as extreme security, performance, reliability, or architecture and design patterns, or advanced deployment patterns, etc.
    4. Durable but evolvable – The Scenarios Map should be durable in that the categories (Hot Spots) reflect patterns of problems.  However, it’s an unfolding process so the map should easily evolve as you learn more about the space and continue to collect scenarios.  The durability helps create a shared map of the problem space, while the flexibility helps the map address the changing needs in the space or reflect your current understanding of the space as it continues to evolve.
    5. User scenarios – If the scenarios aren’t from users, there’s a problem.  The idea of the map is to capture and share real-world problems from users.
  • J.D. Meier's Blog

    Windows Phone Scenarios Map

    • 0 Comments

    image

    The Microsoft Windows Phone Scenarios Map is a consolidated and shared view of the common scenarios and tasks developing applications hosted on Windows Phones. You will find Getting Started and Architecture scenarios first, followed by other common areas. Scenarios in each group should represent common tasks developers for the Windows Phone would face.

    Your call to action here is simply scan the Windows Phone Scenarios Map below and either share your scenarios in the comments or email your scenarios to me at feedbackandthoughts at live.com.  Be sure to share your scenarios in the form of “how to blah, blah, blah …” – this makes it much easier to act on and update the map.

    For a quick review of what a good Scenarios Map looks like, see my related post, 5 Keys to Effective Scenario Maps.

    Common Categories
    • Application Bar
    • Bing
    • Camera
    • Choosers
    • Cloud
    • Controls
    • Data Access
    • Deployment
    • Device Management
    • Emulator
    • Gamer Services
    • Globalization/Localization
    • IE (Internet Explorer) Mobile
    • Launchers
    • Location
    • Media and Media Player
    • Model, View, ViewModel pattern (MVVM)
    • Multi-touch
    • Navigation / Pages / Frames
    • Pause/Resume
    • Push Notifications
    • Reactive Extensions
    • Security
    • Sensors
    • Silverlight
    • Testing
    • Tiles/Icons
    • Tombstoning
    • User Experience
    • XNA

    Windows Phone Scenarios Map

    Category

    Items

    Getting Started

    • How to write phone apps as a .NET developer (not with a Silverlight background)
    • How to set up your development environment for Windows Phone development.
    • How to write your first Silverlight application for Windows Phone.
    • How to write your first XNA application for Windows Phone.

    Architecture and Design

    • How to design for user experiences
    • How to design for off-line
    • How to design for security
    • How to design for performance
    • How to build an N-Tier client on Windows Phone.
    • How to choose between Silverlight and XNA.
    • How to design for data latency in a Windows Phone application.
    • How to optimize an application for phone processor/CPU capabilities.

    Application Bar

    • How to use the ApplicationBar effectively
    • How to add an Application Bar to your application.
    • How to databind Application Bar icons.
    • How to build icons for the Application Bar.
    • How force orientation of the Application Bar.
    • How to programmatically show/hide the Application Bar.

    Bing

    • How to use the Bing maps control effectively

    Camera

    • How to access the camera.
    • How to capture video using the camera.
    • How to control the definition of video captured on the phone.
    • How to resize captured images.
    • How to access the proximity sensor.
    • How to GPS (Global Positioning System) tag a photo.
    • How to save pictures to the cloud.
    • How do you control access to photos stored to the cloud.

    Choosers

    • How to choose a phone number from the phone’s contacts application
    • How to choose a photo from the phone’s camera roll
    • How to ensure your application receives the result of a chooser task
    • How to choose an email address from the phone’s contacts application

    Cloud

    • How to store data in the cloud
    • How to host Web services in a cost effective way
    • How to handle asynchronous network calls and exceptions

    Controls

    • How to use a grid.
    • How and when to use the Pivot controls
    • How and when to use the Panorama control
    • How to programmatically access a control template.

    Data Access

    • How to store local data.
    • How to call remote data.
    • How to call remote SQL Server data.
    • How to call OData
    • How to call isolated settings storage
    • How to call isolated file storage
    • How to manage isolated storage space
    • How to manage isolated storage quotas

    Deployment

    • How to package an application for deployment.
    • How to get an application on the app store.
    • How to create a trial application

    Device Management

    • How to enable/disable software on a Windows device.
    • How to encrypt files on a Windows Phone.
    • How to detect and handle changes in network connectivity.
    • How to enlist a phone in a VPN.
    • How to authenticate a Windows Phone against Active Directory.
    • How to wipe a Windows device.
    • How to disable features of a Windows Phone.

    Emulator

    • How to run the emulator to simulate different hardware scenarios (i.e. low battery, loss of network connectivity, etc.)
    • How to simulate multi-touch in the emulator
    • How to simulate accelerometer input in the emulator
    • How to simulate the geolocation service in the emulator

    Gamer Services

    • How to use a gamer profile from Xbox LIVE.
    • How to prevent auto-login with a local profile.
    • How to retrieve gamer profile properties.
    • How to create custom properties in the gamer profile.
    • How to invoke the Gamer Guide.

    Globalization / Localization

    • How to build globalized applications for Windows Phone
    • How to build localized applications for Windows Phone

    IE (Internet Explorer) Mobile

    • How to leverage expanded JavaScript functions
    • How to adjust the text size of your web page
    • How to design web pages for the phone’s viewport
    • How to handle fixed position elements

    Launchers

    • How to launch the phone’s media player application
    • How to launch the phone’s browser application
    • How to save a phone number in the phone’s contacts application
    • How to save an email address in the phone’s contacts application
    • How to launch the phone’s email application
    • How to launch the phone’s dialer application
    • How to launch the phone’s SMS application
    • How to launch the phone’s search application
    • How to launch the phone’s camera application
    • How to launch the marketplace application
    • How to search the marketplace application

    Location

    • How to determine the location of a phone.
    • How to plot the location on a map.
    • How to get location data from the Location Service.
    • How to design for location data latency.
    • How to use an alternate data location back-end data source.
    • How to use reactive extensions to emulate and filter location data.
    • How to determine which source location data was obtained from.

    Media and Media Player

    • How to stream a video file
    • How to play an AVI file on a phone.
    • How to play foreign video formats such as .MOV.
    • How to use the FM radio
    • How to integrate with the music and video hubs

    Model, View, ViewModel pattern (MVVM)

    • How to implement a ViewModel.
    • How to implement the MVVM pattern.
    • How to minimize the view’s code behind and why.
    • How to use a view model (MVVM) for data binding.
    • How to build a ViewModel for a file data source.
    • How to build a ViewModel for an XML data source.

    Multi-Touch

    • How to recognize a pinch or expand gesture.
    • How to disable multi-touch in an application.
    • How to define custom gestures.

    Navigation / Pages / Frames

    • How to transition between pages
    • How to pass parameters between pages
    • How to implement an application bar
    • How to implement a page specific application bar
    • How to handle orientation changes
    • How to override the default behavior of the hardware back button

    Pause / Resume

    • How to handle a pause event in an application.
    • How to store transient application state.
    • How to restore transient application state.
    • How to store transient page state.
    • How to restore transient page state.

    Push Notification

    • How to use the Microsoft Push Notifications service.
    • How to set up a notification channel.
    • How to use tile notifications.
    • How to use toast notifications.
    • How to use raw notifications.

    Reactive Extensions

    • How to emulate data streams.
    • How to filter data from data streams.
    • How to compose multiple asynch web service requests.

    Security

    • How to encrypt data in an application.
    • How to use SDL tools to write a secure Windows Phone application.
    • How to protect sensitive data used by a Windows Phone application.

    Sensors

    • How to access accelerometer data.
    • How to use reactive extensions to emulate and filter accelerometer data.
    • How to recognize a device “shake” movement/gesture.
    • How to determine device direction based on accelerometer and location.

    Silverlight

    • How to share code between Silverlight applications and Windows Phone applications.
    • How to port Silverlight applications to Windows Phone.
    • How to address the differences between Silverlight for the desktop and Silverlight for the phone.
    • How to determine if your Silverlight application is being run on a phone or another host.
    • How to call XNA libraries from a Silverlight application.
    • How to use the Silverlight BitmapEffects from Windows phone

    Testing

    • How to unit test windows phone applications and assemblies.
    • How to test Multi-Touch
    • How to test GPS
    • How to test the Accelerometer

    Titles / Icons

    • How to create a tile for your application.
    • How to create an icon for your application.

    Tombstoning

    • How to debug while tombstoning.
    • How to handle state during tombstoning.

    User Experience

    • How to design effective layouts (themes, images, workflows)
    • How to apply themes to Windows Phone applications.
    • How to effectively show large amounts of data (filtering/sorting data)

    XNA

    • How to call Silverlight libraries from an XNA application.
    • How to determine the version of the runtime environment.

    Contributors and Reviewers
    • · Microsoft Contributors / Reviewers - Allison Kent, Constanze Roman, Dan Reagan, Dragos Manolescu, Georgia Pettigrove, Mark Chamberlain, Pete Brown, Srinivas Iragavarapu
    • · External Contributors / Reviewers – Adam Grocholski, Andy Eunson, Kevin Lam, Paul Enfield, Will Clevenger
  • J.D. Meier's Blog

    Windows Azure Scenarios Map

    • 9 Comments

    image

    The Windows Azure scenarios map is a consolidated and shared view of the common scenarios and tasks developing applications for the Windows Azure platform. You will find Getting Started and Architecture scenarios first, followed by other common areas. Scenarios in each group should represent common tasks developers for this platform would face.

    Your call to action here is simply scan the Windows Azure Scenarios Map below and either share your scenarios in the comments or email your scenarios to me at feedbackandthoughts at live.com.  Be sure to share your scenarios in the form of “how to blah, blah, blah …” – this makes it much easier to act on and update the map.

    For a quick review of what a good Scenarios Map looks like, see my related post, 5 Keys to Effective Scenario Maps.

    Categories

    • Getting Started
    • Architecture and Design
    • Administration
    • ALM
    • ASP.NET Applications
    • Authentication / Authorization
    • Caching
    • Configuration
    • Data Access / Storage
    • DataMarket (“Dallas”)
    • Deployment
    • General
    • Logging / Health Monitoring
    • Performance
    • Security
    • Service Bus
    • SQL Azure
    • Transactions
    • WCF
    • WIF (Windows Identity Foundation)
    • Windows Azure VM (Virtual Machine) Role
    • Worker Role
    • Workflow

    Windows Azure Scenarios Map

    Category

    Items

    Getting Started

    • How to set up your development environment for Windows Azure development.
    • How to build a web site in a web role.
    • How to deploy an application to Windows Azure.
    • How to debug deployed applications.
    • How to build a worker process in a worker role.

    Architecture and Design

    • How to implemented layered architecture in the cloud.
    • How to run an on-premise app in the cloud.
    • How to design an application to scale across multiple data centers.
    • How to design a loosely coupled system.
    • How to design around latency issues.
    • How to dynamically increase or decrease the number of role instances based on load.
    • How to use Azure diagnostics to troubleshoot production issues.
    • How to provide incremental progress feedback from a worker role (for ex: progress bar).
    • How to design for integration (custom cloud applications / finished services (BPOS) / on premise / ESB)
    • How to call on-premise data stores from Windows Azure.
    • How to decide if your application is right for Windows Azure (on-premise vs. cloud, advantages/disadvantages).
    • How to scale horizontally.
    • How to scale vertically.
    • How to manage state in the cloud.
    • How to manage logs.
    • How to cache data.
    • How to design for asynchronous work.
    • How to design a tightly bound system.
    • How to segregate application logic between Azure roles.
    • How to create a small-to-medium Web app.
    • How to create a large Web application.
    • How to manage separation of responsibilities in functional roles.
    • How to build a system using both hosted data and on-premises data.
    • How to coordinate multiple worker roles.
    • How to create a parallel processing application.
    • How to use a distributed cache.
    • How to implement multi-tenancy in Azure.
    Administration
    • How to manage your subscription(s) when you've got a team of developers.
    ALM
    • How to manage both environment and application upgrades.

    ASP.NET Applications

    • How to connect to SQL Azure.
    • How to connect to Windows Azure Storage.
    • How to authenticate users using Live ID.
    • How to implement a RESTful interface in an ASP.NET application.
    • How to access certificates.
    • How to manage state in an application.
    • How to connect to a WCF service with an internal endpoint.
    • How to encrypt a value using RSA encryption.
    • How to monitor health of other VM instances.
    • How to access performance counters from code.
    Authentication / Authorization
    • How to perform single sign on (Federation).
    • How to turn your application into a claims aware application.
    • How to authenticate callers.
    • How to identify callers.
    • How to manage personally identifying information / sensitive data in the cloud.
    • How to build an STS.
    • How to integrate with Active Directory.
    • How to integrate with my Membership Provider.
    • How to leverage roles (Membership).
    • How to leverage claims.
    • How to turn claims into roles. How to authorize access to a REST interface.
    • How to implement complex logic in claims mapping.
    • How to configure my application for multiple authentication methods?
    • How to perform sign-out from my claims aware application?
    • How to Enable Tracing
    • How to use Windows Azure platform AppFabric Access Control to obtain a Simple Web Token (SWT) after providing a SAML token.
    • How to integrate Windows Azure platform AppFabric Access Control with ADFS.
    • How To: Configure Facebook as an Identity Provider for Azure AppFabric Access Control Service (ACS)
    • How To: Configure Google as an Identity Provider for Azure AppFabric Access Control Service (ACS)
    • How To: Configure Yahoo! as an Identity Provider for Azure AppFabric Access Control Service (ACS)

    Caching

    • How to leverage a distributed cache (e.g. Velocity)
    • How to swap out cache providers.
    • How to cache data effectively.
    • How to expire the cache.
    • How to use Azure's VM local storage.
    • How to implement the Azure AppFabric Cache session provider.

    Configuration

    • How to configure a web role.
    • How to configure a worker role.
    • How to cache configuration data.
    • How to decide what settings should go in ServiceConfiguration vs. Web/App Configs.
    • How to programmatically change configuration settings.
    • How to set up DNS for Azure applications.

    Data Access / Storage

    • How to access Azure Storage tables.
    • How to access Azure Storage queues.
    • How to connect to SQL Azure.
    • How to decide whether to use Azure Table Storage vs. SQL Azure
    • How to access Windows Azure Storage from Silverlight
    • How to upload files to BLOB storage.
    • How to handle connection timeouts with Azure Storage.
    • How to design an extensible schema that will never need to be updated.
    • How to choose a partition key for different entities.
    • How not to get too much data into one partition.
    • How to load initial/domain data (ETL)
    • How to do BI in the cloud.
    • How to store BLOB data for an on premise application.
    • How to organize your containers and blobs efficiently.
    • How to track/retrieve additional information/properties about blobs
    • How to authorize access to containers/blobs
    • How to name storage containers in WAS (what are the restrictions for naming?)
    • How to design a scalable partitioning strategy for WAS.
    • How to authorize access to BLOBs using Shared Access Signatures
    • How to persist a VM drive to Azure Drives.
    • How to organize your containers and blobs efficiently.
    • How to track/retrieve additional BLOB properties.
    • How to use queues for IPC.
    • How to deploy data to an Azure Drive.
    • How to create a WCF Data Services interface for Windows Azure Storage.
    • How to expose SQL Azure through a WCF Data Services interface.
    • How to support transactional data in Azure Storage.
    • How to repartition your live data.
    • How to repartition data.
    • How to programmatically reset and obtain storage access keys.
    • How and when to leverage Azure Local Storage.
    • How to change Azure Storage partitioning of existing services (should scaling needs require a change).
    • How to create idempotent transactions.

    DataMarket (“Dallas”)

    • How to use DataMarket from my application
    • How to address security, billing, auditing, and authenticating

    Deployment

    • How to install an SSL certificate for an Azure ASP.NET app.
    • How to determine number of instances of roles to deploy.
    • How to roll out a deployment.
    • How to roll back a deployment.
    • How to create and install a deployment certificate.
    • How to deploy applications programmatically through the portal API’s.

    General

    • How to push peak loads to the cloud to reduce the size of an on premise data center.
    • How to decide if you application is right for Windows Azure (on-premise vs. cloud, advantages/disadvantages)
    • How to run your own VM in the cloud.
    • How to develop with a team of developers.

    Logging / Health / Monitoring

    • How to determine your log destination (EventLog, TableStorage, Flatfile, etc)
    • How to view logs
    • How to monitor the health of a deployed application
    • How to log information from IIS (until IIS Logs are available).
    • How to monitor web roles.
    • How to monitor worker roles.
    • How to alert/alarm if needs are beyond Windows Live Alerts (currently what Azure provides)
    • How to throttle your logging.

    Performance

    • How to design around Azure throttling.
    • How to simulate load.
    • How to access/view performance counters.
    • How to do capacity planning.
    • How to compare BLOB storage against VM drives.
    • How to measure performance against CRUD.

    Security

    • How to encrypt values stored in configuration files.
    • How to sanitize logging events for sensitive data.
    • How to prevent CSRF attacks.
    • How to protect configuration settings.
    • How to encrypt persisted data.
    • How to secure any sensitive data that is sent between cloud applications.
    • How to store sensitive data in the cloud.
    • How to secure sensitive data sent to a cloud app.

    Service Bus

    • How to use the service bus to expose on-premise services to Windows Azure hosted applications.
    • How to use the service bus from a Silverlight client.
    • How to expose “discoverable” services via the service bus.
    • How to authenticate service bus access with AppFabric Access Control.

    SQL Azure

    • How to decide between Windows Azure Storage and SQL Azure.
    • How to implement separation of privileges in SQL Azure.
    • How to avoid SQL Azure throttling.
    • How to deploy SQL Azure TSQL or DB schemas as part of application deployment process.
    • How to backup SQL Azure databases.
    • How to restore SQL Azure databases.
    • How to use SQL roles and accounts in conjunction with claims based authentication mechanisms.

    Transactions

    • How to implement 2-phase commit.
    • How to roll back.
    • How to update multiple pieces of data at the same time.
    • How to lock effectively.

    WCF

    • How to set up transport security for WCF on Windows Azure.
    • How to use client certs with a WCF service on Windows Azure.
    • How to use on-premise user stores for authentication and authorization.
    • How to use internal endpoints with a WCF service.
    • How to expose an on-premise WCF service to a Windows Azure hosted client.
    • How to build a WCF service in a worker role.

    WIF (Windows Identity Foundation)

    • How to set up ADFS as an STS for Active Directory.
    • How to create a custom STS.
    • How to create a federation provider STS.
    • How to use a custom claims repository.
    • How to: Using the FederatedPassiveSignIn ASP.NET User Control
    • How to use WSTrustChannelFactory and WSTrustChannel
    • How to identify from Windows Phone to ASP.NET web site?
    • How to identify from Windows Phone to WCF service?
    • How to identify from iPad/iPhone to WCF service?
    • How to identify from droid to WCF service?
    • How to identitfy from Silverlight to WCF service?
    • How to Enable Tracing
    • How to log WCF and WIF traces to different tracing sources
    • How to use svctraceviewer.exe for troubleshoting
    • How to use svctraceviewer.exe to inspect WIF traces
    • How to: Establishing Trust from an ASP.NET Relying Party Application to an STS using FedUtil
    • How to package and deploy claims aware application on-prem?
    • How to package and deploy claims aware application to Azure?
    • How to request an ActAs token.

    Windows Azure VM (Virtual Machine) Role

    • How to choose between VM Role and designing for a Web or Worker Role
    • How to design for the VM Role

    Worker Role

    • How to communicate between different types of worker roles.
    • How to schedule work.
    • How to group different types of work.
    • How to determine the number of worker roles.
    • How to determine if multiple threads should be used

    Workflow

    • How to design for asynchronous work.
    • How to design for integration (custom cloud applications / finished services (BPOS) / on premise / ESB)

    Contributors and Reviewers

    • External Contributors / Reviewers – Adam Grocholski; Andy Eunson, Bill Collette; Brent Stineman; Kevin Lam, Rainer Stropek, Terrance Snyder, Will Clevenger
    • Microsoft Contributors / Reviewers – Alik Levin, Carlos Farre, Julian Gonzalez, Mohit Srivastava, Rob Boucher

    My Related Posts

  • J.D. Meier's Blog

    WCF Scenarios Map

    • 0 Comments

    image The Microsoft WCF (Windows Communication Foundation) scenarios map is a consolidated and shared view of the common scenarios and tasks around developing WCF services. You will find Getting Started and Architecture scenarios first, followed by other common areas. Scenarios in each group should represent common tasks developers would face.

    Your call to action here is simply scan the WCf Scenarios Map below and either share your scenarios in the comments or email your scenarios to me at FeedbackAndThoughts at live.com.  Be sure to share your scenarios in the form of “how to blah, blah, blah …” – this makes it much easier to act on and update the map.

    For a quick review of what a good Scenarios Map looks like, see my related post, 5 Keys to Effective Scenario Maps.

    Categories

    • Getting Started
    • Architecture and Design
    •  Auditing and logging
    • Authentication
    • Authorization
    • Cryptography
    • Data Binding
    • Deployment Considerations
    • Exception Management
    • General
    • Globalization/Localization
    • Impersonation and Delegation
    • Message Security
    • Performance and Scalability
    • Proxy
    • Sensitive Data
    • Service Interface
    • Session Management
    • Silverlight
    • Transactions
    • Transport Security
    • Unit Testing
    • Validation
    • WCF Data Services
    • WCF RIA Services

    WCF Scenarios Map 

    Categories

    Items

    Getting Started

    • How to build a WCF service with a RESTful interface.
    • How to build a WCF service with a SOAP interface.
    • How to build a public facing WCF service.
    • How to build a WCF service with authenticated access control.

    Architecture and Design

    • How to build a WCF service that supports federated security architectures through the wsFederationHttpBinding.
    • How to build a WCF service that implements the List-Based Publish-Subscribe design pattern.
    • How to implement a custom peer resolver with a WCF service.
    • How to use the Peer Channel to implement multiparty chat.

    Auditing and Logging

    • How to configure service to enable logging with filters
    • How to configure service to enable transport level logging
    • How to configure service to enable message level logging
    • How to configure service to enable authentication auditing
    • How to configure service to enable authorization auditing
    • How to configure service to enable tracing with different levels of information
    • How to configure service to enable WMI provider
    • View log and trace files for auditing purposes
    • Enable performance counters to monitor denial of service conditions

    Authentication

    • How to configure service with issue token authentication
    • How to configure service with certificate authentication
    • How to configure service with NTLM authentication
    • How to configure service with basic authentication
    • How to configure service with digest authentication
    • How to configure service with windows authentication
    • How to configure service with username/password authentication
    • How to configure service with no credentials
    • How to pass service certificate via secure session negotiation
    • How to pass NTLM credentials via secure session negotiation
    • How to implement custom credential validation

    Authorization

    • How to configure service to use a custom authorization provider
    • How to configure service to use a Windows provider to authorize users
    • How to configure service to use an ASP.NET role provider
    • How to configure service to use custom security policies
    • How to mark an operation contract with security demands attribute
    • How to perform authorization based on a programmatically verified claim

    Cryptography

    • Implement custom binding with cryptographic algorithms for encrypting/signing messages
    • Implement custom binding to sign message without encryption
    • Implement custom binding to encrypt message without signing.

    Data Binding

    • How to bind to data returned by a WCF service in a Web Forms application.
    • How to bind to data returned by a WCF service in a Windows Forms client application.
    • How to bind to data returned by a WCF service in a WPF client application.

    Deployment Considerations

    • How to host service in IIS for HTTP(s) communication
    • How to configure certificate on a client local store for message encryption and authentication
    • How to host service in Windows Activation server (WAS) for TCP communication
    • How to host service in Windows Activation server (WAS) for HTTP(s) communication
    • How to self-host service in windows service for HTTP(s) communication
    • How to self-host service in windows service for TCP communication
    • How to host service with least privilege account
    • How to host service in medium trust
    • How to configure certificate in IIS to enable SSL in a virtual directory hosting service
    • How to configure certificate to enable SSL in a self hosted service
    • How to configure partner public key certificates in local store for authorization
    • How to configure IIS for authentication
    • How to store encryption keys in a secure location
    • How to encrypt all or part of a web configuration file
    • How to map certificates with accounts in active directory
    • How to configure Active Directory groups and accounts for role-based authorization checks
    • How to configure Cardspace accounts
    • How to configure a Secure Token Service (STS)
    • How to configure MSMQ accounts and security

    Discovery and Client Access

    • How to build a WCF service that supports discovery through UDDI V2.
    • How to add a WCF service as a “web reference” to a Visual Studio project.
    • How to implement a WCF client that performs basic operations with a UDDI V2 service.

    Exception Management

    • How to implement a global exception handler
    • How to design service with exceptions handling that will not divulge information to the client
    • How to design fault contracts to allow services to declare known faults for each operation
    • How to enable debugging behavior to allow debug information to be propagated to the client
    • How to design operations to catch exceptions and communicate failures to client
    • How to clients handle exceptions in stateful services

    General

    • How to create a service with multiple endpoints.
    • How to create a service with one-way interfaces.

    Globalization / Localization

    • How to create a service that can be Globalized/Localized.

    Impersonation and Delegation

    • How to configure service to use certificate on the local store to allow client to authenticate
    • How to Flow identities in message from intermediary for authentication/delegation/auditing
    • How to configure service to run under security principal name to allow client to authenticate
    • How to configure service to allow impersonation of clients with windows credentials
    • How to set operation contract attribute to allow impersonation when enabled via service behavior
    • How to configure impersonation to retrieve identities from security context

    Message Security

    • How to build a service that sends credentials over https
    • How to build a service that sends sensitive data in message over https
    • How to configure message security to support partial signing of a message
    • How to configure message security to support partial encryption of a message
    • How to build a service that sends credentials over http
    • How to build a service that sends credentials over TCP
    • How to build a service that sends sensitive data in message over http
    • How to build a service that sends sensitive data in message over TCP
    • How to configure message security to support communication via intermediaries

    Performance and Scalability

    • How to implement a service that provides basic routing and load balancing functionality.
    • How to optimize performance in a transactional WCF service.

    Proxy

    • How to create a proxy using SvcUtil.exe.
    • How to generate a proxy from service metadata over HTTP(S)
    • How to create a service where client is configured to use certificate for authentication and message security.
    • How to generate proxy from service metadata over TCP
    • Service operations invocation administratively - Client authenticates with service providing credentials
    • Service operations invocation administratively - Client calls service anonymously
    • Service operations invocation programmatically - Client authenticates with service providing credentials
    • Service operations invocation programmatically - Client calls service anonymously
    • Client is invoked via client factory to improve performance
    • How to generate proxy from service metadata over MSMQ

    Sensitive Data

    • How to configure service for message encryption to protect message confidentiality and integrity with certificates
    • How to configure service to use transport security
    • How to design service to protect parts of the message with partial encryption
    • How to configure service to secure metadata in an endpoint to be consumed by service clients
    • How to configure service to change the default message encryption algorithm
    • How to configure service for message encryption to protect message confidentiality and integrity with Kerberos tickets

    Service Interface

    • How to build a WCF service with a RESTful interface.
    • How to build a WCF service that communicates POX (Plain-old XML) messages.

    Session Management

    • How to configure message throttling to avoid denial of service attacks
    • How to design services per session mode
    • How to configure memory limits to avoid denial of service attacks
    • How to configure service for reliable messaging with reliable session and ordering of messages
    • How to implement structured exception handling and state management to avoid state corruption

    Silverlight

    • How to access a WCF service from a hosted Silverlight application.
    • How to access a WCF Data Services interface from Silverlight.
    • How to access a WCF service from an out-of-browser Silverlight application.

    Transactions

    • How to support transactions in a WCF service.
    • How to support 2-phase commit transactions in a WCF service.
    • How to support nested transactions in a WCF service.

    Transport Security

    • How to use transport security to send credentials over https
    • How to use transport security to send sensitive data over https
    • How to configure transport security for end point communication with no intermediaries
    • How to configure transport security for improved performance over message security

    Unit Testing

    • How to unit test WCF services.

    Validation

    • How to Validate messages with custom schema inspectors
    • How to Validate messages with custom message inspectors

    WCF Data Services

    • How to interface with a WCF Data Service from jQuery, JavaScript and Ajax.
    • How to consume WCF Data Services from an ASP.NET application.
    • How to implement server driven paging in a WCF Data Service.
    • How to support data binding from a WCF Data Service.
    • How to consume JSON data from a WCF Data Service in an ASP.NET application.
    • How to consume JSON data from a WCF Data Service in a Silverlight application.
    • How to implement Business Logic in a WCF Data Service using Interceptors.
    • How to filter WCF Data Services data using service operations.
    • How to consume AtomPub data from a WCF Data Service in an ASP.NET Application.
    • How to consume AtomPub data from a WCF Data Service in a WPF Application.
    • How to consume AtomPub data from a WCF Data Service in a Windows Forms Application.
    • How to consume AtomPub data from a WCF Data Service in a Silverlight Application.

    WCF RIA Services

    • How to use a WCF RIA service to access data from Entity Framework.
    • How to use a WCF RIA service to access RESTful interfaces.
    • How to use a WCF RIA service to return Data Transfer Objects (DTO’s).
    • How to use a WCF RIA service to access data from another WCF service.
    • How to access LinqToSql data from a WCF RIA service.
    • How to access ADO.NET DataSet from a WCF RIA service.
    • How to use a WPF client application to access WCF RIA services through ADO.NET Data Services.
    • How to access a WCF RIA service from an ASP.NET MVC application.
    • How to access a WCF RIA service from a Silverlight application.

    Contributors and Reviewers
    • External Contributors / Reviewers – Adam Grocholski, Andy Eunson, Dean Meyer, Kevin Lam, Terrance Snyder, Will Clevenger
    • Microsoft Contributors / Reviewers - Carlos Farre, Tim Walton, Wade Mascia

    My Related Posts

  • J.D. Meier's Blog

    Silverlight Scenarios Map

    • 0 Comments

    image

    The Microsoft Silverlight Scenarios Map is a consolidated and shared view of the common scenarios and tasks developing Silverlight applications. You will find Getting Started and Architecture scenarios first, followed by other common areas. Scenarios in each group should represent common tasks developers for this medium would face.

    Your call to action here is simply scan the Silverlight Scenarios Map below and either share your scenarios in the comments or email your scenarios to me at FeedbackAndThoughts at live.com.  Be sure to share your scenarios in the form of “how to blah, blah, blah …” – this makes it much easier to act on and update the map.

    For a quick review of what a good Scenarios Map looks like, see my related post, 5 Keys to Effective Scenario Maps.

    Categories

    • Getting Started 
    • Architecture and Design
    • Animation
    • COM
    • Controls
    • Data Access
    • Data Binding
    • Deep Zoom
    • Deployment
    • Events and Delegates
    • Graphics and 3D
    • HTML Bridge
    • Layout
    • Local Resources
    • Localization
    • Networking / Communication
    • Out-of-Browser
    • Performance
    • Styles and Templates
    • Text and Rich Text
    • Unit Testing
    • User Controls
    • Video and Audio
    • WCF RIA Services
    • XAML
    • Visual States
    • Navigation
    • Model, View, ViewModel pattern (MVVM)
    • Project

    Silverlight Scenarios Map

    Category

    Items

    Getting Started

    • How to set up your development environment for Silverlight development.
    • How to write your first Silverlight application.
    • How to write your first out-of-browser Silverlight application.

    Architecture and Design

    • How to design a Silverlight application based on the MVVP pattern.
    • How to recognize scenarios suited for the MVVM pattern.

    Animation

    • How to animate an object
    • How to animate programmatically
    • How to use a timer
    • How to get started with storyboarding
    • How to slide a control in and out of view with storyboarding

    COM

    • How to Interoperate with COM Applications

    Controls

    • How to Display Data in a ListBox
    • How to Add a Control to the Toolbox
    • How to Add Tab Items to a Tab Control
    • How to Create User-Resizable Applications with GridSplitter
    • How to Handle the Checked Event for the CheckBox Control
    • How to Change the Appearance and Behavior of the AutoCompleteBox Control
    • How to Enable Silverlight Controls as Drag and Drop Targets
    • How to Create User-Resizable Applications using layout controls
    • How to use the progress bar
    • How to use the Items Control
    • How to implement a dependency Property
    • How to display data in a DataGrid
    • How to style a DataGrid control
    • How to add a custom template for a selected item with DataGrid
    • How to specify data context for a control
    • How to add tip text for a control
    • How to add controls to the content of another control (such as graphics and text for button or )

    Data Access

    • How to Store and Retrieve Application Settings Using Isolated Storage
    • How to Perform Isolated Storage Tasks
    • How to Encrypt and Signing Isolated Storage Files

    Data Binding

    • How to bind to a DataContext
    • How to Create a Binding
    • How to use value converters to transform data classes for display
    • How to Bind to Hierarchical Data and Create a Master/Details View
    • How to Validate Data with Data Annotations
    • How to use commanding
    • How to implement INotifyPropertyChanged and ObservableCollections
    • How to maximize control reuse by understanding data binding and how it climbs the ui elements to find a data source
    • How to validate data with data binding and validators
    • How to Customize Data Display with Data Templates
    • How to use Data Annotations to Customize Data Classes

    Deep Zoom

    • How to use deep zoom in Silverlight
    • How to implement a collection image vs a single image in Deep Zoom
    • How to create a custom multi scale image
    • How to create image layers on a deep zoom image
    • How to use the DeepZoomTools.dll
    • How to create a HttpHandler to serve images to Deep Zoom

    Deployment

    • How to download dependencies on-demand
    • How to Configure an Application for Out-of-Browser Support
    • How to Implement Offline Support for Out-of-Browser Applications
    • How to Add Resources to a Silverlight-based Application
    • How to Sign XAP’s for Trusted Applications
    • How to divide a large application into separate XAPs

    Events and Delegates

    • How to Define and Execute Dynamic Methods
    • How to Hook Up a Delegate Using Reflection
    • How to Define a Generic Type with Reflection Emit
    • How to Define a Generic Method with Reflection Emit

    Graphics and 3D

    • How to crop an object
    • How to use pixel shader effects
    • How to use transforms
    • How to use deep zoom in Silverlight
    • How to create a timer
    • How to programmatically animate
    • How to use 3-D effects
    • How to slide a control in and out of view
    • How to fade a control in and out
    • How to spin a control
    • How to shake a control
    • How to zoom in a control
    • How to zoom out a control
    • How to flip a control

    HTML Bridge

    • How to pass values to/from Silverlight and host (asp.net/javascript) page
    • How to call JavaScript functions from Silverlight.
    • How to invoke Silverlight code from an HTML page event.
    • How to call Silverlight managed types from JavaScript.
    • How to programmatically alter/affect Silverlight managed types from JavaScript.
    • How to pass a Silverlight managed type to a JavaScript function.

    Layout

    • How to use the Canvas control
    • How to use the Grid control

    Local Resources

    • How to Perform Isolated Storage Tasks
    • How to Access the Clipboard
    • How to Access Files
    • How to Store and Retrieve Application Settings Using Isolated Storage Core
    • How to Print

    Localization

    • How to Make XAML Content Localizable
    • How to Combine Localizable Strings at Run Time
    • How to Make Rich Text Strings Localizable
    • How to Make Non-String Values Localizable
    • How to Make Non-Dependency Properties Localizable
    • How to Make Properties Localizable with Static Resources
    • How to Localize Information About an Out-of-Browser Application
    • How to Create a Build that Targets a Specific Culture
    • How to Implement Right-to-Left Support

    Model, View, ViewModel pattern (MVVM)

    • How to implement a ViewModel
    • How to minimize the view’s code behind and why
    • How to use a view model (MVVM) for data binding

    Navigation

    • How to implement navigation from page to page
    • How to implement deep linking in Silverlight
    • How to create a loading splash screen
    • How to implement a custom pop up window

    Networking / Communication

    • How to get and set cookies
    • How to access web services from Silverlight
    • How to specify browser or client HTTP handling
    • How to download content on demand
    • How to access a RESTful service
    • How to detect changes in network status
    • How to serve up a cross domain policy file for a socket application
    • How to access a socket server from Silverlight
    • How to implement HTTPS
    • How to use a dispatcher for cross thread access
    • How to communicate to multiple, isolated Silverlight applications on a page
    • How to configure and deploy a cross domain policy file

    Out-of-Browser

    • How to run under elevated privileges
    • How to Configure an Application for Out-of-Browser Support
    • How to Customize Window Chrome for Out-of-Browser Applications
    • How to Implement Offline Support for Out-of-Browser Applications

    Performance

    • How to use a background worker
    • How to synchronize data for multi-threading
    • How to build an app for lazy initialization
    • How to use hardware acceleration

    Project

    • How to create a Silverlight project
    • How to structure a Silverlight project
    • How to change your global error handler

    Styles and Templates

    • How to set up a style for a button
    • How to reuse a style or template across a control, page or application
    • How to share a style throughout your entire Silverlight application
    • How to use multiple resource files

    Text and Rich Text

    • How to render rich text.
    • How to export rich text.
    • How to accept text input and save as rich text.

    Unit Testing

    • How to Unit Test Silverlight Applications and Assemblies.

    User Controls

    • How to create a user control.
    • How to add a user control to your application.

    Video and Audio

    • How to play an MP3 from Silverlight
    • How to handle MediaElement states
    • How to play streaming media
    • How to manage digital rights
    • How to continuously play an MP3 from Silverlight
    • How to access a webcam
    • How to access a microphone

    Visual States

    • How to use visual states to control dynamic UI
    • How to use visual state groups and combination of groups

    WCF RIA Services

    • How to use the Silverlight Business Application template
    • How to create a RIA Services class library
    • How to deploy a WCF RIA Solution
    • How to create unit tests for the middle tier
    • How to add/remove a RIA Services link
    • How to share code between a server (web) and client (Silverlight) application
    • How to share Data Annotations between a server (web) and client (Silverlight) application
    • How to configure services for different environments such as QA and Production

    XAML

    • How to use namespaces and aliases.

    Contributors and Reviewers

    • External Contributors / Reviewers – Adam Grocholski; Greg Cowin; Jeff Almeida; Will Clevenger
    • Microsoft Contributors / Reviewers - Jesse Liberty, Pete Brown, Sam Landstrom

    My Related Posts

  • J.D. Meier's Blog

    ASP.NET Scenarios Map

    • 0 Comments

    The Microsoft ASP.NET Scenarios Map is a consolidated and shared view of the common scenarios and tasks with ASP.NET. You will find Getting Started and Architecture scenarios first, followed by other common areas. Scenarios in each group should represent common tasks developers would face when building ASP.NET applications.

    Your call to action here is simply scan the ASP.NET Scenarios Map below and either share your scenarios in the comments or email your scenarios to me at FeedbackAndThoughts at live.com.  Be sure to share your scenarios in the form of “how to blah, blah, blah …” – this makes it much easier to act on and update the map.

    For a quick review of what a good Scenarios Map looks like, see my related post, 5 Keys to Effective Scenario Maps.

    Categories

    • Getting Started
    • Architecture and Design
    • ADO.NET Entity Framework
    • AJAX
    • Authentication
    • Authorization
    • Caching
    • Controls
    • Dynamic Data
    • Exception Management
    • General
    • Globalization and Localization
    • JQuery
    • Logging and Instrumentation
    • Master Pages
    • MVC
    • Navigation
    • Security
    • State Management
    • Validation

    ASP.NET Scenarios Map 

    Category

    Items

    Getting Started

    • How to download and install necessary components and tools
    • How to create a hello world sample with WebForms
    • How to perform data access
    • How to use the page framework
    • How to use the basic server controls
    • How to use the basic data controls
    • How to use the basic navigation, validation and login server controls
    • How to manage state
    • How to create a hello world with MVC
    • How to learn how to deploy applications
    • How to create and use themes and skins
    • How to work with Master pages
    • How to use client script / JQuery
    • How to debut with Visual Web Developer
    • How to create ASP.NET pages with Visual Web Developer
    • How to work with ASP.NET projects in Visual Web Developer
    • How to create a secure ASP.NET Web site

    Architecture and Design

    • How to Build Layered Web Applications with Microsoft ASP.NET
    • How to address performance
    • How to implement the common baseline architectures
    • How to recognize key patterns for common engineering decisions
    • How to design for production deployment
    • How to address security
    • How to address manageability
    • How to Build a multi-tier data-driven web application using the SqlDataSource control
    • How to build ASP.NET Web Sites Using Web Standards
    • How to Build a Poll System in ASP.NET

    ADO.NET Entity Framework

    • How to create a model class with the Entity Framework
    • How to create an entity data model using the Entity Data Model Designer
    • How to use the EntityDataSource ASP.NET control
    • How to manage Entity Framework ObjectContext lifespan and scope

    AJAX

    • How to use the ASP.NET Ajax Extender
    • How to use the ASP.NET Ajax ScriptControl
    • How to work with partial page rendering events
    • How to Put ASP.NET AJAX Timer and UpdatePanel with RssToolKit all in action
    • How to handle JSON data with ASP.NET Ajax

    Authentication

    • How to authenticate using claims with the Windows Identity Foundation
    • How to use Forms Authentication
    • How to authentication using ASP.NET membership provider system
    • How to use Windows Authentication to provide single sign-on capabilities

    Authorization

    • How to authorize users using claims
    • How to authorize users using a role provider
    • How to implement Role Based Access Control (RBAC)
    • How to authorize REST service calls
    • How to authorize users against Active Directory

    Caching

    • How to use the ASP.NET OutputCache.
    • How to use the ASP.NET cache API.
    • >How to cache objects in a page.
    • How to create cache dependencies.
    • How to set expirations on cache items.

    Controls

    • How to use the GridView Control
    • How to Use WebParts in ASP.Net
    • How to build an ASP.NET menu
    • How to use the ASP.NET ImageMap control
    • How to use the ASP.FormView control
    • How to use the ASP.NET Ajax ScriptControl
    • How to use the EntityDataSource ASP.NET control
    • How to Display Binary Data in the Data Web Controls
    • How to use the ReportViewer control
    • How to Creating a CascadingDropDown Using AJAX
    • How to use Rich Text Editor
    • How to Create Multi-page forms with MultiView control
    • How to create a Chart
    • How to use a CheckBox in a GridView
    • How to Add a GridView Column of Radio Buttons
    • How to use a Radio Button in the TreeView control
    • How to build a Cascading Drop Down List in ASP.NET
    • How to Add a total row to a GridView
    • How to page data with the ASP.NET DataPager control

    Dynamic Data

    • How to eliminate lengthy boiler-plate code from existing ASP.NET data-bound controls and derive column functionality directly from the database schema.
    • How to customize the UI to render a data field in existing ASP.NET data-bound controls by using a field template.
    • How to perform table row filtering using a specific foreign key using default or a custom filter template.
    • How to filter the child table rows to display based on the foreign-key values selected in a parent table.
    • How to customize the UI for an individual or multiple tables by using a page template.
    • How to customize the UI to render a data field by using a field template.
    • How to customize the validation of a data field.
    • How to customize the validation of a data field using custom attributes.
    • How to add validation of an entity type or member controls
    • How to customize the column header, caption, and so on.
    • How to use an enumeration type to enable the user to enter data field values from a drop down list.
    • How to customize the ordering of columns.
    • How to control data field string length.
    • How to display e-mail address that when clicked lunch the mail application.
    • How to display URL that when clicked navigates to the specified address.
    • How to create dynamic hyperlinks that are based on the table actions as enabled by Dynamic Data.
    • How to perform table row filtering using default filter templates.
    • How to customize entities as a whole.
    • How to render inherited tables.
    • How to render tables that contain a many to many relationship.
    • How to use a RAD approach to create a Web site to edit the products that are sold for a storefront.
    • How to add validation of a data field in existing ASP.NET data-bound controls

    Exception Management

    • How to log exceptions to the Windows Event Log.
    • How to implement a global exception handler.
    • How to populate and raise events from code.
    • How to populate a log message with additional context How to information.
    • How to configure options for trace listeners.
    • How to direct different event types to different trace listeners.
    • How to configure log filters.
    • How to create a custom trace listener.
    • How to configure a default URL to direct a browser to, if an error occurs.
    • How to configure a custom error page for a given HTTP status code.
    • How to trace activities and propagate context information.
    • How to check filter status before constructing log messages.

    General

    • How to E-Mail in ASP.NET.
    • How to upload files.
    • How to use JavaScript with ASP.NET Pages.
    • How to Process Data within an XML File.
    • How to Use Response.Filter to intercept your HTML.
    • How to Create an Event Calendar.
    • How to generate websites using ZAP tool.
    • How to Zip and Unzip files programmatically.
    • How to use NHibernate and Log4Net in ASP.NET applications.
    • How to Transferring Data Using SqlBulkCopy Class.
    • How to use SQL Cache Dependency With SQL Server 2000.
    • How to use Outbound Link Hit Tracking with ASP.NET.

    Globalization and Localization

    • How to localize an ASP.NET web application using resources.
    • How to select an encoding for ASP.NET web page globalization.
    • How to set the culture for ASP.NET web page globalization.
    • AJAX script globalization and localization.

    JQuery

    • How to use jQuery with ASP.NET.
    • How to use jQuery to directly call ASP.NET Ajax page methods.
    • How to use chained commands in jQuery.

    Logging and Instrumentation

    • How to populate and raise events from code.
    • How to populate a log message with additional context information.
    • How to trace activities and propagate context information.
    • How to create custom trace listeners.
    • How to check filter states before constructing log messages.

    Master Pages

    • How to build an ASP.NET Master Page.
    • Using multiple Master Pages to organize your ASP.NET website.
    • How to dynamically attach a Master Page.

    MVC

    • How to use HTML Helpers in ASP.NET MVC.
    • How to use template helpers in ASP.NET MVC.
    • How to create action filters in an ASP.NET MVC application.
    • How to implement a custom ActionFilter in ASP.NET MVC.
    • How to create unit tests for an ASP.MVC solution.
    • How to use an asynchronous controller in ASP.NET MVC.
    • How to use remove validation from a client in ASP.NET MVC.
    • How to validate model data using DataAnnotations attributes.
    • How to create a custom action filter.
    • How to implement an ASP.NET MVC ViewEngine.
    • How to create a custom route.
    • How to use a route constraint.
    • How to create a custom route constraint.
    • How to use querystring parameters in a route.
    • How to access parameters in a routed page.
    • How to use an ASP.NET MVC Controller to return XML or JSON.
    • How to perform a file download in ASP.NET MVC.
    • How to use the OutputCacheAttribute to increase performance.
    • How to use and inversion of control containers and the dependency injection pattern with ASP.NET MVC.

    Navigation

    • How to build a treeview.
    • How to implement a RESTful interface.
    • How to implement a breadcrumbs interface.

    Security

    • How to encrypt configuration settings
    • How to validate untrusted input
    • How to authenticate users using claims
    • How to authorize users using claims
    • How to use a secret store
    • How to handle exceptions securely
    • How to prevent injection attacks
    • How to authenticate users using membership
    • How to authorize users using roles
    • How to audit effectively
    • How to validate service messages

    State Management

    • How to maintain session data in a web farm
    • How to store session data in a database
    • How to establish sessions without cookies
    • How to Improve performance by compressing ViewState

    Troubleshooting

    • How to debug an ASP.NET application.
    • How to Health Monitor in ASP.NET.
    • How to debug in a live environment using event logs.
    • How to debug remote services.

    Validation

    • How to use the ASP.NET Validation Controls
    • How to validate client-side objects
    • How to validate server-side objects
    • How to sanitize untrusted input
    • How to validate untrusted input
    • How to filter untrusted input
    • How to use regular expressions to validate input
    • How to validate HTTP headers
    • How to validate file uploads
    • How to validate blob data

    Contributors and Reviewers
    • External Contributors / Reviewers – Adam Grocholski; Brent Jacquemart; Will Clevenger
    • Microsoft Contributors / Reviewers - Tim Teebken, Wade Pickett

    My Related Posts

  • J.D. Meier's Blog

    Microsoft Application Platform at a Glance

    • 4 Comments

    “To stay on the map you've got to keep showing up.” -- Peter Gallagher

    Periodically I create a map of the Microsoft application platform.  (Here is my previous map of the Microsoft application platform.)   Making the map helps me stay on top of the platform, identify potential changes to architecture and design strategies, and anticipate trends.  It also helps me figure out where to invest my time and energy.  It also helps me see potential customer confusion.

    Here is my latest map of the Microsoft application platform:

    Category

    Items

    Application Infrastructure

    • .NET Framework
    • Base Class Libraries (BCL)
    • Common Language Runtime (CLR)
    • Language Integrated Query (LINQ)

    ALM (Application Life-Cycle Management)

    • Visual Studio Team System
    • Visual Studio Team Foundation Server

    App Frameworks / Extensions

    • Enterprise Library
    • Managed Extensibility Framework (MEF)

    Cloud

    • Windows Azure
    • Windows Azure DataMarket (“Dallas”)
    • Windows Azure Tools for Microsoft Visual Studio
    • App Fabric
    • SQL Azure

    Collaboration / Integration / Workflow

    • SharePoint Server
    • Windows Workflow Foundation (WF)
    • Microsoft Office SharePoint Server (MOSS)
    • Microsoft BizTalk Server

    Data Access

    • ADO.NET Core
    • ADO.NET Entity Framework
    • ADO.NET Sync Framework
    • LINQ to SQL
    • OData
    • WCF Data Services
    • WCF RIA Services

    Database Server / Storage

    • SQL Azure
    • SQL Server
    • SQL Server Compact

    Desktop

    • WPF (Windows Presentation Foundation)
    • Silverlight (Out-of-Browser)
    • Windows Forms

    Developer Tools

    • Microsoft Visual Studio
    • Microsoft Expression Studio
    • Microsoft Visual Studio Express
    • Microsoft Visual Studio LightSwitch
    • Microsoft Visual Studio Team Foundation Server

    Games

    • XNA
    • D3D
    • Win32

    Identity

    • WIF (Windows Identity Foundation) (Geneva)
    • Active Directory Federation Services (Geneva Server)
    • Card Space

    Languages

    • Common Language Runtime (CLR)
    • Dynamic Language Runtime
    • Visual Basic
    • Visual C#
    • Visual C++
    • F#
    • Iron Python
    • IronRuby

    LINQ

    • LINQ to Entities
    • LINQ to SQL
    • LINQ to XML
    • LINQ to DataSet
    • LINQ to Objects

    Manageability

    • Systems Center Operations Manager (SCOM)

    Office

    • Office 2010
    • Visual Studio Office Development Projects
    • Office 2010 PIA (Primary Interop Assemblies)

    Parallel

    • F#
    • Parallel Extensions for .NET
    • PLINQ
    • Task Library

    Phone

    • Silverlight for Windows Phone
    • XNA Framework
    • Windows Phone Developer Tools

    Services

    • Windows Communication Foundation (WCF)
    • WCF Data Services (ADO.NET Data Services, Astoria)
    • WCF Web APIs
    • WCF RIA Services
    • ASP.NET Web Services (ASMX)

    Web

    • ASP.NET Web Forms
    • ASP.NET Web Pages (WebMatrix)
    • ASP.NET MVC
    • Silverlight
    • SharePoint Server
    • CSS
    • HTML / HTML 5.0
    • Internet Explorer
    • JavaScript (Jscript) / JavaScript (as of IE 9)

    Web Server

    • Internet Information Services (IIS)
    • IIS Express
    • Web Farm Framework

    Windows Server

    • Windows Server
    • Windows Server App Fabric (Dublin + Velocity)

    Many thanks to Adam Grocholski, Alik Levin, Chris Sells, Jesse Liberty, Joe Stagner, Jon Galloway, Pete Brown, and Rob Boucher for helping review.

  • J.D. Meier's Blog

    ADO.NET Scenarios Map

    • 4 Comments

    The ADO.NET Scenarios Map is a consolidated and shared view of the common scenarios and tasks around Microsoft data access technologies. You will find Getting Started and Architecture scenarios first, followed by other common areas. Scenarios in each group should represent common tasks developers would face when building applications that access or interface with data.

    Your call to action here is simply scan the ADO.NET Scenarios Map below and either share your scenarios in the comments or email your scenarios to me at feedbackandthought at live.com.  Be sure to share your scenarios in the form of “how to blah, blah, blah …” – this makes it much easier to act on and update the map.

    For a quick review of what a good Scenarios Map looks like, see my related post, 5 Keys to Effective Scenario Maps.

    Categories

    • Getting Started
    • Architecture and Design
    • ADO.NET
    • ADO.NET Entity Framework
    • LINQ to DataSet
    • LINQ to SQL
    • LINQ to Entities
    • OData
    • Silverlight
    • SQL Azure
    • SQL Server
    • WCF Data Services
    • XML

    ADO.NET Scenarios Map

    Category

    Items

    Getting Started

    • How to connect to SQL Server from an ASP.NET Application using ADO.NET.
    • How to connect to SQL Server from an ASP.NET Application using ADO.NET Entity Framework
    • How to connect to SQL Server from an ASP.NET Application using LINQ to SQL.
    • How to connect to SQL Server from an ASP.NET Application using LINQ to Entities.
    • How to connect to SQL Server from an ASP.NET Application using LINQ to DataSets.
    • How to connect to SQL Server from a Silverlight Application using WCF RIA Services.
    • How to connect to SQL Server from a WPF Application using WCF RIA Services
    • How to connect to a WCF Data Service from an ASP.NET Application

    Architecture and Design

    • How to design an N-tier ASP.NET solution using ADO.NET Entity Framework.
    • How to design an N-tier ASP.NET solution using LINQ to SQL.
    • How to design an N-tier ASP.NET solution using ADO.NET.
    • How to design an N-tier ASP.NET solution using LINQ to Entities.
    • How to design an N-tier ASP.NET solution using WCF Data Services.

    ADO.NET

    • How to populate a DataSet from a SQL Server database.
    • How to populate a DataTable from a SQL Server database.
    • How to populate a DataReader from a SQL Server database.
    • How to databind to a DataTable.
    • How to populate a DataSet from a multi-table join.
    • How to support file based data sources with a DataTable.

    LINQ to DataSet

    • How to query an ADO.NET DataSet from LINQ.
    • How to load a DataTable using LINQ.
    • How to obtain a Count from a DataSet
    • How to perform a Join query on a DataSet
    • How to obtain a Count on a Group in a DataSet.
    • How to order data from a DataSet
    • How to copy data from a DataSet
    • How to use element operators on a DataSet.
    • How to apply complex criteria to a DataSet.
    • How to create a Union within a DataSet.
    • How to query an ADO.NET DataSet from LINQ.
    • How to obtain a Count from a DataSet
    • How to perform a Join query on a DataSet
    • How to obtain a Count on a Group in a DataSet.
    • How to order data from a DataSet
    • How to copy data from a DataSet
    • How to use element operators on a DataSet.
    • How to apply complex criteria to a DataSet.
    • How to create a Union within a DataSet.

    LINQ to SQL

    • How to query a SQL Server table from LINQ.
    • How to perform an update in a 1-to-many relationship.
    • How to perform an update in a many-to-many relationship.
    • How to perform a multi-table query from LINQ.
    • How to perform SQL string operations within a LINQ query.
    • How to perform an insert in a 1-to-many relationship.
    • How to perform an insert in a many-to-many relationship.
    • How to perform a delete in a 1-to-many relationship.
    • How to perform a delete in a many-to-many relationship.
    • How to perform a data update within a transaction.
    • How to perform calculations in an LINQ query.

    LINQ to Entities

    • How to query an Entity Framework Data Model.
    • How to use expressions in LINQ to Entities.
    • How to call TSQL functions in a LINQ query.
    • How to call model-defined functions as object methods.
    • How to implement a .Find method.
    • How to increase performance with compiled queries.
    • How to map preexisting stored procedures to entities.

    OData

    • How to build an OData interface to SQL Server
    • How to build an OData interface in a WCF service.
    • How to perform basic CRUD operations against an OData data source.
    • How to use WCF Data Services to build an OData interface.
    • How to access an OData interface from JavaScript.
    • How to access an OData interface from jQuery.
    • How to access an OData interface from Ajax.
    • How to perform transactions against an OData data source.
    • How to create an AtomPub server.

    Silverlight

    • How to access a WCF Data Service using WCF RIA Services.

    SQL Azure

    • How to connect to SQL Azure from ADO.NET.
    • How to connect to SQL Azure from ADO.NET Entity Framework.
    • How to populate an Entity Framework Data Model from SQL Azure.
    • How to use WCF Data Services to expose SQL Azure as an OData data source.
    • How to perform LINQ queries against SQL Azure.
    • How to perform a two-phase commit transaction against SQL Azure.
    • How to expose SQL Azure as an AtomPub server.
    • How to build a scalable transactional database in SQL Azure.

    SQL Server

    • How to connect to SQL Server from ADO.NET.
    • How to connect to SQL Server from ADO.NET Entity Framework.
    • How to populate an Entity Framework Data Model from SQL Server.
    • How to use WCF Data Services to expose SQL Server as an OData data source.
    • How to perform LINQ queries against SQL Server.
    • How to perform a two-phase commit transaction against SQL Server.
    • How to expose data as XML.
    • How to build a scalable transactional database in SQL Server.

    WCF Data Services

    • How to use WCF Data Services to build an interface for a relational data source.
    • How to access data from Silverlight using WCF Data Services
    • How to access data from WPF using WCF Data Services
    • How to access data from ASP.NET using WCF Data Services
    • How to use WCF Data Services to build an interface for a non-relational data source.
    • How to access data from Ajax using WCF Data Services
    • How to access a WCF Data Services data source through WCF RIA Services
    • How to use WCF Data Services to build an interface for a hierarchical data source.
    • How to use AppFabric Access Control to protect an OData data source.

    XML

    • How to retrieve XML from SQL Server.
    • How to retrieve XML from an OData provider.
    • How to retrieve XML from SQL Azure.
  • J.D. Meier's Blog

    5 Keys to Effective Scenario Maps

    • 0 Comments

    The better the map of the problem space we have, the better we can shape our platform and technologies, improve our tooling, and create more effective prescriptive guidance.  The key to an effective map of the problem space is creating a simple frame for the problem space, and getting customers to share their scenarios.  This is where you fit in.  By sharing your scenarios, you can help make sure your problems are heard in a simple and effective way.  The better your problems are heard and understood, the easier they are to address.

    5 Keys to Effective Scenario Maps
    The most effective way I’ve found to collect customer scenarios is to create “Scenario Maps.”  The Scenario Map ends up being a highly scannable index of one-liner scenarios.  The scenarios serve as test cases that we can measure the platform, tooling, and prescriptive guidance against.  An effective Scenario Map has five key attributes:

    1. “How To” - Each scenarios is stated using a one-liner “how to” statement, such as “How to connect to SQL Server from an ASP.NET Application using ADO.NET.”   This is crucial.  This helps turn a scenario right down into an actionable goal that can be easily understood, analyzed, and tested against.
    2. Hot Spots – Hot Spots are simply categories that group the scenarios.  Think of the problem space as a heat map.  On this heat map are pain points and opportunities or key choice points.  By focusing on the extreme pain points or opportunity, you can simplify the map and get the highest ROI.  This also keeps the map dynamic, since patterns of problems can keep bubbling up and then create a new category or Hot Spot.   
    3. Prioritized – In the early stages, a Scenario Map is simply a laundry list or brain dump.  But the key is to refine this map over time.  As you refine this map, you get rid of duplication, improve the clarity of each scenario, and you prioritize the lists.  While I’ve prioritized using P1, P2, P3, I’ve actually found it more helpful to prioritize using “Core,” “Common,” and “Niche.”  Core represents the most fundamental scenarios.  Common represents the common cases, which you can find with SEO or by getting a group of domain experts in a room to share their stories or by combing the forums.  Niche represents the corner cases or advanced scenarios, such as extreme security, performance, reliability, or architecture and design patterns, or advanced deployment patterns, etc.
    4. Durable but evolvable – The Scenarios Map should be durable in that the categories (Hot Spots) reflect patterns of problems.  However, it’s an unfolding process so the map should easily evolve as you learn more about the space and continue to collect scenarios.  The durability helps create a shared map of the problem space, while the flexibility helps the map address the changing needs in the space or reflect your current understanding of the space as it continues to evolve.
    5. User scenarios – If the scenarios aren’t from users, there’s a problem.  The idea of the map is to capture and share real-world problems from users.

    I’ll be sharing examples of Scenario Maps in the near future.

  • J.D. Meier's Blog

    Silverlight Developer Guidance Map

    • 1 Comments

    image

    If you’re a Silverlight developer or you want to learn Silverlight, this map is for you.   Microsoft has an extensive collection of developer guidance available in the form of Code Samples, How Tos, Videos, and Training.  The challenge is -- how do you find all of the various content collections? … and part of that challenge is knowing *exactly* where to look.  This is where the map comes in.  It helps you find your way around the online jungle and gives you short-cuts to the treasure troves of available content.

    The Silverlight Developer Guidance Map helps you kill a few birds with one stone:

    1. It show you the key sources of Silverlight content and where to look (“teach you how to fish”)
    2. It gives you an index of the main content collections (Code Samples, How Tos, Videos, and Training)
    3. You can also use the map as a model for creating your own map of developer guidance.

    Download the Silverlight Developer Guidance Map

    Contents at a Glance

    • Introduction
    • Sources of Silverlight Developer Guidance
    • Topics and Features Map (a “Lens” for Finding Silverlight Content)
    • Summary Table of Topics
    • How The Map is Organized (Organizing the “Content Collections”)
    • Getting Started
    • Architecture and Design
    • Code Samples
    • How Tos
    • Videos
    • Training

    Mental Model of the Map
    The map is a simple collection of content types from multiple sources, organized by common tasks, common topics, and Silverlight features:

    image

    Special Thanks …
    Special thanks to Jesse Liberty, Joe Stagner, Paul Enfield, Pete Brown, Sam Landstrom, and Scott Hanselman for helping me find and round up our various content collections.

    Enjoy and share the map with a friend.

  • J.D. Meier's Blog

    How To Create a patterns & practices Team

    • 0 Comments

    I’ve had a few readers ask me how they can create a patterns & practices team for their Enterprise.  I think with the overwhelming choices of technologies and directions, more people are looking to create small technology incubation and innovation teams to help identify, harvest and share proven practices as well as to help pave the paths and steer the course for their bigger ships.

    While I don’t have everything packaged up as good as I could, here are some resources to get you started:

    I included many lessons learned from the school of hard knocks learned over more than 10 years at patterns & practices.

  • J.D. Meier's Blog

    Press Release for Getting Results the Agile Way

    • 0 Comments

    image

    Here’s the opening blurb …

    'Getting Results the Agile Way' -- A Timeless System for Changing Times -- Now Available in Print 

    Seattle, WA (PRWEB) October 26, 2010

    Author J.D. Meier is announcing that his new book ‘Getting Results the Agile Way’ is now available in print. The book shows readers the way to make the most out of work and life. Meier has come up with a simple system to achieve meaningful results that combines some of the best methods for improving one’s thinking, feeling, and doing.

    “The best way I can put it is, it helps you be the author of your life and write your story forward,” says Meier. “Basically, it’s a system that can support you in everything you do. It’s based on principles and patterns so you can tailor it for yourself or for any situation.”

    Read the rest on PRWeb at - http://www.prweb.com/releases/Getting-Results/Now-in-Print/prweb4636494.htm

  • J.D. Meier's Blog

    Principles and Values Define a Culture

    • 3 Comments

    As new teams spring up and old teams redefine themselves, one of the most important aspects of an effective team is the culture.

    An organization’s culture is defined by the values.   It’s not what they say, it’s what they do.  It’s not what they want to reward or say they want to reward, it’s what they actually reward.  The other thing to know about a culture is that the values flow down from the top.  That’s why leadership is important, as well as shared values among the team.  Conflict of styles is easier to deal with than a conflict of values … after all, you don’t just change what you value to fit your company.

    One of the simplest ways to establish and guide an organizational culture is to explicitly share the values and principles.  If you’re in the position of creating a new team, you can use the values as a lightening rod to attract the people with passion that care deeply about similar values.  Values are sticky and that’s actually how you can spread an organization far and wide and yet remain intact … it simply becomes a federated team that connects at the values (you can read more about this concept in the book, The Starfish and the Spider.)

    Example of Defining a Culture Through Organizational Principles and Values
    Here is a simple example of defining a culture using the patterns & practices team as an example circa 2006:

    Mission
    “Customer success on the Microsoft platform” or “Proven practices for the platform.”

    Goals
    In patterns & practices, the goals are simple:

    • Simplify the customer experience of building quality solutions on the Microsoft platform.
    • Improve the customer value of Microsoft products and technologies through customer connection and solution engineering.
    • Grow the professional knowledge and capability of the Microsoft development community.
    • Help customers and partners build their LOB (line-of-business) applications and services faster and more predictably than any platform in the world.

    Values
    In patterns & practices, we value:

    • Continuous learning, innovation and improvement - We have a bias toward action (over more planning) and customer engagement and feedback (over more analysis.)
    • Open, collaborative, relationships with customers, Microsoft field, partners, and Microsoft teams.
    • Execution - we take strategic bets, but we hold ourselves accountable for creating value, shipping early and often, and delivering results that have impact with customers and in Microsoft.
    • Explicit, transparent, and direct communication with customers and with our team and others in our company.
    • Quality over scope - no guidance is better than bad guidance.

    Principles
    We use the following principles to guide our work:

    • Start with the end in mind; think about end to end scenarios and how the products we produce fit in the solution architecture and into the patterns & practices catalog.
    • Help the customer succeed with their intent - the results they want to achieve, not just what they are trying to do.
    • Find the minimal solution required for a good result and ship it.
    • Our tools platforms are assets that expand the types of guidance we can express - use all of what they provide where it naturally fits the scenario.
    • Constructive tension between customer needs and Microsoft product and business strategy is expected - when we do our job well, this tension is healthy.

    My Related Posts

  • J.D. Meier's Blog

    ASP.NET Developer Guidance Map

    • 2 Comments

    image

    If you’re an ASP.NET developer or you need to learn ASP.NET, this map is for you.   Microsoft has an extensive collection of developer guidance available in the form of Code Samples, How Tos, Videos, and Training.  The challenge is -- how do you find all of the various content collections? … and part of that challenge is knowing *exactly* where to look.  This is where the map comes in.  It helps you find your way around the online jungle and gives you short-cuts to the treasure troves of available content. 

    The ASP.NET Developer Guidance Map helps you kill two birds with one stone:

    1. It show you the key sources of ASP.NET content and where to look (“teach you how to fish”)
    2. It gives you an index of the main content collections (Code Samples, How Tos, Videos, and Training)

    You can also use the map as a model for creating your own map of developer guidance.

    Download the ASP.NET Developer Guidance Map

    Contents at a Glance

    • Introduction
    • Sources of ASP.NET Developer Guidance
    • Topics and Features Map (a “Lens” for Finding ASP.NET Content)
    • Summary Table of Topics
    • How The Map is Organized (Organizing the “Content Collections”)
    • Getting Started
    • Architecture and Design
    • Code Samples
    • How Tos
    • Videos
    • Training

    Mental Model of the Map
    The map is a simple collection of content types from multiple sources, organized by common tasks, common topics, and ASP.NET features:

    image

    Special Thanks …
    Special thanks to Joe Stagner, Paul Enfield, Rick Anderson, Scott Hanselman, Tim Teebken, and Wade Pickett for helping me find and round up our various content collections.

    Enjoy.  Share the map with a friend.

  • J.D. Meier's Blog

    Training for Getting Results the Agile Way

    • 0 Comments

    “Make the most of yourself, for that is all there is of you.” -- Ralph Waldo Emerson

    With my latest book out, Getting Results the Agile Way, I’ve had a lot of people ask me, “Where’s the training?”  While I’ve been making a lot of self-paced material available on the Getting Results Knowledge Base, what folks are really asking for is, where is the *live* training? …

    Well, here it is. Talk about timing and talk about a perfect partnership!  The live training is now available as a one-day, in-depth workshop to help you get up and running fast.  Learn how to get results with skill and work on the right things, at the right time, the right way, with the right energy to get your best results.   This is the same system I’ve used to lead distributed teams around the world since 2001, on time, on budget and it integrates some of the best practices from positive psychology, sports psychology, project management, and personal development.  There is a special emphasis on meaningful results, personal productivity, motivation, focus, passion, and purpose … and most importantly … responding to change … the agile way ;)

    The Workshop at a Glance

    WHEN Wednesday, November 3, 2010
    WHERE Clise Mansion
    6046 West Lake Sammamish Parkway
    Redmond, WA 98052-4801
    AGENDA
    • 8:15 – 9:00 Registration & Continental Breakfast 9:00
    • 12:00 Getting Results the Agile Way 12:00 – 1:00
    • Lunch 1:00 – 5:00 Getting Results the Agile Way
    WORKSHOP FACILITATOR

    John Hanson

    COST

    This initial offering is being discounted to $299 (plus tax).

    WORKSHOP INCLUDES Morning continental breakfast, lunch, Getting Results the Agile Way Field Guide, and one month paper planner: Agile Results Personal Planner.

    What you’re buying is a personal results system you can use for work and life, for the best of your life … that can help you make the most of what you’ve got today, and every day, whenever you want to get the system and science on your side.  It’s the edge you need in today’s ever-changing world.

    To Register

    • Call:  425-681-9078
    • Email: Workshops (at) innovation-Systems.net

    Why John Hanson
    John is passionate about developing people and helping them succeed.  His super skill is translating concepts into real world practice.  He’s been creating success with individuals for 16 years at SAFECO Insurance, and 10 years at Microsoft.   What I like about John is the fact that he’s full of stories … the good, the bad, and the ugly.  He’s been helping our top folks, Microsoft’s high performance employees, make the most of what they’ve got for years, so he knows what works and what doesn’t, as well as how to tune and tailor insights and actions to help people unleash their best in any situation.

    What You Will Learn

    • How to be the author of your life and write your story forward
    • How to make the most of your your moments, days, weeks, months, and years
    • How to use a simple system to achieve meaningful results
    • How to achieve work-life balance
    • How to focus and direct your attention with skill
    • How to manage your time
    • How to spend more time on the things that really matter to you
    • How to play to your strengths and spend less time in weaknesses
    • How to motivate yourself with skill and find your drive
    • How to change a habit and make it stick
    • How to improve your personal productivity and personal effectiveness

    Why a Workshop

    • Workshops help the 50% of us who learn best by having a hands on, guided opportunity to put something into practice.
    • Workshops allow you to get your questions answered, especially how this system might fit in with another system someone is using or is familiar with, or how to overcome particular obstacles.
    • Workshops allow you to share ideas and network with other people who share an interest with you.
    • Workshops also allow you to dive more deeply into material through the workshop interaction than you can with a static source.

    Key Exercises You’ll Practice in the Workshop

    • Explore how your current work habits are impacting your effectiveness
    • Explore how to apply the “Secret of Results” to change your game
    • Explore how to apply the “Secret of Motivation” to help you find your motivation and drive
    • Explore how to find your own “Sweet Spot for Results”
    • Find your “one-liner purpose”
    • Apply “The Rule of 3”
    • Identify your “Hot Spots”
    • Create a “Monday Vision”
    • Create your “Daily Outcomes”
    • Create an “Action List”
    • Create a “Reference List”
    • Practice the full process of planning out a day
    • Identify the things that make you weak and drain you as well as the things that make you strong
    • Practice the full process of planning out your month
    • Practice the full process of designing and mapping out your year and your yearly outcomes
  • J.D. Meier's Blog

    40 Hour Work Week at Microsoft

    • 4 Comments

    "Eight hours work, eight hours sleep, eight hours play, make just and healthy day." - King Alfred the Great

    One of the most important lessons at Microsoft was learning the value of a 40 hour work week.  I’ve been on time, on budget for 10 years on projects ranging from grass-roots or “best efforts” to $ million+ investments.  In my first few years, I was on time, on budget through heroic effort.  That’s not sustainable and folks don’t want to sign up for that more than once.  Luckily, I learned early on how to drive more effective results by fixing time and flexing scope, while flowing value, and optimizing team health.  I also learned the value of figuring out effective product-lines, managing portfolios of investments, finding the best “Hot Spots” on heat maps of customer pain and opportunity, and mastering the art of the WBS (work breakdown structures) and cuttable scope.

    For some people that have experienced effective 40 hour work weeks on a regular basis, this will be “no-duh.” For those that haven’t, this may be unfathomable, so I’ll share what I’ve learned so at least it can give you food for thought and potentially help give you a mental model of what success can look like.  I originally slanted this for individuals and 40 hour work weeks, but I realized it’s more effective if more team leaders drive 40 hour work weeks so that everybody wins.

    Why a 40 Hour Work Week
    It’s not that I just want happier, healthier, more effective colleagues.  I want a more effective Microsoft.

    In my experience, a 40 hour work week is a benchmark of the most effective teams.  They have work-life balance.  They have buffer to respond to opportunity and to deal with crunches.  They have processes in place, they invest in their learning and growth, and they move up the stack instead of always solving the basics.  Instead of perpetual fire-fighting, they are more deliberate about planning and strategy and they anticipate their customers and the market (through empathy and staying connected to customers.)  They learn and respond and can turn on a dime.  They have a dashboard, they know the score, and they can change their approach.

    There’s another reason that cuts right to the chase.  If budget cuts will break you, then the first way to build a firm foundation and execution machine is to master the 40 hour work week.  It’s a forcing function that fixes a lot of underlying execution issues that you just cannot see if your organization throws time at problems.  If you can’t see it, you can’t fix it.  When you bound it by time, you can start testing more effective ways to produce results.  To make this actionable, make it an initiative.

    60-80 Hour Week of Ineffectiveness
    Here are some of the attributes of teams that lead and drive 60-80 hour weeks of ineffectiveness and inefficiency:

    • Throwing time at things (this shows up as longer days or weekends and adding more and more meetings.)
    • Nothing is a priority because everything is a priority (this is a sign of lacking metrics people believe in or a relevant scoreboard or dashboard of results or a lack of setting expectations or a lack of clarity on the end in mind or inability to flow incremental value.)
    • Working faster and harder to make up for bad planning.
    • Work on the wrong things faster or longer.
    • Lots of meetings because there’s more time to throw at them.
    • Lack of priorities because there is no forcing function like time.
    • Lack of focus because of a lack of priorities and throwing time at problems.
    • Bad estimation because it’s spread out over too much work or too much time or too ambitious.
    • Bad resource planning because of bad estimates and lack of clarity or feedback loops on results.
    • Scope drives everything, so scope creep is a way of life.
    • Ship cycles are spread so far apart that nobody wants to version or push to the next version so everything has to fit this time around through death marches and endless fitting square pegs into round holes.

    Ultimately, it’s a lost of waste on multiple levels.  Mostly, it’s a waste of human potential.

    40 Hour Week of Effectiveness
    Here are some of the attributes of teams that lead and drive 40 hour work weeks of effectiveness:

    • Get smart people on a cadence.  If there is a regular rhythm of results or a regular ship cycle or a regular time when the trains leave the station, you can always improve everything else.  The worst mistake is having timelines of jello.  When you have a cadence, people can version things, they can tune and improve processes, they can scope and chunk things down, they can ruthlessly prioritize, etc.
    • The team is fully engaged in the work they do.  They co-create the future they buy in to the journey and path, and believe in the end-in-mind.  They give their best where they have their best to give.
    • Ruthlessly prioritize value.  It’s not “how much can we do” … it’s “what’s the next best thing to do?”  This also means following the 80/20 rule and focusing on the 20% of the work that gets you 80% of the value.
    • Learn your capacity and throughput.  Throughput is simply the amount of work you can do in a given time period.
    • Have the right people in the right roles.  A sign of a strong team is they *feel* they can run towards the problem versus want to run away.  The two simplest way to kill an otherwise effective team are to have somebody out of position (e.g. catcher playing third base), or missing a key player (e.g. no pitcher.)
    • Spend more time in strengths.  Strengths are NOT what you are simply good at.  Strengths are your natural thinking, feeling, and doing patterns.  This is going with the flow or going with the grain versus against the grain.  If you are always fighting your natural patterns, then you aren’t leveraging your strengths or making the most of what you’ve got.  Instead, you are creating a liability.  This often happens by having people out of position or lack of the right resources.  By spending more time in your strengths, you amplify your impact, you renew your energy, and you grow faster in your strengths than you possibly can in your weaknesses.
    • Spend less time in weaknesses.    This is the Hedgehog Concept in action.   Stop doing what you’re not good at.  Do this by spending more time in what you are great at.  You can shave and slough off the time you spent in weaknesses by deliberately carving out more time to spend in your strengths.  Again, this will help keep your energy strong, which is the key to great results in less time.  Keep in mind that if you have serious liabilities, then you need to reduce them, but you don’t get great by improving your weaknesses, you get great by growing your strengths.
    • Push the bottleneck around.  Every team or organization has something that gates them.  It can be a lack of money or the right ideas or the right people.  In my experience, I often see heavy handed processes that made teams ineffective.  I also see the lack of the right vital few people (like playing baseball without a pitcher or playing hockey without a goalie.)  I also see a lack of the right investments, which is usually a sign of either a lack of clarity on the end-in-mind or a lack of understanding about the nature of the work (such as what it takes, how long it takes, who can do it, how to make it more efficient or effective, etc.)  There is always a bottleneck and if you can put your finger on the most important one, and you eliminate it or change the bottleneck, you can exponentially amplify your results.  My favorite lens for looking for productivity bottlenecks is the Theory of Constraints.

    While these insights and lessons might seem easy, intuitive, or simple, they are actually hard-earned and they are directly from the school of hard knocks.  It took multiple managers, testing with multiple teams over multiple years, and a lot of trial and error to figure out what actually works.

    Cornerstone Concepts for More Effective and Efficient Weeks
    There are some fundamental concepts and shifts to understanding why and how a 40 hour work week is more effective than a 60 or 80 hour work week.   You need a few concepts under your belt to help guide you through change:

    • Energy is the key to productivity, not time.   Give me four Power Hours over 40 hours of suck-the-life-force-slowly-out-of-me any day.  A Power Hour is where you are in the zone or in your flow and your energy is strong, while your creative juices are flowing or you are your most resourceful and solve problems with ease.    You get more Power Hours by people working in their strengths, playing to their passions, getting sufficient rest, enjoying work-life balance, and feeling valued for the work they do.
    • It's value delivered, not time spent.  Spending more time does not mean creating more value.  If you’re metric is “butts in seats” or “*** in chair,” you’re missing the point.   You want to measure value, and value is not a linear line of widgets you just crank out in the knowledge arena.
    • Shifting from Industrial Age thinking to the Knowledge Age.  In the Industrial Age, spending more time, meant producing more widgets.  Not so in the Knowledge Age.  Now it's about coming up with new ideas, new ways, changing the game, and responding to demand in more creative ways.  Knowledge and ideas are our main source of economic growth.  It's about turning knowledge from ideas in the mind, into valuable things and making things happen, through networks and systems of collective intelligence.
    • Intrinsic Value vs. Market Value.  For the sake of argument, let’s say a can of soda has an intrinsic value of $1.00.  It should never be worth more than that, at the intrinsic level.  Put that same can of soda in the desert, and now it’s market value is $50 or $100.   This gap between intrinsic value and market value is why bubbles burst or why customers that were paying $50 or $100 over here, can suddenly pay $1 over there.   Your opportunity for innovating in both your processes and your products comes from knowing the intrinsic value of things.  At some point, you’ve found the bottleneck or the glass-ceiling.  The key is to make sure your costs are close to intrinsic value and that if your market value is over-inflated to know that somebody, somewhere around the world can beat you on cost if you’re playing the cost game (A pattern I keep seeing is cost is losing, quality is winning for the long-haul – quality and brand are hard to copy.)
    • Sustainable pace.   Effectiveness is not about random acts of heroic effort or regular fire righting or reacting to perpetual surprises that could have been anticipated.  Effectiveness is also not about reacting to bad planning or over-estimating or unrealistic expectations.  A sustainable pace comes from setting a bar, in this case a 40 Hour Work Week, and designing for it.  It means biting off what you can chew within that chunk of time.  It means ruthless prioritization and focus by focusing on the smartest things that have the most value and letting the rest go.  It means having clarity on the end-in-mind, knowing the path or waypoints, and correcting course as you go.
    • Smart BI (Business Intelligence).   In an online, connected world, there is no reason to be flying blind.  You can guess at what works, or you can instrument, test, and measure.  This is the key to Amazon’s online success.  They can learn and respond.  By using BI effectively, you can figure out exactly what customers want, how much they want it, how they are looking for it, and where they are finding it.  Don’t “push” products.  Find the “pull.”  You can find the appetite or the demand to help drive and shape your supply.
    • Prosumer Model.    The prosumer model is where the producer joins forces with the consumer or user of their product.  Involve your customers earlier in the cycle and co-create the future with them.    You can’t miss.  However, don’t let the tail wag the dog.  For example, if Henry Ford asked customers what they wanted, they would say a “faster horse.”  Use customers to find their problems and what they would pay for or what they value.
    • It’s a Darwin world.   Along the lines of the book, Good to Great, you have to compete at what you can be the best in the world at.  In the physical world, you can compete on location.  On the Web, you really want to be number one for your niche or micro-niche.  Customers have slots in their mind, and you want to be pole position for whatever your slot in their mind is (positioning isn’t just position in the market, it’s position in the mind.)  If you compete at what you can be the best in the world at, you improve your sustainable pace and your competitive advantage.

    My Story
    One of my toughest lessons to learn at Microsoft was the value of a forty hour work week.  I'm known for being a workhorse.  16-20 hour days, 7 days a week was just a way of life for me.  Long ago, I heard the saying you'll have plenty of time to rest when you're dead and it stayed with me ever since.

    To make it worse, when I joined Microsoft, I was surrounded by passionate people who also worked well beyond a forty hour work week.  I was in the zone.  Not just that, I was spending my time in my passion, so I never burned out.  Throwing hours at problems was no sweat and I liked the pace.

    My first taste that this was a problem was when my first manager sat me down and said that my perpetual over-time was a problem.  He said I was throwing off the head count.  I was doing the work of multiple engineers.  It made it hard for him to argue for heads if the work was getting done, and he worried that I would burn out.  Luckily, I never burned out.  It turns out the primary ways you burn out are by trying to solve the same problem over and over like a broken record with no results, or by spending time in things that drain you.  The simplest cure for burnout is spending more time in your passions or moving to new problems or changing your container.

    My second taste that this was a problem was when I joined patterns & practices.  After my first few projects, my manager told me I needed to find a way to work 40 hours and produce the same or better results.  Additionally, I had to get more effective results from the rest of the larger team.  In other words, I wasn’t setting a good example, I set an impossible bar, and I had to make the most of the team (Oh, and did I happen to mention that this larger team was always a distributed team around the world, from UK to Argentina to India and the US?)  The good news is, the story has a happy ending …

    To bottom line it, by setting a constraint around the 40 hour mark, it dramatically improved team processes, improved clarity on impact, and it helped flow value versus waiting for big bang.  This also had an amazing set of by-products, including achieving work-life balance for all team members, helping people spend more time in their passion and strengths, reducing downstream risk and surprises, and keeping the energy strong across the team in a more durable way.  It also helped us improve our daily, weekly, and monthly rhythms of results while improving our team practices and procedures.  We basically moved up the effectiveness stack and it got faster each time we had to build a new team.

    The basic approach I used is what I call Monday Vision, Daily Outcomes, and Friday Reflection.   I did “show and tells” on Thursdays as a forcing function to drive results but to also give folks on the team a chance to show off their work and get feedback earlier versus later.

    Call to Action
    Make a 40 Hour Work Week an initiative, for yourself, for your team, or for your organization.  Start small.  Lead by example.  Start with yourself, then help other people.  Focus on finding more effective ways to do things, focusing on the vital few things that matter the most, playing to your strengths, and improving your energy.  Know what counts and be able to put your finger on it.

    You can explore the system in Getting Results the Agile Way.   The Scenarios and Solutions for Getting Results and the Guidelines for Getting Results are fast tours of the landscape and rich with strategies and tactics for changing your game.

  • J.D. Meier's Blog

    Getting Results Knowledge Base Unleashed

    • 0 Comments

    Today, I significantly revamped the Knowledge Base for Getting Results the Agile Way.  The Getting Results Knowledge Base features templates, tools, and step-by-step How Tos for adopting and implementing Getting Results the Agile Way.  Here is a screen shot:

    KnowledgeBase

    Templates and Tools for Making Things Happen
    The Getting Results Knowledge Base is a non-trivial collection of some serious know-how that you can use to change your game.  The Knowledge Base includes:

    If you ever get lost or if you’re helping somebody get up to speed, simply refer to the one-page guide … Getting Started with Agile Results.  It shows you how to adopt Agile Results in three easy steps.  Another good entry point, and one you might end up using as a daily reminder, is the Checklist for Getting Results.  It’s a tickler list of one-liner reminders and prompts to help you get better results in any situation.

  • J.D. Meier's Blog

    How To Adopt Getting Results the Agile Way

    • 0 Comments

    image

    This is a step through of how you can adopt Getting Results the Agile Way. Getting Results the Agile Way is a simple system for meaningful results in work and life.   It’s an integration and synthesis of best patterns and practices for time management, productivity, motivation, and project management for getting faster, simpler, and more effective results. (You can read some testimonials from users of Getting Results the Agile Way.)

    You can adopt the basics of Getting Results the Agile Way in under five minutes. You can adopt or tailor pieces as you see fit. By adopting The Rule of 3; the Monday Vision, Daily Outcomes, Friday Reflection pattern; and the life Hot Spots, you establish a rhythm of results and achieve work life balance. Agile Results is action-oriented with an emphasis on outcomes over activities, while supporting continuous growth and learning. Agile Results also helps you manage your energy across your work and life, giving you the power to achieve whatever you want with sustainable results.

    Contents
    • Objectives
    • Summary of Steps
    • Step 1—Adopt The Rule of 3
    • Step 2—Adopt the Monday Vision, Daily Outcomes, Friday Reflection Pattern
    • Step 3—Adopt the Life Hot Spots

    Objectives

    • Learn how to adopt The Rule of 3 to focus and prioritize your action.
    • Learn how to adopt the Monday Vision, Daily Outcomes, Friday Reflection pattern to establish a rhythm of results.
    • Learn how to adopt life Hot Spots to achieve work-life balance and spend your time and energy on the most important things in your life.

    Overview
    Agile Results is a simple and effective results system for personal productivity. It works by establishing a rhythm of results, prioritizing value, and taking simple, consistent actions towards your results. By treating time as a first-class citizen, you can set effective boundaries and achieve work-life balance. By having a system you can count on, it helps you get back on your feet again. The simplicity is part of its effectiveness. The heart of the system is the synergy of three things: The Rule of 3; the Monday Vision, Daily Outcomes, Friday Reflection pattern; and life Hot Spots.

    The Rule of 3 is about identifying three outcomes each day. By starting your day with three outcomes, you clarify what you want to accomplish. When you know what you want to accomplish, you can prioritize more effectively, and you can let things go. Rather than focus on your endless backlog or overload, you shift your focus to the three most valuable things you can do today. Each day is a fresh start; so is each week, each month, and each year. It’s your chance to wipe the slate clean and cherry-pick your most important items. Rather than focus on everything that you haven’t finished, you focus on answering the question, “What’s the next best thing for you to do?” The most important thing about The Rule of 3 is that you are focusing on outcomes over activities. You are also limiting what’s on your focus so that you don’t overwhelm yourself. When you finish your three outcomes, you can always grab more. This is about setting your sights on three meaningful results for you, and using that to drive your day. It can be as simple as (1) have a great lunch experience with a friend; (2) complete 10 draft pages for your next book; and (3) complete an outline of your project plan.

    The Monday Vision, Daily Outcomes, Friday Reflection pattern is a simple weekly results system. On Mondays, you identify the three most important results for the week. Each day, you identify the three most important outcomes for the day. On Fridays, you reflect by asking yourself what are three things going well and what are three things to improve?

    Life Hot Spots is a heat map for your life and a way to invest your time and energy in areas that matter: mind, body, emotions, career, financial, relationships, and fun. When you invest in these areas, the sum is more than the parts. By spending time in fun, you keep your mind and emotions in good shape. By investing in your mind, body, and relationships, you perform better at work. The most important concept for the life Hot Spots is to set boundaries in terms of time or energy. For example, you might need to set a boundary on how much time you spend at work, using a rule such as “Dinner on the table at 5:30.” You might want to set a minimum of time in your relationships, such as “Tuesday night is date night.”

    Summary of Steps
    • Step 1—Adopt The Rule of 3
    • Step 2—Adopt the Monday Vision, Daily Outcomes, Friday Reflection pattern
    • Step 3—Adopt life Hot Spots

    Step 1—Adopt The Rule of 3
    The simplest way to adopt Agile Results is to start using The Rule of 3 to start your day. The Rule of 3 is about identifying three outcomes each day. Each day is a fresh start, and three is an effective limit. The Rule of 3 has been used with success in a variety of contexts. It’s sticky, and people tend to be good at remembering things in threes. To use The Rule of 3, start your day by asking either, “What are 3 outcomes I want for the day?” or “What are 3 results I want for the day?” While it’s recommended that you write them down, it’s more important that you internalize them, so you don’t have to look them up. A simple check is if you can say your three outcomes for the day, whether you’re in the hall or in your car or wherever you are.

    Apply The Rule of 3 to the Day, the Week, the Month, and the Year
    You can use The Rule of 3 to help you see the forest from the trees. By identifying your top three results you want for the day, the week, the month, and the year, you keep better perspective.

    image

    Don’t overwhelm yourself. The Rule of 3 is about identifying only and no more than three outcomes each day.

    Guidelines
    Here are some guidelines for adopting The Rule of 3:
    • They are your tests for success.
    • You can prioritize any incoming actions against your desired results.
    • When you get distracted throughout the day, you can remind yourself what you wanted to accomplish.
    • If you already have tasks lists, you can simply add your 3 outcomes to the top. This reminds you what you’re driving for.
    • You learn your focus and capacity. If you aren’t completing the three results you set for the day, you might be picking the wrong things, or you might be biting off more than you can chew.

    If you’re not sure where to start, pick one thing for yourself, one thing for your family, and one thing for your job each day.

    Checkpoint
    • Can you say your 3 outcomes for today out loud?
    • Are your three outcomes the three most important things you really want to accomplish today?
    • Are your three outcomes actually results or achievements (not activities or tasks)?

    Step 2—Adopt the Monday Vision, Daily Outcomes, Friday Reflection Pattern
    This is your pattern for weekly results. The idea is that each week is a fresh start. To adopt the Monday Vision, Daily Outcomes, Friday Reflection pattern, at the start of the week, identify your three most important outcomes for the week. In other words, if you look ahead to Friday, what three results would you like to have achieved? At the start of each day, identify your three most important results. On Fridays, start your day by asking yourself, “What are three things going well?” and “What are three things to improve?” You can then feed your results into the next week. For example, if you find that you are accomplishing your three results for the week, are they the right things? Can you push back on what’s on your plate? If, instead, you find that you aren’t finishing your three results each day, is it because you are getting distracted? Are you not picking the right three things to begin with? This is your continuous improvement loop. The more effective feedback you provide yourself, the more you can improve your results. Each week is a new chance to tune your results and learn more about your capacity and bottlenecks.

    Summary of the Monday Vision, Daily Outcomes, Friday Reflection
    The following table summarizes the Monday Vision, Daily Outcomes, Friday Reflection pattern:

    image

    Guidelines
    • Stick with three outcomes for the week. Don’t create a laundry list of results. Identify the three most meaningful outcomes. You can always bite off more, after you complete your three results.
    • Identify your three outcomes for the day, at the very start of your day, before you are overwhelmed or in the thick of things. This is how you drive your day versus react to it.
    • When you identify three things going well, try to find the success pattern so that you are conscious of why and how.
    • When you identify three things to improve, try to find the specific patterns that aren’t working so that you can identify specific actions to change, whether it’s thinking, feeling or doing.

    Checkpoint

    • Do you know your three most important outcomes for the week?
    • Do you know your three most important outcomes each day?
    • Do you know your three key things going well?
    • Do you know your three key things to improve?

    Step 3—Adopt Life Hot Spots
    Life Hot Spots are a set of high priority categories that help determine where to spend your time and energy. By setting effective boundaries, you’ll achieve work-life balance and improve your results in all areas of your life. The life Hot Spots are

    • Mind
    • Body
    • Emotions
    • Career
    • Financial
    • Relationships
    • Fun

    By investing in these areas, you set yourself up for success, and you help limit the impact of potential downturns. This also gives you a concrete way to achieve work-life balance, in the worst of times and in the best of times. To adopt the life Hot Spots, simply use the categories as a lens to identify your pain or opportunities, what actions or outcomes you want to focus on, and set more effective boundaries.

    Setting Boundaries
    You should set minimums and maximums for your Hot Spots in terms of time and energy. This keeps you from getting over-invested. Use your Hot Spots to set boundaries. Set a maximum on career and a minimum on relationships, body, and fun. In the right categories, setting a minimum helps you to avoid getting unbalanced and to improve other categories, while setting a maximum encourages you to learn to be more effective. For example, if you only have 8 hours to throw at your day, you’ll use them wisely. The worst mistake is to throw more time at problems. The key is to reduce time spent, while increasing value and improving your efficiency and effectiveness.

    image

    In this case, step one is deciding to spend no more than 50 hours each week on your career Hot Spot. Now it forces you to bite off only what you can chew. This is how you start improving managing what’s on your plate and pushing back more effectively. You can only spread your life force over so much. The categories help support each other. If not properly allocated, they can also work against each other.

    Guidelines
    • Set a maximum of time to spend on career.
    • Set a minimum of time to spend on your relationships.
    • Set a minimum of time to spend on fun.
    • Set a minimum of time to spend on your body.
    • Test your results. If the time limits you set aren’t working, adjust them and test again.
    Checkpoint
    • Are you investing the right amount of time in the right places?
    • Are you reducing your worst pain points?
    • Are you leveraging your best opportunities?
    • Does your investment of time and energy actually reflect what you want to accomplish?

    My Related Posts

  • J.D. Meier's Blog

    Value is in the Eye of the Beholder

    • 0 Comments

    One common pitfall is throwing a lot of time and effort at things, only to find that when you’re done, nobody cares. If you keep feeling a lack of appreciation, then ask yourself, “Who was I doing it for?” If it was for yourself, was it what you most cared about, or could you have invested the same time in something else and felt like you made a more important impact. If you were doing it for somebody else, ask them whether what you’re working on is really the most important thing to them. If you’re working on a lot of low-priority items, don’t expect to get the rewards. In fact, a pattern is that the more you work on low-priority items, the more you become a dumping ground. The more you become a dumping ground, the busier you get; the busier you get, the more overloaded you will feel. Now the worst happens—you’re overworked, underappreciated, and no fun to be around. By failing to work on what’s valuable and by failing to understand and reset expectations, you’ve worked yourself into an unrewarding, high-stress scenario.

    Browse more tips on getting results at http://GettingResults.com

  • J.D. Meier's Blog

    Slides for Getting Results the Agile Way

    • 0 Comments

    I’ve added a set of slides on Getting Results the Agile Way to the Getting Results Knowledge Base.   The overview slides provide a quick walkthrough of the system and then the additional slides are short step throughs of key ideas (The Rule of 3, Monday Vision, Daily Outcome, Friday Reflection, and Hot Spots.)  (Note that the slides are hosted on Slideshare.)

    Overview of Getting Results the Agile Way - Be the author of your life and write your story forward. Getting Results the Agile Way is a personal results system for work and life. It's a simple system for meaningful results. It helps you work on the right things, at the right time, with the right energy, the right way.

    image

    The Rule of 3 - Setting a limit of 3 makes it easy to focus and prioritize on meaningful results. Grouping things in 3's makes them easy to remember and repeat.

    image

    Monday Vision, Daily Outcomes, Friday Reflection - This is a pattern for weekly results. It's a way to use stories to make your week more meaningful and connect to your values and passion. Each week is a fresh start.

    image

    Hot Spots - Hot Spots are a way to see the forest from the trees. You can think of your life as an investment portfolio or heat map of what's important. Hot Spots help you invest your time and energy more effectively.

    image

Page 1 of 2 (29 items) 12