Monday, June 20, 2005

Office Smart Clients and Visual Studio Tools for Office... From Tech Ed 2005

To get a better picture of smart clients we have to look for thin client and rich client application models.

Rich Client Rich client mostly used to be in 2-tier applications. Presentation tier used to have entire business logic and data store used to dothe job of data layer. These kinds of applications are hard to update, in case of any update to presentation tier or business logic. You have to distribute all files to each and every user who are using your application. Though it provides rich experience and response to users, installation of another application may break existing application (widely known as DLL Hell).

Thin Client With the advent of internet and its wide availability gave us opportunity where all business logic sits at server. If any modification is needed in any logic, we can go and update the server. Though thin client application model solves the problem of deployment, but it lacks the rich UI experience. This kind of application may not provide drag and drop support, undo-redo andcontext sensitive help. Due to business logic sitting at server, all clients need to have network connection all the time. Once you request to server, you have to wait for server to get the response. This makes thin client application less responsive, usable and efficient.

Solution to these problems?

Smart Clients Smart client application model gives you the benefit of both the worlds. It gives you deployment manageability of thin clients and user experience of rich clients. Though striking the perfect balance of both worlds depends upon you. In smart client application you can have following characteristics:

· Use of local resources
·
Use of network resources
· Support for occasionally connected users
· Provide intelligent installation and update.
· Provide client device flexibility

You can have your next killer smart application in three ways:

· Windows smart client application
·
Office smart client application
· Mobile smart client application

I will just bring out some main points about advances of office smart client applications.

Developer Productivity
· Support for Excel 2003, Word 2003, Outlook 2003 (Add in support).
·
Full access to .Net framework
· Integrated debugging through VS.Net 2005
· Support for managed controls. No more ActiveX controls
· CLR based security
· Support for Smart Tags
· Support for Action panes. Sadly still no support for Research pane

Deployment Made Easy
There are three ways you can deploy the application:
· Local / Local Your document as well as assembly both will be at client computer. Do you notice any thing important here? This model gives you maximum offline support but has all problems of rich clients. You have to take trouble of updating all clients in case of any update.
· Local / Network In this model only document will be at client machine. Assemblies used by this document can be hosted at server. Document maintains dependency of assemblies based on embedded application manifest. In case you update one assembly at sever, document will be able to see the updates and it downloads the latest assembly from server.
· Network / Network In this model both your document and assembly will sit in server. You can update document as well as assembly without troubling your clients. But this brings the issue with thin clients. Now you need network access even if you want access only to document.

Maintaining Security
Do you smell anything wrong here? Do you see the issues those were with Office macros?
No not at all. After all CLR is there to maintain security. .Net code within document will run only when all four security policies (Enterprise, Machine, User and Application) agree to grant the permission. When permission is asked by document, an intersection is done of all four policies and if it agrees then only document gets the permission and can execute.

Requirements
· Office 2003 Professional Edition SP1
·
.Net 2.0
· Visual Studio Tools for Office runtime (Client machine)
· Office Primary Interop Assemblies (PIA)
· Appropriate Security Policies

No comments: