Archive

Archive for the ‘Development’ Category

ASP.NET 2.0 Master Pages Design Templates Set

December 14th, 2005 Thomas Comments off

For the graphic-design challenged among us, Microsoft has released a set of Design Starter Kits and XHTML 1.1 Strict-compliant HTML templates for ASP.NET 2.0.  These are not coding best practices kits — they demonstrate Web UI standards-compliance and best practices using CSS and XHTML.  Many of them look really sharp, and most of us developers need the help using CSS and XHTML correctly to create great looking pages.

Categories: Development Tags:

.NET Framework 1.1 and 2.0 Side-by-Side (SxS)

December 9th, 2005 Thomas 100 comments

December 18, 2006 Update: You may find my post on .NET 3.0 compatibility useful.

As a part-time systems engineer, I was very concerned about possible negative effects of installing the .NET Framework 2.0 side-by-side with 1.1 on our Windows Server 2003 boxes that run things like SharePoint Portal Server, Windows SharePoint Services and Exchange 2003.  I’ve searched and searched, and it seems like Microsoft is making little effort to document .NET Framework 2.0 compatibility with their server products.

It helps to understand how different types of executable code load the Framework.  Unmanaged applications that host the Common Language Runtime (CLR), that is, non-.NET applications that manually load the CLR in order to run .NET code, always load the newest installed version of the .NET Framework by default.  This behavior directly impacts SharePoint Portal Server, as one example, in a negative way.  Some unmanaged executables in SPS host the CLR, so as soon as you install 2.0 and restart the SPS apps, they will load 2.0, not 1.1 as they were designed and tested against.  BAD!

Fortunately, managed applications behave better.  A managed application that was built against 1.1 will continue to load 1.1, as long as 1.1 is installed.  (On Windows Server 2003 you don’t have a choice, but on other OS’s you can uninstall 1.1.)  A managed application that was built against 2.0 will only load 2.0.  If you uninstall Framework 1.1, your 1.1 managed app will now load 2.0 instead.

Confused?  When Microsoft doesn’t document which unmanaged apps host the CLR, the bottom line is that you need to be careful installing 2.0.

If you identify an unmanaged app that hosts the 1.1 CLR and you want to install Framework 2.0, there is a way to force the unmanaged app to load the old Framework:

  1. Locate the unmanaged EXE, and in the same directory, create (or edit) a text file called <unmanagedexename>.exe.config.  Ex: myapp.exe needs myapp.exe.config.
  2. Paste this text into the new text file (or merge it into the existing file; you may already have <configuration> and/or <startup> elements):
    <?xml version =”1.0″?>
    <configuration>
      <startup>
        <supportedRuntime version=”v1.1.4322″ />Â
      </startup>
    </configuration>
  3. Save the config file and start or restart the EXE or service

Installing the 2.0 Framework without adding or updating the config files will affect SharePoint Portal Server and BizTalk Server 2004.  BizTalk Server 2006 natively runs on, and requires, .NET Framework 2.0, and runs just fine with .NET Framework 3.0 as well.

To safely install 2.0 on your BizTalk 2004 server:

  • Add (or update) a config file for each EXE in your BizTalk 2004 installation folder
  • Reboot or restart all BizTalk services
  • Review Microsoft’s KB
  • After installing Framework 2.0, ensure that all BizTalk Web services remain configured to run under ASP.NET 1.1.

To safely install 2.0 on your SPS servers:

  • Add (or update) a config file for each EXE in your SPS installation folder
  • I recommend installing WSS 2.0 SP2, which explicitly supports ASP.NET 2.0, and then SPS 2003 SP2.  If you are not ready to upgrade, you can still add the config files and safely install 2.0 on SP1 or earlier.
  • After installing Framework 2.0, ensure that all SPS portal Web sites remain configured to run under ASP.NET 1.1.  SPS SP2 does not support ASP.NET 2.0, even though WSS does.

To safely install 2.0 on your Exchange 2003 servers:

  • Exchange Server 2003 doesn’t appear to host the CLR, so it should be safe to install 2.0 on Exchange front-end or back-end servers.  I installed it on our front-end server with no issues.
  • After installing Framework 2.0, ensure that the OWA Web site remains configured to run under ASP.NET 1.1 (IIS Admin, site properties, ASP.NET tab).

Installing .NET Framework 2.0 installs ASP.NET 2.0.  By default, this will not change existing IIS Web sites to 2.0 — they will remain set to 1.1/1.0.  You can control this in IIS Admin in the site properties under the new ASP.NET tab.  Do not try to mix ASP.NET 1.1 and 2.0 apps within a single AppPool on Windows Server 2003.  Create separate AppPools for each version.

Office 2003 is unmanaged but does host the CLR, so it may also be affected by installing Framework 2.0.  There are known issues with Office 2003 when loading add-ins, smart tags or smart documents created with .NET Framework 2.0.  There is also a related VS2005 update for Visual Studio 2005 developers.

Visual Studio .NET 2003 developers may experience trouble in certain cases after installing Framework 2.0.  One such issue is fixed in .NET Framework 1.1 SP2.

The Framework documentation briefly, and poorly, discusses the side-by-side issue here.

I would appreciate comments on this post!  Is it helpful?  What information can I expand on?  Are there other issues that you are concerned about or have experienced?

Categories: Development, Microsoft Tags:

Background Compilation in Visual Studio 2002, 2003 and 2005

December 9th, 2005 Thomas Comments off

Background compilation is a feature of the Visual Studio IDE.  It includes a special version of the language-specific source code compiler that runs continuously on a background worker thread.  Each time you make a change in the code editor, the background compiler wakes up and attempts to compile the code.  This is the feature that’s responsible for the squiggly marks under code in the editor and errors in the Task List while you’re writing code.

Microsoft first introduced background compilation to the Visual Studio.NET 2002 IDE for VB.NET projects.  The other languages did not ship with background compilers.  Most of the time background compilation is a great productivity enhancer, alerting you to your errors immediately.  When you switch back and forth between VB.NET and C#, for instance, you really miss this feature.

Unfortunately, background compilation tends to be the most unstable portion of the IDE.  Have you ever been working in a VB.NET project when the IDE suddenly crashes with “unexpected compiler error?”  Have you had the compiler suddenly begin informing you that variable xyz is not defined, when you’re looking at the declaration on screen?  You’ll find that when you restart the IDE, these errors magically disappear.  These issues are all due to bugs in the background compiler.

The most amazing thing about these bugs is that Microsoft virtually denies that they exist.  At least 80% of the VB.NET projects I’ve worked on have experienced these problems once the code base grows beyond trivial size.  While I was working for Microsoft, I found records of the background compiler bugs in their internal bug tracking database.  There is even a hotfix for Visual Studio.NET 2002 and 2003 that addresses some of them.  However, this hotfix was never made publicly available.  We eventually obtained it from Microsoft PSS, and I’ve carried it with me from client to client ever since.  It doesn’t fix all the bugs, but it’s better.  It amazes me that there was never a service pack for VS.NET 2003.  I’ve heard that one may be coming — now that Visual Studio 2005 is released and people are moving away from 2003.

With the introduction of Visual Studio 2005, both VB.NET and C# include background compilation.  And guess what?  Reports are already coming in [more] that the C# background compiler crashes in certain situations, some involving the use of generics.  Thankfully they also added AutoSave to the 2005 IDE.  The unofficial timeline for Visual Studio 2005 SP1 is sometime in mid-2006.

In short, background compilation is a great productivity enhancer, but is not without its problems.

Categories: Development Tags:

VS 2005 Refactoring Support for Visual Basic

December 4th, 2005 Thomas Comments off

IDE support for refactoring is one of the key additions to C# in Visual Studio 2005.  Unfortunately, refactoring did not make it into the IDE for Visual Basic.  In case you missed the announcement, in the end, Microsoft provided a solution for Visual Basic by partnering with a third-party company to provide their add-in, Refactor!, for free.

VB 2005 developers, download Refactor! here!

Categories: Development Tags:

Visual Studio 2005 and .NET Framework 2.0 Known Issues

November 22nd, 2005 Thomas Comments off

This known issues list is a must-see reference for many oddities you might encounter with Visual Studio 2005 and/or .NET Framework 2.0:
http://msdn.microsoft.com/vstudio/support/knownIssues/

Categories: Development Tags:

Installing VS 2005 into a Virtual PC VM

November 4th, 2005 Thomas Comments off
I’m sure all of you thoroughly read the README of any product before you install it, so you already know this.

It is a pain to install VS 2005 in a Virtual PC due to limitations of Virtual PC itself. If you have a physical DVD, you cannot use it to directly install VS 2005 in the VM. If you mount an ISO file into Virtual PC, you also cannot use it to install VS 2005. Virtual PC 2004 SP1′s mounting capability only extends to 2.2 GB volumes.

Instead, you need 1) CDs, or 2) you need to copy the DVD or ISO to your local hard drive, share the folder into the VM, and install from there. Or, a third option is to mount the ISO with any third party ISO mounting software, share the drive into the VM, and install from the shared drive.

Categories: Development Tags:

Internet Explorer Developer Toolbar Beta (by Microsoft)

November 4th, 2005 Thomas Comments off
If you develop Web applications and use Internet Explorer, you’ll want this toolbar written by Microsoft and targeted specifically at developers.
Categories: Development Tags:

VS 2005 and SQL 2005 Together

November 4th, 2005 Thomas Comments off
Many developers will want to install SQL Server 2005 Developer Edition and Visual Studio 2005 on the same PC. (Note: This applies to any version of SQL 2005.) If you install SQL 2005 first and choose to install the BI Development Studio, you are actually installing a stripped-down version of Visual Studio 2005 called Visual Studio 2005 Premier Partner Edition.

You’ll find when you run the Visual Studio 2005 install that you are unable to change the install path. The help will tell you it’s due to dependencies on VS 2005 Premier Partner Edition, but doesn’t indicate how or where you got that. Now you know!

It’s also interesting to note that SQL 2005 includes no less than three variants of the Visual Studio 2005 IDE codebase. One is SQL Server Management Studio, another is the Database Engine Tuning Advisor and the third is the aforementioned VS 2005 Premier Partner Edition. At some point in the VS 2005 development cycle, the SQL 2005 group took a cut of the IDE code and made it their own. The most similarities are in Management Studio, but if you compare it with the VS 2005 IDE you’ll notice slightly different menu items and behaviors.

I assume that the development groups had a good reason (release date??) to diverge these huge IDE codebases, but it seems like they created a mess for themselves.

Categories: Development Tags: