Public musings, often on software development RSS 2.0
# Wednesday, August 29, 2007

Microsoft recently released Visual Studio 2008 Beta 2 (http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx).  Being the type of developer who is always interested in such tools and more importantly currently being involved in a couple Windows Presentation Foundation 3.0 projects I was one of the first to download a copy.  One of the new features of Visual Studio is that it allows you to target your builds at the .NET 2.0, .NET 3.0 or .NET 3.5 versions of the .NET Framework. 

 

My expectation although the documentation doesn’t claim it, is that I would be able to start using VS 2008 while other members of my team continued to use the older Visual Studio 2005 with the November 2006 CTP extensions for WPF support.   I was partially (mostly in fact) correct – but it requires a few ‘tricks’, and more importantly even for true .NET 2.0 projects that isn’t a true statement.

 

The warning shot was fired when I opened the project solution.  The first thing that VS 2008 did was initiate a conversion wizard to convert the solution and project files on the project.  It kept them targeting .NET 3.0, but they would no longer open in VS 2005.  Fortunately I hadn’t checked anything into TFS so I copied the files and undid my changes.  (Note: I later tested with .NET 2.0 projects and the result is the same.  There is actually a reason or arguable merit for this, as I’ll explain as I discuss how to manage this scenario.)

 

So what I then did was take my solution and project files which I had converted and copied out and named them with the original project name plus “2008” on the end.  This meant I still had the original project files and the newly converted files.  In comparing these files it was apparent the scope of differences was minimal – in fact it was mainly a couple strings to reflect that these were in fact 2008 versions of the same file.  So I modified the solution file and instead of referencing the projects in the solution by their original name I adjusted the solution file references to be the other “2008” versions of my project files.

 

I then reopened my new solution file in Visual Studio 2008 and found that my solution would build and was maintainable.  In fact I was able to work in this mode quite literally for a couple of weeks with no issues what so ever.  It then came time to package this project for deployment.  We were using a Click Once deployment model and this is where two issues were discovered.  The first issue was that Visual Studio 2008 Beta 2 did not include a signed .NET 3.0 Framework redistributable package that you can add as a dependency to your project.  There wasn’t much to be done about this but I did mention it along with my other problem to Microsoft.

 

The second issue was that while in the project properties, if I clicked on the Security tab, Visual Studio 2008 crashed.  Not threw an error - it crashed and burned.  As part of being a Microsoft MVP I have access to a shortcut for contacting a couple people on the development team about issues when I’m working with something like VS 2008 Beta 2.  In this case I mentioned my concerns about having new project types, my concern with the .NET 3.0 redistributable and  my issue with the Security Tab for my project’s properties causing Visual Studio 2008 to crash.  This got the attention of Eric.Knox one of the ‘developers’ @Microsoft who emailed me about reproducing the problem.  Because the customer was comfortable with me sending this problem to Microsoft I forwarded Eric a complete copy of my solution files (fortunately it was a relatively small code base).

 

Eric was immediately able to reproduce my problem (which was good) since I was now bothering someone who's time is arguably more valuable writing new features into the product J.  After a couple hours Eric contacted me to tell me what the problem was.  In short when I readdressed my solution file to reference my project files, I failed to also adjust the project references in my project files to do the same thing.  For most of Visual Studio this wasn’t a problem, but in the case of the security tab this caused a fatal error.  Eric was able based on my code to find this in a relatively short period of time – and in the RTM version of Visual Studio 2008 the environment won’t crash if you repeat my mistake.  At the same time however, this is still an error in Visual Studio 2008 and the error message you get may not be the most helpful.

 

The key is you need to be certain to convert the project references in both your solution and project files if you want to develop on Visual Studio 2008 in parallel with someone using Visual Studio 2005.  Aside from the preceding issue I’ve had only one issue (that I’m about to discuss) working this way, and being able to work in Visual Studio 2008 has made me far more productive then I would have been with the Visual Studio 2005 environment and the XAML editor which is almost non-functional (for complex XAML).  In general I’ve just manually added new classes placed in the Visual Studio 2005 versions of the project files to mine and vice versa.  The coordination on that level has been very easy and relatively painless – so if you are in the scenario where not everyone on a team is in a position to move to Visual Studio 2008 simultaneously, I’d still go for it on .NET 3.0 projects.

 

However, there is the remaining issue which appears to coincide with the reason Microsoft is moving the project files forward.  I stumbled on this issue quite by accident when during development I created a new class in the project.  As part of this new class I happened to syntax which is based on the new release.  I didn’t reference any .NET 3.5 libraries but I wrote my VB/C# code using syntax which the Visual Studio 2008 compiler recognized.  However, Visual Studio 2005 and Visual Studio 2008 don’t use the same build engines and as a result when a team member tried to compile my new class the compiler kicked out my code.  So if you are going to attempt this route recognize that although you are still building a .NET 2.0 compatible project (based on the libraries which are referenced) you  will have access to language features that are interpreted by the compiler at build time which aren’t compatible with the build engine a Visual Studio 2005 developer will use.  Again this wasn’t a major problem, in fact it was incredibly easy to recognize and resolve but this is probably the type of issue that the folks at Microsoft were most concerned with when they made it so that the same project file wouldn’t work in both build environments.

 

Finally of note, keep in mind that a new version of TFS (TFS 2008) will be shipping with Visual Studio 2008 along with a new version of Team Build.  Both have several new features that you’ll want to access and since your old Team Build 2005 won’t like Visual Studio 2008 projects – you’ll need to upgrade to TFS 2008 in conjunction with or before you move your developers to Visual Studio 2008, so make sure you start looking at that Beta 2 product now as well.

Wednesday, August 29, 2007 2:51:45 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
.NET | Technology
# Tuesday, August 28, 2007

Matt Gertz of the Visual Basic team has posted an excellent discussion describing the release process for Microsoft's product development teams.  Often as a presenter I'm asked 'how does Microsoft do it?'.  Matt's post does an excellent job of talking about the project management details of managing quality for a product release.

http://blogs.msdn.com/vbteam/archive/2007/08/27/endgame-matt-gertz.aspx

Tuesday, August 28, 2007 3:05:05 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Technology | Visual Basic
# Monday, August 27, 2007

I keep meaning and forgetting to add a link to an excerpt from the latest edition of the Profession Visual Basic .NET 3.0 book.  The editorial staff chose to excerpt a portion of one of my chapters to let you see some of what is new in the current edition.  We of course are already working on the next edition now that Visual Studio 2008 and .NET 3.5 are in Beta 2, but for the time being this book offers some insight into the new .NET 3.0 technologies.

 

http://www.wrox.com/WileyCDA/Section/id-305563.html

 

Monday, August 27, 2007 5:11:54 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
.NET | Technology | Visual Basic

It's been a long weekend and I didn't get all the work I wanted done, but I thought it was time to capture a couple of the random thoughts that were ricocheting around...

1. There is a technical person with whom I have worked for many years.  We have somewhat similar pre-.NET backgrounds although his primary background was more in Visual Basic under COM while mine was more a combination of C++ and VB.  After .NET was released this individual quickly picked up C#.  Becoming quite adept with C# this person was then heard to state publicly (paraphrasing in spite of quotes) "VB developers should focus on C# instead of VB, because they'll find it easier to learn {a complete new syntax, language and object oriented environment} then trying to understand the differences between VB 6 and VB.NET."

I'm actually not going to touch that statement however; I was wondering recently if then the reverse wouldn't also be true.  Specifically, those developers familiar with C++ and Java should move to VB in .NET.  The reasoning stands that "they'll find it easier for them to learn {a complete new syntax, language and object oriented environment} then trying to understand the differences between" C++/Java and C#?  Seems like if A is true B should also be true and if B is false then perhaps A is...

2. This one is more a conversation quote -> let me set the stage.  We work in small teams on most projects.  Those teams have used (for years) a custom 'Agile-like' process.  Not everyone has the same level of experience with this model and at some point in the past the following conversation (paraphrased) took place.  I was the engineer involved and the other person - not being an engineer supposedly doesn't suffer from my "innate inability" to communicate.  We join the conversation in progress; Eng. 1 has just told Eng 2 a few things they should coordinate for today and tomorrow:

Non-Eng - "So how will the two of you coordinate?"

End 1 - "We'll talk during the course of the day."

Non-Eng - "That needs to stop.  We need to change that."

Monday, August 27, 2007 12:28:57 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Tuesday, August 14, 2007

So in the past I've written articles that talk about how the web as an application model is peaking for certain types of application models.  Specifically that while the 'reach' of web applications - ie. the way that even now I can be sitting in a Del Taco in Riverside (where it is 108 degrees farenheit) updating my blog just prior to heading over for a user group meeting, provide a powerful paradigm.  This isn't going to disappear and isn't to be discounted, but it isn't enough.  New technologies such as Silverlight and WPF will help extend the life of the web as a UI, but the reality is, web services allow me to use a rich client vs. a web site for editing my comments and then just submit the data to the server. 

Most enterprise  applications (as opposed to public facing) continue to be rich client applications. In the future there will still be many such applications which are written from the ground up, expecially those which are focused more on sizzle then steak.  But I feel that the new paradigm for actual business applications will be to leverage someone else's User Interface for much of the framework with a minimalist custom set of controls.  A couple years ago the common 'UI design pattern' we heard from smart client customers was for them to ask for a user interface based on Outlook.  This is still the case but things are shifting, you see instead of asking for a client based on Outlook - instead we are starting with Outlook as the client and just customizing it for the needs of the organization.

Visual Studio Tools for Office (VSTO) have been around since .NET 1.x but as I have been informed many times - haven't really taken off as some expect.  However, like so many things, until the rest of the infrastructure to support a technology is in place even a great tool gets only limited use.  In the past VSTO has primarily focused on the document.  Specifically it started as a replacement for VBA and the document centric customizations of VBA and Macros... but with Office 2007 and Visual Studio 2008 (Orcas) - well this isn't the same model.

An OBA is an Office Business Application, in short it is an architectural model which leverages the full Office System to implement custom business solutions.  The first key enabling technology is of course SharePoint aka Microsoft Office SharePoint Server 2007.  I'm not a big fan of SharePoint as a development platform, but as a host for documents and document templates it is unparalleled.  By marrying key document templates with a web site you gain the benefit of a web application with a rich client.  I'll post more in the future on some of the key enabling technologies which can then be built on this - think about Add-In's and custom message contents but the key is now that we have a solid server combined with a host of new tools the OBA model leveraging VSTO is a very viable solution framework.

Don't think so - well take a close look at Team System.  Team Explorer is in part an OBA, yes there is a 'custom' add in for Visual Studio which isn't part of Office - however, I know for a fact that when I start working with tasks, work items, bugs etc. in TFS I do it all with Excel.  Why because Team Explorer's custom interface pieces aren't natural to me, but the add-ins for Excel and the way that the forms are hosted on SharePoint and retrieve and update data from SQL Server provide me a user interface which is effective.  So when you are thinking about how to engineer that next big smart client application don't discount the value of being able to leverage the Office System as the plumbing for much of what you'll do.

Tonight I'll be presenting on a demo OBA solution which InterKnowlogy helped Microsoft develop to highlight some of the new features of VSTO 2008.  This is a powerful architecture and I'm expecting to do additional presentations similar to the one I'm doing tonight for the Inland Empire .NET User Group.  I grabbed a screen shot of their homepage describing tonight's presentation iedotnetug_org.JPG (172.5 KB) but feel free to visit their site (http://www.iedotnetug.org) or stop in for a meeting in the future. 
Tuesday, August 14, 2007 5:22:50 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
.NET | Architecture | Technology | VSTO
# Monday, August 13, 2007

A couple random thoughts this evening:

1. Why do the San Diego Chargers (and I'm sure other professional sports teams) insist on giving out things like posters and calendars as you enter the stadium?  Don't get me wrong if it's a towel or hat giving it out on the way in works... but take this past Sunday as each person entered they were offered a poster literally a 2 foot by 4 foot poster with key players in the new ugly uniforms.  Great - but where do you put them for the rest of the game - you can't take it back out to your car and under your seat it gets trashed - if 10 people managed to keep them in pristine shape (out of 57K attendees) I would be amazed.  Do us a favor - let us pick up that sort of thing on the way out where there's actually a good chance it'll make it home as opposed to going straight to the stadium dumpster and local landfill.

2. OK, I know it's considered good practice to bring everyone's food at once but a note to what we'll call informal restaurants - Chili's, Applebee's, Friday's, etc.  If you have a couple with an infant/toddler (in a high chair) and the parents order something for the small child do us all a favor and offer to bring it early.  Mom and Dad have to cut and prep everything for the toddler so having the child's food arrive early is a blessing - they can focus on getting the child started and then when their food arrives shortly (and short is important) thereafter they can actually focus on eating while the child eats as opposed to one or both letting their dinner grow cold.

Monday, August 13, 2007 9:18:20 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Thursday, August 09, 2007

You might think I'm 7 or so years to late with this story... but apparently not.   Turns out that NASA who has been the primary repository for US and world temperature data was recently informed that they were operating for the past seven years with an undiscovered Y2K bug that corrupted the official average temperature calculations.

These folks who are at the center of the Global Warming debate don't let anyone know how they compute the average temperatures - but someone noticing a big jump at the turn of the century managed to reverse engineer and prove a bug in their code.  Turns out the warmest year on record wasn't 1998 followed closely by 2006 - but rather 1934 followed by 1998...

In fact now that they've "corrected" their calculations it turns out that like 5 of the top 10 warmest years on record are from prior to WWII.... hmm - can we get a code review here?  You'd think an organization like NASA would be open to a code review...

Here are the updated stats: http://data.giss.nasa.gov/gistemp/graphs/Fig.D.txt

And someone who seems a bit more peeved at the whole thing - http://www.coyoteblog.com/coyote_blog/2007/08/official-us-cli.html

(Personally I just think it shows what idiots the team at NASA is for not having their code reviewed - even now - could we get that organization to implement some sound engineering principals!)

Thursday, August 09, 2007 11:45:10 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Wednesday, August 01, 2007

For those who need to head up too Redmond, WA to work with Microsoft I have a couple tips:

1. As for a place to stay - there are several really nice hotels.  However, for me during the months where the weather isn't too bad my favorite is the Redmond Inn.  It's a motor lodge so it isn't 5-star service (or price).  However, this particular hotel rents bikes (both Mountain and Road) and we know my preference for bikes.  Since in most cases there is time either in the morning or evening to get in a ride this is my suggestion for a place to stay.  It's reasonably close to the Microsoft offices and has a bed, bathroom, TV and high speed internet.

http://www.redmondinn.com/   - now they just need to post a couple bike maps to show where the best rides leaving from there location are.

2. When working with Microsoft the invariable question of OK you are in Building 41 or 15 or 9 or 32 comes up.  With a little experience you know that there isn't from a location standpoint a pattern to building numbers.  (As I recally the numbers are based on when Microsoft applied or was granted permission to build a given building...) Anyway the key is that if you need to get to building 40 then go to Microsoft Live Maps (http://maps.live.com/default.aspx) and type "Microsoft Building 40"  (Type this on the 'Enter city, address or landmark' textbox - if you enter it on the 'Search for a business or category' textbox it will then ask you if you are really looking for the location of Microsoft Building 40 and you can confirm your entry) The map will then display the location of the building so you can find the building you need to get to.

- btw don't think you  can do this trick for any company - want to find 'InterKnowlogy' type it in and the map will take you to the Philippines with a note: "The closest match for 'interknowlogy' is 'Interinsular Sea [Visayan Sea] (sea), Philippines'. If the closest match is incorrect, enter the complete address including country name and commas, and try again."

Wednesday, August 01, 2007 1:06:17 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Musings
# Monday, July 16, 2007

One of the challenges of writing both books and articles is that by the time the item is published, the technology world has moved on.  It’s similar for other items such as training materials and testing materials although I have less to do with such materials.

My most recent article for SQL Server magazine, a product comparison, was written this Spring and is part of the July issue of SQL Server magazine.  The article is also available online at: http://www.sqlmag.com/Articles/Index.cfm?ArticleID=96080&DisplayTab=Article  (Subscription Required (currently))

The focus of the article is to look at two products for working with XML: XMLSpy 2007 and Stylus Studio 2007 XML.  I found both tools to be very capable and obviously the point of the article is to explain why.  So when you are thinking about looking at tools one option is to check out my review so you can match your needs to the tool which will best fit those needs.

 Of note since for the purposes of the magazine having people check out the vendors which support the magazine is important here are links to the actual vendors:

·         http://www.altova.com/products/xmlspy/xml_editor.html

·         http://www.stylusstudio.com/

One item to note is of course that after the article was complete and on it’s way to the printer, Altova let me know that they were releasing updates to their current tool set.  The new R3 (Release 3) upgrade to the 2007 version of their product includes several new features including support for the Microsoft Office 2007 Open XML standard.   Since my most recent projects have been VSTO related this is a feature I’m looking forward to really checking out.  There are several other new features in this update including better database functionality (including support for IBM's DB2 9 pureXML data server) and CSS support.  You can check out the announcement of the features from the Altova web site at: http://www.altova.com/v2007r3_053007.html

Monday, July 16, 2007 10:23:29 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Technology
# Thursday, July 12, 2007

So I'm sitting there watching the tour again this evening (- yes "Nerd" is in the blog's title...) trying to catch the key words that I couldn't remember for the Fly to the Finish game that Versus, Bicycling, and Saab are hosting. 

Up comes Bob Roll's (http://www.bobroll.com/) question of the night which essentially is: Will there ever be a Tour of America?  As is noted on the show, while there are well supported tours of both Georgia and California - there isn't one of the entire US. 

Now I'm going to paraphrase Bob here but his answer was "Yes when we run out of gas.  Until then America has Nascar."... Cycling Motivation and Nascar - However, I like your answer Bob, and I have to agree...

BTW - It was a brutal day on Le Tour - not so much because the course was brutal but because two of the overall (vs. sprint, climbing etc.) favorites, both from team Astana, had major crashes.  The first to Kloden didn't seem major but reports are he may have broken his coccyx (last bone in your spine) the second to Vinokourov looked brutal and left him with a truly nasty road rash but apparently he's also in the hospital being checked for broken bones.  Note both men finished today - but the ride by Vino after his crash to pull within 1 minute 20 seconds was inspired - let's just say that both men showed more heart in 'playing' hurt then most US professional athletes (I know if my right hip as much like raw hamburger as Vino's; I'd be on my way to the hospital - not riding up a mountain at 20+ mph.)

Thursday, July 12, 2007 11:05:39 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] -
Cycling
Archive
<August 2007>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2010
Bill Sheldon
Sign In
All Content © 2010, Bill Sheldon