Starting from scratch with NHibernate: tips for a new, large application

I am writing a structure to overwrite an existing application. We have a data model of about 900 tables with 11,000 fields in total and databases approaching 120 GB in this area. The main elements of my new implementation are WPF, NHibernate 3, C #, .NET 4.0, NHibernate.Validator, and Spring. The application itself works very intensively with data / transactions, and our largest installation has about 300 simultaneous users.

A few questions that I would like to draw attention to are the following:

  • Is Spring a good choice? Why should I choose another (Castle?). I am having problems with the startup time, but I was able to return this up to 14 seconds. I did not notice a big difference between Spring and Castle. Of course, shorter launch times are welcome,

  • I use Identity fields, but I understand that this is not the best option. What a viable alternative exists,

  • Data mapping is performed with short sessions, one per request. Data recording, on the other hand, has one session / transaction for the entire period of the workflow, which can take up to 10-20 minutes at most (2-4 minutes are more common). Are there any alternatives to the session / transaction for this entire period and how can I configure this?

I am open to everyone and every input and would like to combine ideas from people who have worked longer and have more experience with NHibernate than me.

(B.t.w.: , Im , .)

EDIT: HiLo, Guid, , .

+3
1

Hilo - . (. ), , .

hilo, , . ( , .) hilo "lo", wraparound, , , , .

, . .

: , A B, B C. "" A B , A B , B - C. A , B, B -, - , , .

, . , , - , , , .

, , , . , .

, . , Postgres MVCC, . , , .

+1

Source: https://habr.com/ru/post/1764742/


All Articles