Geeks With Blogs

News Opinions and articles on this blog are mine alone and do not represent my employer. All articles and blog entries are posted using a personal computer system outside of my employer network.
Sam Abraham Software Engineer/Architect: Putting Customers First
I recently had the privilege of taking part of a conversation about available blog engines with some of our Microsoft Community Leaders.  I since got interested in finding out more about available .Net-based extensible blogging engines.
 
Two days ago, I came across a link about Oxite, a codeplex ASP.Net MVC-based mature open source blogging engine (http://oxite.codeplex.com). While the Oxite project is no longer active, its source remains available and downloadable. Additionally, the future holds great plans for open source .Net-based customizable CMS engines with details unveiled about Project Orchard (http://orchardproject.net/faq).
 
Two coincidental events however prompted me to change my initial course of extending Oxite for my needs and to instead explore a different tool:
1-      A Twitter post by Scott Hanselman, later re-tweeted by Scott Guthries praising another open source CMS system, "Umbraco", and highlighting the fact that it is now the framework running the www.asp.net site.
2-      An email exchange I had with Chris Rushing, an Umbraco Professional Trainer where he kindly went out of his way and looked over the Oxite feature-set to confirm that implementing the Oxite functional features in Umbraco should be fairly easy. Additionally, he mentioned that the upcoming Umbraco release will be in MVC.
 
At this point, I was simply sold on Umbraco. However, there was great value for me going through the process of compiling and exploring Oxite, namely getting an insider view of the tools, patterns, and standards that some of the brightest developers used in this project and hopefully leveraging this knowledge in my own code. I also decided to blog about my experience should somebody looking at potential tools to write more scalable and secure ASP.Net MVC code come across this blog post.
 
I downloaded the Oxite project and ran it through the Visual Studio 2010 Upgrade Wizard. I decided on keeping the project in .Net 3.5 but leveraging MVC2. The Visual Studio project upgrade process completed successfully within a few minutes. As expected, there were MANY compilation errors both involving missing libraries as well as API changes in MVC2.
 
Changes I had to make (some were already mentioned in the discussion section on the Oxite Codeplex project)
 
-Download and install The Microsoft Web Protection Library found at http://wpl.codeplex.com/
The AntiXSSV31.msi  installed under
 C:\Program Files\Microsoft Information Security\Microsoft Anti-Cross Site Scripting Library v3.1\
We then need to copy the DLLs found under the aforementioned directory to the debug/release folders under “Oxite\Oxite\bin”
 
-Download and install the Microsoft Enterprise Library. We only needed the Unity Application Block. (http://www.microsoft.com/downloads/details.aspx?FamilyId=bcb166f7-dd16-448b-a152-9845760d9b4c&displaylang=en)
This package installed under C:\Program Files\Microsoft Unity Application Block 1.2\
We also copied the DLLs from the unity directory to the debug/release folders under “Oxite\Oxite\bin”
 
-BlogML (http://blogml.codeplex.com/) was also needed and its libraries had be placed under the same Oxite bin directory as the previous DLLs did.
 
-Another dependency for unit testing was XUnit (http://xunit.codeplex.com/) and I copied XUnit's DLL and XML files to the bin/debug directory of the unit test project.
 
Now, we were left with the errors due to the breaking changes between MVC 1.0 and MVC 2.0. I did some quick research and had to change the following:
 
Change the GetControllerInstance function signature as per MVC2.0 to include the new RequestContext parameter as following:
 
protected override IController GetControllerInstance(RequestContext requestContext,Type controllerType)
 
Next, was the challenge with MVC2 helper functions returning an MVChtmlString as compared to the String returned in MVC 1.0. My quick fix to get the code to compile in this first iteration was to append a ToHtmlString() call to all references to breaking helper functions which worked very well as I was able to successfully able to build the project.
 
In conclusion, upgrading the Oxite code to MVC2, then studying its structure and leveraged tools was a great exposure to a good example demonstrating the powers of the extensible MVC framework and the available Open Source tools on codeplex that make developement even easier. I will however stop with Oxite at this point and start looking into Umbraco.
 

Environment.Exit(0);
--Sam Abraham

 

Posted on Wednesday, July 7, 2010 10:52 PM Tech Talk , VS2010 , MVC2 | Back to top


Comments on this post: Exploring .Net-based Extensible Frameworks: Oxite, Orchard and Umbraco

# re: Exploring .Net-based Extensible Frameworks: Oxite, Orchard and Umbraco
Requesting Gravatar...
Thanks for checking out Oxite (even though we're done working on it). :)
Left by Erik Porter on Jul 08, 2010 12:23 PM

Your comment:
 (will show your gravatar)


Copyright © Sam Abraham | Powered by: GeeksWithBlogs.net