Mix 09 Presentation Videos and Slides

If you're like me and couldn't attend the Mix 09 conference you can still check out the presentations on your own.  The Mix crew has put up a list of all the presentations with the video and slides. 

http://videos.visitmix.com/MIX09/All

Thanks guys!

with 0 Comments

Slipstream Visual Studio 2008 Service Pack 1

During the rebuild of my development environment I wanted to use the same trick I used before to reduce the size of my chained differenced VHD files.  (For info on my setup check out Andrew Connell's HOWTO: Use Virtual PC's Differencing Disks to your Advantage post.)  I haven't had time to dive into this so I did a quick search to see if there would be any issues, unfortunately there is.

According to Heath Stewart slipstreaming Visual Studio 2008 sp1 is not supported except for Active Directory deployments.  Heath's recommendation is to perform an chained unattended install of VS 2k8 and SP1. If you're interested in this approach here is info on how to do this with VS 2k5, steps for VS 2k8 should be very similar.  This would allow you to silently install both Visual Studio and sp1 on a machine.  To address the disk space requirements for installing sp1 Heath recommends you disable the patch baseline cache using the MaxPatchCacheSize policy.  No doubt this option will work but it isn't exactly what I wanted.  Also keep in mind there could be issues using this approach, if you need to repair or uninstall a patch you will be prompted for the source files, which you won't have. Since the forum post implied that an AD deployment of a slipstreamed install is supported I assumed this would still be possible so I wanted to give it a go.

As a starting point I looked back at Richard Rudek's post on slipstreaming Visual Studio 2005 SP1.  As I expected the steps are just about the same but I ran into a little bit of a snag.  Creating the Administrative installation of VS was no problem.  When I applied the service pack to the admin install I received the following error.

 

image

 

A quick Google search led me to the Bug.  Unfortunately the status for the bug is Closed (Won't Fix).  I searched the install folder for the WcfTestClient.chm file and found it in a different folder than where the service pack installer expected it to be, instead the file was in the Program Files\Microsoft Visual Studio 9.0\Common7\1033 folder.  To get around the error I simply copied the WcfTestClient.chm file from the Program Files\Microsoft Visual Studio 9.0\Common7\1033 folder to the Program Files\Microsoft Visual Studio 9.0\Common7\IDE folder and reran the service pack installer.  This time it ran with no errors!  Next finished out the steps in Richard's post (Step 4).  There were much more than 7 files prompted for overwriting, I didn't count the files but just hit N each time I was prompted.  Once the files finished copying I installed the slipstreamed Visual Studio installation on a fresh vm and it installed with no errors.  I checked the SP level of Visual Studio and it showed to be sp1.

Here ere are the commands I ran for each step:

Step 1
msiexec.exe /a E:\vs_setup.msi TARGETDIR=F:\VS2k8 /L*vx F:\VS2k8\vsinstall.log

(Note: Copy WcfTestClient.chm file before running step 2)

Step 2
VS90sp1-KB945140-ENU.exe /extract F:\VS2k8SP1\Extracted

Step 3
msiexec.exe /a F:\VS2k8\vs_setup.msi /p F:\VS2k8SP1\Extracted\VS90sp1-KB945140-X86-ENU.msp /L*vx F:\VS2k8\patch.log

Step 4
xcopy E: /h /i /r /s /exclude:exclude.txt

Once completed the slipstreamed installation folder is 4,490,358,390 bytes and contains 14,966 files with 1,543 folders.  

Hope this helps.

Cheers,
Kyle

with 9 Comments

Resize VHD and Partition

Because of a little downtime I'm reworking my development environment.  For years I've been using Virtual PC and a differenced disk setup based on Andrew Connell's post.  The setup is great for spinning up a new development environment for new clients or for just an isolated development / testing environment.

I primarily use Windows 2003 R2 as my development OS.  The cool thing about this setup is I haven't had to install the OS for over 3 years!  The problem I've had though is that when I set this up I set the dynamic disk size for the Base VHD to 16GB.  This only becomes a problem when I use up the 16 gigs and start to run out of disk space.  There are several tricks you use to deal with this, the simplest is to create a separate VHD to install applications on, this way the differenced disk isn't used and space isn't eaten up on your VPC's C: drive.

So getting to the point...  In reworking my development environment I want to do a couple of things: 

  1. Install latest OS patches
  2. Increase base VHD size

The first one is simple. The second one might seem a little tricky but luckily it's not. 

I searched around and found the VHD Resizer utility from VMTooklit.com.  The tool allows you to select a VHD and increase the physical size of the disk.  I gave it a go and it worked like a charm.  Only one thing I didn't think about, it did increase the size of the VHD but not the partition on the VHD.  So basically this just gave me unallocated space on the disk.  Not what I wanted but I can work with this.  Time to put on my old sys admin hat.  Now I just needed to extend the primary partition to fill up the unallocated space. 

Simplest way to do this is to use the built in diskpart.exe utility.  Only thing is you can't use it on a disk that is running.  No problem, just mount the VHD as a disk in another Virtual Machine and you're good to go.  Also just ask a tip this is a good way to defrag before precompacting the disk (use the -SetDisks option for precompact.exe to specify which disk to precompact).

After going through the steps I'm ready to start my chain of VHDs and now my base image is up to date, 50GB, and only 200MB larger on the disk. :)

Cheers,
Kyle

with 0 Comments

Convert Office Files to 2k7 Format from Explorer Context Menu

A few months ago I thought of this.  I wanted an explorer add-in that would allow me to right click on an Office 2003 or earlier format document and convert it to an Office 2007 format.  I know you can simply open the file in its associated Office 2007 application and save as the newer format but this seemed like too much work for me.  I typically think of this situation when I go to email a file that is in the older format and think to myself "Gee if it was a 2k7 file it would be smaller."

I started looking around and found that you could do this from code but there are also tools that Microsoft have provided to automate the bulk conversion of legacy Office files to the newer format.  Naturally I wanted to leverage the work they had already done if possible.

My early searches led me to Eric White's post Bulk Convert DOC to DOCX.  This post pointed me to the Microsoft Office Migration Planning Manager.  The OMPM consists of a number of things including utilities for bulk file conversion.  The one of interest to me was the Office File Converter utility (OFC.exe)  This tool seems to be great for bulk converting office files to the new 2007 format but that really isn't what I wanted to do.

Fortunately I stumbled upon something posted on the OMPM contributions page that was promising.  It is possible to use the Office Compatibility Pack directly to convert legacy Office files individually to the new Office 2007 Open XML format.  In the Office Compatibility Pack there are individual utilities that convert files from the old format to the new format.  Apparently the OMPM actually calls these executables directly from the OFC.exe utility.

Here are the individual commands for converting each type of file:

Word

"C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme <input file> <output file>

Excel

"C:\Program Files\Microsoft Office\Office12\excelcnv.exe" -oice <input file> <output file>

PowerPoint

"C:\Program Files\Microsoft Office\Office12\ppcnvcom.exe" -oice <input file> <output file>

 

Once I knew there was a way to convert files individually it was just a matter of adding it as an Action for each type of file.  The trick was passing the correct parameters to the executables.  I put together a little batch file that would allow me to pass in a few parameters and build the correct paths.  Save this file in the Windows directory.

ConvertO2k3to2k7.bat 

"C:\Program Files\Microsoft Office\Office12\%2" -oice %3 %1 "%~$PATH:1x"

 

The batch file takes three parameters.  The full path for the original Office 2k3 file, the executable to use for converting the file, and the third is the extra command line argument used for the wordconv.exe utility.  (This is a little kludgy but it works.)

Again make sure you save this file in the Windows directory.

Now for each type of file (doc, xls, and ppt) I add a new Action.  Here are the steps to create create the action for a Word File Type:

1. In Explorer choose Tools -> Folder Options -> File Types

2. Select the DOC File Type and click Advanced

3. From the Edit File Type dialogue create a New Action

4. For the Action type Convert to docx

5. For the Application used to perform action type ConvertO2k3To2k7.bat "%1" wordconv.exe -nme

The first parameter is the full file path for the file to perform the action on, which is passed as the first parameter to the Action.  The second parameter is the executable to use for the conversation, in this case wordconv.exe because we are working with a DOC file type.  The third is the extra command argument required by the wordconv.exe utility.  You will not need this for the ppt or xls utilities.

Don't worry about selecting Use DDE, it will get selected automatically for you.  Not really sure why but it doesn't seem to matter.

6. Click OK to save the action. You will see the new 'Convert to docx' item in the Actions list as such:

image

7. Click OK on the Edit File Type dialogue and then Close on the Folder Options dialogue.

 

Once you have performed all the steps you will now see a 'Convert to docx' option in the context menu when you right click on a .doc file. After selecting the option a cmd window will appear while the file is being converted.

image

It is possible to select multiple Office files of the same type and convert all of the selected items, however this spawns separate cmd windows for each file.  I have found this doesn't work after selecting a large number of files.  This option really only works best for single file conversion on the fly which is all I wanted if for.

Hope this is helpful for someone out there.  If there are any errors in the steps please feel free to ask questions.

 

Cheers,
Kyle

with 1 Comments

Agile Retrospectives: Making Good Teams Great!

I stumbled upon this the other day. 
Presentation by Diana Larsen & Esther Derby at Google.

Nice of them to put this up. 

http://www.youtube.com/watch?v=qqtPZYigfNI

with 0 Comments

Export Visio to XAML

Saveen Reddy has posted a new version of his Export Visio to XAML tool on CodePlex.  This tool is an add-in for Visio 2007 that exports the document to XAML for rendering with WPF.  The tool uses Thierry Bouquain's svg to xaml converter.

I haven't tried it out yet but this could come in handy. 

with 0 Comments

Slightly Odd Terms of Service Item

Today I went to view a webcast from Microsoft and realized I haven't watched one since using my new computer (I really should blog on that one. hah).  I had to install the Live Meeting client, no big deal.  While waiting for the download to finish I noticed one of the bullets in the terms of service.  As with most of Microsoft's free stuff it included the standard "As Is" notice.  But this one had an addition to the normal stuff.  Here is the bullet full wording:

 

"The software is licensed "AS IS" without any warranty. You can recover from Microsoft only direct damages up to the greater of the amount you paid for the software/service or one dollar (US $1.00)."

 

So what's up with the $1.00 thing?  If I could actually get $1.00 for every item I've downloaded from Microsoft over the years I bet that would actually add up to a pretty decent amount of cash. Hmm.  I might have to keep this in mind for Christmas money next year. :)

with 1 Comments

Done-Done

“Done-done, as a client defines it, means that the development team is done with the feature (specified, designed, coded, unit tested), and the customer is done with the feature (acceptance tested).” source

 

One of my favorite Agile terms.  And always a good state for a feature to be in.

with 0 Comments

AJAX usage among .NET Developers

Simone Chiaretta has a survey up for .NET developers.  He is trying to gather some data on Ajax usage among .NET Developers. It's a short survey so fill it out if you have a minute.  This is being done based on a previous survey that targeted all types of web developers.  Go fill it out so we can get some more sample data.

My team has been using one of the "other" categories for AJAX so I'm interested to see if it makes the list.  We have been using Tibco GI lately and have been very happy with it (Ahh, to live in a world with no PostBacks...  how bliss).  I'm hoping to find some time to start to integrate ASP.NET MVC with Tibco GI to see what that looks like.  Not promising anything but hopefully I'll get some blog posts about it in the next month or so.


Peace
Kyle

with 1 Comments

ASP.NET 3.5 Extensions Preview Released

Over the weekend Microsoft released the ASP.NET 3.5 Extensions Preview (direct download).  For those that haven't been following this is a pretty highly anticipated CTP.  The major components of the CTP include:

 

  • ASP.NET MVC
  • ASP.NET Dynamic Data
  • ASP.NET AJAX
  • ADO.NET Entity Framework
  • Silverlight Controls for ASP.NET

 

The most exciting items in this release for me are ASP.NET MVC and the ADO.NET Entity Framework. Now if someone could only tell me why the hell this was included in something that is called ASP.NET Extensions!!  ADO != ASP people! 

 

ASP.NET MVC

For those of you that have been living under a rock for the last 3 months and haven't heard of the ASP.NET MVC framework here are some links to get you going.

 

 

Once I can find some time I hope to dive into the MVC bits.  I'm looking forward to seeing how I can combine Tibco GI and ASP.NET MVC.  I assume it will be similar to Brian Walsh's approach with AJAX and the Spring Framework with Tibco GI.

 

ADO.NET Entity Framework

This is one I've been excited about for a while but haven't had much time to dive into the previously releases.  I'm not sure what is different with the bits included with the ASP.NET 3.5 Extensions compared to the Entity Framework Beta 3 release.  The download page on MSDN says that the ASP.NET 3.5 Extensions download contains the Entity Framework runtime so not sure what that is exactly.  I should be diving into both of these very soon and if I can get some time I'm going to try to post some blogs on both topics.

For more info on the ADO.NET Entity Framework here are some links:

 

 

Hopefully I'll have some time to start working with both of these soon.  And if possible I'd like to get some blog posts up on both topics.

Happy Coding.

Cheers. -Kyle

with 1 Comments

Save space installing Visual Studio 2005 with SP1 (including the TFS Client)

As most of you know Service Pack 1 for Visual Studio 2005 is a bit of a beast.  I personally think it is the worst update for any Microsoft product I have seen in my 10+ years working with Microsoft products.  The problem with the install is that it is a culmination of multiple product SKU updates in a single large file.  Also because of the installation process the 430MB install requires upwards of 3GB of free space to install (see VS 2005 SP1 Requires a lot of Disk Space for more details).  There are solutions to reducing the size of the installation process such as Disabling the Patch Cache or extracting the .msp from the .exe that is downloaded, but still the process of installing causes much problems in some situations.

I have one of those situations.  I do all of my development in a Virtual PC environment.  I use a modified setup of differenced disks in order to save space and reduce time to stand up a new development environment.  See Andrew Connell's HOWTO: Use Virtual PC's Differencing Disks to your Advantage blog for details.  Because there isn't a way to compact disks which are differenced from another disk it is important to reduce the size of the VHD which has my development tools installed. (If anyone knows a way to compact difference disks please tell me.) 

Because the Visual Studio 2005 Service Pack 1 installation requires so much room to simply install my second level VHD file grows far larger than it should.  I attempted to install the update using several methods and usually ended up with a VHD that was almost 4GB in size.  Keep in mind this VHD should only contain the installation of Visual Studio 2005, not including the MSDN libraries.  In my opinion this wasn't acceptable.  Luckily Heath Stewart posted instructions on how to slipstream Service Pack 1 into the Visual Studio 2005 Installation, here is the post.  Since I spent a few years as an NT admin (props HPS) before focusing on development I was pretty familiar with the process.  One note though, Heath's steps are not all that clear, Richard Rudek posted a clearer break down of the process.

After using the slipstreamed installer my differenced VHD, which contains VS 2k5 with SP1, is only 1.7GB in size.  So this little trick saved me over 2GB in completely wasted space, I would say that is a pretty significant improvement.  I did however run into one problem.  Since I work with Team Foundation Server I need to install the TFS Client (Team Explorer).  Team Explorer is not included in Visual Studio 2005, however Service Pack 1 for Visual Studio applies to Team Explorer (amongst others, see the Patch Applicability Browser to find out what will be updated on your machine by the SP).  This creates a situation where in order to install Team Explorer and have the Service Pack applied to it you must run VS 2k5 Service Pack 1 (yes, the 400+ MB file that requires 3+ gigs of space!).  This in my opinion was unacceptable and completely negated the effort of slipstreaming SP1 into the Visual Studio 2005 installation.  Luckily there is a solution. 

 

Slipstream Visual Studio 2005 sp1 Into the Team Explorer Installer

The process is very similar to the process for slipstreaming sp1 into the VS installer.  Here are the steps:

1. Make sure you have the official release of Team Explorer. 

It can be downloaded free from MSDN or copied from the TFS install CD.

2. Download and unpack the .msp patch for Service Pack 1 from the .exe wrapper if you haven't already.

C:\>VS80sp1-KB926601-X86-ENU.exe /extract “%TMP%”

3. Create an Admin install for Team Explorer (Note, this is the vs_setup.msi from the .img file from MSDN or the TFS CD).

C:\>msiexec /a vs_setup.msi TARGETDIR=\\Server\Share /L*vx "Install.log"

4. Apply the Service Pack to the network install.

C:\>msiexec /a "\\Server\Share\vs_setup.msi" /p VS80sp1-KB926601-X86-ENU.msp /L*vx "patch.log"

5. Install Team Explorer from the network path by running setup.exe.

You may be prompted to insert the original Team Foundation Server CD during the installation.  This is the original setup folder without the service pack slipstreamed into it.

6. Done! 

 

This little trick saved me a ton because I kept running into a bug in the TFS Client that was fixed with SP1.  Next I'm going to try to slipstream the TFS Client directly into the VS 2k5 installation.  This would let me  have only one installation point for Visual Studio 20005 to maintain for future service packs.  Hope this little trick helps someone out there.  And hopefully updates for VS 2008 will be much better than this experience. 

 

-Kyle

with 0 Comments

Installing Windows Live Writer on Vista x64

This is my first post from my new work machine. It seemed appropriate to post about the little bit of struggle I had to go through to actually get it done. :)

First off, if you aren't using Live Writer yet check it out.  I've been using it for a while and have been pretty happy.

So what's the issue with getting Live Writer running on x64?  If you check the release notes you'll see that "64-bit is not supported for beta 2."  This isn't entirely true.  The Live team is using an installer package that doesn't run on x64.  If you get your hands on the actual MSI packages for the individual live installs they work on x64 (at least the ones I've tried).

I first found the post from Ed Bott's talking about a work around.  He basically gave some more details of the post on LiveSide.net.  This seemed like a bit of work but I figured I could use a Windows XP VPC install to get the MSI packages (since the VPC is running as x86).  This all seemed fine and good but when I went to install the app the Windows Live download service was down (AARGHH!).  So after looking around a little more I found yet another way to get the MSI, and this one was much simpler!  On one of the MSN groups forums someone posted info on how to get the Live Writer MSI directly from the live.com site.  I guess this is a different URL then what the WLinstaller.exe installer uses.

 

To make it even easier for others I put together all the links for the individual Live installer packages (I'm sure these will change but it works for now).

 

This should save you a bit of time for getting the installers downloaded and installed.  

Enjoy. 

-kf

Update:  Well, looks like they've fixed this.  A coworker sent me the URL to the new installer.  I tried looking for it on the Live site but it wasn't there.  Here is the URL if you're looking for the newer installer that works on x64.  Cheers.

with 1 Comments

.NET Cheat Sheets

I was doing some searching for ASP.NET Page Event Life Cycle stuff and came across John Sheehan's page.  He's got a few PDFs of all those little things we forget like string formatting or what the shortcuts are for built in snippets.  They're handy if you need a quick reference.

.NET Cheat Sheets

with 0 Comments

.NET 3.5 Source Code to be Released

If you haven't seen this yet check it out. Scott Guthrie has announced that the source code for the .NET Framework Libraries will be available with the release of .NET 3.5 and VS 2008.

This will allow you to debug the .NET Framework libraries within your application. Pretty freakin sweet if you ask me! Check out his post for more info.

with 1 Comments

Tech Ed 2007 - Day 1

So Tech Ed 2007 has started and I'm lucky enough to attend again this year. It's been a little slower day then I had hoped. Woke up to chilly rainy weather in Boston. Then as usual was running super late for the airport, got there with about a few minutes to spare. No real issue though because the flight was already delayed at that point. Only bonus was I got bumped up to first for the flight (Yeah Status!).

After a major delay I finally made it to Orlando around noon. After waiting for about a half hour for my kite bag I finally made my way over to the convention center. After making it to the convention I hooked up with my buddy Jeff and Matt. Hit one session on K2.net and workflow, unfortunately this was pretty much a marketing show with no real content. Last session of the day was Database Design Patterns. Good session. Speaker was good and learned some new stuff.

Hitting the Jam Session tonight after dinner so should be a good time.

Now Playing: The Mighty Mighty Bosstones - Don't Know How To Party - Our Only Weapon

with 0 Comments