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 |