Remotely update web site and mobile application - asp.net

We have a system that includes a small PC with a website (developped in ASP.net 3.5 using VS 2010) and a SQL database, and some Windows CE 5.0 smart devices (running a homemade WinForm Compact Framework 2.0 software). Those systems are installed to many customers across the country.
Now, I need to be able to automatically update the website and the CE application remotely.
I developped a program that runs on the small PC and retrieve the files (by FTP) to be updated from a WebService in our office. The program executes the database scripts and copy the file to its intended destination locally.
Question: can we "packaged" the website to be deploy remotely? Having to copy every files to the remote PC is very cumbersome and not efficient.
Also: How can I update the software running on the smart device? IP addresses are unknown, they needs be on the DHCP without IP reservation, as we need to be able to hot-swap any devices without doing any configuration.
thanks a lot for your time and help

For both scenarios, the de-centrailized PC servers and the Windows Mobile clients you should consider a Remote Management System.
There is normally no way to push a file onto a windows mobile device, except for having an 'agent' running on the devices (i.e. a ftp server, or a Mobile Device Management Agent (ie by SOTI MobiControl or others).
You may provide a link to a CAB file (a windows mobile installation package) either on the remote servers or better on one central server) and let the users pick that by clicking it in a HTML page.
Are all the Windows Mobile devices by the same vendor and are the same models? Some industrial devices have software agents pre-installed. Some industrial devices also support download/setup via scanning a barcode.

Related

Deploy a desktop application from a web site

I have a requirement to install a desktop application written in visual c++ when our customers log in our asp.net web site. The desktop app will be installed once, but will be updated as a newer version is available. What is the best way to do this?
My second question is that is there a way for my asp.net web app to interact with a window service installed on customer computer and direct the window service to control USB devices.
My work uses software by a company called Citrix. There is some client side software that goes on the client's PC. When setup correctly, we can click a link on our sharepoint site that will trigger the citrix client software to launch a WPF desktop application from a network drive that will run locally on the clients computer (might be in a virtualized space that Citrix creates). This seems to work well, it runs our WPF applications that use windows authentication. This is all I know about it. You can research more if you're interested.
To answer that second question... Your window service would need to expose some kind of service for the client (asp.net web app) to communicate to it with. So ideally I think setting up the windows service to host a WCF service inside it and use something like named pipes or HTTP protocol to communicate with your application. I don't know what kind of USB devices you are trying to control though, that will take research on your part. But if you can control them with a local console application, you should be able to do the same with a windows service.
Good luck. Hope this was helpful.
You can't install an app from a web site, best you can do is prompt the user to download the installer. And asp.net (or any website in general) can't interact with the window service on the client. Imagine going to a website which changes your service settings, installs viruses, etc. A website is pretty much limited to changing cookies and local storage on the client, anything else on the client is inaccessable.

Can't connect to IIS Express remotely from non-Windows machine

I am working on an ASP.NET application and I'd like the ability to test the application on my (Android) phone and iPad by connecting directly to my local IIS Express development server. I followed the instructions here on setting up IIS Express to allow remote connections. I am now able to view the application from another Windows machine on my local network by visiting http://my-computer-name:my-port-number/ in the browser. However, I am unable to view the application from any other platform (Android, iOS, and OS X - tested in both Chrome and Firefox); the browser silently churns away for a minute or so before giving me a generic "could not connect to my-computer-name:my-port-number" page.
What is the difference between the platforms that is disallowing me from viewing my ASP.NET application on non-Windows machines?
If your devices are on the same network, from the command prompt try ipconfig get the IP Address from your wireless and from your device try http://[IP Address]:[Port].
Like in this example:
http://192.168.2.122:5252
I am not an expert on Mac but if I recall correctly your issue may be associated with this:
http://www.wikihow.com/Add-a-Mac-to-a-Homegroup
What is the difference between the platforms that is disallowing me
from viewing my ASP.NET application on non-Windows machines?
The network to which they are connected. You seem to have mentioned that your Windows machine is connected to the same local network as the computer hosting the web application. But the other devices probably aren't. So make sure that those devices are connected to the same network.

how to connect to a web service from windows mobile(when running emulator)

I have as asp.net webserver that I hosted and I went to my mobile application I am building and made a web reference to it.
So it finds it and stuff and now I can access the web methods because of the wsdl generated. However when it tries to connect I get this:
Could not establish connection to network.
So do I have to enable something to make this work?
Take a look at this article. It explains how to setup your mobile device for internet connectivity.
Windows Mobile Emulator and Internet Connectivity
It's been awhile since i have had to do this. Perhaps it is as easy as Matt has suggested, I can remember having a hard time making this work with Windows Vista, Visual Studio 2005 and the Windows Mobile 5.0 Pocket PC Emulator. I've found a couple more articles, hope this helps.
HOWTO: Configure Network in Windows Mobile / PocketPC Device Emulator
Making Emulator to connect to the Network
I have used web services and rest based services via webrequests on the emulator without needing to configure the NE2000 adapters.
Change activesync or WMDC to connect using DMA (in wmdc: mobile device settings | connection settings, then set 'allow connections to one of the following' to DMA)
Then in VS2008, under tools select device emulator manager, and pick the emulator that is running, right click on it and select cradle, this should connect activesync/wmdc to the emulator and provide a network connection that is sufficient to communicate over http with web services.

Sharing Adobe Flash Projector (.EXE) over Local Area Network

A forthcoming project requires that a Flash projector (.exe) be kept on a server and accessed by multiple users over network (LAN). There will be a central access database as a back-end. I am using a third party SWF2EXE (SWF Studio) product to have database functionality. I would like to know if sharing an .exe file this way is practical. I know it's not a typical client-server methodology but I can't use Server side platform like ASP due to lack of resources at the client's place. Is it likely to cause any crashes if the same .exe is launched simultaneously by network users doing a simultaneous read/write to database (mdb)?
Each computer should get a copy of the exe file, and it should be only the database which is shared. If you are on a LAN and you are using MS Access, placing the MDB file in a shared location should be fine.
You may also want to check what the concurrent user limit is for an ms access database.
Andrew

Pocket PC emulator with network access without Virtual PC?

In developing software for the Pocket PC platform, I have been happily using the Pocket PC emulator that Microsoft provides with Visual Studio (and as a free download). It provides for much faster develop/deploy/test cycles. (Of course, I do still final testing on real hardware). I have also found that providing the emulator to other folks in the office (e.g. the documentation team) allows them to get accurate screen shots with little effort. So, I'm convinced this is a great tool for my situation.
Here's the concern:
In order to use the networking capabilities of the emulator, one must install Microsoft Virtual PC on the machine that will run the emulator. This seems like an awful heavyweight requirement for such a small tool. Has anyone found a simpler way to enable networking functionality on the Pocket PC emulator?
It's possible to extract the driver required for the Emulator from the Virtual PC 2007 setup file. For Windows 7 users that have Windows Virtual PC installed, this is actually the only known way to get the Emulator working in a network environment (since installing Virtual PC 2007 is not an option once Windows Virtual PC has been installed).
Here's the blog post explaining the procedure. In a nutshell, you extract the VMNetSrv driver from the Virtual PC 2007 SP1 setup file and then manually install this driver on the network adapter you use for Internet connectivity:
BrianPeek.com: Windows Virtual PC and the Microsoft Device Emulator
Simple answer is no, but...
Have you considered using Microsoft's free remote display control from power toys and running your app across ActiveSync. This means that you are using the actual hardware, network comms and all, but with screen, keyboard and mouse reflected to the screen. I find it works a treat.
We went event a step further. We create a solution for building against compact framework and one solution for building against the win32 .net framework. As all code is just C#, there shouldn't be any problems compiling and running the application as Win32 application on the PC.
There is another great benefit - it's much faster to compile for Win32 than for WinCE.
Hope this helps...

Resources