Archives / 2003 / September
  • eXist opensource Xml DB & IKVM

    Hi all,

    A fellow contributor to rainbow (Jes) loves xml and has introduced me to eXist. Summary below:

    eXist is an Open Source native XML database featuring efficient, index-based XPath query processing, extensions for keyword search, XUpdate support and tight integration with existing XML development tools. The database is lightweight, completely written in Java and may be easily deployed in a number of ways, running either as a stand-alone server process, inside a servlet-engine or directly embedded into an application.

    Depending on how the database engine has been deployed, eXist offers several interfaces to application developers, including HTTP, XML-RPC, SOAP and WebDAV. Java developers should have a look at the XML:DB API, which provides a common interface to access XML database services.

    He is currently using it via soap. For those of you who cannot run a java app on their hosting account, there is a way of having eXist and other java apps run under the .Net runtime (Via IKVM):

    What is IKVM.NET?

    IKVM.NET is a JVM for Mono and the Microsoft .NET framework.

    What do you mean by JVM for .NET?

    The goal of IKVM.NET is to be able to run any Java existing application and to allow for as much interoperability between .NET and Java code as is possible.

    IKVM.NET consists of several parts:

    • The VM runtime and all supporting code. It contains (among other things):
      - Byte Code JIT compiler/verifier: Just-in-time compiles Java Byte Code to CIL.
      - Object model remapping infrastructure: Makes System.Object, System.String and System.Exception appear to Java code as java.lang.Object, java.lang.String and java.lang.Throwable.
      - Managed .NET re-implementations of the native methods in Classpath.
    • classpath.dll: compiled version of GNU Classpath, the Free Software Foundation's implementation of the Java class libraries. Note that Classpath isn't part of IKVM.NET, but it is used by IK.VM.NET
    • ik.vm.jni.dll: Managed C++ assembly that implements the JNI interface. This is an optional part, only required when an application uses it's own native libraries. This will not be required for pure Java applications, this is important because this code will only run on Microsoft's .NET implementation.
    • ikvm.exe: Starter executable, comparable to java.exe
    • ikvmc.exe: Static compiler. Used to compile Classpath classes into a .NET assembly. In the future it will also be possible to compile Java applications and libraries into .NET assemblies.
    • netexp.exe: A tool that generates stub class files from a .NET assembly, so that Java code can be compiled against .NET code. IKVM.NET understands the stubs and replaces the references to the stubs by references to the actual .NET types.
    • awt.dll: Very limited and broken implementation of a few AWT peers. This is a low priority issue for me.

    But there is one problem:

    eXist throws an exception because of a missing constructor in GNU Classpath's class.

    The Classpath's URI support is lacking in some areas. So if anyone is great at Java and has some spare time for a project in order to implement it, please see

    Unfortunately my java experience is not very deep which is why I was seeing if someone else was interested in this.

    Either way you should check out IKVM and eXist.

    If you like eXist you may also want to look at:

    XMLDB.NET is an implementation of the XML:DB Core Level 1 specification and exist providers for .NET.  You can download the current version via the links below.


    XML:DB (and the EXIST provider).

    You can read the README online.

    Hope you find the software interesting.



  • Rainbow Update - V1.2.8.1738 Released.

    The latest version of Rainbow has been released on sourceforge:

    What's New since

    • More modules now reside within their own folder
    • Lots of bug fixes
    • Upgraded Free TextBox to and Free TextBox is now the default html editor
    • Rainbow now uses the Rewrite.Net Engine as the Url Handler which allows you to build custom rules on how to handle urls (Url builder has also been improved). This improves performance and search engine friendliness. Legacy urls are still supported via a legacy rule so that search engine results are not broken ;-)
    • TabStripDetails has been improved and the slow part of the code has been removed ( A 20x performance improvement has been reported).
    • KickStarter support has been added and rainbow contributors have received a free license (Thanks Mike!)
    • Cory Isakson, added WebCompile Feature so all aspx pages are compiled after the first aspx page has been hit (Thanks to Paul Wilson's article on asp alliance).
    • Fully localized Site Settings and Module Settings by James.
    • Removal of Legacy Files
    • A Windows Script Setup file has been added: Setup\Scripts\setup.wsf making setup an easier process.

    Other News:

    • More and more people have been contributing to Rainbow, not only code but also documentation (Thanks to everyone who has contributed):

      New Documentation: Webmasters Handbook by Tilli 

      New eCommerce 'Product Module' user guide by Thiery

      Other documents have also been updated:
    • The website has been updated and is now running version
    • A Module Gallery Module is currently being worked on to allow people to find out more and download modules (currently in beta).
    • A Themes and Skins Section has been added to the rainbow website to allow people to share/showcase their work.
    • Jakob has created a Beta Version of MDF (Module Data Filter) (Not in latest rainbow release as it is beta):

      "I did this code/helper because I got tired of not being able to display data from one module in another module. So I created a general solution: MDF. Getting a module to use MDF is done in 30 minutes.

      To get code: See Download tab at

      Use MDF with modules that displays list of items, e.g. Links, Announcements, FAQs,
      Tasks, Contacts, Document, Events and Pictures. MDF controls the items being listed with these settings:

      DataSource: "This", "All" or "List"
      Max Hits Represents the number of items returned by MDF
      Module List: List of module ID's. e.g.: 20242,10243.
      All Not In List: If DataSource is "All" this can exclude modules
      Sort Field: A list of all fields from the core item table
      Sort Direction: ASC/DESC
      Search string: typically a word like "fish"
      Search field: All fields or a specified field from the core item table"

    • Cory has kept up contact with Shaun from DNN to see where each solution can complement each other. Jeremy White (From DNN) is working on a Rewrite.Net Rule for DNN and has been working on a Url builder for DNN (Hopefully from here more components can be built together to avoid re-inventing the wheel and benefiting from each team's experiences).
    • PDC - Birds of a Feather : Rainbow/DNN/IBuySpy has been approved as a topic 
    • Mark has done even more improvements to the rainbow portal site and Graz will soon be producing a regular rainbow newsletter.

    A complete history of the changes made to rainbow so far can be found here:





  • Rainbow History

    The Rainbow project is an open source initiative to build a comprehensive content management system using Microsoft's ASP.NET and C# technology. A VB version is also available.

    Rainbow, available today in 14 languages, allows content authoring to be safely delegated to role-based team members who need little or no knowlege of HTML.  Rainbow optionally supports a two-step approval-publish process.  45 plug-in modules are now included in the standard release, including support for an e-store, XML news feeds, Flash, Maps, Newsletter, Surveys, Forums, Document Management, Custom Lists, and more.  It's also fairly easy to build your own custom modules using the guidelines provided on the Developer Documentation page.

    Rainbow has received more than 11,217 downloads to date and is already in production at many commercial internet and intranet sites.  To find out more about rainbow and it's contributors (Total-Ingenuity, Duemetri etc please visit

    Below is a history of all the changes that have been done to the rainbow portal solution since it began as an open source project:

    ----------------------------------------------------------------------------------------------------- (RC3) - 03/04/2004
    by Jakob Hansen
    - FIX: Module Discussion. Now child messages messages will be displyed correctly:
      Changed line in sproc rb_DiscussionAddMessage in file install.sql to
      "SET @ParentDisplayOrder = ''" instead of "SET @ParentDisplayOrder = 'a'". - 03/04/2004
    by Jakob Hansen (Tim Capps)
    - ENH: Module Pictures. Added bulk load for jpg files (new module setting
      named "AllowBulkLoad"). All code was done by Tim Capps,
      Note: No database change for this enhancement. These 3 files are updated:
      Pictures.ascx.cs, PicturesEdit.aspx and PicturesEdit.aspx.cs. - 31/03/2004
    by Manu
           An important fix was made to avoid that a maliciuos use can access your admin protected pages.
           All users should upgrade to this version.   - 18/03/2004
    by Manu
    - ENH: Improved custom registration modules.
           In the old way custom pages cannot have custom settings.

           Current way to add register module (still ok)
           - You must place you custom page in DesktopModules\Register folder
           - Your custom page must be control named Register<....>.ascx (start with Register word)
           - Your control must implement IEditUserProfile interface
           - Your control may or may not be compiled with Rainbow (it can be in its own dll)
           - On Portalsettings select you control from the menu.
           Using custom settings:
           - You must register your control as a standard module
           - Add it to a page (hidden usually)
           - Change your settings
           - Record the module number (mid in querystring in property page)
           - On Portalsettings fill the Register module ID box with the number. - 13/03/2004
    by Jakob Hansen
    - ENH: Added Bulgarian string resource file in folder Resources.
           The translation is done by Alex Campbell ( - 10/03/2004
    by Manu
    - FIX: Better null check getting languages from db. Avoid loggin error.
    - FIX: Ecommerce option check, fixed null reference error (many places).
    - FIX: Ecommerce, more logging.
    - FIX: Ecommerce, provided a default for Secure dir tied to current portal,
           web.config value commented out.
    - FIX: Ecommerce, now product checkout links use weburlbuilder.
    - FIX: Refreshed Ecommerce settings and Merchant Manager.
    - FIX: PortalSettings, get languages null reference.
    - FIX: Better error management in XslHelper.
    - FIX: Removed warn on Default location not present for XSLTFile
    - FIX: Null exception value on Rainbow.HttpUrlBuilder.WebPathCombine fixed.
           This solves an error occourred on creating a new portal.
    - FIX: TextBox editor now follows themes. This fixes problems with custom embedded fonts.
    - FIX: Register pages does not correctly logons a newly created user so current
           user information are not available until user logs off and logs on again,
           now it uses the same code used by login page. - 03/03/2004
    by jakob
    - ENH: Added OneFileKitModule C# example: ExcelReader. - 03/03/2004
    by jakob
    - FIX: PortalSearch problem caused by Blog module fixed. I removed all "COLLATION"
           from SQL scripts and renamed "Abstract" to "Excerpt" in SearchSqlSelect(). - 27/02/2004
    by Manu
    - FIX: New tab sometimes gets error
    - FIX: Add new portal. More consistent with framework.
           Fixed add button that in some circumstances disappeared.
    - FIX: Roles control, fixed localization on Add role button.
    - FIX: Sendnewsletter was not retrieved correctly in RegisterFull page.
    - FIX: Changed ApplicationPhisicalPath
    - FIX: Added more troubleshooting writes to log file - 13/02/2004
    by Manu
    - Upgraded HWMenu to version 1735: - 13/02/2004
     - Now div size is correct and works with any child number.
     - Width is correct
     - 1x1 image now is loaded from scripts directory
    - FIX: Now the height of menu item is loaded from menu height
       (the height is the height of a single row not the height of the menu). - 23/02/2004
    by Thierry (Tiptopweb)
    - FIX: install from an empty Rainbow DB is now working (building DB from v1111 to v1758)
      ECommerce module install.sql : rb_CartRemoveAllItems is used in rb_AddOrderDetails, the order of the 2 stored proc has been inverted - 23/02/2004
    by Jakob Hansen
    - FIX: Outcommented Italien Web.config keys in BankGateways: Carige, Telepay and SellaCripto.
    - Note that there are a problem with installing this version. A quick fix is to
      outcommnent all ecommerce code in the history.xml file and add the missing
      sproc that is used by the login code. (I forgot the name of the sproc...) - 18/02/2004
    by Jakob Hansen
    - ENH: Added Blog module (All code done by Joe Audette) - 12/02/2004
    by Manu
    - ENH: Moved WebPathCombine to HttpUrlBuilder class
    - FIX: Used WebPathCombine method to fix path on HeaderImage
           Now all images are expected in private portal directory. - 11/02/2004
    by Manu
    - FIX: New WebPathCombine method in ThemeManager. Changed all web paths concateneation for using new method.
    - FIX: Custom theme where duplicate in the drop down list.
    - FIX: Opera browser recognized as mobile. - 03/02/2004
    by Thierry (Tiptopweb)
    - FIX: Custom theme for a page was always returning the Alt theme (instead of Default) (PortalSettings.cs) - 31/01/2004
    by Manu
    - FIX: Minor fix on search: now empty topics are ignored
    - FIX: Theme from portal dir now uses correct path. - 29/01/2004
    by Manu
    - Improved Portal Search - Added topic functionality
      see PortalSearch readme.txt in portalsearch details for more information
    - Cleanup some wrong xml tags - 14/01/2004
    by Bostjan Kezmah/  (code tested and added to CVS by Jakob Hansen)
    - Localized 4 modules: Documents, HtmlDocument, PortalSearch, UserDefinedTable.
      Note that also Rainbow.resx, Rainbow.da.resx, has been updated!
      New keys in this release: see file NewKeysIn1757.txt (ready to paste into the Rainbow.??.resx file) - 26/12/2003
    by Jakob Hansen
    - Did more translations and cleaned up file Rainbow.da.resx - 18/11/2003 (RC2)
    by Manu
    - Improved new portal creation. Now Modules are referenced by GUID an not by name
      This allows module rename (at least for new portal creation!)
    - Managed System.Threading.ThreadAbortException on page RedirectBackToReferringPage() - 18/11/2003
    - Included FAQs changes by Chris Farrell [chris at]
    by Manu
    - Fixed a bug that failed to install XMLfeed on root portals (with JMandia help)
    - Fixed Survey install script (rb_AddSurveyAnswer was not removed before creation)
    - Fixed Contact module installation (falied if table exists)
    - More info logged
    - New Images updated by Anne DUEMETRI - 17/11/2003
    ( has been removed)
    by Kelsey and Thierry
    - ENH: ECOMMERCE: add options to the products (to have options, edit a product and add them)
      The shopping cart has been modified to handle options and also the checkout process
      The install.sql script has also modified for the product module (fix by Joerg Szepan for the script)
      note: for new DB field metadataxml: using nvarchar as xml string (options) and not ntext has ntext does not support comparisons in stored procedures - 6/11/2003
    by Manu
    - FIX: Register path fix for ecommerce on root dir.
    - FIX: Restored viewstate in RegisterFull.asxp - State field. Now state saves again.
    - FIX: A small bug in DBhelper, execute with transaction.
    - FIX: Page.cs: now we can specifiy a text other than default on cancel button. - 4/11/2003
    by Manu
    - FIX: Setup path for modules when rainbow installed in webroot.
           This should fix "Could not find a part of the path... " error.
    - FIX: Nat now builds smmothly all the resources (you need 8.3 version)
           See Nant.txt for details. - 4/11/2003
    by Manu
    - FIX: Installed PageKeyPhrase module for updates as well
    - FIX: Restored Solutions tables
    - FIX: Fixed a couple of issues on ecommerce related on a clean install
    - FIX: Setup.cs.aspx: On clean intall it executed wrong scripts. - 4/11/2003
    by Manu
    - ENH: ECOMMERCE: New Module for editing Merchant Data Table.
           Right now you had to insert it manually on db.
           Metadata XML must contain data like this:
           <Metadata CreditInstitute="MyBank" BankCode="11222" FaxNumber="0005555-000000"/>
           All properties should be supported by the choosed gateway.
           Unknown properties are ignored. Missing required properties will throw an error on checkout.
           Refer to gateway/shipping documentation for a list of valid properties.
           Known Limit: Even if the MarchantManager table has a Portal ID the module does changes site wide.
    - ENH: ECOMMERCE: Gateway and Shipping selection is made trough a nice drop down list. - 4/11/2003
    by john.mandia at
    - Fix: Country Drop Down is now in correct aplhabetical order on RegisterFull, E-Commerce Page and On Site Settings (Thank you Manu for updating Esperantus :D to allow sorting)
    - Fix: On fresh Db builds country list now appears (I have updated the localize script to include rb_Localize info)
    - Minor Fix: Commented out an entry in Country script (Country TP entry) as it didn't have any values and caused a blank entry to appear in the country drop down menu.
    - Fix: Bad BankGateway.dll reference (This should now be fixed)
    - Bug Closed: PortalSecurity.Security - Access Denied throws errors (This has been resolved via the error handler...if you see the access denied error instead of the friendly page please check web.config settings (you may be browsing locally)
    - Bug Closed: Query Strings Corrupted by URL Rewriting

           If you wish to pass query strings to a module on DesktopDefault.aspx please Use the urlbuilder and pass the values via customAttributes e.g. customAttributes = "CustomerID=44" or for
           multiple values: customAttributes would equal "CustomerID=44/ParentCompanyID=1/ThirdOption=This".

           If you are passing querystrings to a custom page....e.g. from a module to customfolder/mycustompage.aspx then still use urlbuilder to pass this custom url. You pass it as tagetPage to url builder e.g. "~/customfolder/custompage.aspx" The "/" in the targerpage
           will let UrlBuilder know that it is not DesktopDefault and will build the url appropriately.
           To pass a querystring to this targetpage please still use customAttributes with the same format e.g. 1 querystring would be "CustomerID=44" and two would be "CustomerID=44/ParentCompanyID=1" and three would be "CustomerID=44/ParentCompanyID=1/ThirdOption=This".
    - ENH: Another HeaderMenu enhancement. I noticed that this control binds oninit which is great because you simply drop it on a page and set the properties. However if you wish to use it in a module, your settings (Via the property page) will never
           be applied as it takes either the settings hardcoded or the defaults. I added an extra property DataBindOnInit and moved the binding code from OnInit to DataBind (but kept a call to DataBind within OnInit). This property lets you simply say DataBindOnInit=false (true is the default) when you add it to your module (Then in the module's codebehind file you can call DataBind() after your custom settings have been applied.
           So now you can decide if you wish it to bind automatically or when you call DataBind(). 
    -Note: For those of you creating a fresh db I recommend waiting for Manu's additions to the solutions bug (related tables & sps are not in new db's and will create an error when you try to add a new portal). Please rebuild the solution to ensure that you have the correct dlls (Mine are .Net 1.1). - 1/11/2003
    by john.mandia at
    - Fix: After allow no new registrations is ticked people could not edit their profile
    - ENH: Made TabKeyPhrase Setting Localized and Created a TabKeyPhrase Module so users can add it to certain tabs or show on all tabs (via the property setting).
           Added it's entry in the xml file so it is installed on fresh builds (Please install it via admin all if you are using a current version).
    - ENH: Added rb_PageKeyPhrase to all theme's css file (To control the format of the keyphrase. Entry currently empty).
    - Fix: Fixed minor bug on baby blue theme
    - Fix: Minor fix on DiscussionEdit.aspx (Added runat=server tag to HEAD)
    - Fix: Rose background in FreeTextBox
    - Fix: Minor fixes in Blacklist_Install.sql and Newsletter_install.sql, plus some of the other setup scripts to reflect new TabID naming convention
    - Fix: Fixed bug which would cause register page to fail on a freshly created database (Edit Profile or Register would fail unless you updated SiteSettings first).
    - ENH: Enhanced Header Menu so that you now have more control (Can additionally control visibility of Edit Profile Link, Welcome, LogOff and Save Desktop.
    - ENH: Now each portal can have it's own personalised favicon.ico file (Before every portal shared the root one). Just upload your custom favicon to the root of the portal's custom folder e.g. _Rainbow
    - Fix: Bug where state would continue to show even if the country had no states. E.g. selecting Italy would show a second dropdown menu (State). If you then selected United Kingdom you would still see the Italian state dropdown which was confusing for users.It now gets hidden if no states are available.
    - Temp Bug/Fix: Currently countries do not show on register full and site settings if you create a fresh db. This is because the Localize table is not populated.
                    As a temporary fix you can transfer the data from the Localize table on an old (upgraded) rainbow db to the freshly installed one. Or you can look at setup script; part of it populates the Localize table [please only run the relevant part].
                    Only do this as an urgent fix as an official one should be released soon.
    -Note: Since I run on .Net 1.1 please recompile the dlls ;-) - 30/10/2003
    by Manu
    - FIX: String or Binary Data would be truncated
    by Bill Anderson (reedtek)
    - FIX: GetPicturesPaged does not close DataReader - 30/10/2003
    by Manu
    - Moved Bank Gateway management to a separate project (available on cvs as well)
      Note that I have updated web.config to reflect dll change:
      <!-- key must match the Name property of the gateway.  value="FullClass with namespace,Assembly" -->
      <add key="CreditTransfer" value="Rainbow.ECommerce.GatewayCreditTransfer,DUEMETRI.Rainbow.ECommerce.BankGateway.dll" />
    - FIX: Wrong entry und Culture settings will crash system
      If an invalid language is set the system defaults to en-US. Got to admin page and fix the error to have you languages again.
    - FIX: AllowNewRegistrations.Description spelling error
      Fixed in code an in all translations - 29/10/2003
    by Manu
    - Now I use log4net for loaggin/debug actions, new settings on web.config
    - clean install without pass trought all updates
    - All modules have they own install (even if admin)
    - Clean installation is done by each module's individual script?
    - I have fixed some mistakes in current individual install and completed missing one
    - One minor change that can have a deep impact anyway, I tried to make all names consistent across rb
      We have a lot of mixed cases and I hope now only few are left... The bigger trouble was with Id
      sometimes written ID, ID id.... so I have changed all in a consistent way
      Pascal or CamelCase (public or private) for all, code and procedures: PortalID, TabID, and so on
      No problem for db, but some properties name are changed.
      Nothing too bad... recompile and fix some case and should be enough for custom modules.
      Core modules are ok...
    - FIX: Fixed an issues with Ecommerce when USD was choosed as currency
    - FIX: User Defined Table edit doesn't edit.
    - FIX: Added explicit support to upload size
    - FIX: Shortcut-Module / null reference errror
    - Updated: tr, sv, it languages
    by Mike (mstone at
    - FIX: The BabyBlue layout was not putting the correct background image in two table cells,
      which caused a bad color to be displayed. - 25/09/2003
    by Thierry (thierry at
    - FIX: user administration, bug causing deletion of registered users
      in the 'Manage User' module loading 'RegisterFull.ascx', if we edit one user and
      then edit another user, the first user is deleted from the database.
      tricky effect of default parameter in rb_UpdateUserFull: set it in the code (RegisterFull.ascx.cs)
      instead of relying on SQL stored proc
    - FIX: when deleting a role already assigned to some users, there is an exception
      modify rb_DeleteRole so that is removed the role for the users first and then remove the role. - 16/10/2003
    by Manu
    Setup/Update.asp script UPDATED
    - FIX: Runtime error when installing modules in update.aspx.cs
    - FIX: Running order of update scripts.
      If you have multiple scripts for the same version please read the note:
      The version are automatically sorted at runtime so you must remember to increment
      the <Version> as well. It is a string value so you may simply append an alpha letter.
      If the Ids are equals the versions are compared.
      Note that this is a defferen behavior then before, where order was based on script name.
      This was necessary because the script name can be omitted now.
    - ENH: no more need to run a separate procedure on db. Simple do a clean db and run rainbow.
    - ENH: setup.bat does not apply the rbversion script anymore (moved to code)
    - ENH: Setup scripts are in a scrollable window now
    - FIX: A couple of datareader not closed. - 13/10/2003
    by Manu
    - FIX: Setup/Update.asp: autoadd version wrong date exception fixed.
    - FIX: Documents dir instead of Document dir.
    - FIX: Breadcrumb behave strangely with localized item
    - FIX: Enlarged country list in portalsettings.
    - FIX: SqlDataReader's used in Rainbow are not closed
           I have spent a lot of time reviewing all code. I hope I had made no mistakes (sometimes
           I had to change the program itself to make it working).
           For all developers: please be careful and close all datareader you use, either after
           reading and after DataBinding().
           I hope have not missed one. I have fixed 52 issues in 34 different files.
           Please let me know if some was left or if the new code behaves strangley.
    - by Onur Esnaf
      FIX: Fixed localization in sub-tabs - 09/10/2003
    - by Mike Stone
      EHN: The signin module has a new setting. "Allow IE Autocomplete" If you uncheck this setting
      IE will not remember user name and passwords.
      Note that users who have memorized passwords will not be effected until their computer is reset,
      only new users and/or computers will honor this.
    - Fixed Nant buildfile by Manu
    - Updated es resource file by José Viladiu - 09/10/2003
    by Manu
    Setup/Update.asp script UPDATED
    - New features in update code:
    - Version in script is now optional. Update runs a script against db for include the
      current version entry. You need manually insert version only if you skip install.
    - Script version is checked against code before each run.
      This means that you can update many versions with the same script.
      Very useful if you want update the initial script that creates the db.
      You want provide a convenient way for your users for apply updates and you want
      provide a fresh installation script that just do all with few instructions.
      You do two scripts.
      One, named eg: that creates db structure updated to 1734.
      The last row must contain something like:
      INSERT INTO [rb_Versions] ([Release],[Version],[ReleaseDate]) VALUES('1734','', CONVERT(datetime, '09/11/2003', 101))
      One or more scripts as usual for updating existing versions.
      At runtime on clean machine present the list of ALL scripts.
      Then the runs and updates the version. At this point the row updates tha version.
      When setup go to next script it see that this does not need any update and skips it.
      On more recent systems (eg: 1730) all updates are run. 
    - You can now include modules in a single installation. This is great because
      we can easily move the code for modules on the module itself. No more need for
      refreshing db settings as in
      Please note in the sample below that in version we can even omit the script
      and install only modules.
      New syntax:
      If present sql script is always run BEFORE installing modules.
      You can make however 2 entries for the same version.
     <!-- This section is run before -->
     <!-- This script will be run AFTER MODULE installation -->

      Anyway the version are automatically sorted at runtime so
      you must remember to increment the <Version> as well. It is a string value
      so you may simply append an alpha letter. If the Ids are equals the versions are compared.
      Note that this is a defferen behavior then before, where order was based on script name.
      This was necessary because the script name can be omitted now.
      Other changes:
      - Added EmptyModule template on Desktopmodules (not on project)
      Use it as base for you own modules-
      - Minor bug fix in Install Module code. - 08/10/2003
    by Manu
    - MOVED: workflow releated files in Workflow directory
    - FIX: Links module missing intallation files
    - FIX: HTML Document module missing intallation files
    - MOVED: ImageModule
    - Overall cleanup on project (adding removing files to project)
    - Linked Scheduler as DLL and removed project from slution (still available on cvs) - 08/10/2003
    by mario at
    - MOVED: PortalSearch
    - MOVED: HTML Document
    - MOVED: Documents
    - MOVED: SingIn, SignInCool, SignInLink
    - MOVED: Pictures
    - MOVED: Register, RegisterFull
    - FIX:   Discussion EditUrl
    - ENH:   The List of Register-types are loaded from the folder 'DesktopModules/Register'.
      All files which fulfil the condition  >>Register*.ascx<< are loaded.
      At this time there are the Register and RegisterFull available. - 07/10/2003
    by John Mandia (
    - MOVED: XmlModule,XmlLang and Version into a seperate folder
    - Fix: Fixed sales.xsl so that it works with XmlLang again. - 07/10/2003
    by Manu:
    - MOVED: Newsletter and Blacklist module to separate folder
    - FIX: extra breaks (<br>) added in Newsletter when in HTML MODE.
    - FIX: User page is loaded as simple even if it is marked as full
           in Portalsetting. SettingName mispelled in User edit page.
    - FIX: 'GetTabSettings' routine -- wrong paramter type to MS-SQL (by Bill Anderson (reedtek)) - 05/10/2003
    by mario at
    - MOVED: Events module to separate folder
    - MOVED: Contacts module to separate folder
    - FIX: add hiding possibility for email, contact1 and contact2 column in Contacts module
    - FIX: add SolPart menu (Sollution Partners) and and new DesktopLayout 'MenuMSSolpart' to Rainbow
           this resolves a bug tha prevents a menu to be displayed more than once
           in a single page and improves fexibility
    - FIX: add horizontal alignment and SolPart menu to module 'SimpleMenu'
    - FIX: serverside html tag rendering in various pages
    by Manu:
    - FIX: Minor bug fixing in install scripts and cleaning up - 30/09/2003
    by Manu:
      fixed discussion paths (thanks Marc for pointing me out this)

    ----------------------------------------------------------------------------------------------------- - 26/09/2003 (RC1)
    by Manu
    - Moved Discussion in its own folder
    - Minor bug fixing - 24/09/2003
    by Thierry: ECommerce Checkout
    - FIX: ProductCheckout.aspx.cs: setting (key = country filter) updated according to,
      this was breaking the checkout - 15/09/2003
    by Manu:
    - FIX: Enlarged url field in links from 250 to 800
    - ENH: I'm tierd to search for changeowner script so I have included in distribution.
      Call rb_ChangeObjectOwner default = dbo.
    - FIX: Events do not sort by date
    - Upgraded Free TextBox to
    - Free TextBox is now the default HTML editor.
    - FIX: Print.aspx does not throw errors if you do not pass a ModId
    by Jason Kergosien
    - With this fix, the module will hide itself when you log in. Both Signin and SigniCool
      If you want disable it there is a setting that let you do it. - 15/09/2003
    by John Mandia (
    - ENH: Rewrote HttpHandler and Updated UrlBuilder
           Rainbow now uses the Rewrite.Net Engine as the Handler which allows you to build custom rules (two rules are included)
           One rule supports legacy urls and the other supports the new urls. The urlbuilder now has better support for module developers to pass attributes and it fixes UrlScan issues.
           The Rainbow Rules project has been added to cvs. Please read urlhandler_readme.txt
    by Manu:
    - FIX: The code is no SLOW anymore in TabStripDetails
           (my friend and beta tester Cory reported a 20 x performance improvement in his local intranet)
    by Manu:
    - ENH: Added KickStarter support
     - KickStarter dir
     - IEditModule.cs
     - AddEditPage.aspx
     This is preliminary support and may be changed in future, I'm working with
     Mike to make this possible. This does not affect in any way exisiting modules.
     Please do note rely on these classes as these will almost surely changed infuture.
    by Manu:
    - FIX: Specified cast is not valid error in LinksEdit module. - 15/09/2003
    by Cory Isakson
    - added overrides for WebCompile Feature - 17/09/2003
    by Thierry (thierry AT
    - FIXED: E-Commerce product module
      from Mario (thanks!)
      problem was: some redirections to the home page from a category without using the url handler
      in itemnavigation.cs replace Default.aspx by DesktopDefault.aspx as we are loosing the form parameters
      with the server transfer from Default.aspx to DesktopDefault.aspx and not using the UrlBuilder
    - FIXED: E-Commerce product module
      paging of products is now working (like the picture album) - 16/09/2003
    by Thierry (thierry AT
    - FIXED : ECommerce-Product module is now working WITHOUT the url builder
      (it was redirecting to the home page for any action)
      you need to replace in all your DesktopLayout for a shop : shopnavigation (shopnavigatio.cs) control
      by itemnavigation control (itemnavigation.cs). itemnavigation derives from menunavigation
      but the navigation will not be effective and instead we navigate to the same page
      and transmit the TabId as a ItemId (the category of products)
      file shopnavigation.cs has been removed from CVS, itemnavigation.cs moved to ECommerce/UI
      Apology to Mario (who did this good code coding) and all:  I did not realised the change was not in the layout
      last minute : there are still some redirections to the home page from a category without using the url handler
 - 15/09/2003
    cory isakson, added overrides for WebCompile Feature - 12/09/2003
    by Thierry (thierry AT
    - added all files from mario AT to project (see below)
      also modified history.xml to take new script 1736
    - FIXED: Product module rewritten to use events instead of redirections (the dot net way),
      this should make it work with framework 1.1
      as there is no more parameters to decode from the command line beside the usual TabId and ItemId
    - ENH: added webcontrols ProductAddToCart, ProductImageGoToDetails and ProductLinkGoToDetails to be
      used in /Design/ProductLayouts
      This controls are raising custom events that BUBBLE to this product.ascx control (see OnBubbleEvent)
    - NOTE: the ProductAddToCart will NOT work if used in DefaultProductView.ascx
      it has been added as a LinkButton with an event handler at the bottom of the html page and is
      displayed when displaying a product details
    - NOTE: look at the ProductLayouts\DefaultProductLayoutView.ascx and DefaultThumbnailView.ascx
      for an example of how to use the new custom controls, you will need to modify your Layouts the same way - 11/09/2003
    by mario AT
    - MOVED: Articles and Announcements module in seperate folder
    - FIXED: Path to helperfiles in the FreeTextBox added - 11/09/2003
    by Jakob Hansen
    - FIX: rainbowportal-Bugs-791364: search module broken for case 'all'. See file - 11/09/2003
    by Jakob Hansen
    - FIX: rainbowportal-Bugs-777089: Weather US Module Not Displaying Radar - 09/09/2003
    by Jakob Hansen
    - FIX: All 5 DBPatch.sql for OneFileModuleKit works correctly now (both C# and VB.NET examples) - 03/09/2003
    - CLEANUP: Removed unused legacy files in security dir: SignInLocation.cs, SignInPosition.cs, SignInType.cs
    - FIX:  yiming, 18 Aug 2003, get layout from portalWebPath, if no, then WebPath - 28/08/2003
    by Cory Isakson (cisakson AT
    - ENH: Added the WebCompile DataType and modified global.asax.cs to implement it
     Users will notice that on first run a site now pre-compiles all pages - 13/08/2003
    by james
    - ENH: Fully localized Site Settings and Module Settings according key revision plan
    - ENH: Added and updated some resources files - 10/08/2003
    by Jakob Hansen
    - FIX: In module Links: DesktopSource in file install.xml changed from Iframe to Links (copy bug!)
    - ENH: Added UseProxyServerForServerWebRequests and XMLFeedXSLFolder to Web.Config.
      - 10/08/2003
    by Jakob Hansen (all coding was done by Joe Audette)
    - ENH: In module XmlFeed UseProxyServerForServerWebRequests was added (see Web.Config).
    - ENH: In module XmlFeed XMLFeedXSLFolder was added. XMLFeedXSLFolder is set in Web.Config.
           Default behaviour is to not use XMLFeedXSLFolder (the module will behave as before this enhancement) - 01/08/2003
    - FIX: More fixes on Ecommerce.
           Added tax rate in Cart view and in Product checkout view.
           Total now uses price with taxes.
           TODO: Show price with taxes on email. Now it shows only in total
           TODO: Make some changes in keys
    - FIX: Changes by James and in automatic Setup flow. Now code should be smarter.
           If you go on update page values are always refreshed.
           Otherwise Code and Db value are cached in application scope.
           - ENH: Moved links in its own folder. Fixed Module registration. - 31/07/2003
    by Ender (All credits go to Paul Yarrow)
    - NEW: Monitoring module: Now you can display your site activities
    - NEW: Who's logged on module: Shows you currently logged on users - 31/07/2003
    - FIX: Amounts in Order receipts now display correctly.
    - FIX: Total Amout now includes taxes. - 28/07/2003
    - FIX: Now I flush portalsettings base cache before accessing Sitesetting module.
           This ensure that property page loads with correct localization.
    - ENH: Changed LangList Setting to 'SITESETTINGS_LANGLIST'
    - ENH: Upgraded language switcher to new Esperantus Control.
           For HELP and DEMO - 28/07/2003
    by Manu
    - FIX: Event Module EditItem now checks StartDate also.
           Avoid error when missed or invalid start date.
    - ENH: New property: ShowHome on MenuTop. Now you may hide the Home link if you like.
    - ENH: Added a pluggable layer for Shipping
        I have updated tutorial:
    - ENH: New languages: Tr and Ru
    - ENH: Replaced old mk.bat files with NANT builder. Read NANT.txt. Rebuild requires NET Framework SDK.
    - ENH: Removed compiled resource files from CVS. You will get them in releases or after rebuilding.
           This will reduce greately the Tarball size grown - 26/07/2003
    by Jakob Hansen
    - Added better error handling to module DatabaseTableEdit (code done by Josue de la Torre)
      Now the following problems are handled with a better errormessage
        * Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
        * Cannot open database requested in login ''. Login fails.
        * Only single column primary keys are supported. - 26/07/2003
    by Jakob Hansen
    - Added module FileDirectoryTree (All code done by Josue de la Torre) - 16/07/2003
    by Manu
    - Added Search capability to Product module. For activate it plase go to admin all
      and simply open and update the module definition.
      This will set the serch bit on GeneralModule Definition table. - 15/07/2003
    by Manu
    - I have almost rewritten the whole ecommerce part.
      Now it checkouts smoothly.
      New Money class (all currencies supported)
      New Pluggabble gateways: add your own gateway
      Weight is processed correctly
      Almost all keys are ready for translation
      Tutorial: - 02/07/2003
    - ENH: Some more fix and enhancements in Checkout. Now the gateways are completely pluggable.
           For use it go on Products property page and provide some parameters.
           Simply write properties to set: Try in Wire transfert: ABI=1234;CAB=2345
           Gateways are registered in web.config section. - 04/07/2003
    by Thierry (Tiptopweb)
    - FIX: Switching the DesktopLayout and Theme for an individual page working again :)
      This was creating problems within a portal or accross portals
      Cache removed in PortalSetting.cs for Hashtable GetTabBaseSettings()
      (This is not loosing much on performance as not involving the DB, DB still read with or without cache)
      The problem is : we have new settings that were possibly not there with a database
      created a while ago (no problem with a database created after the new settings were introduced
      when we cache this part of the code, the hashtable is not flushed
      Then we read the database to set again the settings, unfortunately for some pages, the settings
      does not exist in the database and they will not be reset to an null value (even with the code
      added at the end in GetTabCustomSettings()
      consequence the values of the settings will stick
      the effect will be that a custom Layout for example will persist
      on pages without a custom layout setting, for a page created in the database
      before the introduction of the Custom Layout settings
      the problem will be the same with the Metadata and Culture Settings or any future new settings
      *** TODO : put back the cache in GetTabBaseSettings() and modify GetTabCustomSettings()
      to reset values not found in the database, if this is a better solution - 04/07/2003
    by Thierry (Tiptopweb)
    - FIX: move code to switch Layout from DesktopLayout.aspx.cs to PortalSettings
           todo: still a bug, as Layout is cached in CustomSettings and layout not reinitialised if empty - 30/06/2003
    - FIX: Changed default connection string to dbo (SQL Authentication)
           Refer to
           For changing existing connections strings. Having mixed owners it is not recommended.
    - ENH: Updated resources for nl and nl-BE
    - ENH: Upgraded FreeTextBox to 1.6.1 version
    - FIX: Solved an issue with HTMLEditor data type - 29/06/2003
    - FIX: Bug on optimization. PortalUrlDataType bug caused an infinite loop.
    - ENH: Some more optimizations on code.
           Cached all frequently accessed data (portalsettings, Tabsetting, Themeslist).
           Test measure: from 1,77 (1727) to 0,09 (1727b) per request (seconds)
           (Aqtime measurement - your time may be different)
    - ENH: Restored DesktopTabsXml. You need to enable it on web.config - 27/06/2003
    by Manu
    - Performance gain.
      Analyzed code and done some optimizations. Basically on data types.
      This should not affect functionality.
      Anyway Application test centers says that code moved from
      1 avg request per second (1718)
      12,03 request per second (1727a) on my test machine
    - FIX: esperantus. Display name now lookups COUNTRY_CountryInfo.Name.
      It avoids conflicts with existing keys.
    - FIX: Multiple UI languages with same name allowed even it is not recommended.
           Remember that only first one will be looked up.
           Anyway having multiple now does not lead to ugly errors. - 27/06/2003
    by Mark
    - changed behavior in Page.cs LoadSetttings() to check for either Add or Edit permissions since everyone was inheriting from EditItemPage
    - Changed code in PoratlSearch.ascx.cs so it calls the new discussion thread window when displaying a thread
    - fixed all (I hope) of the permissionss problems in the discussion module that still exist in other modules that inherit from EditItemPage
    - New features in discussion module
    1) keeps track of page hits (view count) for each thread
    2) lets you open up an entire thread in its own page
    3) search module now opens up an entire thread in its own window instead of the page with the discussion module
    4) USers can now edit their own posts evven if the DO NOT have Edit permission - 25/06/2003
    -by Manu
    - Fix: Portal settings. A bug in localized tab causes changed tabs to disappear.
      This is because saved tab is an empty string.
    - Enh: A more descriptive Portal not found error. - 25/06/2003
    -by Manu
    - FIX: Small issues on Language switcher.
     1) form now uses NativeName
     2) Flags (no label) shows correctly.
     3) Removed disabled setting (it make no sense now) - 25/06/2003
    by John Mandia (Total-Ingenuity)
    Added script to the xml file in setup/scripts as it was creating the views required and was generating an error.
    For those who have already gone beyond this number in your version table you may need to run this script manually (Exlude the part where it updates the version table). - 25/06/2003
    by Manu
    Enhanced Language switcher
    One big problem in previous implementation is the 2 list setting the is not so user-friendly.
    List must match, culture must contain only specific cultures, list must match in number...
    many ting to remember. An error here and you have to change db manually.
    So I decided to do a simpler code for managing cultures.
    This will affect essentially language switcher and portal settings.
    I have removed almost all properties: I saved only one CULTURELIST.
    We have a list, the list has 2 columns: one for ui, one for formatting.
    (This follows NET UICulture and Culture)
    Something like: it=it-IT;en=en-US
    First is ui, second is formatting.
    You can do also: it=en-US;en=en-US, keys in italian, formatting in US.
    You cannot have duplicate values in first column: en=en-GB;en=en-US is not allowed
    or, better, the second one is ignored.
    Here it is how lookup should work: Rainbow get a language request.
    It may be (in this order)
    1) Querystring (lang key)
    2) Cookie
    3) Browser languages if avaulable (it looks up to find best match - not only first - all vaules are considered)
    4) Default value (first in list)
    It gets a valid CultureInfo value (invalid values are ignored).
    First lookup search for best match. en will match en and no other.
    (The List is sortable, position matters).
    If not found it tries a more loosely match: if we search for en the first "child" (culture that has en as parent, like en-US) will be returned.
    The looked up column is the first one (UI column).
    When match is found set UI (keay and content) to first column, formatting culture to second one....
    This method give us the freedom of choosing a custom pair.
    Consider a specific example of site: usually an user wants a generic English,
    maybe with the possibility of choose if it is GB or US.
    In language switcher flag can only be specific culture -- there is no "Portuguese" flag,
    only Portugal flag or Brazil flag so the name comes from first column but flag can only
    come from second one.
    My proposal is plain and easy: if you want English, no frill...
    simply choose a specific English you like, if you want 2 English
    (strange, uncommon but possible) do both specific or one of them specific...,
    anyway Language Switcher must follow it.
    If you have two English you want they would be different.
    So, considering only first column you may have two rows: en/en-US or en/en-GB
    It seems to me flexible and quite simple to implement and manage...
    I getting some weird problem with GUI interface (in attach a preview) so I downgraded it
    to single string... just for have it working quickly..., GUI interface is available for testing.
    Dig in to the portal setting code to find it ;)
    Note: Most of this code was moved to esperantus. You can use it on any site.

    -FIX: Removed VS 2003 solution. If you want to use VS 2003 just open 2002 solution and convert it.
          Sorry but I CANNOT KEEP IN SYNC 2 solutions.
    -FIX: Removed secure/gateway email. It is not finished and give errors when compiled with mk.bat. - 24/06/2003
    by Mario
    - ENH: I have added new features in SimpleMenu module (ItemMenu, same behavior like ShopNavigation but can bind to all bindings.)
           (the hardcoded use of DesktopLayout MenuMSShop in DesktopDefault.aspx.cs already have been removed)
    - ENH: The Dhtml Menu now work with stylesheet, therefor i have changed the HWMenu control and HVMenu javascript.
    - ENH: In the LanguageSwitcher module i have added the possibility to hide the Labels behind the Flags.
    *********************** IMPORTANT ******************
    You are now able to itemize or categorize content in all modules using the itemId parameter like the Product module.
    Be carefull adding the Dhtml menus on a deskoplayout always including a dhtml menu, it will fail (there can be only one HVMenu.)
    **************************************************** - 24/06/2003
    by Ender (Credits go to Mark Brown)
    - FIX: When another control is on page and a postback from that occurs calendar doesn't draw - 21/06/2003
    by Manu
    - Nice country list in portalsettings. - 21/06/2003
    by John Mandia (Total-Ingenuity)
    -ENH: Used the new Ballon Settings added by Manu to add the English Name and Description to some of the MetaSettings I added earlier (TabTitle, TabUrlKeyword,
          TabMetaKeyWords, TabMetaDescription, TabMetaEncoding, TabMetaOther & TabKeyPhrase) for PortalSettings.cs and TabSettings.cs.
    -Note: Please check the reference for Esperantus when you are compiling as it is dependant on where rainbow is on your system. Check the references folder in
           VS.NET to see that it can see the dll. If not you will need to re-reference it. - 21/06/2003
    by Thierry (Tiptopweb)
    - ENH: DesktopLayout / Themes can be set differently on EACH tab (Tab Settings)!
           If nothing is set, the DesktopLayout / Themes of the portal are used
           The desktopLayout swich is in DesktopDefault.aspx
           The Theme switch is in PortalSettings when getting the CurrentTheme
           (the theme is not optimal as the theme file will be read for each module instead of being read
            once when reading portalsettings - nothing is changed if you do not use the theme settings on a tab)
    - FIX: removed from DesktopDefault.aspx the switch in Layout for the Shop
    *********************** IMPORTANT ******************
    If you are using a Products module: you will need to set an appropriate DesktopLayout for the shop
    on the tab holding the Product module : for example MenuMsShop (it is using shopnavigation instead of menunavigation)
    This is because it is not hardcoded anymore in DesktopDefault.aspx :)
    **************************************************** - 20/06/2003
    by Manu
    - ENH: Multilingual module Title. Set you multilingual module title using setting page.
    - ENH: Multilingual Tabs. Set you multilingual title for all tabs using Tabsetting page.
    - FIX: Changed PortalContentLanguage from string to CultureInfo.
           So we are sure that it is a valid cultureInfo object.
    - FIX: Changed PortalUILanguage from string to CultureInfo.
           So we are sure that it is a valid cultureInfo object.
    - FIX: Changed PortalDataFormattingCulture from string to CultureInfo.
           So we are sure that it is a valid cultureInfo object.
    - ENH: A lot of code cleaning in portalsettings.
    - FIX: Modulsetting 'ShowOnEveryPage', shows on every page in EVERY portal. Fixed
    - ENH: LanguageSwitcher enhancement. Links mode uses Link instead of postback.
           This optimizes search engines crawling. - 20/06/2003
    by Ender (Credits go to Mark Brown)
    - ENH: Event Module now supports displaying a calendar. Uses the calendar control by Mark.
           - Login or get to a point to be able to edit events module collection properties
           - Check the box on ShowCalendar
           - Edit the individual event and enter in date and/or time
           - Calendar should render the event title on the appropriate day of the calendar - 19/06/2003
    by Manu
    - ENH: Baloon help for settings. Simply set description for you setting and a
           small [?] will be visible at the left of your setting. The tooltip
           describes the setting. Localizable. The key is the very same of the setting + "_DESCRIPTION".
    - ENH: Cleaned the Settings table.
           Removed bluesky color. Now title are more clear and compatible with current theme.
    - ENH: Some more fixes in esperantus and autolearn.
    - ENH: Better defaults in web.config and ApplicationStart. This should need less twaks on new installations.
    - ENH: Now ALL keys are converted in UPPERCASE. This is faster and more compatible.
    - ENH: SendNewsletter module.
           - Fixed some wrong keys.
           - New setting for Testing
           - New setting for linking an HTML module. This provide a default template for newsletter.
           - Removed old unused Imagelogo setting. Use template.
    - ENH: Removed Load of legacy settings not defined in DB
           If you missed some settings please check if this defined in your module. If not please do it. - 18/06/2003
    by Manu
    - ENH: Included system.web client script for Framework 1.1
    - ENH: Small fixes in Articles module. A better HTML and a new property.
           You may Show/Hide date in tile if you like.
           Date in article now does not include time anymore.
    - ENH: Esperantus. Convert to uppercase keys.
    - FIX: by blarm - 18/06/2003
    by Manu
    - FIX: A better error message when an invalid connection string is entered in web.config
    - FIX: A better error message when AspnetAccount does not have write access to directory - 17/06/2003
    by Manu
    - ENH: Some more work on CheckoutPage.
           Wire Transfer now works and it may give an idea of the whole thing.
           Added GatewayManager.
           Now gateways can be simply added to web.config, even in different dll.
    *********************** IMPORTANT CHANGE **********************************
    - ENH: I have changed the way resources are stored.
           This is a big step in semplifying the resource management.
           Now you can simply comple Rainbow using visual studio.
           No need for a separate compilation for resources.
      These are the changes:
      1) The localized resources are stored in Rainbow.resources.dll and no more on Language.resources.dll
      2) Resources are compiled using Visual Studio.
         You may still use the updated compileme.bat in Resource folder to compile resources
         without the need of visual studio.
      3) Installer manages these resources automatically.
      4) You must upgrade you web.config if you use manual configuration:
      5) If you add a new resource file in Resources for support a new language
         you must remember to add to VS project.
      6) Esperantus data layer is pluggable so you do not see any other change.

    - FIX: I have upgraded Esperantus.dll to the lates version
           This includes:
           ENH: New setting: AutoLearnIgnoreSaveErrors
           ENH: New setting: AutoLearnIgnoreEmptyKeys
           ENH: New setting: ConvertToUpper. Keys are transformed in Upper case.
           FIX:Avoid recursion in KeyResourceManager GetAllKey fallback feature
    - I have added also the localized resources in esperantus.
      - 17/06/2003
    by Thierry, ECommerce
    - FIX: paging products in Products.ascx - 13/06/2003
    by Manu
    - ENH: Some more work on CheckoutPage. I have started to separate Gateways.
           I need a week of work. - 12/06/2003
    by Manu
    - FIX: Default paths to esperantus stores when first request is not on root path.
           Now it returns correct value.
    - FIX: In BuildUrl when target page starts with '/' and contains more than one page.
    - FIX: In setting table. Now the GroupKey is saved on resource and not group description.
    - FIX: A lot of minor fixes in Products.ascx. Still not perfect anyway.
    - FIX: Register page redirect (all). Now it go back and save correctly.
    - FIX: UserManager.aspx. Now it go back and save correctly. It supports key change (email and id) - 12/06/2003
    by Thierry, ECommerce
    - FIX: access denied for checkout, wrong fields when binding states, countries
    - FIX: update cart button, cast to Label generating exception
    - FIX: clean up code, follow model from Manu for properties in Product.ascx.cs
    - ENH: Checkout button invisible if user not logged
    - FIX: price with tax was missing in Product Layout
    - TODO: Paging product not working, version with workflow to be fixed in checkout pages - 10/06/2003
    by Manu
    - FIX: Aligned mk.bat to latest changes
    - FIX: Fixed various little bugs on Products.ascx (we need more work on this)
    - Files Removed:
      - Secure/ProductsCheckOutCC, Secure/ProductsCheckOutEnd
      - Secure/WebControls/ all the directory as validation control
        replaced by a better one as simple control in Secure/Components - 08/06/2003
    by Manu
    - ENH: A better order system avoiding try and catch in SettingsTable
           Now settings with no order have a progressive order number based on their position on list.
      - 08/06/2003
    by Ender
    - FIX: [ 736240 ] Rearranging order of tabs or modules problem - 07/06/2003
    by Manu
    - ENH: Esperantus Defaults are now loaded in Application_Start.
           No need to manually tweak web.config in normal configuration.
           You could still provide custom configuration uncommenting keys in Esperantus section
    - FIX: Daily Dilber now does not throw an access deined on image view if not logged on.
    - ENH: Setting item: changed GroupKey to Group and from string type to SettingItemGroups enum type
    - ENH: Setting item now has its own default translation: GroupDescription (readonly).
    - ENH: Setting item: added EnglishName. Modules developers can provide default translation
           for settings keys setting EnglishName property. It is recommended set it for ALL settings. - 06/06/2003
    by Manu
    - ENH: Full localization conversion for Products.ascx and Design\ProductLayouts
    - FIX: Typo on Bindstate value in RegisterFull.ascx
    - FIX: In Esperantus. Trimmed Name of Country for compatibily with char type CountryInfo.Name
           [InvalidExpressionException: Invalid parent: Expected 'AE ' but found 'AE'] - 06/06/2003
    by Manu
    - ENH: Now you can disable UrlHandler feature in Rainbow.config.
           Locate this row
           and change to
           or simply comment out the row.
    - FIX: Better error management and code cleaning in DesktopPanes.cs
    - FIX: Syncronized VS 2003 solution with latest changes
    - ENH: Splitted Resource compile (Resources folder) - 06/06/2003
    by Jes1111
    - FIX: Corrected SelectedIndex bug in LanguageSwitcher DataList - 03/06/2003
    by Manu
    - *********************** IMPORTANT CHANGE **********************************
      From version 1718 Rainbow use Esperantus as localization engine.
      All Rainbow.Globalization code is now on Esperantus.
      Esperantus is an indepentent project, Open source
      Esperantus can be used in non-Rainbow sites. 

      Esperantus configuration can be found on web.config - Esperantus section
      You MUSTchange you configuration path to your language stores.


      must point ot language dll in your bin dir

      must point to Resources dire on your Rainbow dir

      I have made the needed changes on Rainbow.
      If you have custom code you have to do some changes:
      <%@ Import Namespace="Esperantus" %>
      <%@ Import Namespace="Esperantus" %>

      using Esperantus;
      using Esperantus;
      <%@ Register TagPrefix="tra" Namespace="Esperantus.WebControls" Assembly="Rainbow" %>
      <%@ Register TagPrefix="tra" Namespace="Esperantus.WebControls" Assembly="Esperantus" %>
   (all controls)
      becomes (all controls)
      GetCurrentLanguage was used for retrieve the current language of the ui, in Esperantus
      this is more precise. It exposes GetCurrentUINeutralCultureName() and GetCurrentNeutralCultureName()
      Esperantus now has a dedicated object for manage Countries infos.
      Esperantus.CountryInfo.Current tries to get a valid country from CurrentLanguage culture.
      If a Country that matches current Culture cannot be found a null value is returned.
      GetCountries and GetStates are now modified. They return now an array of CoutryInfo objects.
      The list has no changes. Data are still get from SQL database befcause Esperantus
      supports custom conutries lists. You will see no changes in RegisterFull.acx control bahavior.
      A new view named: Esperantus_CountryList provides the list. Database is defined in Esperantus section
      in web.config. Be sure CountryRegionsStoreParameters matches your SQL database (this connection string
      is totally independent from you main connection string and gives you a great flexibility).
      Resources now are store on Resurce folder in Ms resx xml format.
      You compile resources using complang.bat - open file and be sure that path is pointing to
      you current Net Framework environment.
      SQL Localize table is not removed. Anyway it is not used.
      Esperantus Autolearn adds keys in your Resource/Rainbow.resx file.
      Use Esperantus tools for mange resources in *.resx format.
      You can import/export from/to Access mdb file.
 - 30/05/2003
    by Thierry (updates for the ECommerce)
    - FIX: corrected order receipt in checkout + view account (not localized)
           the xsl file is in /DesktopModules/Ecommerce
    - FIX: some localisation code in checkout + clean up buttons - 29/05/2003
    by Jes1111
    - FIX: corrected broken Language settings in PortalSettings.cs - 28/05/2003
    by Thierry (updates for the ECommerce)
    note : The following files needs to be removed : ProductsCheckoutCC + ProductsCheckoutEnd + Secure/WebControls/validation.cs
    - ENH: add a shop home link on top of category menu
    - ENH: add category title on top of module
    - ENH: product layout: do not display prices if 0 or tax rate is 0, if no price replace the
           add to cart button by text 'contact shop'
    - ENH: add OrderSuccess and OrderFail pages at the end of checkout, order success is
           displaying a receipt
    - ENH: step 4 is sending an email to client with receipt of the order, the receipt is generated
           from xsl file in /DesktopModules/ECommerce
    - ENH: View Account button: Product module can display the list of orders for the client, using the
           above xsl receipt
    - ENH: add new credit card validation more robust using type of card (use --TEST-- to escape validation)
    - FIX: various little bugs and cleaning in Products and Checkout files - 28/05/2003
    by Manu
    - FIX: Products.ascx invalid tra control.
    - FIX: UserUpdate. If AllowIdChange is active and you change id active roles were deleted. Now is fixed.
    - CLEANUP: Removed unused: LangSwitchLocation, LangSwitchPosition. Moved LangSwitchType in LangSwitch file.
    - CLEANUP: Moved Esperantus.GlobalInternalStrings to Rainbow.Configuration.GlobalInternalStrings
    - CLEANUP: Removed unused: Localize.GetDefaultCulture, Localize.GetCulture, Localize.GetSingleCountry
    - CLEANUP: Set nowrap on SignIn box. - 28/05/2003
    by Manu
    - FIX: Desktop Module title - Added check: Modules directly placed on page
           does not have ModuleConfiguration (issue on Logon.aspx) - 27/05/2003
    by Mario
    - ENH: add breadcrumbs as a module.
           there is nothing to configure there are only three styledefinitions for the apearance.
    - ENH: add simple version of a menu module.
           this module enable you to add a menu whereever you want as a module.
           you can define the 'BindingOption' 'dhtml or static' menu.
    - ENH: moved the MileStones module in an own folder - 27/05/2003
    by Manu
    - FIX: Error executing child request for DesktopDefault.aspx. Changed to Response.Redirect.
    - FIX: Portalsetting load thrown some eceptions. I have removed try catch to avoid ignoring it.
           Better handling on Null values.
    - FIX: Removed old setting from Register and RegisterFull modules. Now are set right on the module itself.
           RegisterShowTitle", RegisterApplyTheme, RegisterTheme.
    - FIX: Cleared selection on CountrId before select. Fixes Checkout nad RegisterFull.
    - FIX: Addressed this bug: "Can't add admin usebefore changing to Windows Authentication"
           Can anbody using Windows authentication see if it works? - 26/05/2003
    by Thierry
    - FIX: History.xml missing version from last update - 26/05/2003
    by Manu
    - FIX: Langswitch now is inserted by this script on module list for all portals
    - FIX: Signin now is inserted by this script on module list for all portals
           On you had to add it both manually
    - FIX: Compile error on Visual studio - Removed unexistent file IRainbowModules.
    - FIX: On RegisterFull and Checkout - Fixed country list selection.
    - FIX: Products.ascx: Must bind even if postback because paging is manged by db.
    - FIX: Page.cs. Add a check for Portalsetting portalSettings.CustomSettings != null tha throws error sometimes

    by John Mandia
    - ENH: PortalsDb (new portals creation): Add Signin Module and put it on the hometab
    - ENH: PortalsDb (new portals creation): Add language switcher to available modules - 25/05/2003
    By Jes1111
    - *********************** IMPORTANT CHANGE **********************************
      Auto placement of Signin and LanguageSwitch modules disabled. Use new
      "ShowEverywhere" setting on first placed instance of either module
      to make them show up on all pages. For the Signin module, set its view
      permissions to Unauthenticated Users and Admins + uncheck All Users.
      Since you won't get a signin module showing up when you first run Rainbow
      after this update, use Rainbow/Admin/Logon.aspx to signin as Admin.
      IMPORTANT: we need to produce a script or whatever to add a Signin module
      to the first tab of a fresh portal -- can someone help me with this? I'm
      a complete klutz in the SQL department.
    - Signin (all flavours) and LanguageSwitcher modules are now regular
      placeable modules -- associated settings have been removed from Site Settings.
      Note that LangList, CultureList, LangLock and LangUser are still in the
      Site Settings table, since they are needed/useful even if you only run
      one language. LanguageSwitcher documentation will be updated soon.
    - Modified SettingsTable so it now orders and groups Portal and
      Module settings insteading of showing one big list. Groups and order within
      Groups is set by specifying in the constructor. New SettingItem property Group
      and enumerator SettingItemGroup. Site Settings and shared Module settings have been
      modified to group properly. I've modified HtmlModule to show how it is done for
      a module, but I'm delaying updating all the other modules pending some other
      forthcoming changes. Any module that has not been updated to use the new
      scheme will look "a bit messy" on its settings screen, but it all still works.
      Group headings are "localized", but waiting for Esperantus to enter translations,
      so the text key shows up at the moment.
    - Added "Print this..." button. Activated in Module Settings. Core stuff is solid,
      but so far I've only done a minimal implementation of the actual  print page.
      PrintHeader and PrintFooter templates added to all Layouts. If you
      have a custom layout, you'll need to duplicate from a standard layout as a starting
      point. Print button image added to all Themes (plus some others). Seems to work
      for all the modules I've tried, although "active" modules, i.e. with edit links, etc
      showing break if you click the link in the print page. Even works for shortcuts if
      you set the Print button "on" in the original.
    - Added "Back" button - this is for modules which can change their view - of which
      there are none at the moment! My forthcoming XML Item Manager uses it.
    - Some code added, but commented out for the moment, to implement "Email this..." and
      "Help" buttons. I'll be discussing these in the list.
    - Some interior changes to XmlLangModule - still functions the same.
    - Modified GetPortalCustomSettings() in PortalSettings.cs, so it doesn't read in
      "rogue/redundant" settings -- this seemed safer than producing a script to delete
      them from db. Thoughts? - 25/05/2003
    By Marc Babin (tested and added to CVS by Jakob Hansen)
    - Survey are now 100% ready for localization.
      Localized strings will later be entered by Esparantus tool
    - Fixed missing image in module EventLog using BuildUrl - 25/05/2003
    By Marc Babin (tested and added to CVS by Jakob Hansen)
    - FAQs are now 100% ready for localization.
      Localized strings will later be entered by Esparantus tool - 24/05/2003
    By Jakob Hansen
    - Added localized SendThoughts module (All hard work done by Marc Babin).
      The module is now using SmtpServer from web.config setting key="SmtpServer" - 24/05/2003
    - Bill Has Introduced Collapsable windows and script
    - I have just added a few bug fixes to show on every page and also added 1..2.3.1714 which updates the stored procedures
      needed for collapsable windows and showeverywhere to work. - 23/05/2003
    By Manu
    - FIX: Portalsettings: SupportCollapsable throw an error. Wrapped in a try catch construct for now.
    - FIX: Products module. Now you can add a product without an image.
    - ENH: New Money class for managing multiple currencies (namespace Esperantus)
          (EUR and USD, can be more if you like). (old was euro only)
    - FIX: Money: Changed data type from double to decimal
    - ENH: Products module. Currency is now a selectable product module property.
           Get currency list from: Money[] Money.GetCurrencies()
    - ENH: Products module. Now prices are formatted with current Money.
    - ENH: Shopping cart. Now total and Items are formatted with current Money.
    - ENH: Checkout. Now total and Items are formatted with current Money. - 23/05/2003
    By John Mandia
    - FIX: Added these two controls to Rainbow.config to enable collapsible modules
  - 22/05/2003
    By Jakob Hansen
    - FIX: Problem with "Alias=" fixed in Community RSS and WebService BETA. - 21/05/2003
    By Jakob Hansen
    - Updated Community RSS and WebService BETA: Made PortalAlias work! - 21/05/2003
    By Bill Anderson
    - Added Window Mgmt. (Min/Max/Close) and Save Configuration - 21/05/2003
    By Jakob Hansen
    - Added Module ServiceItemList BETA (uses the community WebService)
    - Added community WebService BETA (file CommunityService.asmx in root) - 21/05/2003
    By John Mandia
    - Fixed unreported bug. Default Page title was only showing portal name instead of the Default Title in PortalSettings
    - Fixed bug in portalSearch (The link returned when a discussion is found now points to the tab instead of the Discussions View.aspx page since it doesn’t exist anymore).
    - Changed portalsearch so that it uses UrlBuilder instead of the hardcoded DesktopDefault.aspx page. - 20/05/2003
    By Manu
    - Fixed Msdefault/Theme.xml - Now the html is valid - 20/05/2003
    By Jakob Hansen
    - Added RSS community BETA release (file CommunityRSS.aspx in root) - 19/05/2003
    by Manu
    - FIX: Incorrectly the base.OnInit was called twice. So the events were registered twice.
    - FIX: Lost password mail.
           ApplicationFullPath had problems with url handlers. Changed algorithm. Now it works.
    - FIX: Lost password mail.
           Name was sent instead of email. This fails direct logon.
    - FIX: Lost password mail.
           Line ends does not break properly. Changed \n to \r\n - Now it breaks just fine.
    - FIX: DesktopFooter.ascx: Added Try catch to avoid error when portal footer is not found - 17/05/2003
    By Ender Malkoc
    - FIX: Delete Role now asks for confirmation. Sourceforge bug 673937
    - FIX: Authenticated Users checkbox not checked. Sourceforge bug 736239
    - FEATURE: UserDefinedTable Module now have a new data type "File".
    - FEATURE: UserDefinedTable Module now supports XSL processing. - 17/05/2003
    By Jakob Hansen
    - FIX: Hyperlink edit Image in FAQ. Sourceforge bug 737924
    - FIX: Lost password mail is now "more beautiful". The login not fixed link. Sourceforge bug 736250 - 17/05/2003
    - John Mandia
    - Tided up some of the html (Added head tag to some pages so that head file wouldn't automatically be written into the body tag)
    - Introduced 4 new rb_css values:
           - rb_AlternatePortalHeader (css that is applied to the td that contains portalbanner ascx file)
           - rb_DefaultPortalHeader (css that is applied to the td that contains portalbanner ascx file)
           - rb_AlternatePortalFooter(css that is applied to the td that contains portalfooter ascx file)
           - rb_DefaultPortalFooter(css that is applied to the td that contains portalfooter ascx file)
     Default css is basically for casual views where as Alternate is for admin type pages
            (In case someone wants to give a different look depending on the function of the page)
    - Slight change to survey module so that it spaces out questions a bit nicer
    - Introduced Code that was implemented by Jason and Mario, Adds new menu binding options and also keeps track
      of relationships (parent tab, sub tab, sub sub tab etc) which means you can have both the top and subtab highlighted.
      Changed files: BindEnum.cs, DesktopNavigation.cs, MenuNavigation.cs these were mainly additions and should not affect anyones code. - 16/05/2003
    by Manu
    - FIX: Daily Dilbert. Image wiew link was wrong.
    - FIX: Daily Dilbert. Image wiew percentage setting thows an error.
    - FIX: Extra space on lang list throws: - 16/05/2003
    - FIX: Picture module now uses .jpg as picture extension
    - FIX: PortalSearch tab link now correct
    - FIX: PortalSettings.cs had code that does not run in a webservice:
           A webservice has no "HttpContext.Current.Request.UserLanguages" - 16/05/2003
    By Jakob Hansen
    - Added module "XmlFeed"
    - Moved module IframeModule to own folder - 16/05/2003
    by Manu
    - FIX: RegisterFull and ProductCheckout: CountryId was not retrieved correctly from db.
    - FIX: ProductCheckout: Update profile button now not causes validation
           (no unwanted messages if you want to change profile).
    - FIX: ProductCheckout: Moved some static text to literal globalized controls.
    - FIX: ProductCheckout: UpdateProfileBtn_Click now calls update profile correctly.
    - FIX: Ecommerce Namespace, some fix on names to avoid conflicts.
           Removed external gateway reference. All code is on Secure/Components now - 16/05/2003
    by Manu
    - FIX: Fixed multiselect list data type. Now handles correctly null values.
    - ENH: Language list on Module properties is now a multiselect list.
           So you may select one or multiple language.
        To see it click on edit properties on any module.
        Invariant culture is neutral (the module is always shown)
        The list comes from currently selected languages in portal settings.
           Sample: If you select both Italian and French languages you see Italian and French.
           Known issue: if you select any language other than Invariant (neutral language,
                        it matches any language) only specific culture is shown.
           Sample: If you select both Invariant and French languages you see French only. - 14/05/2003
    by Manu
    - FIX: Modules not available in design time. Fixed GeLangList for work when Context is null
    - ENH: New PagingNumber control. I it is based on AspnetForum code but I have adapted to Rainbow interfaces.
      The main difference is tha original is 0 based but rainbow is 1 based.
      Shares the same interface of old Paging control. Use it in place of old one.
      No need for code changes, aspx only.
      Code on class remains the same. I have upgraded it to IPaging type.
      protected Rainbow.UI.WebControls.IPaging pgPictures;
    - ENH: Added option for show language switcher in horizontal
    - ENH: Testing layouts: Add Layout= to querystring. The specified layout will override current one.
           The advantage is that if something goes wrong you may always go back   - 14/05/2003
    - Fix: Module ComponentModule do not result in error in PortalSearch anymore - 14/05/2003
    By Jakob Hansen
    - Added module "EventLogs" - 14/05/2003
    - Fix: Tasks module, fixed problem with PickDateCalendar.aspx (by Jakob Hansen) - 13/05/2003
    by Manu
    Language improvement and a step further to multilanguage portal
    - FIX: LangSwitcher in form mode now correctly sets current language.
    - ENH: Added: Change button
    - ENH: Changed SortedList to ArrayList.
      Languages are sorted exactly as you enter it on Portalsettings an not in alphabetical order
    - ENH: Lang name is now is binded to DisplayName. You get it localized according current language setting.
    - ENH: Added: new setting on ALL modules: Culture. The list is get directly from portal
      languages list so it is the same list that expose language switcher.
      If Culture is neutral the module is showed. If the culture is set a check is performed. If
      culture matches current language module is showed. Otherwise is hidden.
      On TabLayout page you see all modules as usual.
    - FIX: Fix on Rainbow.Configuration.PortalSettings.ProcessCultures().
      In some circunstances it throws an error. It should be fixed now. - 13/05/2003
    - Fix: Localization does not work with checkbox by MarcB
    - Fix: bug in powergrid.cs by Mats71
    - Fix: Logon and logoff button were not localized correctly on HeaderMenu.cs
    - Fix: Custom DeskTopLayouts not found in portal directory by George James (ghjames) - 12/05/2003
    By Jakob Hansen
    - Added module "Quiz" - 09/05/2003
    - By Jakob Hansen: ComponentModule is now searchable - 09/05/2003
    By Jakob Hansen
    - Added module "Sitemap" - 09/05/2003
    By Jakob Hansen
    - Added module "ComponentModule" - 08/05/2003
    By Jakob Hansen
    - Added module "Survey" - 07/05/2003
    - by Mark. Updated Discussion module for
      Ability to edit and delete discussion items if you are in
     the proper role (e.g. Admin,...) - 07/05/2003
    - By Jakob hansen: Updated module "Announcement" with new features by Indah:
      HtmlEditor, Heigth, Width, ShowBorder, Vertical/Horizontal, RepeatColumns - 06/05/2003
    - Fix: New portal fails when UseSingleUserBase="true" - by Manu
    - Fix: Fixed themes so they do not show a white border at the top by default.
           There was a problem with the css and the html (table margins had to be
           changed and the top td that contains desktopbanner had to have the table style
           applied (Otherwise it would default to margin 3 - Thanks Jes for pointing out
           the css stuff).
    - Tidied up some of the html (There was colspan="2" in a few places where it wasn’t needed).
    - Applied the css styles to all modules.
    - Todo: look at Secure directory to see if it needs the css styles. - 06/05/2003
    - Fix: DesktopPane - 1329 event firing bug - by Manu
           There was a problem DesktopPanes code. version 1329.
           Some events on left and right panes were not fired.
           I have fixed it in 1330. - 05/05/2003
    - By Manu
    - Fix:
           When changing a property of one of the subportals
           (using the Portal Settings module of the Main (Rainbow) Portal)
           those changes are not saved to the database.
    - Fix: Esperantus.WebControls.HyperLink "~" problem - FW 1.1
           Fixed for ImageUrl and NavigateUrl
    - Fix: 1636 script: removed dbo.
    - ADD: SigninCool module (to be tested) - 05/05/2003
    - By Cory Isakson: fixed edit link URL on several modules
     milestones - 05/05/2003
    - By Thierry: new version of ECommerce module
      Code also from Manu, Indah Fuldner, Ruben
      All check out process rewritten (see Secure directory) using 4 steps.
      Beginning of code for Shipping and Gateway options
      Important: Products and Orders tables are DESTROYED by the sql script !!!
      add something in the rb_ShipZones and rb_ShipPrices to go through shipping
      Currency is only $
      Workflow is broken in checkout (so do not use it for now)
      This is a BETA version designed to have people working on it, do not use yet for you shop - 02/05/2003
    - By Jakob Hansen: Bug fix for WeatherDE design setting - 02/05/2003
    - By Manu: Improved edit user pages. Minor bug fix.
    - By Manu: Allow to change Id on non identity userid (Allow register must be off)
    - By Manu: Overall improvement of User edit page, now is complete
               and uses the same control of registration
    - By Manu: Avoided dbupdated message on start
    - By Gert: The default page on BuildUrl now is not hard coded and depends on HandlerTargetUrl setting in web.config
    - By Indah Fuldner: Improved breadcrumbs (no db hit), fixed GetTabRoot - 01/05/2003
    By Jakob Hansen
    - Added modules "WeatherUS" and "WeatherDE" - 01/05/2003
    By Jakob Hansen
    - Added module "UserDefinedTable" - 01/05/2003
    By Jakob Hansen
    - Added module "WebPartModule" - 30/04/2003
    By Jakob Hansen
    - Added module "GoogleSearch" - 29/04/2003
    - By Jakob Hansen: More Tasks Localizing - 29/04/2003
    By Jakob Hansen
    - Localized module Tasks (done by Marc B). Also moved into own folder. - 29/04/2003
    - By Manu: New fixed Panes version. New fixed Menu. - 28/04/2003
    - By Ender: Fixed the bug in PortalModule control which breaks Picture and Product modules
    - By Manu: Restored previous Panes version. It gives problems with menu.
    - By John Mandia:
    - Removed hardcoded values for table width and alignment and the body tag
      So that it can be controlled 100% by your themes. Table now has
      a css reference and is wrapped by a div tag (for browser compatibility).
    - There are two groups of css styles added to the css file (You need to add this to your custom themes).
      1) .rb_DefaultLayoutDiv & .rb_DefaultLayoutTable
      2) .rb_AlternateLayoutDiv & .rb_AlternateLayoutTable
      Group 1 is used on general pages and Group 2 is used on Admin Pages
      (In case you wish to have more width for your admin pages)
    - I have added a new theme MSDefault76 where it demonstrates a width of 76% centered
      (Please not if you place objects that are bigger than that then it will stretch).
      I have also updated all the old themes so that they still appear the same (width 100%). - 28/04/2003
    - By Manu - New Threepanes version.
    - Fixed minor typos on modules xml comments
    - IMproved create db
    - Better support for edit on Register pages - 28/04/2003
    - by Mark. Added Discussion module to the core - 27/04/2003
    By Jakob Hansen
    - Added module "SendThoughts" (Not localized!) - 27/04/2003
    By Jakob Hansen
    - Fixed DailyDilbert image bug - 26/04/2003
    By Jakob Hansen
    - Added module "MapQuest" (and not FAQs) - 26/04/2003
    By Jakob Hansen
    - Added module "FAQs" - 25/04/2003
    By Jakob Hansen
    - Added module "FAQs" -25/04/2003
    - Jes. Fixed problem in Keyword Splitter (HttpUrlBuilder) - 24/04/2003
    By Jakob Hansen
    - Updated module "Announcement" with new features by Indah:
      HtmlEditor, DelayExpire, Heigth, Width, ShowBorder, Vertical/Horizontal, RepeatColumns - 24/04/2003
    - Manu. added new portalsetting: AllowRegistration. If you do not allow registrations set it to false
    - Improved edit profile. Now you can not set password if you like. - 24/04/2003
    - Fixed onUpdate/onAdd/OnDelete cache flushing bug in page.cs
      Previous behavior restored - cached module contents are flushed
      whenever any edit operation is performed.
  - 24/04/2003
    By Jakob Hansen
    - Moved modules DatabaseTool, DatabaseTableEdit and DailyDilbert into own folders.
      Added install.xml, readme.txt and example.jpg for each module - 24/04/2003
    - fixed problem with "=" in Keyword Splitter (HttpUrlBuilder) - 24/04/2003
    By Jes1111
    - New module CacheViewer - for admin/dev use to see contents of Rainbow cache.
      Shows key, size and contents (sorted by key). Add to any page, but remember
      that Admin user will not add anything to cache so you need to log out to see it happening.
    - Changed Module CacheKey to add PortalAlias - helps identify modules in CacheViewer in
      multi-portal setup.
    - New module XmlLangModule - extension of original XML/XSLT module, but works with
      LanguageSwitcher. Full documentation to follow. Includes new XslHelper.cs which is
      passed in to XSLT to give access to selected Rainbow methods and properties.
      Sales2.xml and Sales2.xsl in _Rainbow/xml folder demonstrate functionality - set
      LangList="en;fr;pt" and CultureList="en-US;fr-FR;pt-PT" in Site Settings.
      NOTE: Module Title not localized (yet).
    - Improved cache behaviour: CacheTime=-1 is now a legitimate value, rather than a
      happy accident.
    - Added bool "Cacheable" property to modules - forces CacheTime to -1 to prevent caching
      of all instances of module type. See PortalSearch.ascx.cs for demonstration of disabling
      caching. No DB update - "Cacheable = false" is hard-coded into module code. Also disables
      CacheTime field on ModuleSettings page. Use when module type should never be cached.
    - Fixed Designer problem with Cache (reported in Forum).  - 23/04/2003
    By Jakob Hansen
    - Added module "Daily Dilbert" - 23/04/2003
    By Jes1111
    - Corrected small problem with LanguageSwitcher
    - Expanded documentation PDF  - 22/04/2003
    By Jakob Hansen
    - Added module "Tasks"  (Not localized!)  - 22/04/2003
    By Jakob Hansen
    - Added module "Database Table Editor"  - 22/04/2003
    By Jakob Hansen
    - Added module "Database Tool" - 22/04/2003
    By Jakob Hansen, minor Search update
    - If Moduletitle is displayed can be controlled using the settings system
    - Manu: Fixed bug on switch language. (httpurlbulder) - 21/04/2003
    - Fixed imageurl on hyperlink globalized control - 21/04/2003
    By Jakob Hansen, Search update
    - Link to discussion fixed
    - Date 1/1/1900 not displyed
    - Html tags always removed from abstract
    - Moduletitle (from [rb.Modules].[ModuleTitle]) used as title for HtmlModules - 21/04/2003
    By Jes1111
    - Added new auto-placed module (similar operation to SignIn) called
      LanguageSwitcher, together with changes to Global.asax.cs,
      PortalSettings.cs, DesktopPanes.cs and web.config files.
      Enables fine-grained control of UI language, content language
      culture-sensitive formatting, for single- as well as multiple-
      language portals. PDF document in /DeskTopModules explains all.
      Demonstration language-sensitive XML/XSL module coming soon!
    - Related to above, new folder "images/flags" in application root.
    - Related changes to cache behavior to support multiple languages.
    - NOTE: I've had to temporarily disable caching of portalSettings:
      classic Catch-22 situation until static data is separated from
      dynamic data.
    - NOTE: big clash here on encoding (see below), since
      iso-8859-1 does not appear to support the Euro symbol. See comment
      in web.config file.
    - Added DesktopTabsXml (XPathDocument) property to PortalSettings. This
      is an indirect serialization of the existing DesktopTabs property. It
      has no use at present unless you want to implement a third-party menuing
      system as I have, but it might be interesting for others to look at.
    - Added KeywordSplitter function to HttpUrlBuilder - see comments in
      Rainbow.config file. - 19/04/2003
    - I had spent some time to fix all images in all controls.
      Now should work for framework 1.0 and 1.1 as well.
      Let me know if I miss someone
    - Fixed Encoding on web.config for Netscape 4.x support
    - Fixed Mobile module check on install
    - Fixed Tabid on PortalNavigation url - 19/04/2003
    - Fixed user manager - 19/04/2003
    By Thierry
    - Added workflow support for Product (E-commerce) module - 18/04/2003
    - Articles: some changes necessary to support unicode by marcb_empco AT
    - Fixed some issues with templates - 18/04/2003
    - Fixed error on 1614.sql script
    - Fixed Encoding on Articles
    - Fixed Tags on search
    - Fixed GetAbstractText helper function when space is not present
    - Fixed Portals.ascx GetString legacy code - 17/04/2003
    By Manu
    - Minor fixes
    - SMTP cluster support by marcb
    - Improved Framework 1.1 support with buildurl and images
    - Corrected position in web.config
    - Restored -lines on 1516.sql to correctly migrate data if present
    - Fixed portalid in signin- by marcb - 15/04/2003
    By Manu
    - Minor fixes
    - Small changes on pictures layout to be loaded on Vs - 14/04/2003
    By Manu
    - Fix ValidateRequest attibute on web.config for Framework 1.1 support
    - A better setup.bat
    - Fixed ApplicationFullPath potential problem - 14/04/2003
    By John Mandia
    - Added Rainbow.config file for Handler settings (Error Handler and Url Handler - They have been removed from web.config)
    - Added V0.8 of the ErrorHandler. See announcements for changes.
    - Moved call for ErrorHandler from HttpModule to Global.asax.cs
    - Log Folder has been added (Please make sure there are write permissions to this folder). - 14/04/2003
    By Manu
    - Some slight fixes on sql scripts to improve upgrade on old sites
    - db code is checked now on each request (it is cached :) ) so you cannot surf if
      db it is not upgraded
    - Unexistent portal now gives a meaningful error
    - Fixed blacklist with new table names
    - Fixed path on folder creation on Appstart - 13/04/2003
    - New Flash module by Indah Fuldner ; indah AT
    - Fixed workflow procedures for Milestones module (Manu)
    - Fixed GetAnnounces table (now sort is fine) (Manu) - 12/04/2003
    Module based on the picture album from Ender and the original IBS shop.
    - many categories of products (3 levels by menu):
     the module has to be created in a root page and the child pages
     will act as categories (the navigation is invalidated on the page
     containing the module)
    - all nice features of the picture album including Product Layout,
      paging, generation of thumbnail (old version not including the workflow).
    Under development:
    check out to be improved
    payment gateway with several options
    upgrade to latest picture album and integrate globalisation and workflow
    shipping table.
    Bug: need to be logged-in for navigation in the module to work.
    Thierry - 10/04/2003
    - Picture Module v2.1 by Ender Malkoc
      - Workflow support
     IMPORTANT - Do NOT enable workflow for your existing modules.
            IMPORTANT - Revert function is not working, God knows what'll happen if you click that
     IMPORTANT - If you enable workflow for a module that already have pictures,
     you'll need to publish it once in order to see existing pictures in production
      - Localization support
      - Search support
      - New Picture Layout : VerboseImageView to demo EXIF capabilities of the picture module - 09/04/2003
    - MultiSelectListDataType by John Bowen
    - Fixed search module after table renaming
    - New installer procedure.
      Read help: - 08/04/2003
    - New logon way, now you can authenticate using id instead of email
    - Upgraded to latest Table naming convetions. Hopefully this is the last one :)
      - All Rainbow procedures are prefixed with “rb_? Eg. rb_Announcements
      - All staging tables are Postfixed with “_st? Eg. rb_Announcements_st - 08/04/2003
    - Fixed some Rainbow.Security.RainbowPrincipal issues
    - New UseSingleUserBase setting on web.config.
      Use it to authenticate using a single user base for all portals. - 08/04/2003
    Thanks go to  Joan M for the Original Code. Modified and extended by John Mandia.
    The ErrorHandler class catches all errors that are not programmatically caught
    and directs them to dynamic error pages which support your theme and translations
    (Please see class and web.config for more information) - 08/04/2003
    - Fixed behaviour of revert button - 07/04/2003
    - New Rainbow.Security.RainbowPrincipal class
    - New Rainbow.Security.User class
    - New PortalSettings CurrentUser static property:
      Get CurrentUser.Name, CurrentUser.Email, CurrentUser.Id (Forms Autentication)
      Get CurrentUser.Name or CurrentUser.Email (equal to name) (Win Autentication)
    - Added easy link Settings on Module Settings page to go to Module Properties
    - Added easy link Properties on Module Properties page to go to Module Settings - 05/04/2003
    - Fixed some procedure left out.
    - Renamed indexes according new prefix for staging tables
    - Nice buttons on MsDefault style - 04/04/2003
    (Geert Audenaert)
    - Added limited support for windows nt domains
    - Added Revert functionality
    - Solved workflow issues due to db changes

    - Some fixes to a better XHTML compliance on code, themes and layouts
    - Added ability to edit profile for current user
    - Terms and conditions updated. Now tries to get localized terms before getting defaults.
    - Fixes on Search procedure (updated tables name)
    - Fixed Mailhelper.cs. The SQL refers now to correct tables
    - Removed Admin/RegisterFull.aspx - Now all is handled by Admin/Register.aspx that loads correct control - 03/04/2003
    (Cory Isakson)
    - Updated HTML TextBox Assembly and supporting files to version 2.1
    - Changed ShowTumbnailsPanel to ShowUpload for HTML Module and Articles module
    - Added Help file for HTML TextBox
    - Removed HTML TextBox 1.5 - 03/04/2003
    - Trying to run web portal without a db will now raise an exception
    - Moved Updated Script execution code to db helper class
    - Fixed db scripts to avoid errors when a different user than dbo is used.
      Many thanks to Marc Babin for his help!
    - Big update of Tables, Procedures and Indexes/Trigges
      Following new naming convention:
      - rb_Prefix on all Objects to permit use of shared databases
    Upgrade from 1317: read instructions on read me! - 31/03/2003
    - Changed all conflicting variables for compatibility with VB version - 02/04/2003
    - Updated Active Directory support (added ADHelper class)
    - Fixed bug in HttpUrlBuilder which made workflow not work - 29/03/2003
    - Handled the error domain not found in ADGroupMember.ascx control.
      //TODO Geert: handle the error - 28/03/2003
    - When using integrated windows authentication you no longer need to copy user account's
      Also you can give access to users (only with windows authentication).
    - Increased Timeout for commands execution
    - Fixed bug on HttpUrl tha prevents module properties to work
    - I have renamed Option to Setting Option and moved to UI\datatypes folder.
      Portalsettings.Option --> Rainbow.UI.DataTypes.SettingOption
    - All home redirects now go to Default.aspx (no DeskyopDefault.aspx) - 25/03/2003
    - Reorganized files in namespaces for a consistent organization
      Moved designers to Rainbow.UI.Design namespace
      Moved Mobile Modules to Rainbow.MobileModules (were Rainbow.UI.MobileControls)
      Moved Rainbow.Design.PictureLayouts.PictureItem to Rainbow.Design.PictureItem
      (this means you should update custom Picture Layouts)
    - Now all dir should represent the current namespaces.
    - Splitted all files that contain more than one classes: 1 file - 1 class
    - Now there is consistency between Namespaces and Directories
    - Removed DesktopBreadCrumbs from Rainbow\Design\DesktopLayouts
      use Rainbow.UI.WebControls.BreadCrumbs instead
    - Fixed plain TextEditor for multiline support.
    - Fixed batch files for compilation (please remove all #*.cs files!)
    - Fixed scripts by marcb AT to avoid errors caused by staging user - 25/03/2003
    - Fixed Layout BabyBlue.
    - Changed PortalSettings.PortalLayouts to PortalSettings.PortalLayoutPath - 24/03/2003
    - Fixed: SignInType and SignInLocation and SignInPosition do not show Options... - 24/03/2003
    - Fixed a bug on db creation the will raise a few errors.
    - Restored section on web.config (sfbug # 678638) - 24/03/2003
    - Every module can now show who did the last update on it
    - Application_Error event is catched and a nice error message can be shown
    - Milestones tutorial module now support workflow.
    - Update.aspx.cs - Now we can specifiy a different db name other than Rainbow
    - SendNewsletter.aspx - Fixed some mispelled asp: tags
    - Shortcut / ShortuctAll - Fixed select module combo setting
    - Shortuctall module - Fix: shortcuts should not be displayed on GetModulesAllPortals list
    - New simple Module: RainbowVersion,
      see script this is the recommended way for install new modules
    - Updated web.config, some clean and some change on default settings (do diff on CVS to see all) - 24/03/2003
    - Fixed Country and states lists in Registration page for international cultures.
    - Fixed css for buttons in msAlt style
    - Articles: fixed editbutton link
    - Announcements: fixed missing Title label - 23/03/2003
    - Updated GetTabsParentProcedure
    - New procedure rb_ModulesUpgradeOldToNew
    - Removed legacy code:
      - Yahe (use other editors)
      - Old HTML editor (current module will be upgraded to HTML one)
      - Old Search (current module will be upgraded to new one) - 22/03/2003
    - Fixed UpdateTab stored procedure to prevent assigning ParentTabID
      that would orphan the tab or cause an infinte loop. (restored)
    - Updated Tablayout to raise error.
    - Added cancel button on TabLayout.
    - Added overload in BuildUrl for accept language. - 21/03/2003
    - Fixes the fact that you can't delete a tab
      even though you've removed all the modules
      from it. (Makes the tabsettings for that tab
      cascade delete when the tab is deleted).
      John Bowen
    - Updated mk.bat for compile rainbow without visualstudio
    - Fixed some problems with db update and scripts...
      now it works neat with dbo user.... - 20/03/2003
    - Big improvement in db installation: New autoupdate db code
      Simply run the site and Rainbow will update db for you!!
    - Fixed the email sending in the workflow process - 19/03/2003
    - Quick access to module properties for administrators
      right from module properties.
    - Easily move modules from tab to another. (update db with new procedure)
      The control will be set on the same pane and on the same order
      of the original page.
    - Improved globalized controls and design time support
      Now it returns translation if available and not key
    - Improved Autolearn, less overhead when disabled.
    - Fixed a small bug for sending emails in signin module
      The sender address is now configurable in the web.config. - 18/03/2003
    - I have removed ThemeWebPath, LayoutsWebPath, MenuClientPath keys from web.config.
      They are hardcoded on Portalsettings now.
      This will remove all "Theme not found" or "missing layout" errors.

    - For menu you should remove custom client paths from all Layouts and
      ensure you have the menu script on your Rainbow directory:
      PortalSettings.ApplicationPath + "/aspnet_client/DUEMETRI_UI_WebControls_HWMenu/1_0_0_0"
      This will remove all problems with disappeared menus reported on forums

    - Improved error handling if theme or layout not found
    - Improved paths consistency
    - Fixed search on HTMLmodule
    - Restored HTML tags on Articles module - 16/03/2003
    Manu: Some code fixing.
    News DataType HtmlEditorDataType for easily add Html editor
    choice on your pages. See implementation in Html module and articles.

    DB changes
    Many people have asked to remove staging user in workflow and
    use a prefix on tables. This patch do de work.
    In future all workflow will be updated using prefix tables.
    You find update on DBinstall folder.

    John Bowen - March 13, 2003
      ** CREATES NEW TABLES ([st_tableName])
      ** DROPS STAGING USER FROM DB - 15/03/2003
    - Added FreeTextBox - Copyright (c) 2003, John Dyer
      As optional editor on HTML module. - 13/03/2003
    - Updated menu script for Opera 7 browsers
    - Keep on cleaning modules code and applying new rules
    - Fix on menu top by mochuelo
    - Changed Articles list
    - New globalized control HyperLinkColumn - 12/03/2003
    - Fixed bug on PortalSearch Reflection
    - Fixed bug on Portalsearch SearchSqlSelect
    - Improved searchable modules: Links, Milestones, Event, HtmlModule
    - Restored Cancel event on Register and Register full modules
    - Added RegularExpressionValidator globalized control - 12/03/2003
    - New Property on Links module by Cory Isakson
    - Revised Section table by Manu
    - Added error management on GetSection
    - Fixed null translation on missign value on dll - 11/03/2003
    - Fixed bug "If UsePortal setting is false, all links are broken".
    - Added ACtiveUp HTML TextBox V1.5 Rel. 2 for Rainbow License
    - Fixed bug on Shortut module loading
    - Fixed bug on Search init properties - 10/03/2003
    by Jes
    - SignIn and Register are now "full" modules: placeable, conform to theme,
      switchable title,etc. Configuration options added to portal custom settings to
      control Default/Alt Theme, ShowTitle, etc, TODO: proper localization of
      setting options
    - Signin module is now configurable to appear in left, center or right column,
      on Home page only or on all pages.
    - New module added (SignInLink) which shows SignIn and Register links - portal
      can be configured to use SignInLink instead of SignIn module.
    - Automatic insertion of SignIn can be disabled altogether - SignIn module can still
      be placed manually on any tab
    - Logon.aspx, Register.aspx and RegisterFull.aspx now all use the relevant modules
    - new property ShowTabs added to PortalSettings - value set by adding
      ShowTabs="true/false" to Banner tag in aspx page - TODO: make DeskTopNavigation
      obey ShowTabs to prevent tabs displaying on admin pages, etc. - 09/03/2003
    - A lot of fixes and code cleaning
    - Milestones module added on the code as a Tutorial
    see: - 07/03/2003
    - A lot of fixes and code cleaning - 07/03/2003
    No db updates :)
    by Jes
    - Smoothed out page event inheritance hierarchy
    - placed security checks and cache flushing
    - title display is now switchable
    - Added a file to security folder "signinenum.cs", part of next changes
      about configuring sign in options per portal
    by Manu
    - Page.cs, added delegates and events.

    by Ender
    - I've fixed smtg in Tab and TabLayout (admin) modules that
      has been annoying me for sometime.
      You know when you hit the up or down arrow in these pages,
      module or tabs' order is changed. But the selection gets lost.
      In other words if you want to move a tab to TWO upper levels, you need to
       1. Select the tab from the list
       2. Hit the up button
       3. Select the tab AGAIN
       4. Hit the up button
      It gets really annoying if you need to move a tab all the way up/down in the list. - 05/03/2003
    - Improved and fixed core localization code (localize class).
      Now it is really clean.
      In the next few days we will replace all legacy localization
      code on modules and aspx pages.
      The new mode use:
      - SQL or MSDE instead of Access
      - Defines a culture table
      - Updates Countries and States list
      - Include all available translations
      - Has Autolearning feature to track key usage and insert
        provided translations on db (no autotranslation like google, it
        inserts the text that the module creator defines)
      - Include a consistent way to see how the keys are used (Sections table)
      - New webconfig key:

    - Great changes on db, you cannot go back!
      Look ad DBinstall folder.
      The files are zipped to prevent CVS changes!
      - Install 1.1.x - This is for new database only
      - Upgrade 1.1.x to - Upgrade to this version.
      IMPORTANT: The upgrade cannot be repeated safely.
      BACKUP YOUR DB, take notice of any ERROR (ignore warnings)
      and post on forums any problem.
      From now on all patches will be intended for upgrading one
      version to another.

    - The patch drops [rblang_Language] table. Save any custom data
      BEFORE applying the patch.

    Other misc bugfixing:
    - Fixed Page.cs support on Visual Studio at Design time
    - Globalasax.cs updates by tiptoweb and jes
    - Url quick singin improvement for using aliases too:
      Call logon.aspx with you user and password:
      (This works if you use DNS for switching portals)
      If you want to use alias:
    - Fixed shortuct module for modules that define Title on other init
      procedure like HtmlModule - 02/03/2003
    Must reapply patch guys!! Run applypatchonly.bat in dbinstall dir!

    - Fixed a bug on dbpatch.
    - Fixed and improved serach code (almost finished) - 02/03/2003
    - Completely rewritten localization support wit autolearning feature!!!
    - Currently implemented in:
      Signin module
      Blacklist Module
      Access denied pages
    - New cache implementation by Jes
    - Fixed deadlock bug in globalasx.cs by Thierry (tiptopweb) - 01/03/2003
    - Updated Breadcrumbs code. Now it is a more powerful Table Webcontrol
      with customizable separator and design time support
    - Fixed bug in latest search dbpatch
    - Fixed shortucts modules and Buildurl issues. Now property page runs fine.
      Now they are more consistent (Shortcut all inherits from Shortcut) - 28/02/2003
    Must reapply patch guys!! Run applypatchonly.bat in dbinstall dir!
    - New workflow support with approve and reject. Email confimation. by Geert
    - Fixed Windows Authentication User Problem - Cory
    - Fixed Persist login when switching portal Alias problem - Cory
    - New pluggable search module (unfinished, we need to add more modules) - by Manu and Jakob - 28/02/2003
    Must reapply patch guys!! Run applypatchonly.bat in dbinstall dir!
    - Fixed subtabs issue after latest mods - Manu
    - Finished Articles module (TODO: Translations, Workflow support and search)
    - Some bugfixes in and out - 26/02/2003
    - Fix in add a module definition fails...line 145 in ModuleDefinitions.aspx.cs.
    - Added old overload in Page.cs for backward compatibility
    - Fixed control creation in Html edit - 25/02/2003
    Must reapply patch guys!! Run applypatchonly.bat in dbinstall dir!

    Manu changes:
    URL Management
    - Better URL management and some bug fixed in urlbuilder.
    - Fixed some strange issues with URL builder. Now should work fine
      and in a more consistent way.
    - Moved url handling code from httphandler to httpurlmodule so
      that all code for managing urls is in a same place.
    - Fixed complex url handling (dir + page), now passes all attributes correctly
    - Fixed Menu navigation for third level menu and mode (run dbpatch)
    - Fixed nasty bug on Title and urlbuilder, now porperty page for the editor works nicely

    - Fixed language attribute in querystring. Now it is passed correctly
      in all pages that use urlbuilder.
    - Added new localizable controls the automatically lookup translation
      No need for separate translation routines: just use the new label
      or literal control and set the TextKey property

    - New articles module (still unfinished)

    - Changed the way title checks if show buttons. Now it is tested the url only.
    - Predefined text for button is provided so you have to change only if different.
      Property URL is built in so is always shown.
      If you want to hide in some module you should set the URL as empty.
    - Page.cs completely rewritten for a better performance. Now the elements
      are retrieved only if needed. Many changes in derivate classes to conform
      to new page implementation. Can be some little bug. Please let me know if something is wrong.
      The OnUpdate / OnEdit / OnDelete method was modified to pass EventArgs

    Html Edit
    - Rewritten HTML edit module, now you can select your favourite editor by a menu!
    - Rewritten HTML edit module to use new ActiveUP control (binary licensed to rainbow: thanks Cory!!)
    - Rewritten HTML edit module to use new Yahe control (source included wit permission).

    Cory changes:
    - New Active up HTML editor. Professional editor licensed to Rainbow.

    Tabsettings and page
    John Mandia changes:
      - New table TabSettings and new classes for add/edit custom tab settings
      - New head implementation in page.cs supporting css, metadata
        and other search engines facilities. All settings can be
        modified per portal base (defaults for all the portal) and per
        tab basis if needed.
    There are two settings in tab custom settings you might not understand
    TabKeyPhrase and TabUrlKeyword
    TabUrlKeyword is to give people the option of having a keyword added
    to their url helps people distinguish sections easier and makes
    search engines index better (only slightly though) so if one tab
    was about us you could enter about-us then when someone
    goes to the url it is more recognisable
    TabKeyPhrase is a bit trickier, the reason for this is again
    search engine optimisation and this one is for theme builders
    the TabKeyPhrase is to go at the top of the page just after body
    or close after before any script or code etc.
    The reason being that search engines give priority to where text
    is placed if you have your keyphrase at the top it will read it
    first and think it is the main thing the page is about on my current site it is used on
    every page before the tables etc and it looks like part of the site. - 17/02/2003
    - Fixed a bug in the menu display after Tabindex removing
    - Added new GetRootTab procedure on portalsettings
    - New workflow icons
    - Fixed bug in workflow code (Desktoptitle.cs)
    - Breadcrumbs classes added in breadcrumbs layouts.
    - Fixed Lyrys samples smtp call
    - Fixed workflow dbpatch.
    - Fixed problem ordering tabs (reapply dbpatch) - 16/02/2003
    - Fixed a bug on HttpUrlBuilder.cs
    - I have missed committing some files last version. Are on CVS now.
    - New Minimalist thumbnails layout - 15/02/2003
    - New helper class HttpUrlBuilder for dynamically build URLs
    - New global.asax.cs Application_BeginRequest management
    - Modified HttpUrlModule to reflect new changes
    - Portal wide substitution of all urls in managed urls
    - New proxy class on helpers - 14/02/2003
    - Fixed Paging in pictures module
    - Send Password localize completed - 12/02/2003
    - New feature in signin module: "Send Password". Requires new language.dll. - 11/02/2003
    - New workflow implementation by Geert.Audenaert AT Syntegra.Com (BETA)
    - Tab/subtab fixing and Tabindex removed Gert.Marginet AT (BETA) - 03/02/2003
    - Fixed Set portalalias equal to domain name in globalasax.cs - Strip www code.
    - Fixed redirect in Desktopdefault
    - Fixed mispelled "Tahoma" font in the CSS files for MenuMS and Default (Thanks to Gene Rodrigues). - 30/01/2003
    - Breadcrumbs update Ver. 1.1 - 31. jan 2003 by jes
      I made some crude changes to the breadcrumbs control.
      First, there was a problem that it didn't pick up the TabIndex, so I changed that.
      Plus, I didn't like that it made the current page a clickable link, so I changed that.
      Then I wanted it in a table so I could control it's formatting a bit more,
      so I changed it from a simple placeholder to a table.
    - Signin is now a pluggable module (as any other).
      It disappears magically if the user has logged in. - 30/01/2003
    - Rewritten populateRoles and added new unauthenticated user role.
      Remember to add admins too or you cannot edit module.
      This add a new feature (an automatic role that can used eg for modules
      informing non authenticated user how-to login)
      This also fixes a bug in IBS:
      Partial roles names are treated as equal: if you have a photo role
      and a myphoto role, the myphoto takes the permission of photo. - 29/01/2003
    - Fixed PicturesDB on CVS
    - Customized Portal title prefix in web.config
    - Add guid to signin module
    - Module GUID Throw an exception if not override in derived modules
      (Cannot mark class and property as abstract for VS incompatiblity)
    - New PowerGrid control - 23/01/2003
    - Incorporated PictureAlbum beta 2 on core (by Ender)
      (please remove existing Picture album before upgrade:
       Pictures Table and general modules entry for picture module) - 22/01/2003
    - Defult cache is now 0 for both PortalSettingCaching and ModuleOverrideCache
      Seems to make some problem if you do not know it is on
      ADVICE: Use cache on production sites, remove it when developing - 22/01/2003
    - Fixed a bug on ModuleOverrideCache
    - Fixed bug Editor.ascx for working with .NET 1.1
    - Fixed viewstate in shortcut and set pageload code to execute first time only.
    - Restored missing documents folder in CVS
    - Changed help on dbinstall\setup.bat
    - Fixed cascade delete (reapply dbpatch) - 21/01/2003
    - Added caching features to boost performance
    - New wb.config keys:
      - PortalSettingCaching: Caches portalsetting
      - ModuleOverrideCache: Override default cache for modules (no admin) - 17/01/2003
    - Cleaned up security classes. Moved all code to PortalSecurity class.
      Added new method for redirection in case of unauthorized access.
    - Fixed a bug on Logon.aspx, now redirects on home is user is logged on.
      The logon box is displayed only if user is not authenticated.
      You can logon adding userid and password on querystring if successful
      authenticates and go home, if not you get access denied page.
    - Added new property ShowLogon on HeaderMenu control
    - Added layout UpperLogon to test new feature
      (Thanks to jbowen for the idea and original source code 09-01-2003)
    - Updated menu control. Now you can specify your own images.
      Update client path (you have to change layouts!)
    - Added new module Newsletter/Blacklist to the core! - See newsletter-readme.txt (By Manu/Jackob)
    - Added OneFile module to the core! - See onefile_readme.txt (By Jackob)
    - Added IFrame module to the core! - See iframe-readme.txt (By Jackob)
    - Fixed mk.bat to compile and link embedded resources
     (now you can compile and run even if you do not have visual studio :) ) - 15/01/2003
    - Modified logon.aspx - Moved authentication code on security folder - 14/01/2003
    - Optionally remove www. from beginning of domain name (by DarkLight 10/01/2003) - 09/01/2003
    - Fixed mk.bat dll name - 08/01/2003
    - Fixed an issue with default values in pane style
      (only DUEMETRI.UI.WebControls.Panes.dll)
    - Modified DesktopTitle code so you can use Title property from your Modules
      to override the Title specified in the database.
    - Fixed Edit Portal Default Layout Blank and bug #659609 Layout/Theme flaw by Abain Cory Isakson
    - Fixed UpdateTab stored procedure (please apply DBpatch)
      to prevent assigning ParentTabID
      that would orphan the tab or cause an infinte loop.
    - New BreadCrumbs control by Cory Isakson (please apply DBpatch)
    - New BreadCrumbs Layout
    - Minor fixes on code
    - Improved SubTabsVert layout
    - Bugfix #656794 'Menu rendering adds all tabs' on MenuNavigation.cs by abain
    - Makefile for recompile without VisualStudio (see mk.bat)
    - Added dropdown combo for layouts by Cory Isakson
    - Fixed a bug that caused an endless loop on portalsettings.
    - Removed CVS dirs from Themes and Layouts lists
    - New babyblue Layout
    - Fixed the Text for the Delete Confirmation, now displays correctly.
    - Fixed some errors on dbpatch that prevents installing new modules
    - Removed source control error on open
    - Tabs fix. This fix allows for unlimited depth of the child tabs,
      shows orphans in the tabs list, and allows re-ordering of the tabs without problems.
      I also changed the tabs select list in tabs.aspx to be 400px wide and 400px high.
      (Cory Isakson)
    - Fixed Images path on HTML Module V2
    - Fixed dbpatch for including HTML Module V2
    - New search module by Jackob Hansen (see readme on desktopmodules dir)
    - Fixed bug on DesktopPanes.ascx in menu ms layout
    - Fixed bug on Menu control (ClientPath on design mode get error)
    - Fixed more than 50 warnings and typos on XML help
    - Packaged all code as release on SourceForge
    - Webcontrols sourcecode and help is available as separate download
    - Fixed announcements module: start date now can be set via propertypage
    - Localization of announcements module and minor fixes complete
    - Localization of contacts module and minor fixes complete
    - Localization of events module and minor fixes complete
    - Fixed bug on discussion.ascx: show images
    - Fixed bug on discussion.ascx: new window on add
    - Fixed bug on discussion.ascx: changed new item permission to add
    - Fixed bug on contacts.ascx: changed new item permission to add
    - Fixed bug on contactsedit.aspx: now update button saves correctly
    - Fixed bug registerfull.aspx: Invalid key ADRESS corrected
    - Fixed bug usermanage.aspx: New User page Send Newsletter text was repeated
    - Fixed bug on destopnavigation.cs: Now ignores invalid subtabs passed via querystring
    - Now the multiportal option via querystring run smoothly
      Type rainbow/desktopdefault.aspx?alias= to switch portal
      If you are logged on automatically you will be logged off from the current portal
      and need to reconnect. It is recommended anyway to close browser if you want to
      move from one portal to another. Some problems may be with IE cache that thinks to be
      on the formerly portal. Anyway one refresh or two could help.
    - Fixed missing procedure in discussion module
    - Fixed loading XML docs in XML module
    - Added Documents dir to CVS in base _rainbow portal dir
    - Improved shortcuts (single and all) for a better readability.
      Now everything should work. There are some issues left with modules that save custom data
      in their own dir (xml, documents). Now the only way to share modules between different
      portals is to use the same dir for all portals.
    - Translated some hardcoded strings (need db patch update)
    - Added module handler for eliminate querystring (see web.config for help)
    - Add MenuClientPath to the webconfig
    - Changed portal alias behavior in global.cs
    - Menu and sub menu updated
    - Subtabs updated
    - Add HTML Editor by Jackob Hansen
    - Add new languages support (NL, DA, FR, IS)
    - Fixed Mobile support (remember to enable specific modules from admin console)
    - Removed "Always show edit..", due to changes on rainbow security has no sense. Use Authenticated users role if you want to show edit buttons or All users... - 19/11/2002
    - Correct a bug in db script
    - Updated default layouts
    - Updated Resources/Language.mdb
    - Please note that from 20/11/2002 language database is available as a separate download
    Manu - 18/11/2002
    - Correct SQL script and simplified DB creation
    - Updated install instructions
    - Add default data in modules data table
    - Correct a bug in documents module that prevented changing data without uploading new file
    - Removed unused module 'Admin/UserManager.ascx' from DB
    - Sorted up defaults layouts, renamed MenuMS to MenuMs
    - Updated DUEMETRI.UI.WebControls.Panes.dll
    Manu - 15/11/2002
    - Add predefined Authenticated Users than automatically groups all registered users that had logged in
    - Cleaned up HTML module


  • OpenOffice gets .NET support

    I was just reading Miguel's blog and found the following link:

    Project Goals

    The CLI-UNO language binding allows to write UNO client programs for with languages like C# or VB.NET. The language binding will probably become part of 2.0. Until then one can use an 1.1 and the language binding package which is separately available from this page.

    I like openoffice and have been using it for a long time now. I still have/use MS office and it is a lot more polished but I like knowing about alternatives out there and this news is definately good as it means I'll be able to build .Net apps that tie in with either office package (depending on what the client has).

    If you have never used openoffice I recommend you give it a try. It's always a good idea to know what's out there (especially now that they will be adding .net support).



  • Free XML Editor


    I've heard xml spy is great and I've seen it in action and it is very powerful. But for those companies that cant afford it, there is hope.

    I've just come across this link that I saw on a post in the xml forums at (Thanks Joteke).


    • Color-coded XML, DTD, and XSLT editing
    • Check well-formedness and validate
    • Stylesheet testing with almost any XSLT engine
    • XPATH testing
    • Customizable "Code Bits" library
    • XML formatting via Tidy
    • Small download, small footprint

    I've installed it and hope to give it a test run at some point. If other people try it please post feedback here to let people know +/- points.