So UI is on my mind recently.  I mean how can you really use rainbow if you cant show it to the world or at least to your intranet users.  Often I run into small issues where things are out of wack or a module is rendered incorrectly.  Manu recently (yesterday) showed me a site he got working with Masterpages and having the rainbow sql backend.  This got me to thinking that it really isnt that hard to add the master page functionality to rainbow.  I have this as my top priority for Beta 2 ( closly tied with stablity).  I thought Id write how I plan on doing this. 

   Ive never been much of a UI guy myself.  I always left that up to Rahul.  In college, I kept telling myself that as long as I know ASP.NET, Ill be gold.  Unfortunately for me and fortunate for the rainbow project, Rahul was right in telling me that UI matters as much as functionality.  Its the very reason a lot of Rainbow's functionality is hidden because of poor UI or lack of a solid core module.  I just recently deployed the telerik Menu control in an enterprise application.  I hope to use this info to apply to adding a menu control ( and maybe a trial telerik menu hint hint) and master pages to rainbow. 

   My plan is simple.  Support master pages  AND the two current schemes ( which hopefully we can get rid of in the future due to this upgrade) of design in Rainbow ( classic and Zen).  Im starting with a copy of the default folder in DesktopLayouts.  This is where I can take advantage of ASPNETDB ( profile info) and add my menu control.  I then will proceed to add a master page file ( default rainbow ie classic or zen but still in a master page) for the old system and 1 for ASP.NET 2.0 Skins/Themes approach ( the one I prefer).

   Bottom line, a user should be able to create ANY master page and ANY theme and apply it to your master page to make a rainbow site look like anything.  Tis a mouth full..until my next update.  Comments on my approach?

 

Update :  With the below example and changing DesktopDefault.aspx Ive gotten MasterPages to work.

 

Some code from my master file:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Default.master.cs" Inherits="Design_MasterPages_Default" %>

<%@ Register Src="DesktopPortalBanner.ascx" TagName="DesktopPortalBanner" TagPrefix="uc1" %>

<%@ Register Src="DesktopThreePanes.ascx" TagName="DesktopThreePanes" TagPrefix="uc2" %>

<%@ Register Src="DesktopFooter.ascx" TagName="DesktopFooter" TagPrefix="uc3" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Rainbow Portal Master</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:contentplaceholder id="ContentPlaceHolder1" runat="server"><uc1:DesktopPortalBanner id="DesktopPortalBanner1" runat="server"> </uc1:DesktopPortalBanner></asp:contentplaceholder>

<asp:contentplaceholder id="ContentPlaceHolder2" runat="server"><uc2:DesktopThreePanes id="DesktopThreePanes1" runat="server" ></uc2:DesktopThreePanes></asp:contentplaceholder>

<asp:contentplaceholder id="ContentPlaceHolder3" runat="server"><uc3:DesktopFooter id="DesktopFooter1" runat="server" ></uc3:DesktopFooter></asp:contentplaceholder>

</div>

</form>

</body>

</html>