I have recently, well not really recently, it has been an on going project for about as long as rainbow has been around.  It’s name is OmniPortal.  It was developed under frustration with many of the current .Net portal solutions out there.  It was designed from the ground up with the idea of total separation of the GUI and the core.  What this gives you is four layers of code.


Somethings you should know before reading on a Module is a generic object, and a section is an instance of a module.  So you can have many sections that are based off the same module.


  1. At the bottom you have the DAL, which is a generic DAL which means you can define any Database Access Language that implements ADO.Net, currently there is support for SQL and OLDBC. 
  2. Then on top of the DAL comes the core or the kernel, which handles all the operations of the portal, but does not container any specific code that is targeted at one thing (i.e. news, downloads, etc.).  So the cores only functions is to handle incoming requests and find the correct module to turn operation over to.
  3. After the operation is turned over to the module it can handle all parts of the normal ASP.Net operation that you would find in the Page Control, but the module isn’t just limited to one page, it can have multiple pages combined in one module, which are defined by the Module.config file.  This has turned out to be a very powerful feature because I have successfully taken ASP.Net Forum and integrated it into a single module, with very little to no code changes in the aspx and ascx files.  And if functions just like ASP.Net Forum except now it can be inigrated in the site easily, but just setting up a section that points to the module.
  4. Then the GUI on the top level works much like that of ASP.Net Community Portal, but with some exceptions in which you are not binded to a specific instance of the class in the DLL you can create your own or inherit the one from the Default skin when creating your own skin and the portal doesn’t function any differently.  Because this is possible you are able to create any GUI that you would like.  There is also support for portlets too, which are not modules but single ascx files that work much like the modules in rainbow.  And doing this I have actually created a site with rainbow modules using the OmniPortal code,


If you are interested in this project check it out at http://sf.net/projects/omniportal or if you would like to join the project shoot me off an e-mail or goto http://omniportal.sf.net .


This is just for general information I am not trying to sell this product to you or anything.  But I just wanted to make you aware that this project was born out of many of the fall backs of the Rainbow and DNN as well as the ASP.Net Community Portal..