Adventure Works Cycles Storefront Documentation
 

What's New in the Adventure Works Cycles Storefront

The following changes are in this version (Microsoft® SQL Server™ 2005) of Adventure Works Cycles Storefront:

  • The "Also Bought" upsell control is enhanced to use an OLAP query when OLAP available.
  • The storefront has been enhanced to provide backend processing of orders. Once this feature is enabled in the web.config file, when an order is submitted by the user online, processes such as inventory checking, manufacturing, purchasing and shipping happen asynchronously in the backend to fulfill the order using Service Broker. See the readme_orderingservice.htm file in the installation directory of the Storefront sample for more details.
  • All tiers have been upgraded to match the latest Adventure Works Cycles schema, including the new use of several named schemas within the database.
  • ASP.NET 2.0 technology has been incorporated into the sample including adding a master page, using the login control, and adding a connnectionStrings section to the web.config file.
  • Ship to and bill to addresses as well as carrier information is collected during checkout.
  • Users can sign up for Adventure Works newsletters and update their customer profile information.

Adventure Works Schema

The Adventure Works schema contains tables which represent key business aspects of many small, medium, and enterprise scale manufacturing and sales operations. A comprehensive diagram of these tables and their relationships is contained in this schema diagram. The schema contains tables for the following business functions:
  • Sales force automation and analysis
  • Customer relationship management
  • Human resources
  • Purchasing/Vendor (electronic data interchange)
  • External facing Web site (Internet)
  • Internal facing Web site (Intranet)
  • Manufacturing workflow
  • Engineering document management

The following changes were made a previous version of the Adventure Works Cycles Storefront:

  • A page which gathers demographics during the registration process has been added, along with the infrastructure to store the demographics data into the database. See the Demographics Page for more details.
  • A problem with displaying the user name on the home page has been corrected when the user's name contains certain unicode characters. The problem has been solved by BASE64 encoding the user's name before it is stored in a cookie, and also decoding the cookie prior to display. See login.aspx and default.aspx for implementationd details.
  • A small WinForms sample application named "ReviewWatcher" is now available. This sample application demonstrates how to use the SqlDependency class to register and process query notifications. Query notifications are a way for a client application to receive an event when a database table has changed in Microsoft SQL Server. See Using Query Notifications for more details.
  • The sample application has been ported to Microsoft® Visual Studio® .NET 2005. As part of this porting process the tree control for product categories and subcategories are changed from an add-in tree control to one that ships as part of the 2.0 version of ASP.NET.
  • The Currency user defined type and the ConvertCurrency user defined function are introduced to move some of the globalization and localization functionality to the server. The type and function are both implemented as managed (C#) code, and are loaded into and execute as part of Microsoft SQL Server. This is a new capability and was not available in previous releases of Microsoft SQL Server.
  • Adjustment of tables which have rowguids to match what is required for the replication sample, and removal of the ModifiedDate column. These changes simplify the schema, and reduce the disk footprint for each record, thus improving performance.
  • Changed the identity columns of type tinyint to int. This is required to support replication scenarios.
  • The reorganization of contact information for employees, vendors, wholesale customers (stores), and retail customers (individuals). This change provides significantly better normalization and consistency across these areas of the schema.
  • The removal of the ProductDescriptionXLocale table. This change removes some complexity from the schema which makes it easier to understand and use. The same localization of content is still provided for the product descriptions through the ProductModelXProductDescriptionXLocale table.
  • The renaming of the ShoppingCart table to ShoppingCartItem. This is done because the table contains items in various shopping carts rather than just a list of shopping carts.

Port to Visual Studio .NET 2005

The Adventure Works Cycles Storefront was changed to use the tree control that is provided as part of the standard ASP.NET library included in the .NET Framework 2.0. See the Menu user control for more information. Note that, you will need the .NET Framework runtime (which is included with Microsoft SQL Server 2005) in order to run the sample. You will also need Visual Studio .NET 2005 to browse solutions, compile, or debug this version of the sample.

Currency User-defined Type and ConvertCurrency User-defined Function

A Currency class and user-defined type were introduced into the Adventure Works Cycles Storefront along with a ConvertCurrency method and user-defined function. The type and function are used on the server to greatly simplify the code that handles the conversion of one form of currency to another, and the correct rendering of that currency using the appropriate currency symbol. This part of the sample demonstrates how you can write managed code and register that managed code with the server so that it can be used in server-side data processing. Careful use of this feature of Microsoft SQL Server 2005 can greatly increase the power of user-defined types, functions, and stored procedures, and simplify the interfaces between the middle and data tiers of your application. It is also possible to greatly improve the performance of your applications using these techniques. See Server Side Managed Types and Functions for more details.