I have my main (Csla based) application, part of which is a CRM. One of the requirements is that emails received or sent to customers are logged with that customer. Currently I have an Outlook plugin which does just that, using some Csla business objects.
The problem is that if that underlying database changes, I need the users to install an update package which installs updated Csla based assemblies that work with the new schema. This has proven to be a pain to do, and I can't use ClickOnce to deploy the add-in because we're on outlook 2003.
Its also not reliable; if the network connection goes down between the buildings, emails can still be sent and received because each location has its own internet connection, but without the link between buildings, no way to contact the database server, so any emails exchanged don't get logged.
The proposed solution I've come up with is this: the Outlook add-in will continue to write out the .msg file, along with some metadata stored in Xml. Both these files will be placed in a known location. A service running on the client will watch this location, and simply move the sets of files to a known server location.
A service running on the server will process the files and import the .msg file into the application database.
In this way, if network connectivity between locations is lost, the files will simply stay on the client until restored. Also, if I change the database schema again, I'll only need to update the service running on the server. This will make deployments much easier.
I'm not sure I see any better way to proceed, so I thought I'd post here and see if anyone had a better idea. So, what else could I do that would 1) simplify deployment and 2) increase reliablity
Copyright (c) Marimer LLC