Join 132,613 Programmers for FREE! Get instant access to thousands of experts, tutorials, code snippets, and more! There are 945 people online right now. Registration is fast and FREE... Join Now!
I have a quite large Web App that was written(VB.NET on ASP.NET,AJAX, and SQL 2005) for the company I just started at. Our current process involves our workers taking laptops with them into the field and then thru a Cellular Card remote to our network to access the essential Web App.
What I have been tasked with is designing and developing alternatives due to performance issues on cellular cards in rural areas.
Idea # 1: Rewrite the application to be a desktop app that Caches the Data bits and them sync's them with the db when a "connection" is present. Pros: I can update the app at the same time(2.0 to 3.5). I can streamline the app now with the benefit of hindsight. ?? Others?? Cons: TIME!! Even with the app already existing I am assuming this would take many hours. The initail developer(s) took 2 years.
Idea # 2: Trick the Web App to run on local IIS server (on there laptop) and then "somehow" set up a syncing ability for Data bits.
Pros: Theoretically this would take much less time. I am worried, though, about that statement as I have less of an idea where to start with this idea.
Cons: Reeks of "Hack-job" to me. App would, most likely, still utilize older technology. (Not the end of the world, I know)
I would greatly appreciate anyone's, especially anyone with experience or expertise, opinion on my two ideas, alternate ideas, etc.
If you're using SQL Server as your backend, then the buzzword you're looking for ( took me a bit to find what it is now ), is <a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/mergrepl.mspx">Merge Replication</a>. In a nutshell, you can have mobile clients take a small snapshot of the enterprise data store, reference it and update it off line, and then set the change back when they have access to the master.
I was looking at it for a mobile reporting option a few years ago, when it was called something else and 2005 was just getting rolled out. Guys with handhelds could sync data collected on off site and also access basic customer data. The project got stalled and maybe contracted out, so I never got a chance to actually implement it. But it looked like a real good idea at the time.
I may be mentally handicapped but as I am reading it is occuring to me that this is only one possible part of my solution. I would still need to modify the web app to run off of Local IIS and I would still need to modify the way it references assemblies, web services, and the database for when it is offline.
I am sure you never meant it as a one stop solution for my entire problem I just was too excited and jumped all over it.
If I am correct then I have a lot more research still to do...
No, it's not a panacea. However, if your application relies heavily on the database back end, it's can solve your biggest problem. The other challenge is simply hosting a web application on an ordinary PC.
You don't need full blown IIS. There are some standalone test bed web servers for ASP.NET developers. A quick search dug up this one: http://www.asp.net/Downloads/archived/cassini/, but it looks kind of aged. Mono actually has one too: http://www.mono-project.com/Xsp I'm sure there are others out there. I wrote one once, but it's as old as that first one.