Free Microsoft Book: Patterns for Parallel Programming: Understanding and Applying Parallel Patterns with the .NET Framework 4


Thought I’d share in case you don’t already have this.  Has lots of examples and is pretty thorough.

Patterns for Parallel Programming: Understanding and Applying Parallel Patterns with the .NET Framework 4


Here’s the Overview:

This document provides a detailed and in-depth tour of support in the Microsoft® .NET Framework 4 for parallel programming. This includes an examination of common parallel patterns and how they’re implemented without and with this new support in the .NET Framework, as well as covering best practices for developing parallel components utilizing parallel patterns.



Visual Studio 2010 UML Extensions for Class Diagrams

I’ve always used Enterprise Architect for creating UML diagrams because it’s packed with tons of usability features that make it easy to create various diagrams.  My  company decided to use Visual Studio 2010 for all UML going forward.  Visual Studio is an unbelievable development tool that is at the top of the list for software that developers like to code with.

Unfortunately, creating UML diagrams in VS has a lot to be desired.  To create modeling projects in visual studio, you first must download the Visualization and Modeling Feature Pack.  Once this is done, you can create a new modeling project that supports the following diagrams.

After spending a few days creating class diagrams, I felt frustrated with how much effort it takes creating elements in each of the diagrams.  I’m used to having right-click options that allow me to create new elements that are attached to them element I’ve clicked on.  The only way I could do this was either drag the object to the diagram or right-click and add.  Once the object was placed where I wanted it, I have to use the mouse to click on the association I want in the tool bar then click on the two objects that I want to associate together.

Luckily Microsoft has built an extension framework for Visual Studio which allows you to add commands, tools, templates, etc. to the environment.  After downloading the Visual Studio Visualization and Modeling SDK, you can create new projects for creating commands, gestures, or validation extensions for modeling projects.

I used the Command Extension project to create a new project that has a bunch of new right-click commands and double-click commands for the class diagram.  Here’s a chart showing the  new double-click shortcuts that I’ve created:

The menu options shown in the red circle below are installed with the extension and will show when you click on the appropriate elements in the class diagram.  These options allow for quick class creation with association links.  The menu options will be disabled if you have not clicked on the required number of elements.

The disabled options for creating associations are not enabled in the screenshot since I’ve only clicked on one element.  If two elements are selected, then the Create Class… options will be disabled and the Create Association… options will be enabled.  Here’s a reference chart that describes what each Create Class option should be used for.

Go to the Microsoft Visual Studio Gallery to find the extension or just go to the Extension Manager under the Tools menu in Visual Studio.   The extension is called “Brian’s UML Extensions”.  After you’ve install the extension, you will need to restart.  This extension is only available for VS Ultimate.  Eventually, I’d like to add extensions for the other UML diagrams, but for now, this is all that I had time for.


If you’re interesting in creating your own Visual Studio UML Extensions, then check out this page on the MSDN website.

GUI Architectures

Post on UI architectures by Martin Fowler.

TDD vs. Non TDD

Read an interesting article today comparing the time to develop something with and without TDD.

Here’s information for the lab:

Here’s a post with the results:

Senior Software Engineer Interview Questions

Scott Hanselman has posted some new questions here that you can use to interview a senior level software engineer.  There’s a lot of good questions and several are ones I need to look up myself :).  I think I may try posting answers to as many of these questions as well as some of the questions he’s listed in an older post.

I also found a link in the comments for 5 essential phone screen questions.  Take a look here when you get a chance.

Patterns for Splitting User Stories

Here’s a helpful link with tips on creating user stories based on the INVEST model (Independent, Negotiable, Valuable, Estimable, Small, and Testable)


How Facebook Ships Code (via FrameThink – Frameworks for Thinking People)

I’m fascinated by the way Facebook operates.  It’s a very unique environment, not easily replicated (nor would their system work for all companies, even if they tried).  These are notes gathered from talking with many friends at Facebook about how the company develops and releases software. It’s been over six months since I assembled these observations and I’m sure Facebook has continuously evolved its software development practices in the meanti … Read More

via FrameThink – Frameworks for Thinking People