Cuyahoga

The Cuyahoga Project is a .Net CMS based on NHibernate. It used to be the best application to look for NHibernate patterns for beginners. Now I suggest people should look at this as a great sample app in general, not just for NHibernate patterns.

Among other things, it has been the engine behind ayende.com for the last four years or so. Along the way, it gave me very little trouble, and allowed me to manage my site without much trouble. A CMS, by nature, is an extensible system. But it is a tribute to Cuyahoga (and to what I am doing in the main site) that up until now, I didn't actually have to go into the code to make it do what I want.

I did my usual read-the-code-before-use, of course, but that was about it.

Today, I spent several hours implementing a very simple module in Cuyahoga. This module simply displays and redirect links. You can access the source for this module here, and general instructions about how to build Cuyahoga modules can be found here.

The reason for this post is that I had a change of mind regarding Cuyahoga. Before, I thought about it just as a good application. After, I think about it as a great framework. There is very little need for me to actually do anything in the module except what I actually want, and the overall design is clean, easy to understand and easy to follow. The hardest part was doing the UI, and that is as it should be.

But I do wonder about the name, why Cuyahoga?

Print | posted on Monday, November 17, 2008 3:09 PM

Feedback


Gravatar

# re: Cuyahoga 11/17/2008 3:14 PM Calamitous

Cuyahoga (river)
"the river which caught fire"


Gravatar

# re: Cuyahoga 11/17/2008 4:50 PM Martijn Boland

Thanks for the kind words :)

About the name: the previous commenter is right: it's about the river that caught fire, but R.E.M. had to write a song about it before I knew about that. Unfortunately there is no deep philosophy behind it. I just happened to like the name. BTW, it's also fun hearing people struggle with the pronunciation. Not everybody seems to know the song :)


Gravatar

# re: Cuyahoga 11/17/2008 5:32 PM jbland

Martijn,
any further movement on 2.0 ?


Gravatar

# re: Cuyahoga 11/17/2008 7:42 PM Chris Cyvas

Being from Cleveland - where the river caught fire, I thought for sure, when I found the Cuyahoga CMS that it was written by someone else from Cleveland. When I saw Martijn's name on it, I knew he wasn't from Cleveland.

I subsequently used Cuyahoga as the model for a few CMS's I have built, including the one in dashCommerce.

It's a clean, solid model and, as you point out, very easily extended for whatever content widget you can think of. Glad to see it's getting some props from others. :)


Gravatar

# re: Cuyahoga 11/17/2008 8:08 PM Martijn Boland

@jbland: yes, I've finally got some time to pick up the 2.0 stuff. You can expect some news in the coming weeks.


Gravatar

# lol 11/18/2008 12:27 AM Gauthier Segay

"The hardest part was doing the UI"

and the hardest part is the sole that you documented in the code (and that is as it should be):

BindUrl();// I HATE WebForms


Gravatar

# re: Cuyahoga 11/18/2008 12:38 AM Ayende Rahien

That was when I realized that I need to to overcome stupid stateful model in the app.


Gravatar

# re: Cuyahoga 11/18/2008 7:22 AM Bryan

Snake River


Gravatar

# re: Cuyahoga 11/18/2008 2:29 PM Paul Cowan

It always struck me as strange there were no unit tests in Cuyahoga.

That is my only criticism. I learnt a lot of my NH, IOC stuff from the project.

Hats off


Gravatar

# re: Cuyahoga 11/19/2008 7:20 AM Yitzchok

I tried N2Cms (n2cms.com) it uses NHibernate and Castle Windsor and is very easy to setup and works quite nicely basically it manages the Admin side of things and the structure of the site and you have to create the View to display the info. But you do have to inherit from ContentItem and add attributes

Comments have been closed on this topic.