I am writing a framework for a rewrite of an existing application. We have a data model of around 900 tables with 11000 fields in total and databases approaching 120 GB in the field. The basic elements of my new implementation are WPF, NHibernate 3, C#, .NET 4.0, NHibernate.Validator and Spring. The application itself is very data/transaction intensive and our largest installation has around 300 concurrent users.
A few things I would like feedback about are:
Is Spring a good choice? Why should I choose a different one (Castle?). I do have problems with startup time, but I have been able to bring this back to 14 seconds. I didn’t notice much difference between Spring and Castle though. Shorter startup times are of course welcome;
I am using Identity fields, but understand this isn't the best option. What viable alternative is there;
Data display is done with short sessions, one per query. Data entry on the other hand has one session/transaction for the entire duration of a workflow, which can take up to 10-20 minutes max (2-4 minutes is more usual). Are there alternatives to a session/transaction for this entire duration and how could I set this up?
I am open to all and every input and would like to integrate ideas from people whom have been working longer, and have more experience with NHibernate than I have.
(B.t.w.: I know I’m in way over my head, but that’s the way I prefer it.)
EDIT: I was too harsh concerning HiLo, but after some research Guid's do seem to fit my situation better.