Forum Moderators: open

Message Too Old, No Replies

Brainstorming anyone?

Need to write a sales call app...

         

RossWal

10:14 pm on Feb 28, 2003 (gmt 0)

10+ Year Member



Client wants to have sales guys visit customers, laptops in hand. Info is entered into laptop to be eventually uploaded to a server.

Thoughts are:

Wireless laptops constanty connected to web via cellular technology ... no idea about costs, availability, reliability, etc. of wireless.

Laptop based app (with local DB) that talks with webserver for uploads at end of day/week/whatever. Would like to work on software distribution issues (ie .net no touch deployment, but don't know how that would work with part-time web connectivity).

Has anyone gone down this road?

Thanks!

txbakers

12:23 am on Mar 1, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Just create an Access DB on the local machine, write a simple web interface if you want it to look like the server one, then import the data from Access to whatever database you use.

That should do it.

RossWal

10:55 pm on Mar 7, 2003 (gmt 0)

10+ Year Member



Just create an Access DB on the local machine, write a simple web interface if you want it to look like the server one, then import the data from Access to whatever database you use.

Like use a file upload control, have the guys upload their mdb files and then I unload them to SQL when they hit the server from the upload? Or what about this... store the stuff in XML on the laptop then use javascript to tranmit to the server with the MS control (I've seen similar code somewhere)?

What about updating the executable on the laptop with new versions of the software? Anyway to automatcally push that down when they connect to the server for the data upload?

Thanks for any thoughts!

DLadybug

9:48 am on Mar 8, 2003 (gmt 0)

10+ Year Member



If you don't already have laptops, might look at that new Sony Clie with wireless.

It can run db, excell, powerpoint presentations, and it just under 600 bucks retail if you want the model that takes pics and video. memory sticks go up to 128 mgs of ram for around 80 bucks.

RossWal

5:55 pm on Mar 25, 2003 (gmt 0)

10+ Year Member



I'm still trying to come up with an architecture for this. Essentially, the issue is that the application will need to run in disconnected mode and connected mode. Disconnected being when sales people are making customer calls and connected when they dial in or reach a WiFi network to upload the data they collected in disconnected mode.

The .Net web based zero deployment model looks interesting, but it's not clear that that will work in a disconnected scenario. I'd like to be able to push the software that runs disconnected down from the web server when the clients connect to upload their data. Like a hyper link saying "There is a new version of the sales call application available. Please click here to install it."

I've been reading up on .net application software deployments but haven't come up with a compelling solution yet.

Comments?

Thanks,
Ross

txbakers

6:36 pm on Mar 25, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



This looks very cool: take a look at the Java WebStart on the java pages at Sun. This might just be the ticket.

I'm looking into it for the same purpose.

Xoc

12:17 am on Mar 26, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



With .NET, you can download data into a dataset on the local machine. You can then persist that dataset as a file. You can load and save that file as many times as you want. When you are ready, you can then have the dataadapter upload the data.

The amount of work to do this is trivial. Maybe 30 lines of code. I'm not kidding!

It also has that technology for updating the application, which is easy and nifty.

txbakers

1:21 am on Mar 26, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Yes, but you still have to write the desktop application in VB which is not a cakewalk.

The JavaWebStart seems to do the same thing.

I'm working on the same project. I have a very popular online database program, but several users have expressed an interest in an offline version that will sync with the online version.

There is a company called Panorama that has a database which apparently does this today - you have to build the desktop application with their software and it will sync with an online version. But I wasn't impressed with the product at all.

Xoc

8:21 am on Mar 26, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Well, you can always do the same kind of thing with replication in Access.

txbakers

1:02 pm on Mar 26, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



What's that? I haven't come across replication yet. Can you point me to a source on that topic?

That might be the ticket.....

aspdaddy

1:57 pm on Mar 26, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member




I would first look at the specifics, number of users, number of records per upload, frequency of uploads etc. Then look at the performance you need and budget/timescale available to develop it.

If its really small and needs a cheap/quick solution, I would go with PWS running locally with Access, and an ASP script to query the days records, and make a form that is POSTed to remote ASP page that then does a series of inserts.

RossWal

10:16 pm on Mar 26, 2003 (gmt 0)

10+ Year Member




take a look at the Java WebStart on the java pages at Sun

I know beggers shouldn't be choosers, but I need to stick with Microsoft.


With .NET, you can download data into a dataset on the local machine. You can then persist that dataset as a file. You can load and save that file as many times as you want. When you are ready, you can then have the dataadapter upload the data.
The amount of work to do this is trivial. Maybe 30 lines of code. I'm not kidding!

It also has that technology for updating the application, which is easy and nifty.


This sounds like what I've been looking for, but I haven't come up with much info. Any pointers on where to look?

If its really small and needs a cheap/quick solution, I would go with PWS running locally with Access, and an ASP script to query the days records, and make a form that is POSTed to remote ASP page that then does a series of inserts.

Good thought. But I think it still leaves me with the issue of pushing down a new version of the code running on PWS.

Thanks to all for your ongoing interest, thoughts, and comments.

aspdaddy

10:35 am on Mar 27, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member




Okay, one more brainstorm, before your'e fully sold on .NET :).

Nothing against it, I just think its cost overkil for this problem.

How about giving the agents an excel template for collecting sales info. The tempalte can incorporate pricing, calculator, auto-complete features etc.

Then have an ASP page for agents to upload the xls files, the script opens them on the server using ADODB, and inserts the records into a database.

If you want to upgrade the template with any more features like print invoice macros or VBA etc. Just email agents the new template. Version control is handled by a date in the filename.

Its cheap on development time and licencing, low min spec for the clients (Win 95/Excel) and easy to upgrade. Training is minimal and backups are available on both clients and server.

Xoc

10:39 pm on Mar 27, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



What's the cost? .NET is free. And instead of Visual Studio, you can use the free Web Matrix [asp.net]!

Visual Studio is killer, but Web Matrix is 3/4th as good for 1/infinity of the price.

Xoc

10:41 pm on Mar 27, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Regarding replication, see this [support.microsoft.com].

RossWal

5:29 pm on Mar 28, 2003 (gmt 0)

10+ Year Member



Thanks Xoc. I'm really interested in pushing new code down from the .net enabled server to update the standalone exe running on the clients. Have you got a link for that?

Xoc

12:28 am on Mar 29, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



No, but it's so easy it's amazing:

Get the data into a DataSet. If downloading from a server, that can be done with (vb.net code):

Dim strSql as string = "select * from tblFoo"
dim strConnectionString as string = "connectionstring"
Dim sda As New SqlDataAdapter(strSql, strConnectionString)
Dim ds As New DataSet()
sda.Fill(ds, "tablename")
ds.WriteXml("filename.xml")

that last line persists the dataset to filename.xml, and can be done any time.

Then when you want the data back, do:

Dim ds As New DataSet()
ds.ReadXml("filename.xml")

Manipulate the dataset. See any .NET book on the details.

When you want to post back to the server, do:

Dim sda As New SqlDataAdapter(strSql, strConnectionString)
Dim scb As New SqlCommandBuilder(sdaGroup)
sda.InsertCommand = scb.GetInsertCommand()
sda.DeleteCommand = scb.GetDeleteCommand()
sda.UpdateCommand = scb.GetUpdateCommand()
sda.Update(ds, "tablename")

RossWal

11:27 pm on Apr 1, 2003 (gmt 0)

10+ Year Member



Thanks for the code Xoc.

Sorry, I guess I wasn't very clear. The piece I'm puzzling over concerns distributing new software across the Internet.

On the client's we'll have a .net program that runs standalone, without need for an active Internet connection (Winsocket, I guess). When the client establishes an Internet connection and visits my web page, I need to do either of the following:

- Present a link to download and install a new version of the standalone program

- Automatically initiate the download and install process

These processes are where I'm stuck. I have an idea of how to do the download, but not how to automatically run the install.

Thanks!

Xoc

4:30 pm on Apr 2, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Okay, I need to ask another question before answering:

Is the program actually changing all the time, or just the data?

RossWal

6:28 pm on Apr 2, 2003 (gmt 0)

10+ Year Member



Well the program is not expected to change all the time, but some changes are inevitable. Since the users are not the most tech savy bunch in the world, I'd like to make installing new version (either complete exe's or patches) as seemless as possible.

Also, I'm looking at this as a learning exercise. Sure, I could email new install files and have the users in the field download and run set-up.exe, but somehow that strikes me as being so 1990's, ya know?

Thanks!

Xoc

9:41 pm on Apr 3, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



The trick is to create a simple .NET application that looks like this:


Public Sub Main()
Dim asm as System.Reflection.Assembly
Dim strUrl As String = "http://www.domain.com/path/application.exe"

asm = [Assembly].LoadFrom(strUrl)

Dim mi As MethodInfo
mi = asm.EntryPoint
mi.Invoke(Nothing, Nothing)
End Sub

You may have to configure some security settings on the client to allow this to run without problems.

The way that it works is that it downloads the program into IE's cache. When you run it, it checks the cache against the server. If the program in the cache has changed, it downloads a new copy. In any case, it runs it out of the cache.

RossWal

10:19 pm on Apr 3, 2003 (gmt 0)

10+ Year Member



Well isn't that elegant, clever, and downright nifty?

Thanks a bunch!