Ayende @ Rahien

Hi!
My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:

ayende@ayende.com

+972 52-548-6969

, @ Q c

Posts: 10 | Comments: 37

filter by tags archive

Cuyahoga

time to read 2 min | 271 words

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?


Comments

Calamitous

Cuyahoga (river)

"the river which caught fire"

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 :)

jbland

Martijn,

any further movement on 2.0 ?

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. :)

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.

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

Ayende Rahien

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

Bryan

Snake River

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

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

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

  1. Production postmortem: The case of the memory eater and high load - 15 hours from now
  2. Production postmortem: The case of the lying configuration file - about one day from now
  3. Production postmortem: The industry at large - 3 days from now
  4. The insidious cost of allocations - 4 days from now
  5. Find the bug: The concurrent memory buster - 5 days from now

And 4 more posts are pending...

There are posts all the way to Sep 10, 2015

RECENT SERIES

  1. Find the bug (5):
    20 Apr 2011 - Why do I get a Null Reference Exception?
  2. Production postmortem (10):
    14 Aug 2015 - The case of the man in the middle
  3. What is new in RavenDB 3.5 (7):
    12 Aug 2015 - Monitoring support
  4. Career planning (6):
    24 Jul 2015 - The immortal choices aren't
View all series

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats