Site Programming Changes
The arena of site programming is where the most significant changes to Content Management Server will be made for the 2002 version. Like many of the other Microsoft .NET Enterprise Servers, Content Management Server is being re-worked to fit into the .NET programming paradigm.
The following list highlights the major differences:
- Allowing Content Management Server Web sites to be built using ASP.NET will enhance the development experience.
- Visual Studio .NET will become the required tool for developing ASP.NET Web sites based on Content Management Server. This is due to the degree of integration between Visual Studio .NET and Content Management Server 2002, as many of the remaining items in this list will make apparent.
- Templates will no longer be maintained within SQL Server. They will be maintained on the file system as normal .NET-based Web pages. Among other benefits, this will provide many more options for source control.
- Content Management Server will not change templates. In other words, there will not be any behind-the-scenes modifications made to templates, as was done in the 2001 version. This means that the template that site programmers see during a debugging session will be exactly the same template that they wrote, helping to alleviate a source of confusion in the 2001 version.
- To support backward compatibility, templates can be written to work with either ASP or ASP.NET.
- Content Management Server will behave in a more standard way with respect to being an Internet Information Services (IIS) application, and will use either the global.asa or global.asax file, as appropriate, for application initialization.
- The concept of page definitions will be made explicit rather than implicit, and will contain placeholder definitions, including their type and configuration, and revision information. Page definitions will be stored with the templates that use them, and can be shared across multiple templates. In fact, connected pages will be required to share a page definition.
- The Publishing API (PAPI) will be extended in two orthogonal ways. Some of the objects in the COM version will get some new properties and methods, and this new version of the object model will be wrapped up as a managed code version for use in .NET-based implementations.
- Content Management Server 2002 allows users to store XML content in placeholders and to access that content through the PAPI. Returned XML will support XSD validation and data binding to supported server controls.
- Content Management Server will extend the framework of Visual Studio .NET to provide direct developer access to the Content Management Server objects and data structures, as well as providing a seamless debugging environment that is aware of Content Management Server.
- Integration with Visual Studio .NET will provide an extensible palette of placeholder server controls that can be dragged and dropped into template code.
- Integration with Visual Studio .NET will be extensible with respect to integrating custom Content Management Server components.
- Integration with Visual Studio .NET will allow the creation of Content Management Server projects that allow templates to be written in Microsoft Visual Basic .NET, Microsoft Visual C# , or any other language that supports the common language runtime. When a Content Management Server project is open, the Visual Studio .NET menus will be extended to support actions such as starting the Site Manager application (formerly the Site Builder application) and the Web Author application.
- Integration with Visual Studio .NET will provide tool windows and chooser dialog boxes to create, edit, and delete template galleries and templates, placeholder definitions, custom properties for templates, and code segments that employ a multiple selection clipboard.
- Content Management Server 2002 uses ASP.NET server controls for several different purposes, and although people in a variety of roles will use these controls, they significantly change the way site programming is performed. These controls can be dragged into templates from within Visual Studio .NET. The following table explains these server controls.
|Server control ||Description |
|Console ||The Console server control is visible to users other than simple subscribers and allows a variety of actions to be performed, such as: |
- Switch between the Live mode and Editing mode of the Web site
- Author pages
- Approve pages
- Determine the approval state of various pages
- Change channel and page properties
The Console server control can also be extended to provide actions customized to particular business needs.
|HTML Placeholder ||The HTML Placeholder server control allows HTML content to be authored within a rich edit control. It is a server control version of the ASP placeholder used in the 2001 version of the Web Author application. In Live mode, this control emits the stored HTML for display to a subscriber. When template designers are creating templates, this control works within and extends the Visual Studio .NET property browser. |
|Single Image Placeholder ||The Single Image Placeholder server control allows authors to select an image from a resource gallery or upload an image to the Content Management Server database. In Live mode, this control emits the necessary HTML to display the stored image. There is also design-time support for configuring this placeholder in Visual Studio .NET. |
|Single Attachment Placeholder ||The Single Attachment Placeholder server control allows authors to upload an attachment, such as Microsoft Word or Excel documents, to the Content Management Server database. In Live mode, this control emits the necessary HTML to display a link to the stored attachment. There is also design-time support for configuring this placeholder in Visual Studio .NET. |
Content Management Server 2002 is meant to be extended with new ASP.NET server controls. One area in which such extensions can be created concerns custom navigation controls. Content Management Server will provide programmatic access to an XML representation of the channel/page hierarchy so that site programmers can build their own navigation controls, such as a tree control, that bind to this representation.
It is also expected that third-party developers will create new placeholder server controls based on the .NET Framework. They will be able to begin by deriving a new server control from either a standard .NET-based server control or one of the out-of-the-box Content Management Server controls, and then extending its functionality to suite their purposes.
- A new API for site deployment functionality will be exposed in Content Management Server. It will be called the Site Deployment API (SDAPI).
- ASP.NET caching will be used to improve the performance of dynamic sites, including the caching of relatively static fragments of otherwise dynamic pages. Caching controls allow independent caching of template fragments that are reused in many templates, such as banners, global navigation or common placeholders. Note that caching needs to consider the role of the user, so that, for example, simple subscribers do not see the links provided to authors and editors for switching to Edit mode.
- Site programmers will have access to the various authentication mechanisms supported by ASP.NET, such as Windows authentication (including basic, digest, and Kerberos variants), Forms authentication, and Default (anonymous) authentication. This means that subscribers can have a single sign-on with all IIS-compatible applications. The authentication mechanisms now available in the 2001 version of Content Management Server will still be available. Site programmers will also be able to devise authentication mechanisms of their own design and map them into the Content Management Server authentication model.