enba
Mar 22, 2010
visibility 6875
star star star star star
(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!!

error Please login to comment.
Latest blogs
Copies vs. Connections: Modeling Content Areas for Multilingual Success

Starting With the Simple Question Most multilingual content modeling conversations start with a deceptively simple question from a client: "If we s...

Vipin Banka | Aug 23, 2026

Content Transfer coming to Optimizely SaaS CMS

Back in June I released Content Transfer on the Optimizely nuget feed – today I’m releasing version 1.0 , because we’ve had it running out in the...

Matt Pallatt | Aug 23, 2026

Improving Optimizely Product Information in LLM Tools

Tools like Claude Code can be great for working with Optimizely CMS, but when they index outdated or incomplete information about developing a...

Nicholas Sideras | Aug 21, 2026 |

How to Get a Bacpac Out of DXP (And Never Do It By Hand Again)

Every Optimizely DXP project eventually runs into the same task: getting production data onto a local machine so you can actually troubleshoot...

KennyG | Aug 20, 2026