Microsoft Virtual Launch Event

by Matt Milner 3. May 2010 05:27

Microsoft is holding a virtual launch event on May 20th related to many connected systems technologies including AppFabric (on-premise and cloud) and BizTalk Server.  If you are interested in hearing more about these technologies and how Microsoft feels the on-premise solutions align with the cloud, you should check out this event.  Follow the link for details, calendar link, etc.



Application Infrastructure: Cloud Benefits Delivered

Want to bring the benefits of the cloud to your current IT environment? Cloud computing offers a range of benefits, including elastic scale and never-before-seen applications. While you ponder your long-term investment in the cloud, you can harness a number of cloud benefits in your current IT environment now.

Join us on May 20 at 8:30 A.M. Pacific Time to learn how your current IT assets can harness some of the benefits of the cloud on-premises—and can readily connect to new applications and data running in the cloud. As part of the Virtual Launch Event, Gartner vice president and distinguished analyst Yefim Natis will discuss the latest trends and biggest questions facing the Application Infrastructure space. He will also speak about the role Application Infrastructure will play in helping businesses benefit from the cloud.  Plus, you’ll hear some exciting product announcements and a keynote from Abhay Parasnis, GM of Application Server Group at Microsoft.  Parasnis will discuss the latest Microsoft investments in the Application Infrastructure space aimed at delivering on-demand scalability, highly available applications, a new level of connectivity, and more. Save the date!


BizTalk Server | General Musings | AppFabric

Upgrading Visual Studio Solutions with PowerShell

by Matt Milner 9. April 2010 07:20

With the impending release of Visual Studio 2010, I find myself with large numbers of solutions that need be upgraded from VS 2008.  The thought of opening them all manually and running the upgrade wizard was daunting.  Then I considered that I would also need to change the target framework of the projects to .NET 4, and in some cases update the references (why the target framework change didn’t fix that I’m not sure).  So I did what any lazy programmer does, I wrote some code to do it for me. 

At first, I just wanted to upgrade all of my solutions, so I used some PowerShell to find all the solutions and invoke devenv.exe passing in the solution and the /upgrade switch.  This gets a little tricky, as passing command line parameters to executables in PowerShell always seems harder to me than it should be.  But I came up with this one line script that handles it nicely.  I get all the solution files, then do a for each.  The trick was to set variables for the parameters and then invoke it all at once with the variables.  I sleep after so that too many solutions aren’t open at once.  You can play with the sleep time for best results, or remove it if you don’t need it. (Note that I have a 64 bit installation of Windows, so the (x86) in the path)


gci * -include *.sln -recurse | foreach-object {$switchName= "/upgrade"; $slnPath = $_; & 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe' $slnPath $switchName; start-sleep -seconds 10}


That got all my solutions upgraded, but the target framework for each was still .NET 2 or .NET 3.5.  So I used a macro from The Visual Studio Blog to retarget all of my applications to .NET Framework 4.  To run the macro, I used a similar approach with PowerShell, but this time using the /command switch and the name of my macro. 

gci * -include *.sln -recurse | foreach-object {$sln = $_; $vs = "c:\program files (x86)\microsoft visual studio 10.0\common7\ide\devenv.exe"; $cmd = "/command"; $cmdparam = "`"Macros.MyMacros.ProjectManagement.SwitchFramework`""; & $vs $sln $cmd $cmdparam }


In this case, I had to wrap the command in quotes, so I used the PowerShell escape character (`). The gotcha with this command is that the IDE stays open after executing the macro.  If you have a lot of solutions, you can run out of resources on your system.  So you may want to break this up and only process a small set of solutions at once.

Finally, I found that when I tried to build my solutions, many of them were referencing the 3.0 version of System.ServiceModel and System.Runtime.Serialization.  I used another macro, and the same PowerShell command, to switch the references.  The macro I used is:


Sub SwapReferences()
        For Each project As EnvDTE.Project In DTE.Solution.Projects
            If project.Kind = PrjKind.prjKindCSharpProject OrElse project.Kind = PrjKind.prjKindVBProject Then
                Dim vp As VSProject = CType(project.Object, VSProject)
                Dim ref As VSLangProj.Reference = vp.References.Find("System.ServiceModel")
                If (Not ref Is Nothing) Then
                End If
                Dim dcref As VSLangProj.Reference = vp.References.Find("System.Runtime.Serialization")
                If (Not dcref Is Nothing) Then
                End If
            End If
    End Sub


Pretty simple and targeted, but it got the job done to replace the references I cared about. 

So, with a few macros, and a little PowerShell, I was able to convert over 30 solutions in a few minutes. 


General Musings

Getting SQL Server 2008 Management Studio Express installed on Windows 7

by Matt Milner 1. March 2010 07:19

This morning I found myself in need of the SQL Server management studio on a new box I built a few months ago. So far, I’ve only installed Visual Studio 2010 RC and the SQL Server 2008 Express that came with it.  I was first directed to use the Web Platform Installer which, while it is a great tool, didn’t provide any details with the installation ultimately failed.  After trying to run the installer as an administrator directly (outside the Web PI) I was warned that I needed to re-apply SQL Server 2008 Service Pack 1. No biggie, I hit run anyway.  Then the real problem.  The installer kept failing saying that it required .NET 3.5 with Service Pack 1.  Windows 7, as you may know, comes with .NET 3.5 SP 1 installed by default. Well, sort of. 

While Windows 7 basically has 3.5 SP 1 on it, it really has a comparable version of the .NET framework installed.  Most machines (pre-win7) with 3.5 SP 1 have a framework version of something like 3.5.30729.1 .  On Windows 7, the framework version is: 3.5.30729.4926.  If you look in the registry, under HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5\   you will find this version number, but also a key named SP.  On Windows 7 that value is zero (0). 

Solution, change the registry entry for the SP key from 0 to 1 (one) and then run the installer. Voila, installs with no problem.  Now I just need to reapply SP1 (well, after actually walking through the less-than-intuitive installer to apply the management studio) and I’m good to go. 

Hope this saves someone else some time. 

[Update 3/3/10: fixed registry key path]


General Musings

“Oslo” becomes SQL Server Modeling

by Matt Milner 10. November 2009 07:39

I’m not surprised at all about this announcement from Doug Purdy about the changes coming to the “Oslo” tools.  Ever since the Connected Systems group was “merged” with the data group, it seemed a foregone conclusion that the modeling work would begin to heavily focus on the Microsoft data stack. I’ll wait to see how the tools evolve before making an opinion about their usefulness.  I’m actually optimistic that in the end, more Microsoft developers will be better off as the tools will be more likely to help them in their everyday development.  As it was, the M language and associated tools seemed to be targeting a niche market of language developers.  Looking forward to PDC and hearing all about how these new tools are going to help me model my application data and hopefully help build up a good deal of the infrastructure for my data access layer. 


General Musings

New podcast on .NET Service Bus with Jeff Brand

by Matt Milner 4. September 2009 17:18

A couple of weeks ago, I sat down with Jeff Brand to do a podcast on the .NET Service Bus and Cloud Computing in general.  We had a fun conversation about the cloud and why it is such a big deal, then dove into more detailed conversation about the .NET Service Bus. Get the link for the audio from Jeff’s post

I’m really getting excited for the release of Windows Azure and seeing the kinds of applications people build on this new platform.


General Musings | Windows Communication Foundation

Issues with Live Mesh on Windows 7 RC

by Matt Milner 15. May 2009 05:06

I recently took the plunge and upgraded my 64 bit desktop from Vista to Windows 7 RC and for the most part I’ve been very happy with it.  So far the only compatibility issues I’ve had were with some CD / DVD mounting tools and Live Mesh.  I quickly realized how much I’ve come to rely on Live Mesh to keep files in synch between my desktop and laptop.  All of my presentations and writing that I do live on both machines and I have a Tools folder with small utilities like .NET Reflector, Notepad2, etc.  So when Live Mesh kept crashing under Windows 7, I got a little miffed. 

I started by trying to set the compatibility to Vista or Vista Service Pack 1, but that didn’t fix the problem.  I kept getting errors that the Mesh Operating Environment had stopped working and after closing it, it would restart, only to fail again in a few minutes.  So, I did what any self-respecting developer does when they have a problem they can’t fix: I searched the web.  Nothing, no love at all.  I saw a few things about recent updates, which I’d installed already, and some registry hacks for the Win 7 beta, which were already incorporated into later builds of the product.  So finally, I did the only logical thing, I uninstalled Live mesh, logged into and got the installer, and re-installed.  A quick reboot, and all seems well.  So, for those of you out searching the internet for a fix, hopefully this helps you out. 

Of course, this is on My Machine, which is a home built x64 machine with an upgrade from Vista SP 1 to Win 7 RC.  With all that in the mix, your mileage will likely vary.  ;)    


General Musings

new cloudApp() developer competition

by Matt Milner 5. May 2009 03:56

Looking to show off your skills in building cloud applications using either .NET or PHP?  Like to make a little $$ while you are at it.  Well, if you bring your A game, you just might have a shot in the new developer competition that Microsoft is running.  You can check out the details on the contest web site, and find links to all the tools you need to get started. 

I’m looking forward to seeing some cool ideas come out of this and participating in the community judging. 

From the website: 

new CloudApp() is a US-based developer challenge for .NET & PHP developers creating cloud applications or services (hereafter "application") on the Azure™ Services Platform. Have your application judged by industry leaders Om Malik and Michael Cote and share your cloud coding skills with other developers. Grand Prize Winners will be announced on stage at Structure 09 and featured on

Unfortunately, for those of you not in the US, you read that correctly, and this is only open to folks residing in the 50 states and DC.  I’m sure it is for legal reasons, but that definitely limits the amount of cool submissions we’ll be seeing.


General Musings

Twitter or Syndication (RSS or ATOM)

by Matt Milner 27. April 2009 11:17

A friend of mine, Jon Helmberger, posted on this Facebook status the other day a great quote which really pointed out how some people use technology that is trendy, and not necessarily the most appropriate technology.  “If RSS had a cooler name we wouldn't have shenanigans like this...” with the following link:  In a nutshell, local Minnesota municipalities are posting information, of varying usefulness, on Twitter and Facebook. 

I realize it must be hard for organizations that are not on the cutting edge of technology to make decisions about what to pick. For that matter, I have been talking to a lot of developers lately who have trouble keeping up with all the technologies, even from a single vendor like Microsoft.  But it is frustrating to see people gravitate to the hot item and try to use it without really figuring out if it is the right technology for the job.  I can’t imagine that with the 140 character limit in Twitter, an organization can convey much useful information.  If the posts always end up linking to something else, how useful is that?  It seems to me that having an RSS feed would be the more appropriate mechanism for conveying this type of information.  There are so many tools for reading RSS / ATOM feeds and including them in a page, etc.  Sure, a Twitter feed can be read as an RSS feed, but again, the micro format seems like an inappropriate means conveying anything other than the simplest bit of information.

We at Pluralsight have started using these technologies (Facebook and Twitter) to convey information about what is happening with classes, content, etc.  Of course we are mostly on the cutting edge of technology and hopefully have some idea of the best way to use these technologies.  However, even we are still learning how best to use these technologies and which information is best suited for each format. 

What do you think, is Twitter an appropriate tool for this sort of thing?  Do enough, or the right, people use it to make it worthwhile?  Or are too many people caught up in the hype?  What tools do you find work best for you to get information? 


General Musings

Thoughts on a cloud manifesto

by Matt Milner 27. April 2009 11:15

Recently, Steven Martin at Microsoft talked about a cloud manifesto that would presumably define some agreement around open standards for interoperability in the “cloud”.  Aside from all of the politics and secrecy, I’m wondering what this would actually look like.  I’m all for open standards and I think the big players should be involved in the discussion.  But what standards do we need that we don’t already have?  And do more standards really make things better? 

The actual manifesto can now be found at  and provides a quick look at the actual statements and a list of supporters.  I can’t help but notice that not only is Microsoft not on the list, but neither are Amazon, Google, and some other major players in the cloud space.  It makes me really question the purposes behind this manifesto and why it was created.  A lot of the points are certainly valid and easy to agree with such as the need for security and interoperability.  I think what most bugs me about this is the idea that a user should be able to pick up their application from one cloud and drop it in another.  Obviously I do my work almost exclusively on the Microsoft platform, buy my sense is that the whole write once, run anywhere thing didn’t work for Java, so I’m not too optimistic about it working in the cloud.

I’m of the mind lately that standards, while helpful can also become overkill. Look at SOAP. Having interop for security enables the connection of code on different platforms which is a great thing.  But then we have standards for transactions, reliable messaging, etc. which are primarily useful within the enterprise to connect disparate systems. Yet many today are finding SOAP to be overkill and turning to REST.  REST still uses standards like HTTP and often XML, but the architecture and the implementation is based more on using what works and keeping it simple.  

I’m all for a cloud where users can have their application connect and interoperate between clouds and private data centers in a secure fashion, but like the manifesto says, I don’t think we need new specifications, we have most of what we need to achieve that interoperability and Microsoft at least is showing its commitment to those existing standards with the .NET Services and Azure platform.  In the end, I think this will, and should, come down to who has the best platform, and who has the best tools for developing on that platform.  I think Microsoft has some great potential in this arena, and I’m excited to watch the Azure platform mature. 

Time will tell. 


General Musings

ugMix event in Minneapolis May 8th

by Matt Milner 15. April 2009 05:38

If you are in the local area, there is a pretty cool event coming to town on May 8th.  From Jeff Brand:

Join us for a special event co-sponsored by the .NET User Group & Silverlight User Group. This month we’re bringing highlights from the MIX09 conference to you!! You’ll get detailed information and in-depth demonstrations on the upcoming release of Silverlight 3 and Expression Blend 3 as well as see some of the great new technologies that were introduced at MIX09.

So, if you didn’t make it to Mix and you want to learn all about the cool technologies first hand, get registered soon.  Don’t think this will fill up fast? Think again.  In addition to the MIX content, Microsoft is doing a screening of the new Star Trek movie after the event.  That’s right, run don’t want to that website and register and find your old communicator and Spock ears! 


General Musings