Do security updates! (and remember to include that in the requirements of the server specification)
In one of the projects I was technical architect in we were struggling with strange error. When accessing main URL of the application we were getting NullReferenceException. But when accessing same site with language code at the end of URL everything was ok. What was the problem? Lack of SP1 for .Net Framework 2.0 installed.
There is also second lesson. Be very detail when crating specifications. When we were delivering server specification we told the Administrator that we will need .Net Framework 2.0. We forgot to mention that all security updates has to be installed on the server.
Here is the link to the problem and it's solution description.
Do I like to work with EPiServer CMS 5?
After working with EPiServer CMS 5 in two projects I already have some thoughts about it. In those two projects I was involved both as developer and technical architect so I have split my comments into two parts.
As developer:
It took some time to get used to:
- read-only PageData object instances (you can ready about it here)
- new VPP
- new way of managing datafactory - it takes some time to get used to write EPiServer.DataFactory.Instance instead EPiServer.Global.EPDataFactory
Of course there are few nice new things like for example new filter: FilterForVisitor
As technical architect:
I really like:
- improved performance (nice test here)
- new way of defining site configuration in web.config
- installing new modules with EPiServer Manager
- new handling of custom property types
- permanent links - this one is really cool
and I had some problems with:
- searching on developer forums for information if different behavior is due to changes introduced in CMS 5 or bug (after some time I have found link to issue tracker with list of the bugs)
- searching for examples how some things should be done in CMS 5 - for example how to get path to page folder (found on developers forum, not on EPiServer Knowledge Center)
In general we had problems with:
- still too few information in SDK
- poor intellisense in VS - no description of methods, properties...
- no episerver enterprise section - very useful (and often used in 4.6x) but not present in CMS 5
- quite a lot of bugs, for example:
- FriendlyURL caching - fixed in SP1
- simple address and external link
To summarize - I really liked working with new EPiServer and kind of hoping that in my next project we will be using CMS 5. Of course there are still things to improve - can't wait to see how CMS 5 will be developing.
Designing For Ajax – presenation found on slideshare
Designing For Ajax
From: billwscott, 1 year ago
Given for Easy7 SIGCHI-SI in Bangalore 1/5/2007
With the advent of Ajax, new patterns of interaction have emerged on the Web. Bill Scott provides insight on how to best take advantage of the power of Ajax technology for designing a great user experience through a series of best practices, summarized as eight key principles. Each principle and its nuances are illustrated in detail with real world examples and counter-examples from both inside and outside Yahoo!
Online storage – how do you use it?
I have used online storage services for some time already. Mostly two of them:
- box.net - to have access to files for longer period of time (used with iGoogle gadget)
- yousendit - to send files once and just forget about them
Both services in free version have limitations on storage size and I used them only to copy files to the servers where FTP protocol was blocked on firewall. Recently, I have found new service called ADrive. It gives 50GB(!) online storage. It is size that one can use
I started thinking about possibilities and I couldn't find anything that would be 100% satisfying me:
- for backup (for example photos?) - it is too small (yes - I have more than 50GB of photos, and this is good topic for another post - how one manages that amount of photos in the best way
) - file sharing - box.net and yousendit is more than enough for me
Other thing is accessibility of files stored in online "drive". At my home I have installed ADSL (4MBit/s download, 512kbit/s upload). From its definition it is asynchronous network connection with different speeds of download and upload (thank you Robert for pointing this). Can you imagine how long would take uploading 50GB of files with max 512kbit/s (in optimistic scenario)?
To summarize it is great that someone gives us something like ADrive for free, but for now I cannot find any way to use it in a smart way. Maybe you have an idea?
GetPage for visitor?
I started working with EPiServer CMS 5 four months ago and I really like it. It's performance (good analyze of it you can find here) is much better then EPiServer 4.6x and there are few breaking changes that makes developers work easier. One of them is new filter: FilterForVisitor (described at the end of article at episerver.com ). It takes as an argument PageDataCollection and filter out pages that visitor has no right to see:
PageReference listingContainer = CurrentPage["RssSource"] as PageReference; PageDataCollection children = GetChildren(listingContainer); FilterForVisitor.Filter(children);
Cool but... it works only with PageDataCollections. It would be great if there was method that takes as an argument PageData object (or in ideal world PageReference) and checks if visitor can see it. Now if I want to check it I have to do something like this:
PageReference pageRef = new PageReference(someId);
PageData tmpPage = EPiServer.DataFactory.Instance.GetPage(pageRef, AccessLevel.NoAccess);
if( tmpPage.QueryDistinctAccess( AccessLevel.Read ) )
return tmpPage;
else
return null;
Why GetPage with argument AccessLevel.Read - could not return null if visitor has no right to see it? Yes - I know that it will throw exception but making flow of application with catch block isn't that nice.
Does anyone know better way of doing check if visitor can access page?
