Mar 22, 2010
(1 votes)

Yet another page provider but in F#

Ever since I saw Luca Bolognese’s PDC video introducing F# I wanted to learn it. Since the best way to learn programming language is to use it, I tought I could port the EPiServer XmlPageProvider to F#. FSharpPageProvider  is my first attempt to accomplish that.

I have created a new project on codeplex, you can find it here.

Following lines are copied form the projects home page:

  • At the moment it implements only 4 base methods of PageProviderBase API which are: GetLocalPage, GetChildrenReferences and 2 overloads of ResolveLocalPage. Beside that, only Save method is implemented. This means that at the moment we're only able to save pages (no copying, moving, deleting, versioning etc.). Other features are being implemented and if anyone would like to contribute to this effort, you're welcome.
  • All dough it is a porting of XmlPageProvider there is a slight diference. All the pages are saved in diferent xml files and those are separated by language.
    • So typical path would be: ~ppFolder/en/10002_1_D53E2C70-0802-4c7c-9E87-9F2878D6AF66-3.0.xml
    • File name has following pattern: <pageLinkID>_<versionid>_<pageGuid>-<pageVersionId>.<parentId>.xml
  • This project starts as the attempt to learn new programming language and should be treated as such. If you have any suggestions as far as readability, efficiency and generally the quality of the code your comments and suggestions will be greatly appreciated. The code will be properly commented and cleaned ASAP (I promise).
  • This is done as a free time project so I cannot give any certain times on when all the features will be available (all dough I promise they will).
Mar 22, 2010


Sep 21, 2010 10:33 AM

Very cool Enes.

Sep 21, 2010 10:33 AM

What's the point of writing it in F# if the code you wrote just ends up looking like the C# equivalent but with F#s syntax?

Serious fail.
/ Anonymous Retard

Sep 21, 2010 10:33 AM

Anonymous Retard: I for one, get the point! Learning new languages is a great exercise - and a lot of fun :-) And why not a page provider? Great work, Enes :-)

* Considering to make my next page provider in prolog or lisp - just to prove my superior geekness *

On another note - it could be fun to make a version of this page provider, where it stores the xml files in the virtual path providers - and uses them to manage versioning...

Sep 21, 2010 10:33 AM

Very interesting idea Allan. If you're interested trying F# you can add it to this project, otherwise I'll start with it as soon as possible.
As for the geekness, you've got nothing to prove :-) Codemaina session last year was suficcient. I was actually hoping someone would propose porting it to IronPython or IronRuby. How does Lisp play with .NET? And hey, welcome back to Stockholm, see you soon. Thanks!!

Please login to comment.
Latest blogs
Customizing Property Lists in Optimizely CMS

Generic property lists is a cool editorial feature that has gained a lot of popularity - in spite of still being unsupported (officially). But if y...

Allan Thraen | Oct 2, 2022 | Syndicated blog

Content Delivery API – The Case of the Duplicate API Refresh Token

Creating a custom refresh provider to resolve the issues with duplicate tokens in the DXC The post Content Delivery API – The Case of the Duplicate...

David Lewis | Sep 29, 2022 | Syndicated blog

New Optimizely certifications - register for beta testing before November 1st

In January 2023, Optimizely is making updates to the current versions of our certification exams to make sure that each exam covers the necessary...

Jamilia Buzurukova | Sep 28, 2022

Optimizely community meetup - Sept 29 (virtual + Melbourne)

Super excited to be presenting this Thursday the 29th of September at the Optimizely community meetup. For the full details and RSVP's see the...

Ynze | Sep 27, 2022 | Syndicated blog