What's new and great in version 4.0
Once again, I got a little time to give you some more information. If you are interested in our new version, you should totally read this, I will give you a brief overview of the great things you can try in our beta or get in the final release. Again, this post is meant mainly for the developers, if you don't know what is URL rewriting, you should study the problematics a little bit first.
I am sure you will ask when the new version comes out. As you might noticed, due to the huge amount of new features and new licensing we finally decided to make it major, so it is 4.0 instead of 3.2. This comes with many improvements and definitely it is worth the waiting. Let's hit the changes.
New modules
Of course there are new modules you already know about, however, this post is not so much about them so I will just skip this topic for now, I am sure that you will get friendly with them when you evaluate new version. The new version is all about community features and SEO, so you will find the most important things in it.
URL rewriting
There are huge changes in our URL rewriting and link management, you will find two new very useful features:
-
Unlimited number of document aliases and per-document URL extensions - Yes, you can now define multiple aliases for the document, and you may also define additional extensions for specific documents, without influencing the entire web site. In extensionless configuration, this gives you the power to actually have the file links with extensions like .gif, .jpg etc. and still have the rest of the site pages having .aspx extension. You may also track campaings only for specific aliases.
-
Wildcard URLs - This is something that I am very proud of. We finally got the ultimate feature for best SEO friendly URL practices in our CMS. You may now use the wildcard URLs in your documents, having only single documents to display content dynamically? You find that cool? Let's explain what it does in some details since the documentation is not yet ready for you who have our beta ...
The wildcard URL alias for the document
/Members may look like
/Members/{username} where the curly brackets mark the actual wildcard and try to match anything that appers in your URL so when you enter the page
/Members/Administrator.aspx, the administrator gets recognized as the wildcard part and the page is rewritten internally. So ... where can you get this wildcard part?
It is actually as simple as you can think of it. It gets translated to the querystring parameter. Until now, the page
/Products/LCDs was always internally rewritten to
/CMSPages/PortalTemplate.aspx?aliaspath=/Products/LCDs. With wildcard, you just get more query parameters to the page, so the page
/Members/Administrator.aspx is rewritten to
/CMSPages/PortalTemplate.aspx?aliaspath=/Members&username=administrator.
Got it? Yes, exactly, the name of the parameter is the wildcard name, and the value is the matching part of the URL. For ASPX page template, it is the same, you just replace the
/CMSPages/PortalTemplate.aspx with the path to the template page.
You are right if you think this is not all, it gives you even more power. We introduced new contexts where you can get current module objects based on the given querystring parameters. Just look at the libraries and if you find the class with name
Context in it, just look at its static properties. One example for all: If you look at the
CMS.SiteProvider.SiteContext.CurrentUser, and if you have
userid or
username parameter in your query (usually, it is ID or codename of the object), you get the user object. Some of our web parts use these properties, and you may put there the objects you wish to display in such web parts.
You may see several examples of this in our sample Community site, so just look at it at this point, I hope you will understand how it works. Let's move on.
Macros
I hope you use macros, if not read this and consider if you want to use them now. So what is new in macros? You already know that you can use data and context macros using expressions like
{%SiteName%} or with selectors like
{%CurrentDocument.DocumentName%} writes product price or N/A if the document is not a product
We are planning on adding other parameters if necessary, for the things you may consider to be too heavily done with macros and could be better. At this point I would like to ask you if you have some thoughts or advices on this, I would be glad to hear them.
Forums
Our forum module has been completely rewritten, leaving behind the previous "toy like" version and bringing you a great new experience comparable to professional solutions. The data are backward compatible so you wont loose your existing forums but you may need to update your CSS styles. Sorry about that, but it is definitely worth the new forums module functionality.
E-mail & Newsletters
We are further improving the e-mail engine and Newsletters so the new version will be much more efficient in sending those, that's a really good thing considering the size of the projects some of you have.
Silverlight & Live ID
To keep up with the new technologies, we just couldn't leave the Silverlight and Live ID integration without noticing. There is a demo of a Silverlight control integration in the ECommerce sample site and Live ID is now natively supported for importing and authenticating users. Of course you need to register your application to make it work, we provide only demo for virtual domain mydomainXY.com as an example.
Performance and scalability
As always, we are extending the modules to handle more objects than before and also trying to optimize as much processes as possible. Given the circumstances of Community features, especially the users are optimized for very large number of items. We divided the user to two tables to separate the always needed data from the per-user settings.
Web part zones, AJAX and ViewState support
If you look at the web part properties, you can find that the web parts now natively support AJAX update panel. Just check the changes and you will get your control posting back only within its panel asynchronously. You may now also disable the viewstate of the web parts.
You can do the same with web part zones now and the lost web parts and web part zones (if you change the layout) are now displayed in design mode so you can save them or remove them.
As in previous version the SQL debugging was introduced, now we come also with ViewState debugging so you can see what your viewstate consists of. The configuration is similar to SQL debugging, with config keys:
<add key="CMSDebugViewState"value="true"/>
<add key="CMSDebugViewStateLive"value="true"/>
<add key="CMSDebugAllViewStates"value="true"/>
<add key="CMSDebugViewStateLogLength"value="10" />
I must say that we are too busy developing we cannot make complete review of the interface and limit the viewstate to its minimum in this version. At least, we limit the viewstate of the most used parts to provide you better experience and we will continue during development of the next versions, so please be patient, it will only get better.
Further unification
In my post about new import module I was talking about unification of the code, the reason is to limit the huge amount of code but keep the functionality. We do this further, the new version is getting closer to be able to have separable modules but I don't think we can make it to it, but we are on a good way to do so.
We also restructurized the web site project for this reasons and converted most of the UI to use master pages, that will help you rebrand even better.
What to say at the end?
We hope we can release new version before the end of this year, if we are lucky, we will be able to get it out just before christmas so we can enjoy our christmas holiday all the geeks can enjoy looking into it in their sleepless nights during their holiday ;-)
I have feeling that I forgot something important, but I cannot remember what it was, if I remember, I will add it later.
Motto: If you look at the new version, it looks the same way like the old one just with new features (do not expect shiny new interface with every major version), because we don't sell the colors like some others, but more than anything else, "We are helping you deliver better sites".