In the context of a multi-user business application in a small office, what are the disadvantages of installing the client on each PC and having them connect directly and remotely to a SQL server database on a central server?
This seems to avoid the need to include .Net remoting (or similar) technology and so开发者_JS百科 install DLLs on the central server.
Disadvantages:
- rollouts can be an adventure - ClickOnce, MSI, or other?
- user rights on the desktop - what is needed?
- updating strategy needs some thought
- Service Pack + .NET version deployments
It sounds like you were thinking of having users run from a network share ("central server")?
Are you considering your desktop application to be distributed using a ClickOnce deployment, with the package available on the web? What about rolling out software via automated deployments with Group Policy?
All the business logic would have to be encoded in the client, which you can see as a disadvantage (since you cannot rewrite it without deploying new clients) or as an advantage (since you transfer computing resources to the clients).
Depending on how you connect to the SQL server, you may have to worry about security issues. However, if it is an in-house solution running on the local LAN, you can probably neglect this.
The disadvantage of connecting directly to any relational system is the problem of tight coupling. Your software's implementation becomes at least partially based upon the back end database. If that ever changes or becomes modified, it might necessitate maintenance of your app.
If, however, it's a small app used by a relatively small number of people, no big deal.
Any time you tight couple to a RDBMS think about what kind of object persistence issues might arise in the future if things change.
精彩评论