A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

enba
Mar 22, 2010
  6742
(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
From 12 to 13 preview: A Developer's Guide to testing an Optimizely CMS 13 Alloy Site

The release of Optimizely CMS 13 marks a significant step forward, embracing a more composable and headless-first architecture. While this unlocks...

Robert Svallin | Jan 23, 2026

A day in the life of an Optimizely OMVP: Opti North Manchester - January 2026 Meetup Recap

There's something special about the Optimizely community in the North. On 22nd January, we gathered at the Everyman Cinema in Manchester for the...

Graham Carr | Jan 23, 2026

Beyond the widget - making Optimizely Content Recommendations work for you

Optimizely recommendation data you can render your way. A frontend-focused guide to bypassing the widget, with practical query filtering advise and...

Tom Robinson | Jan 22, 2026 |

Announcing the Jhoose Commerce API for Optimizely Commerce Connect

A layered framework for Optimizely Commerce Connect that accelerates delivery, supports headless architecture, and simplifies carts, checkout, and...

Andrew Markham | Jan 22, 2026 |