June 1, 2008
If you are a web application developer and you want to read some good books that don’t deal with programming or web design but are more focused on how to build web sites that are useful, profitable and up and running before you get bored of building them, then I have three recommendations -

Don’t Make Me Think - Steve Krug
This book is all about common sense, which believe it or not designers tend to throw out of the window when building user interfaces. This is normally because in the mind of the designer everything works just as they planned. Give your user interface to someone else to test and be amazed at how differently they try and navigate around it. Google’s success is not just because they have good search results but also how easy it is to use. The book uses examples of interface changes over the years of some of the most popular websites on the internet.
Getting Real - 37 Signals
This book is an excellent resource for learning how to cut wasted time in a work environment by rapid prototyping and as the title says “the smarter, faster, easier way to build a web app”. The books authors invented Ruby on Rails which provides rapid prototyping and code generation functionality, GENNIT can be used to build your .NET applications faster, smarter and easier as well!
The Business Rules - David A. Eichenbaum
Not normally a book that gets reviewed along side the other two. The Business Rules deals with the business end of building a business (and web application). Free isn’t a great way to earn money from a web application and this book drills it in. It gives examples of how even the biggest of companies messed up there profits by not following simple business rules such as “sell it for more than it cost you” - one of my favourite rules in the book.
Tips and Thoughts
- 0 Comments
November 9, 2007
PHP developers have been left out of GENNIT for too long. So it is with great pleasure to announce that GENNIT now supports the excellent CakePHP Rapid Development Framework. If you are a PHP developer and want to get a head start on your project consider using GENNIT to generate DAL and MVC elements of your project to use on the CakePHP framework.
Checkout the updated templates list to see the CakePHP template features.

GENNIT will build your MySQL database and create model - view - controller objects that you define using the GENNIT designer, as well as any relationships between them.
Once you’ve defined your project using the designer, download the generated code zip and paste it into your CakePHP installation. Thanks to the scaffolding feature of CakePHP; you will also be able to manipulate your data without having to write a single line of code.

CakePHP Scaffold
If you decide to use GENNIT Pro. with the CakePHP template, 10% of your subscription will be donated to the CakePHP development team!
Leave to cool and serve with ice cream or custard.
New Features
- 1 Comments
November 3, 2007
Positive Spin - GENNIT is now $8.33 a month which is a about the same price as a couple of venti skinny soy caffèlattes that you probably could get through in one day.

The minimum signup period is now six months rather than one month. The reasoning behind this is purely from an advertising perspective. Advertising GENNIT on Google for example, typically costs $1 a click so for every ten clicks one of those people has to sign up just to break even. This is obviously not going to work if I want to advertise GENNIT.
Hope everyone is OK with that!
News and Updates
- 0 Comments
July 30, 2007

GENNIT made the ‘Web Development Toolbox: 120+ Web Development Tools‘ over at Mashable.com.
Big thanks to the Mashable.com for the inclusion - it sent visitors through the roof for a little bit -

Reinvigorate Stats
Buzz
- 0 Comments
July 20, 2007
Progress on a new feature of GENNIT is under way and it will hopefully open GENNIT up to a whole new world of flexibility.
Rather than having to select pre-created templates/generators such as NHiberate/ActiveRecord/XHTML users will be able to write their own - again using online template designers. Below is a screenshot of the work in progress that should be available within the next coming weeks.

GENNIT Code Generation Template Creator
Coming soon!
New Features
- 0 Comments
This is a continuation of Code Generation Real World Part 2 which in turn is a continuation of Code Generation Real World Part 1 which is probably a good place to start if you’ve just got here.
In Part 2 I had just successfully downloaded the zip file which hopefully contains all the code I need to get started with the GlobalSurfari Facebook System.

Extract the Zip file to a location on disk
After extracting the zip file you can see a number of folders and files exist. The first step would be to read README.html. This file contains a QuickStart guide and gives you the information about exactly what files have been extracted and what they are for.

README.html - File Descriptions and QuickStart Guide
The file lists what each project and for certain projects, what each file does - it also contains a Quick Start guide for getting your project working.
From the Quick Start the following steps are to be taken -
- Ensure all of the directory locations match up (for example, this is an NHibernate template and I declared that NHibernate was located at c:\Program Files\NHibernate )
- Generate the database by using the script supplied by GENNIT
- Ensure the database connection string is correct and will connect.
- Open the solution and build it, use NUnit to ensure the solution is working correctly and communicating with the database.

Generate the database using the supplied scripts
Opening the solution in Visual Studio I build the project and press F5 to run it. NUnit opens by default (as the parameter to NUnit is supplied when building your project), running the NUnit tests returns green lights, meaning the code and database are all working correctly. When this stage is reached the generated code is working properly and development on your custom solution can start.

NUnit Green Lights is a crucial milestone
In the fourth and final part of the Code Generation Real World series I show what source code was changed and how the Facebook module turned out!
Tips and Thoughts
- 0 Comments
July 11, 2007
This is a continuation of Code Generation Real World Part 1.You may remember I have just drawn the diagram for the class layout for the project -

My GlobalSurfari Facebook System - on paper
So I have my diagram. It is very simple, I have a User object which contains the Facebook ID (fbid), Name and Surf Prediction Default (home) and a Message object, which contains the message the user writes on the ‘wall’ (body), surf prediction the message was written on (home) and the created date of the message (created). As well as a many to one link with the User object.
Now I am just about ready to get going with GENNIT, all I have to do is reproduce this diagram using the designer and I am ready to go. I am going to use the NHibernate C# DAL which comes with GENNIT to create the project.

Create the Project
So I now have a ‘GlobalSurfari FB DAL’ project on GENNIT. I open the designer to re-create my diagram from paper into the system.

Reproduce my paper diagram onto the GENNIT Designer
The Many-to-One link is represented by the user property on the Message object (shown in the above screenshot).
Next step is to Generate the code, I click on the GENNIT link from the dashboard, ensure all the parameters for the project are correct (specifically what the database is named) and download the generated code.

Downloading the code generated project from GENNIT
In Code Generation Real World Part 3 I demonstrate what modifications I made to the downloaded code to get my Global Surfari Facebook Application up and running.
Tips and Thoughts
- 0 Comments
July 8, 2007
I wanted to give a real world example for the use of GENNIT. However, to make it a real real world demo I had to wait for that situation to come along. Fortunately the gods have blessed GENNIT as that situation came along a few days ago. This is part 1 so please be patient!
A few years ago, after spending practically 365 continuous days surfing, I found myself back in London. It felt like a million miles away from a decent surf beach. Fortunately, England’s South West is blessed with a varied coast which, in the late summer, isn’t too cold to go surfing… providing there’s waves and its a very long drive (5 hours) to find out if there isn’t any. There’s obviously other surf forecasting software out there, but I wanted my own surf forecast, so I created GlobalSurfari.com.

Skip forward a few years and the Facebook revolution has started, with 30 million users and the ability to write applications for the platform it just seemed like a great place to put Global Surfari, for all the Facebook surfers around the world.
Brief
- Put GlobalSurfari.com into Facebook
- Allow users to chat on a ‘wall’ within each individual surf forecast location (Facebook Social Aspect).
Design
Getting the surf prediction to the user is already handled by the Global Surfari system in place. The social aspect did not exist, to provide this functionality I would need to know -
- Who the user was
- What Surf Prediction they have as their default
- What Surf Prediction they were writing the message on
- The message they were writing (and the time they created it)
- That’s it.
So after all that, here’s my UML diagram committed to paper.

Jump to Code Generation Real World Part 2
Tips and Thoughts
- 0 Comments
June 27, 2007

GENNIT Feedback is now on Tangler, rather than the forum system that we were previously using. The main reason for the swap was spam. Tangler is a pretty cool system developed here in Australia.
GENNIT Tangler Feedback Forum
News and Updates
- 1 Comments
June 26, 2007

Announcing the launch of NHibernate 1.2 Template for GENNIT.
The NHibernate 1.2 Template generates best practice templates for an NHibernate Data Access Layer. Based on the brilliant work by Billy McCafferty in his article NHibernate Best Practices 1.2.
The generated output includes a Visual Studio 2005 solution which contains 4 projects, Core, Data, Test and Web.
Core - Contains Domain Objects (Data Objects) and hibernate XML mapping files as well as interface design for data access.
Data - All NHibernate based operations occurs in this project. To extend the DAL with additional methods and operations add functionality to the individual classes within DataObjectFactory.cs and consider moving them out of this CS file and into their own.
Test - Very similar implementation to the Castle ActiveRecord DAL Test library. Tests the objects to ensure they are connecting and writing to the database as well as storing values.
Web - Implements NHibernate session management (defined in Data project) to provide simple example of getting values from data objects and inserting new values.
Goto http://gennit.com and signup/login to get going with the NHibernate 1.2 code generator.
New Features, News and Updates
- 0 Comments