Regarding the panel / user interface architecture, it may be useful to look at Prism (from Microsoft templates and practices). This is an architecture / set of libraries for processing a composite user interface, where the user interface is loaded at run time and consists of independent transmitting parts. One note, it is built for use with WPF or Silverlight; There is an older library with similar functionality for WinForms called CAB , which is no longer supported.
As for data access, it looks like you want to implement active write lock when the record is open for editing in the user interface; It is an independent function of the actual data access code you are using. It may be easier to implement database-level locking if you use direct ADO.NET and EF, which adds layers of abstraction.
source share