Home > Z Tech Notes

Project Layout:

  • DR Libraries
    • Data Access - All data access goes through this library. All database access is controlled through Operations classes, which descend from the Access/BaseOperations class.
    • Data Mapping - Contains just the mapping used by NHibernate
    • Data Objects - Contains the CLR objects used by NHibernate. Also contains various utilities / helpers used throughout the site. In particular:
      • Head/Controls/* - Controls used to include style / javascript in the head. Please use these controls to include any additional stylesheets or javascript that you need. In the JavascriptBlockControl, use backticks (`) to get the ClientID of any control on the page, also to resolve paths. Example:
        <asp:Textbox id="txtBox" runat="server" />
        <sdt:JavascriptBlockControl runat="server">
        document.getElementById('` txtBox`').text = 'Updated!';
        </sdt:JavascriptBlockControl>
      • UI/TabControl - Used for anywhere in the maintenance or public side of the site that requires tabs. See: CMSWebParts/Partners/LIsts/PartnerDetails.ascx for an example.
      • IO/ImageHelper - Use ImageHelper.CheckWebImageExists to create any necessary thumbnails when display image thumbnails.
      • QueryString.cs - Just a wrapper around Request.QueryString to make getting query params / creating links with parameters easier and more consistent.
    • Inntopia - Used to integrate w/ third party site. You shouldn't need to edit this.
  • Testing
    • Test Console - Console app test bed.
  • Kentico
    • This is the actual web site. It is a Web Site project (not Web Application).
    • /_scripts - Most javascript includes are stored here.
    • /_style - CSS files are here. The NCss files are an extension of CSS, you can read about here: http://www.pageofbob.com/NCss/
    • /_images - Images used for styling and buttons/etc are here.
    • /_service - Web services used by AJAX on the site.
    • /_upload - Any thing uploaded by users go in this folder. See DataObjects/UI/ FileHelper.cs for how directories are determined.
    • /CMSWebParts/Newsroom - Put any web-parts you create for the newsroom in this directory.
    • /CMSWebParts/MMGallery - Any multimedia gallery webparts should be in this directory.

Notes about Kentico:

All templates should be Portal Page templates, not ASPX page templates.

Database / Objects

  • All data access is through NHibernate.
  • All versionable objects inherit from DR_Version (Partners, Events, Photos/Videos, News Stories). In the database, the object has a VersionID which coresponds one-to-one w/ DR_Version.ID.
  • Every versioned object can be in the database multiple times (as different versions of the same node), but each versioned object belongs to one and only one DR_Node.
  • Nodes are linked to each other by DR_NodeLink table. Partners are always on the OwnerID side of the relationship.
  • Basic Entity-Relationship diagram: http://tsd2009.dev.l-s.com/_images/DR_DB.png

Minimum Browser Support

  • Site should function/look the same in modern browsers, including Firefox, Safari, Opera, IE 7+, etc.
  • Site should function and look mostly the same in IE 6 - Minor graphic glitches will be tolerated, as long as they are very minor and don't hinder using the site.
  • No official support for IE 4, IE 5.0, or IE 5.5

NodeLink Table Ownership

(who is OwnerID vs ItemID?)

Owner Item
Partner GalleryItem
Event
News Story
Product
Package
Event GalleryItem
News Story
Package
News Story GalleryItem
Product GalleryItem
GalleryItem nothing - never owner.
Package GalleryItem