Visual Studio 2008 SP1 Beta

Web Development Tools Microsoft

Visual Studio 2008 SP1 Beta is now available!  You can download it here (though before you do, read the note below).  In SP1, we have added some new features as well as many bug fixes.  In this blog post I’ll attempt to give an overview of the features as well as some of the key issues the Visual Web Developer team has addressed so far in the service pack.

Installation Note: If you previously installed a Visual Studio 2008 Hotfix (in particular, KB944899), you should run the Hotfix Cleanup Utility before installing Visual Studio 2008 SP1 Beta. For more information, see Remove KB944899 for Visual Studio 2008 SP1 Beta1

New Features:

Class Libraries and Web Application Projects in Express

Visual Web Developer 2008 Express Edition now has support for Class Libraries and Web Application Projects. This enables you to leverage features only available in Visual Studio Standard and above before, including project-to-project references and the web application project build system. To create one of these projects, you can simply go to File > New Project. For more information on Web Application Projects (WAP), you can read this introduction to WAP on MSDN.


Note that Express SP1 is a standalone product that does not require Express RTM to be already installed, so you can install it on a clean machine. However if you choose to install Express SP1 on a machine that currently has RTM, your RTM version will automatically be uninstalled and replaced with the SP1 version.  Also note that there are a couple installation behavioral limitations for SP1 Beta: Express SP1 Beta cannot be installed on top of a higher level SKU of Visual Studio (e.g. if you have Visual Studio Standard RTM on your machine, you will not be able to install VWD Express SP1 Beta); in addition, if you have a machine with both Express and Visual Studio installed, if you install the SP1 patch for Visual Studio, your Express SKU will not function properly.

JScript Formatting

Your JScript code can now be formatted in both inline script blocks and .js pages. See linked blog post for additional details on this new feature added for SP1.


More Support for External JScript Libraries

SP1 includes support for the intellisense engine to work with external libraries jQuery, Ext, and Prototype. For more details on these fixes, please see our jQuery blog post or our Ext JS bog post.


Dynamic Data Templates

The .NET framework 3.5 SP1 now has support for Dynamic Data and the Entities framework. As a part of Visual Studio SP1, we’ve added new templates for both web site and WAP to get you started working with these features. If you’re interested in learning more about Dynamic Data, you can visit the MSDN code gallery site for Dynamic Data. You can also use that site to download the latest releases and give feedback on the feature. Note that the templates that come with SP1 do not include the Dynamic Data wizard, which is available for download on the site.


SQL Server 2008 Support

We have added support for SQL Server 2008 in Visual Studio 2008. Specifically here is what we’ve added:

· Visual Web Developer Express now comes with the SQL Server 2008 Express Beta

· We now support drag-drop of SQL 2008-specific data types in the designer from the Server Explorer – examples include DateTime2, DateTimeOffset, Date, and Time.

· The control designers and wizards for SqlDataSource and ObjectDataSource also support the above SQL Server 2008 data types

· You can use the Database Publishing Wizard in Visual Studio (right-click a node in Server Explorer, and choose “Publish to provider…”) to publish to and from a SQL Server 2008 database


WCF Renaming Support

We now have proper renaming support for WCF classes inside of your Web Sites and Web Application Projects. If you rename your class, interface, or namespace of your WCF service, we now automatically fix up the web.config and SVC file so your web sites will build and work at run-time.


IIS Module and Handler Templates

We have added two new templates in WAP projects and class libraries—one for an IIS module and one for an IIS handler. For more information on development using these, check out Mike Volodarsky’s post on advanced Web server deployment and development with IIS 7.0 and ASP.NET.


Bug Fixes:

We have many areas in which we fixed bugs: Performance, HTML Editor, Jscript, CSS, Designer, and the Project system. Below you’ll find a more in-depth description of many of the improvements we’ve made in each area:


All performance hot fix changes are automatically a part of SP1. See for more information on the fixes here.  In addition to the performance fixes in the hot fix changes, we have added the following fix seen below.

Note that you may still experience poor performance when typing in design view or during design/source view switch, as these have not been addressed fully in Beta.

IssueDesigner load is extremely slow when assemblies are missing.
DescriptionIn a web site or WAP that references assemblies that are not present in your GAC or bin, changing to design view is extremely slow, and can make the IDE appear to hang if there are many instances of controls on the page that rely on assemblies that are missing.
ResolutionThis should now be a quick operation

IssueCSS Formatting includes extra spaces.
DescriptionWhen you format your CSS document and you have a URL in quotes, extra spaces were inserted prior to the URL. An example is: background: url(‘Images/myBackground.jpg’ ); inserting would cause background: url(‘ Images/myBackground.jpg’ ).
ResolutionThis should now be a quick operationNo spaces are inserted on document formatting
IssueAdd support for remote jscript files in intellisense
DescriptionYou were unable to load js from absolute URLs – Example: <script src=””>
ResolutionYou can now load Jscript files from absolute URLs, so you can refer to remote .js files on web servers and get intellisense on those files.
IssueJavaScript IntelliSence missing RegExp object members.
DescriptionIf you declared a RegExp variable, such as “var reg = new RegExp(“e”);”, and typed reg., you would get no intellisense dropdown.
ResolutionYou now get intellisense on the RegEx class.
IssueTypo in JavaScript IntelliSense
DescriptionUnder the string properties, you will see “fontSize()” and “fontColor()”.
ResolutionThey are now fontsize() and fontcolor().
IssueVB Snippets in inline web services do not properly insert import statements.
DescriptionIn an inline web service (not in a code behind page), if you choose to insert a snippet that requires an import, we used to add “<%@… %> statements
ResolutionProper code import statements are now added.
IssueVisual Studio does not have support for VBScript
DescriptionIn Visual Studio 2008 support for VBScript was removed, so text colorization and intellisense no longer functioned.
ResolutionWe have returned support here so it should work similarly to past versions
IssueDebugging classic ASP pages
DescriptionBreakpoints were not properly hit in classic ASP pages
ResolutionThey are now working properly
IssueQuotes not inserted after Class or CssClass attribute even when the option is enabled
DescriptionIf you type the “class” or “CssClass” property with the option to “Insert Attribute Value Quotes when Typing”, you used to get no quotes.
ResolutionThis option now works properly
IssueHTML editor in Split view resize problem
DescriptionIn split view in a dual monitor setup, when “vertical split mode” is enabled, you were unable to drag the splitter around.
ResolutionNow you are able to drag the splitter around
IssueImages disappear in design view when opening 2nd or more aspx pages
DescriptionIf your ImageUrl on a server control points to an image location that is not app relative, the image would not always display correctly in the designer.
ResolutionThe image should now display correctly
Project System / Templates / Compilation / Debugging
IssueCOMException when you open a WAP that uses IIS without permissions to IIS
DescriptionIf you try to open a WAP that uses IIS without admin privileges, you will get an a cryptic error message talking of a “System.Runtime.InteropServices.COMException”. This can also happen when you upgrade your existing VS2005 WAPs.
ResolutionNow you get an actionable error message
IssueUsing configSource for <system.web><compilation> section breaks debugging in VS2008
DescriptionIn a WAP project, if you had a configSource in your web.config that pointed to a section that enabled debugging, Visual Studio would not detect this and prompt you to enable debugging anyway, thus breaking your web.config.
ResolutionNow if Visual Studio detects a configSource, we ignore the debug option and you must set this manually.


Files marked “Copy Always” to the output directory in WAP do not get copied when you build to a location different than the default

DescriptionIn a WAP project, if you add a file and change it to “Copy Always” in the property grid, it will not get copied if you try to output to some other folder, such as by the following command line “msbuild /p:OutDir=c:\MyOutDir WebApplication1.csproj”. Note that this is how Team Build operates so files of this type in Team Build cases will be copied properly.
ResolutionNow files marked as this type will be copied
IssueVS will hang with IE8 when Ctrl-F5, View in Browser, or F5
DescriptionIn the IE8 Beta, Visual Studio would hang for long periods of time when starting the web browser with or without the debugger
ResolutionThis should now behave like other versions of IE.
IssueMultiple debug actions without closing IE may deadlock VS with IE.
DescriptionWith script debugging enabled, occasionally on certain configurations VS might hang when starting without debugging.
ResolutionVS should no longer hang

AutoEventWireup=”false” by default in sub-master page.

DescriptionWhen you create a master page that inherits another master page, the template will set AutoEventWireup=”false”
ResolutionIt is now set to “true” in this case
IssueWeb config validation does not recognize ‘traceOutputOptions’ attribute
DescriptionThe web.config would squiggle the ‘traceOutputOptions’ attribute and indicate that it is not a recognized attribute. It would give the error: “The ‘traceOutputOptions’ attribute is invalid – The value ‘Callstack, DateTime’ is invalid according to its datatype ‘NmToken’ – The ‘,’ character, hexadecimal value 0x2C, cannot be included in a name.”
ResolutionIt now validates this correctly
IssueWeb Debugging fails if compilation element is defined inside of <location> element.
DescriptionIf you had a <location> tag in your web config, in which you had set debug=true, Visual Studio did not properly parse the file and tried to set debug=true anyway, which could break your web.config.
ResolutionNow we only set compilation debug to true if either we have root System.Web section which contains a <compilation> tag, or if you have neither a root System.web compilation section nor a <location> tag.
IssueAutomatically updating webreference in client, while debugging webservice on the same machine.
DescriptionThere are cases when Visual Studio may update a web reference while you are debugging.
ResolutionWe now explicitly prohibit Visual Studio from updating a web reference while in debug mode.
IssueVS2005 Publishes bin\vssver2.scc
DescriptionIn a Web Application Project under source control, if you build and Publish Project we would publish the vssver2.scc file, and subsequent publishes would fail with the error “Unable to add ‘bin/vssver2.scc’ to the Web. The file ‘bin\vssver2.scc’ already exists in the Web.
ResolutionVisual Studio no longer publishes this file, so publishing should no longer fail
Issue.sln file for Web Site solution doesn’t update PhysicalPath property when the .sln file is Saved As…
DescriptionWhen you do a “Save As…” on your solution and you save it to a different location, the AspNetCompiler.PhysicalPath property of your solution would not change to reflect the new relative path of your web sites against that solution. This would cause MSBuild to fail with an error 1003: The directory ‘<dirname>’ doesn’t exist.”
ResolutionNow when you save your solution somewhere, the solution is dirtied with the new correct path to your web sites.
IssueCannot Use IIS Web Server option and set project URL
DescriptionIn a WAP project where the files are on a remote location, if you specified a remote server to debug against in the Web property pages under “Use Local IIS Web Server”, we would not allow you to proceed without configuring the virtual directory, which was not possible for remote servers. This made it very difficult to debug against a remote IIS location for remote WAPs.

We now have the “Use Custom Web Server” option where you can specify a remote server to debug against. Screen shot below:


IssueHTML designer does not accept keyboard shortcuts

The following shortcut keys did not work in the designer:

Ctrl+I, Ctrl+U, Ctrl+L, Ctrl+B

ResolutionThey now do the following: I = italic, U = underline, L = hyperlink, and B = bold
Issue“Format->Position” is disabled for all <span> based controls (Label, Hyperlink, SiteMapPath), absolute position on drop also does not work.

Span tag selections, such as hyperlink controls, did not support the Positioning tool in the format menu.  If you select these in design view and go to the format menu, the Position item will appear disabled.  Some examples of these tags include: HyperLink, LinkButton, Label, CheckBox, RadioButton, SiteMapPath.

ResolutionThis has been enabled for span selections.
Issue<div> inside a table renders poorly when a width syle in percentage is applied
DescriptionIf inside a table cell you put text that wraps inside of a div tag that has a width applied, an example looking something like: “<div style=”width:50%”>Long Text Here</div>”, the div will render improperly with a very small width
ResolutionIt now matches IE
IssueUnable to resize vertically certain html elements that have a height specified in percentage.

For certain elements (e.g. div, table, input), if you specify a percentage height specified and try to resize the element vertically, it is not resized. This happens when there is no outer positioned/sized container with height specified, Example:

<textarea id=”TextArea1″ cols=”20″ rows=”2″ style=’width: 50%; height: 50%’></textarea><br />

<input id=”Button1″ type=”button” value=”button” style=’width: 50%; height: 50%’/>

ResolutionThe elements are now able to be resized in the designer

ASP.NET StylesheetTheme can’t be use with Master Page in VS2008 RTM

DescriptionIf you’re using master/content pages, in your content page if you apply a theme as a StyleSheetTheme, but the theme contains a CSS page (as opposed to just Skin files), you will get an error rendering your page in design view for the content page.
ResolutionThe theme now displays correctly.
IssueProblem with NavigateURL of Hyperlink Control – URL resolution

In some cases the URL Picker dialog would give the wrong location for pages. For instance, if you had two pages in a folder, and in one page you had a server control that you wanted to link to another page by using the URL picker, you would get the
“name of the directory/page.aspx” as opposed to “~/name of the directory/page.aspx”

ResolutionWe now give the proper app-relative URL


BulletedList control rendered incorrectly on the designer within a DIV with Overflow set to  Auto

DescriptionFrom within a container such as a div, bulleted items, such as <li>, might overflow outside of the container control with the overflow value set to hidden
ResolutionIt now properly clips the bulleted items when the overflow is set to hidden
IssueComponent One Menu and Toolbar render a weird “x” in DV
DescriptionRendering a zero width div would render it as no width
ResolutionIt is now rendered as zero width
IssueCannot insert a Hyperlink with an Image selection
DescriptionWith an image selected, you could not convert it to a hyperlink by going to the “Format > Convert to Hyperlink” command, as it was disabled.
ResolutionThis command is now enabled for images
IssueUnable to drop two controls w/ same namespace, but from different assemblies on the design surface.
DescriptionIf you have two assemblies with two different custom controls that have the same namespace, when you drag the custom control, Visual Studio will incorrectly change the tag prefix of the first control to that of the second control, so you will get errors rendering these.
ResolutionIt now correctly respects the tagprefixes and namespaces.
IssueCSS files in folders nested under App_Themes are not picked up at design time in VS 2008 RTM
DescriptionWhen using themes, if you create a style in a nested folder inside of your theme (e.g. App_Themes\Theme1\MyStyleSheets\MyStyles.css), these would not be picked up by the designer.
ResolutionThey now display properly.
IssueMany NBSPs added and tag name corruption when editing a page that uses Telerik controls (popular custom controls)
DescriptionWhen there are multiple register directives for the same namespace in different assemblies, multiple NBSPs may be generated in your page and your markup could possibly be changed incorrect. This can be seen when using some Telerik controls.
ResolutionVS no longer changes your code incorrectly
IssueStyle was not preserved during style editing
DescriptionIn an inline style, there were cases when after using the style builder, your single quotes would be turned into “&quot”.
ResolutionWe now always use single quotes in inline styles

~/ is not supported in <link> element

DescriptionIf you put a “~/” in a link tags that were runat=server to refer to a location of a style sheet, Visual Studio wouldn’t be able to interpret this. E.g. “<link href=”~/Styles/StyleSheet.css” rel=”stylesheet” type=”text/css” runat=”server” />”
ResolutionThis is now allowed at design-time.
IssueTelerik Controls Not Working in Visual Studio 2008
DescriptionSome telerik control configuration aren’t working properly in all cases in VS2008. Specifically, if you click on the RadAjaxManager and click Configure Ajax Manager, you will get an empty collection when you inherit from a master page.
ResolutionYou now get the appropriate collection when using this configuration utility.

The following are some additional bug fixes in the designer space: