Archive for April, 2010

Setting up MSDeploy on a Development Server

It’s not enough to just install MSDeploy on a server to allow Visual Studio 2010 to connect to the server. If you don’t follow the steps below, you will probably get 403 errors when trying to connect.

  1. When adding the Web Server (IIS) role, be sure to install Management Service.
  2. In the Services snap-in, find the Web Management Service and set its startup to Automatic (it’s manual by default). Don’t start it yet.
  3. Open the Internet Information Services Manager, and select the server.
  4. Open the Management Service feature.
  5. Check Enable Remote Connections.
  6. Choose a port (or keep the default), IP, Certificate, choose any restrictions you might require.
  7. In the Actions part of the right pane, click Apply.
  8. Click the Start link in the right pane.

Now IIS is configured to accept incoming connections. Open a port on the firewall for the port (8172 by default) you selected in step 6 above.

Install MSDeploy. Make sure you start the Web Deployment Service after the install, and set the service startup to Automatic.

Now you can use the Publish feature of Visual Studio 2010 to push directly to your development server.

See also: http://msdn.microsoft.com/en-us/library/dd465337.aspx

Posted on:
Posted in IIS, MSDeploy, Tools, Visual Studio | Comments Off on Setting up MSDeploy on a Development Server

Creating VPC Networks using Windows 7 as Host

I just want to track these two great posts on how to set up a virtual private network for hosting one or more virtual machines where you may not have an actual network connection. This happens to me when I’m giving presentations (like my upcoming one at Day of .Net!) and the host and guest machines need to be able to talk to one another, even if the host machine is not on any network.

Windows Virtual PC: Network Between Host and VM Using Loopback Adapter

Windows 7 & Network Loopback Adapter Settings

Posted on:
Posted in Speaking, Strange Problems, Tools | Comments Off on Creating VPC Networks using Windows 7 as Host

Ann Arbor Day of .Net 2010

I’ll be speaking at the Ann Arbor Day of .Net on Saturday, May 1st, 2010. It’s being held at Washtenaw Community College. Register for the event at http://www.dayofdotnet.org/AnnArbor/Spring2010/Registration.aspx 

Here’s the abstract for my talk:

The Demise of Xcopy Deployment

One of the great features of .Net when it first released was Xcopy deployment. No more .dll registrations, just copy the files to the web server. While this was a great feature for Microsoft developers, new problems emerged, specifically around managing web.config. Sections like connection strings and custom errors need to be managed between environments, which meant many copies of the files or scripts to change them. Other necessary steps, like managing permissions and IIS configuration were still outside the Xcopy process. A recent tool, MSDeploy, is now integrated into Visual Studio 2010 and makes managing these issues easier. Besides web.config, MSDeploy also manages file deployments and synchronization, ACLs, and IIS settings. If your deployments have multiple steps, need ReadMe files, or can’t be done by someone outside your team, you need to learn MSDeploy!

Link Love

I’ve run across some great blog posts lately, and decided I needed to share and keep track of them:


Cultivate Teams, Not Ideas at Coding Horror. I am totally with Jeff on this one, I learned this a while ago. I’ve taken my last two jobs based on the quality of people working there, not the work that they were doing. I love the quote:



In software development, execution is staying on top of all the tiny details that make up your app. If you’re not constantly obsessing over every aspect of your application, relentlessly polishing and improving every little part of it — no matter how trivial — you’re not executing. At least, not well.


I want to work with folks that feel this way about the work they do. Quality matters, and even more in my profession as a consultant. Quality work today gets me more work tomorrow, I can’t afford not to write top notch code and deliver quality solutions. Few things really upset me as much as shoddy work, whether out of ignorance or laziness. If you are a professional, there is no excuse for either one.


My co-worker David Giard (the host of Technology and Friends) wrote a very insightful post about being a programmer, It’s not easy, so don’t pretend it is. I agree with Dave 100% that we are undervaluing what value we provide with our skills. I pledge along with Dave to take the word “easy” out of my vocabulary when talking about the work I do. As someone who has to estimate work, I understand the complexity of what we do and struggle to communicate that to clients, and I think what Dave describes contributes significantly to that problem. End users/clients can’t easily see the complexity of what we do (“it’s just a form”), and can’t understand that adding “one extra feature” may actually triple the complexity of the solution, because our long-term message to them has been “it’s easy”.  This actually relates to what Jeff said about teams as well. Good teams care about the quality of their work, so don’t minimize what you do to your clients or users, show them the quality of what you can do.


Lastly, I want to point out the terrific blog written by an ex-coworker of mine, Bob Kreha. While Bob does not write about technical topics per se, his observations about management really strike home as a person who is frequently managed (aren’t we all?). I particularly enjoy his insights into leadership, since I view myself as more a of a leader than manager, even though I technically may be a manager. His post BFF’s has a quote that strikes a particular chord with me, talking about a manager’s relationship with his subordinates:



So if you want nirvana, start with commitment, fairness, shared credit, transparency and vision.  You might be surprised where you end up…


I can’t tell you how many times I struggle with my job because the management above me is not clear enough on where the collective “we” should be going. I frequently think “help me help you” when I am dealing with management. Everyone has an agenda, some folks more than others, but really I wouldn’t be working at a company if I didn’t think we were working toward the same goals. But with management it often seems like they are not on my side over some of the most petty issues. Really, due to a lack of transparency and shared vision, I think it’s petty when really it may not be, I just don’t understand the scope of the issue (or other pressures from management higher up) because no one is sharing. When it feels like maybe we are not on the same team, quite possibly someone is on the wrong team. The bottom line is, tell me where we need to go, I’ll help us get there. If you don’t tell me, I can’t help.


I’ve been pretty dark from blogging for a while, it’s good to get back into the swing of things. I’ll try to follow up with a more technical post soon.