R
Ron Buckton
I have looked around and have not found a best practice or pattern regarding
the use of data in a semi-connected multi-user windows form application.
What I have is this, a Windows Forms Client-Server application which ties in
to Microsoft SQL Server 2000. Currently the application acquires data on
clients from the database when it loads so that the end user can work on
said data. When changes are made they are made to the dataset to track
changes and properly manage new record creation. When the user exits, or
clicks save, changes are submitted using a variety of DataAdapters to
properly hierarchally update the data.
I believe though that although this has worked for single-user systems, this
is not the best practice for a multi-user system as data can become
inconsistent as changes are made by each application.
Would it be better to:
* Transmit transacted changes immediately to the database once the DataSet
can perform its constraint checks, rather than wait until the user clicks
"Save"
* Find or put together a means to constantly check for updates to actively
changing and highly used tables (such as clients) and freshen the data as
soon as is possible.
I would rather this application be as connected as possible to the database
server, and that updates be as real-time as possible. I have seen "some"
examples of a semi-connected application using a web-service and performing
some type of polling for connectivity however I do not wish to expose the
business logic as a web service at this time. None of the examples explain
how to manage a consistent state for real-time or pseudo-real-time data.
--
Ron A. Buckton, MCP
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
President
Chronicles Design
Url: http://www.chroniclesdesign.com
the use of data in a semi-connected multi-user windows form application.
What I have is this, a Windows Forms Client-Server application which ties in
to Microsoft SQL Server 2000. Currently the application acquires data on
clients from the database when it loads so that the end user can work on
said data. When changes are made they are made to the dataset to track
changes and properly manage new record creation. When the user exits, or
clicks save, changes are submitted using a variety of DataAdapters to
properly hierarchally update the data.
I believe though that although this has worked for single-user systems, this
is not the best practice for a multi-user system as data can become
inconsistent as changes are made by each application.
Would it be better to:
* Transmit transacted changes immediately to the database once the DataSet
can perform its constraint checks, rather than wait until the user clicks
"Save"
* Find or put together a means to constantly check for updates to actively
changing and highly used tables (such as clients) and freshen the data as
soon as is possible.
I would rather this application be as connected as possible to the database
server, and that updates be as real-time as possible. I have seen "some"
examples of a semi-connected application using a web-service and performing
some type of polling for connectivity however I do not wish to expose the
business logic as a web service at this time. None of the examples explain
how to manage a consistent state for real-time or pseudo-real-time data.
--
Ron A. Buckton, MCP
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
President
Chronicles Design
Url: http://www.chroniclesdesign.com