I was very interested from a lot of time to the Smart Client world, but after the WPC and the discussions with Francesco Balena my interest is really increased...
Smart Client solutions have lots of interesting features, such as:
- Local Resources utilization: They are applications that are executed at the client side, so they use local CPU, local disk, local memory etc. exactly lime a common Windows Form application.
- They are connected applications: a Smart client applications works on a distributed environment, so it can interact remotely with Web Services, remote databases etc.
- They are capable to work offline: A smart client applications can work also in disconnected mode because it resides on the client and it can cache data.
- The have really powerful Installation and Update features: This is the key I love... you place your application on an url and with it you can distribute your application. People can install your application simply by clicking this url. If updates are available, people are alerted and can install the updates (they use a great feature of the .NET Framework). ClickOnce feature of the .NET Framework 2.0 provides exactly this.
- Security: they're normally executed like a web application, so with high security restriction, but you can easily set your specific security permissions as you want. The .NET runtime ensures that assemblies can only carry out operations for which they have been granted permissions.
Ok... so, why I'm in love with Smart Client??
Because I think that for some scenarios, such as LAN or Intranet in general for example, they can be a better choice than ASP.NET solutions!!
They resides on the client machine, so they have the powerful features (the GUI for example) of a normal Winform application, but they're connected and executed on a secure environment, exactly like a web application. I think this is wonderful...
I'm sure that Smart client can have a great future and I'll start to share this thinking to my staff at work.