
|
Dataface, Inc. |
|
Software and services without fluff or bit-twiddling! |



|
Dataface, Inc. |
|
Software and services without fluff or bit-twiddling! |
|
Smart Clients—Our Advice |
|
Communicating with the host It is important for a smart client to have a single point of contact with the network so that changing technologies can be accommodated painlessly, because: Communication technologies have evolved and will evolve further. We have replaced RDS interfaces with both .NET Web Services and .NET Remoting and we know we will have to accommodate a component code-named “Indigo” in a future release of Windows Cryptographic routines, which are becoming more desirable and also more readily available as easy-to-use packaged routines, should be placed in the single point of network contact.
Appearance of the desktop screen The architect has great flexibility in designing the desktop. It can be based on: a Windows form a Windows form containing a browser window among other controls a web page containing only HTML controls a web page containing both HTML and Windows Forms controls
As an alternative, MS Office InfoPath 2003 is an option for the user interface for data entry smart client applications, even though it does not itself run under the .NET Framework.
Dynamic or static forms Another crucial choice for the architect is whether to build individual forms and web pages or whether to create form descriptors (probably in XML) and build the forms dynamically. Dynamic forms were hardly feasible before the advent of smart clients so few people have experience of doing this.
Security Security can be a huge and time-consuming task. The effort you apply needs to be commensurate with the risk, but never overlook: · Safe storage of cryptographic keys · Protection of backups · Need for strong passwords and a single identity server · Code Access Security on deployed smart client code
Deployment Quoting from MSDN: With “ClickOnce” running a Windows Forms application is as simple as clicking a link in a web page. For administrators, deploying or updating an application is simply a matter of updating files on a server; no need to individually touch every client.
Language localization If there is any possibility of a system being used by non-English-speaking staff, the architect must be aware of that from the earliest design stage. Localization is very hard to retrofit satisfactorily.
Database interaction The conventional wisdom is that you should interact with the database by means of stored procedures, and for good reasons. However, in a SOA environment, the parameterization of a stored procedure may be too limited. We recommend considering a component that “super-parameterizes” the SQL to avoid a huge proliferation of very similar stored procedures.
Application blocks Consideration should be given to the selective use of “application blocks” coming out of Microsoft’s Patterns & Practices Group, GotDotNet, and other sources. The patterns called “Observer” and “M-V-C” (Model-View-Controller) are particularly relevant to smart clients.
Programming language It doesn’t matter. Whether you write in VB.NET or C#, it comes down to the same thing. |
