help.axcms.netAxinom Logo
Save Save Chapter Send Feedback

Upgrading to Visual Studio 2005

 

Visual Studio 2005 and AxCMS.net

All the versions of AxCMS.net until 5.2.X have been based on .NET Framework 1.1. They have been designed to use with Visual Studio .NET 2003. However, on December 30th, 2005 Axinom released the first AxCMS.net (version 5.5.0) targeted to .NET Framework 2.0 and Visual Studio 2005. This chapter gives you an overview of the upgrade procedure.

Upgrading development environment

Your development environment should be prepared for the upgrade the following way:

1) Install Microsoft Visual Studio 2005 (should be Standard Edition or higher, no Express Edition).

2) Download and install Visual Studio 2005 Web Application Project (available at: http://go.microsoft.com/fwlink/?LinkId=57870).

3) It is also recommended (although not compulsory) that you upgrade your SQL server.  One option is to use Microsoft SQL Server Express edition (available for free at: http://msdn.microsoft.com/vstudio/express/sql/)

Upgrading production environment

For the production environment only the .NET Framework 2.0 is nececcary.  

Microsoft .NET Framework 2.0 Redistributable Package is available at: http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en

Converting your AxCMS.net-templates-project

In Visual Studio 2005 Microsoft changed the way web-projects are handled, but had to re-introduce it later in form of an add on: "VS 2005 Web Application Projects". To take advantage of this add one one has to manually convert the projects, created with VS 2003. More information available here. Following are the steps:

1. Backup your current solution
In order to avoid potential problems, please backup everything related to your development: source code, databases etc. It is quite likely that nothing serious will happen, but better safe than sorry.

2. Open your VS 2003 solution and make sure it compiles clean
It can save you much time troubleshooting later.
If you use source control, please check that everthing is checked in, because the VS 2005 Conversion Wizard checkes out some files.

3. Modify the VS 2003 .sln/.csproj files to change the web project to be a class library

3.1 Close the solution in VS 2003

3.2 Using notepad, open the .sln solution file for the solution. The .sln file is a text-based file that contains your project wide-settings, as well as pointers to all of the projects and project-files contained within it. For example, the below snippet shows a VS 2003 solution file with a web-project: 

Microsoft Visual Studio Solution File, Format Version 8.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AxCMSTemplates_Sample", 
"http://localhost/AxCMSTemplates_Sample/AxCMSTemplates_Sample.csproj", 
"{345F0E9A-24F3-451C-B8EE-6B3796797BC8}"
    ProjectSection(ProjectDependencies) = postProject
    EndProjectSection
EndProject

Manually edit the web-project definitions to remove the http:// path location information, and instead just point to the .csproj file directly (like you would for a normal class library - using file-path information relative to the .sln file). For example, the web project definition above - "http://localhost/AxCMSTemplates_Sample/AxCMSTemplates_Sample.csproj" - would change instead to be "AxCMSTemplates_Sample\AxCMSTemplates_Sample.csproj" (note that the path had to change from "/" to "\" because it is now a file-path).

Note: if your web-projects are already referenced as csproj-files directly, without http://, go directly to the step 5.

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AxCMSTemplates_Sample", 
"AxCMSTemplates_Sample\AxCMSTemplates_Sample.csproj", 
"{345F0E9A-24F3-451C-B8EE-6B3796797BC8}"
    ProjectSection(ProjectDependencies) = postProject
    EndProjectSection
EndProject  

3.3 Using notepad, open and edit each of the .csproj files for the web projects in your solution. They will each contain a header that looks like this:

<VisualStudioProject>
    <CSHARP
        ProjectType = "Web"
        ProductVersion = "7.10.3077"
        SchemaVersion = "2.0"
        ProjectGuid = "{345F0E9A-24F3-451C-B8EE-6B3796797BC8}"
    >

Change the "ProductType" value from "Web" to "Local", and then save and close the files:

<VisualStudioProject>
    <CSHARP
        ProjectType = "Local"
        ProductVersion = "7.10.3077"
        SchemaVersion = "2.0"
        ProjectGuid = "{345F0E9A-24F3-451C-B8EE-6B3796797BC8}"
    >

3.4 Lastly (and importantly), delete the .webinfo files associated with each project. For example, if the .csproj file's name is "AxCMSTemplates_Sample.csproj", look for and delete it's "AxCMSTemplates_Sample.csproj.webinfo" file.

4. Re-open the solution in VS 2003 and verify that the projects open and build fine
Once you've completed the above steps, your web-projects will be treated as class-libraries in VS 2003. They will have the same build semantics as before - but their tie to Frontpage Server Extensions will be gone.

5. Open your development solution with Visual Studio 2005
Visual Studio automatically fires Visual Studio Conversion Wizard at opening the solution. Let it convert your solution to Visual Studio 2005 – it is very intuitive to use that wizard.
In the end Visual Studio displays details of conversion (make sure that all the projects in your solution have been upgraded successfully).

Choose the "Save All" command in Visual Studio's file-menu to make sure that you save the converted solution and project files and everything you have open.

6. Convert your web projects to be Visual Studio 2005 Web Application Projects

Close the solution (File->Close Solution).

Using notepad, open up the .csproj files for your web-projects again. This project file will now be in a MSBuild based file-format that looks like this:

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectType>Local</ProjectType>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.50727</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{22C5DF64-8114-41F3-92DF-DBC285835584}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>WebApplication10</RootNamespace>
    <AssemblyName>WebApplication10</AssemblyName>
  </PropertyGroup>
You then need to delete the line with ProjectType=Local
and replace it with the exact line below:
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

Save and close the web project's .csproj file and re-open the .sln solution file

7. Configure IIS to use .NET Framework 2.0 for your project
Open Internet Information Services configuration panel and do the following for each template project’s virtual directory:
[Right-click on the virtual directory] --> properties --> ASP.NET --> [change the ASP.NET version from 1.1 to 2.0].


Note. Here is how to do it programmatically:
WindowsDirectory%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -s w3svc/1/root/%dnnname%


Note. Make sure you remove WebApplication from the "templates" subfolder: at IIS Configuration Manager [right-click on "templates"] --> [Properties] --> [Virtual Directory] -->[under "Application Settings" press "Remove"].

8. Upgrade AxCMS.net
Follow the regular steps to upgrade AxCMS.net to the latest version. Detailed upgrade instructions are available here.

9. Check your web-proxies

If you are using web-references to access web-services, the conversion wizard will regenerate the proxy-classes. If you made any changes to them, they are lost. You have to find your previous versions in the backup (haven't we warned you?) or in your source control system and reapply the changes.

Possible changes are:

  • Custom bases class for the proxy (e.g. WebServicesClientProtocol is required for WSE)
  • Custom constructor (e.g. passing Url or configuration-class as a parameter)
  • Deleting of some automatically generated parameter-classes

10. Compile your solution using VS 2005

You will get many warnings, caused by the switch do .NET Framework 2.0, where many old features are marked obsolete. But you should be able to compile the solution and use it under .NET Framework 2.0 and Visual Studio 2005.

That’s pretty much it. After completing those steps you are ready to develop your template project by Visual Studio 2005. Enjoy!