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

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
Optimizely Forms: You cannot submit this form because an administrator has turned off data storage.

Do not let this error message scare you, the solution is quite simple!

Tomas Hensrud Gulla | Oct 4, 2024 | Syndicated blog

Add your own tools to the Optimizely CMS 12 admin menu

The menus in Optimizely CMS can be extended using a MenuProvider, and using the path parameter you decide what menu you want to add additional menu...

Tomas Hensrud Gulla | Oct 3, 2024 | Syndicated blog

Integrating Optimizely DAM with Your Website

This article is the second in a series about integrating Optimizely DAM with websites. It discusses how to install the necessary package and code t...

Andrew Markham | Sep 28, 2024 | Syndicated blog

Opticon 2024 - highlights

I went to Opticon in Stockholm and here are my brief highlights based on the demos, presentations and roadmaps  Optimizely CMS SaaS will start to...

Daniel Ovaska | Sep 27, 2024