Saturday, March 11, 2006

Working with Sitecore in VS .NET 2005


Due to the different approach of creating a new web project in VS 2005, some tricks should be made to create a Sitecore project. Firstly, you need to download and install Visual Studio 2005 Web Application Projects (Beta V2 Preview) Then you need to perform the following steps in order to get a similar functionality for working with Web Project like it was in VS 2003: 1. Start VS 2005 and create ASPNET Web Application: Visual Studio creates solution and project only in subfolder now: /Test5203/Test5203/ 2. Close project 3. Move project files (*.csproj.user and *.csproj, Properties folder) to the Sitecore distributive root 4. Open the project (*.csproj file ) from the Sitecore distributive root. 5. Exclude the default.aspx page from the project. Now you can add necessary assemblies, include some layouts and sublayouts in project as it was before: 5. Make sure that Project Properties -> Ouput Type is Class Library like it is shown here. 6. In order to work with code behind class you should resort to some trick.
  • Create a layout in Sitecore. Do not include one in the VS project
  • Create WebForm in VS with the same name and overwrite the existing layout:
  • Add missing directives at the top of the layout: <%@ OutputCache VaryByParam="none" Duration="100" %>
<%@ register TagPrefix="sc" Namespace="Sitecore.Web.UI.WebControls" Assembly="Sitecore.Kernel" %>
  • If you want to work with code-behind class, you should replace the CodeBehind page attribute with the CodeFile attribute:
<%@ Page language="c#" Inherits="Viewstate.layouts.Main_Layout" Codepage="65001" CodeFile="Main Layout.aspx.cs"%> Well, that’s all. Now you can work in VS 2005 like it was in VS 2003 - compile, attach to ASPNET process, debug code etc. Related reading:
  1. http://webproject.scottgu.com/
  2. http://webproject.scottgu.com/CSharp/Default.aspx
  3. http://webproject.scottgu.com/CSharp/HelloWorld/Helloworld.aspx
P.S. Great thanks to Alexander Tsvirchkov for the complete step-by-step instructions.

3 comments:

Alex de Groot said...

Quite a clear story :).
I guess the main problem with ASP.NET 2.0 is actually the new project structure. However the scottgu's initiative is a good one, I hope the Visual Studio Team will also come with a solution for Web-projects.

Alexey Rusakov said...

Alex: I heard that Microsoft is going to fully support Scott Guthrie's web app project as soon as its released - good comeback, at least.

Martin Staael said...

We could not get it to work with the example provided for codebehind.

But if we changed
"Viewstate.layouts.Main_Layout"

to
namespace.class_name

then it works fine.