Wednesday, January 17, 2007

Tips for the UnifiedFileSystem

Over the years I've come to learn a few things about the EPiServer UnifiedFileSystem (UFS from now on), some the easy way, but most the hard way. The following is a list of my recommendations for when setting up the UFS in a new site.


1. Always create a "System" share
A System share is a secure folder mapping in the UFS. It can allow read access to specific files as required, but should only allow website administrators access to create, modify and delete.


What I tend to use this type of share for is to store system files like XML source documents used in property drop-down lists and other system related files that may need to be edited at some time.


To set this sort of share up you will need to add something like the following to your web.config file:

<handler pageDirectory="False" virtualName="System" virtualShare="True" type="EPiServer.FileSystem.Handler.NativeFileSystem, EPiServer">
<customSettings PhysicalPath="D:\Websites\EPiSample\WebSystemFiles" />
</handler>


2. Secure the special "Pages" folder
Now I know doing this will cause extra load on the server as it has to check permissions on files etc, but not securing this location can cause a few security headaches down the track.


A few times now clients have come to me saying they have found some documents in their site using Google that should not be there. What had happened is Google had indexed the site and documents, then a page had expired, but the documents were still available by a direct link.


The solution to this is easy, secure the "Pages" folder. Doing this will ensure that files uploaded to a page folder will get the same permissions applied to them as the page. So if the page expires, then so do the files! To configure a secure pages folder you will need to add something like the following to your web.config file:

<handler pageDirectory="True" virtualName="pages" virtualShare="True" type="EPiServer.FileSystem.Handler.NativeFileSystem, EPiServer">
<customSettings PhysicalPath="D:\Websites\EPiSample\Pages" />
</handler>


3. Create an MS Indexing Service cataglog for your site
To make the search work correctly in the File Manager you really need to configure a catalog for your site. Even if you are using a different search tool for your public site, it's important to configure MS Indexing Server for your user's when using the File Manager search.


You will only need to create one catalog, as long as it indexes all your files, as EPiServer will automatically set the search scope when searching in File Manager. To configure a catalog for the UFS you will need to add something like the following to your handlers in the web.config (except for any versioned file shares as they have their own search capabilities):

<handler pageDirectory="True" virtualName="pages" virtualShare="True" type="EPiServer.FileSystem.Handler.NativeFileSystem,EPiServer">
<customSettings IndexCatalog="EPiSampleCatalog" PhysicalPath="D:\Websites\EPiSample\Pages" />
</handler>

All this information and a lot more can be found in the technical note "Unified File System"

Monday, January 15, 2007

I want to share, I really do

Over the years I've come to learn a few things about the EPiServer UnifiedFileSystem (UFS from now on), some the easy way, but most the hard way. The following is a list of my recommendations for when setting up the UFS in a new site.


1. Always create a "System" share


A System share is a secure folder mapping in the UFS. It can allow read access to specific files as required, but should only allow website administrators access to create, modify and delete.


What I tend to use this type of share for is to store system files like XML source documents used in property drop-down lists and other system related files that may need to be edited at some time.


To set this sort of share up you will need to add something like the following to your web.config file:

<handler pageDirectory="False" virtualName="System" virtualShare="True" type="EPiServer.FileSystem.Handler.NativeFileSystem,EPiServer">
<customSettings PhysicalPath="D:\Websites\EPiSample\WebSystemFiles" />
</handler>

2. Secure the special "Pages" folder


Now I know doing this will cause extra load on the server as it has to check permissions on files etc, but not securing this location can cause a few security headaches down the track.


A few times now clients have come to me saying they have found some documents in their site using Google that should not be there. What had happened is Google had indexed the site and documents, then a page had expired, but the documents were still available by a direct link.


The solution to this is easy, secure the "Pages" folder. Doing this will ensure that files uploaded to a page folder will get the same permissions applied to them as the page. So if the page expires, then so do the files! To configure a secure pages folder you will need to add something like the following to your web.config file:

<handler pageDirectory="True" virtualName="pages" virtualShare="True" type="EPiServer.FileSystem.Handler.NativeFileSystem,EPiServer">
<customSettings PhysicalPath="D:\Websites\EPiSample\Pages" />
</handler>

3. Create an MS Indexing Service cataglog for your site


To make the search work correctly in the File Manager you really need to configure a catalog for your site. Even if you are using a different search tool for your public site, it's important to configure MS Indexing Server for your user's when using the File Manager search.


You will only need to create one catalog, as long as it indexes all your files, as EPiServer will automatically set the search scope when searching in File Manager. To configure a catalog for the UFS you will need to add something like the following to your handlers in the web.config (except for any versioned file shares as they have their own search capabilities):

<handler pageDirectory="True" virtualName="pages" virtualShare="True" type="EPiServer.FileSystem.Handler.NativeFileSystem,EPiServer">
<customSettings IndexCatalog="EPiSampleCatalog" PhysicalPath="D:\Websites\EPiSample\Pages" />
</handler>

All this information and a lot more can be found in the technical note "Unified File System"

Tuesday, January 09, 2007

EPiServer as a Wiki

Lately I have been doing some research into Wiki tools and am finding lots of great tools that have strengths in some areas, but always seem to lack other important features, one of which is WYSIWYG editing!

We use a Wiki tool at my work that is okay, but is really quite slow (file based storage), has a rubbish search and with most tools, has a text editor. So I'm on the hunt for a better tool with the following functionality:

  1. C# .NET 2.0 with source code
  2. SQL Server database storage
  3. Windows authentication
  4. WYSIWYG editing
  5. Version history
  6. Search

I found this great tool last week called ScrewTurn which supports most of these requirements, but as with most Wiki's, still lacks the WYSIWYG editing (it is listed in the product roadmap though). Another thing it lacks is Windows authentication, but I think this could easily be developed using the new plugin framework they provide in version 2 (still in beta).

So this has got me thinking, how easy would it be to implement a Wiki using EPiServer? EPiServer supports all of these functions (minus the source code but not a big deal considering the ODA), but is not really designed for Wiki type functionality.

I would be keen to hear from anyone who has tried to implement EPiServer as a Wiki or has thought about doing this themselves. What difficulties did you have? What sort of user experience did you try to provide (editing in edit mode, or editing on page)? Any other thoughts or ideas would be appreciated. Also, are there any other tools you have used that I might have missed?

Leave a comment or email me at jerms55 [at] gmail [dot] com.