Posts

Visual Studio Hotkey for Web Devs: Attach to W3WP

Friends keep asking for this, so here are the instructions: In VS2010 open the Tools / Macros / Macro IDE menu item Create or edit the MyMacros project Add a new Module called "AttachToProcess" Replace all the code with the following: Imports System Imports EnvDTE Imports EnvDTE80 Imports EnvDTE90 Imports EnvDTE90a Imports EnvDTE100 Imports System.Diagnostics Public Module AttachToProcess Sub IISWorkerProcess() Dim attached As Boolean = False Dim process As EnvDTE.Process For Each process In DTE.Debugger.LocalProcesses If process.Name.EndsWith("w3wp.exe") Then process.Attach() attached = True End If Next If Not attached Then MsgBox("Couldn't find w3wp.exe") End If End Sub End Module Save this macro Close the Macro IDE Right click the VS2010 menu bar Select Customize... Click Keyboard... Select Macros.MyMacros.Attach...

Global Day of Coderetreat - Attendee Report

Yesterday was my first opportunity to attend a Coderetreat. I am so glad I did. What an amazing day. I think every developer should attend a Coderetreat. Using the closing circle format, allow me to share my experience as an attendee of the Salt Lake City event. What, if anything, did you learn today? I learned that I need to slow down and focus on writing code well. The mute session taught me how hard it is to see an architectural vision from the code. It felt like I was painting a picture using the stippling technique and my pair could only see the dots, not the image. I learned that the idea of intention-revealing, self-documenting code cannot be judged by the author only by another developer. I also learned that Amber Smalltalk is pretty sweet. Thanks, Johnny T! What, if anything, surprised you today? The biggest surprise for me was how many developers said the Coderetreat inspired them to go out and actually do TDD. I had expected that most of the attendees would be ...

Global Day of Coderetreat - Organizing

Yesterday was the first ever Global Day of Coderetreat . Using the closing circle format, allow me to share my experience as an organizer of the Salt Lake City event. What, if anything, did you learn today? The first lesson I (re-)learned as an organizer is that we have an awesome community both globally and locally. There were so many people willing to help out and make this a great day for coders. Of the many tasks required to make the day happen, I could only do a portion on my own. Kay Johansen did an amazing job as the facilitator. I don't know how to thank her enough for all she did. Mike Clement took the lead in communicating with the facility sponsor including making last minute calls to get doors unlocked so we could set up early. The STG office staff, including Crystal, Kelly, Thayne, Marth, Ron and Chick, took care of our catering needs including correcting a communication error with the restaurant. All of the attendees helped clean setup and clean up the room....

Linux and Coderetreat

So, I haven't posted in a while. I guess I've been busy? I dunno. I have been organizing/coordinating the Salt Lake City event for Global Day of Coderetreat . I guess that is keeping me busy. We have a facility , a facilitator and meal sponsor , so we are getting pretty close to ready. Good thing, since it is only 3 weeks away! Oh yeah, we're almost sold out too, so if you wanna come, you better register soon! The other thing eating up my free time is Linux. Specifically Ubuntu. As you may remember, I decided to run an Ubuntu VM on my Windows 7 laptop. I really want to expand my skills in new (and somewhat uncomfortable) directions and this seemed like a great option. I have been going through the 7 Languages in 7 Weeks book with the Utah Software Craftsmanship group and it seems like the Linux support for a lot of these languages is better/easier. Here is my experience and what I have learned so far: The first thing I did was use the Wubi installer to create a du...

SOA : RPC : : Object Oriented Design : Procedural Programming

Back in 2008, I attended SDBest Practices in Boston. I had recently read Jimmy Nilsson's Domain Driven Design book. One of the contributors to the book was Udi Dahan, so when I say that he was talking at the conference, I was excited to attend his session: How to Avoid a Failed SOA. At that point, I didn't know much about Service Oriented Architecture, but what he described as a failure mode sounded like an architecture I had discussed and planned with coworkers. That session was the start of a journey into learning about SOA. I spend my spare time reading about SOA. I read Udi's blog . I read Thomas Erl's book Service Oriented Architecture . I read SOA in Practice . I played with various ESBs and Message Brokers. I built a pretty sweet prototype of my company's systems using NServiceBus . I even attended the SOA World 2009 conference in NYC and a full week immersion course on SOA taught by Jean-Jacques Dubray . In the end, I never took any of it to production b...

Into the mine shaft..

Image
I think we are all somewhat familiar with the concept of canaries in coal mines. As recently as 25 years ago, canaries were taken into coal mines as a way to detect poisonous gasses such as CO 2 and methane. The canary would sing all day long unless overcome by the gasses. At this point, the miners would realize their environment had become toxic and they would flee for their lives. Development teams sometimes find that they have a canary in their midst. This person seems to point out unseen dangers ahead based on the current path. The things that the canary sings about aren't really affecting the team, but he or she claims they will if not corrected. How do you know if you have a canary or a whiner? That is tricky. The best advice I have is to look to experience. Does the person have experience working with multiple teams in multiple environments? Has she experienced similar situations in the past? Does she give recommendations for alternate courses of action? Is she passionat...

Model View Presenter - A Path Forward from WebForms

Image
This post is a review of my September 10th presentation at Utah Code Camp . "So you read and hear about Test Driven Development, MVC Frameworks, Continuous Integration and the safety net provided by high levels of unit test coverage. But you work on a WebForms app that has been around since .NET 1.1. It has thousands of lines of code in the code behind classes and you know that isn't easy to test. How can you experience all of these wonderful things you read about? The Model View Presenter pattern is here to rescue you. We will discuss the purpose and structure of MVP as it is applied to WebForms. We will go through a demonstration of some relatively safe refactorings that allow you to start bringing your unruly code under test. We will then add tests using NUnit and Moq. We will wrap up the discussion with a road map from WebForms chaos through Model View Present into the promised land of the MVC frameworks." Having worked on ASP.NET web sites/apps since .NET 1.0 bet...