dotnet distributed apps:
Hi all,
I have written an app with a Windows Forms UI that is deployed to clients
across the internet via Terminal Services. It uses SQL Server as a data
store, and ADO.NET for CRUD. The data access layer is currently completely
ensnarled within the code for the Windows Forms app, and calls stored
procedures on the data source using Windows Integrated Authentication. The
user's identity is used by several triggers to identify who last updated data.
I am considering moving to a distributed architecture that would involve a
web services data access layer on a web server, and a deployed Windows Forms
Presentation layer client on user machines accross the internet. I know this
is quite a radical change, but hardware and bandwidth costs will eventually
make it very justifiable.
My questions....
1. What is the single best book I can buy in this regard?
2. Currently, users sign-on to my domain when they access my app via
Terminal Services. This allows me to use suser_sname in my AfterUpdate
triggers. It also allows me to establish very specific permissions for these
users based on AD GPO's and SQL server roles. Furthermore, the user's
Window's username is the primary key in a Client Access Table and is required
to return, via sproc, the name of the database he/she is allowed to connect
to, completing an SQL connection string that initially reads "Initial
Catalog=". How could I achieve this in a distributed app environment? I
believe a standard approach is to have the client authenticate at the DALC,
and then have the DALC run as a single domain user account in order to take
advantage of connection pooling. Obviously, this blows my afterupdate
triggers and initial user-to-database redirection strategy.
3. I am considering sticking with Windows Forms as my app uses a fair
amount of drag-drop and graphical image manipulation (also reasons to get
away from Terminal services). Are these valid reasons for avoiding a web
forms app for the presentation layer?
4. There is obviously no real data going over the internet with the
Terminal Services configuration. The data involves protected healthcare
info, and WILL go over the internet if I adopt the distributed structure.
Would SSL be the recommended means of securing the data? If so, would this
offer any alternative authentication strategies?
I know these are BIG questions, and I don't expect to see any books written
in reply. But any pointers to good references, walkthroughs, etc, would be
great. (Already read MS Distributed App Architecture Guide and Microsoft
Guide for Designing Data Tier Components and Passing Data Through Tiers).
--
Thanks.