enba
Mar 22, 2010
  6765
(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

Comments

Sebastian Lundh
Sebastian Lundh 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
Missing Properties tool for Optimizely CMS

If you have been working with Optimizely CMS for a while you have probably accumulated some technical debt in your property definitions. When you...

Per Nergård (MVP) | Mar 10, 2026

AI Generated Optimizely Developer Newsletter

Updates in the Optimizely ecosystem are everywhere: blog posts, forums, release notes, NuGet packages, and documentation changes. This newsletter...

Allan Thraen | Mar 10, 2026 |

Lessons from Building Production-Ready Opal Tools

AI tools are becoming a normal part of modern digital platforms. With  Optimizely Opal , teams can build tools that automate real tasks across the...

Praful Jangid | Mar 7, 2026

My Takeaway from Optimizely Opal Agents in Action 2026 - What Agentic AI Means for the Future of Digital Marketing

I would like to share with you what stayed in my head after this amazing virtual event organized by Optimizely. Agents in Action 2026 , a live...

Augusto Davalos | Mar 6, 2026