What is the capability of PWA for Windows? - windows

I'm totally new to PWA (rather I'm still considering adopting PWA or go Electron).
Looking at the concept and guides of the app on the web, it seems that the capability of it is to this extent, thus;
Access web APIs securely and easily
Yes, as it is the alternative implementation of web apps.
Access local storage of the PC for the app
Yes, through HTML5 web storage.
Access any local files in the PC
No?
Communicate with another desktop app through TCP connection
Yes? By posting/getting some query to localhost for example?
Obtain system info like PC status or installation path of another desktop app
No?
How many of my understandings are correct? Is there another capability or limitation to be specially noted?

Related

Accessing a Firebase-deployed App over a VPN

I built an app to offer a client of the company I work for that I deployed to Firebase. It uses Firebase storage for retrieving files as well as the realtime database. It's actually just the front-end portion of a two-app suite I made; the backend portion is used by an admin for uploading files, checking data, etc --- which data then becomes available to view over the frontend. Both use firebase.
It turns out the devices that would need to access the app (tablets mostly) are inside of an extranet with a server that can establish VPN connections only. Now I'm being asked how I can build the app so these devices can access the app.
I don't know much about the inner-workings of Firebase but it seems to me I may have couple of options:
1) Figure out how to make the FB database accessible over VPN (preferable)
2) Reconfigure the app to use something like MongoDB. Instead of deploying on a remote server, let the on-site server service the devices using the app. Send files that are needed by the server via FTP over the VPN, then process these files on-site.
Problem: I'm using a Mac and the on-site server uses Windows. It will be a pain to install things on a Windows machine remotely, let alone set up the VPN.
Any ideas? I'm sure there are parts of this question where I've made wrong assumptions --- I've never needed to do things over a VPN before.

Run a canvas application locally

I am developing an MVC 3 Canvas app. Is it possible to debug locally rather than hosting it somewhere?
Thanks
I am developing some app in PHP at the moment, but I guess the language doesn't matter. Just set the app address to your local development address. The page is loaded in an iframe, so your computer maps it to whatever it thinks is the correct ip. Facebook doesn't care about where the page is hosted.
However, the communication of the API with facebook will be a bit slower than between Facebook and your production server. So don't worry if the App seems to be very slow.

Integrated Windows Authentication - Realistic for internet applications?

I'm reading about how wonderful Integrated Windows Authentication is, but there is only a few comments about how it's only good for intranets. So just to be clear, is it safe to say that this technology is not realistic for internet applications? I'm developing a desktop application that connects with SQL Server and I just can't imagine telling all my customers to configure a windows account on their home PCs according to my specifications. Am I missing somethimg because that seems quite unrealistic.
(of course, where the DBA has a close relationship with the users on an intranet, it's a different story.)
I would have to say yes, Windows Authentication is best left to intranet applications - it's ideal for any authenticated communication that needs to take place on the same network.
It sounds like you want to allow the desktop app (running on your client's machine) to directly talk with your SQL Server? I would strongly recommend against allowing direct public access, especially if you cannot lock the port down to a list of known IP addresses. Instead, consider putting WCF Web Services between the database and the desktop client.

Debugging a Windows CE application which uses a Microsoft Azure service

This question has probably less to do with actual programming and more to do with environment setup.
I'm developing an application for a Windows CE device, which will use a service hosted in Microsoft Azure. Obviously, this is all under development, and the service itself has not yet been uploaded to Azure. So I'm using the emulators provided by MS to deploy the service locally. Also, I don't think uploading the service to Azure just to debug it is a good idea, as that could net us a bill for Azure we don't yet want to pay.
Also, please note, I'm using VS2008 for the Windows CE project and VS2010 for the Azure project (thank you MS for dropping support for mobile devices -_-).
The problem is, the service seems to be accessible only via 127.0.0.1 or localhost, and if I physically connect a Windows CE device or use an emulated one, it becomes a new entity on the network, and cannot access that service any more.
How can I debug my Window CE application and have it see the service, whilst still being able to debug the service itself?
You are correct, the development fabric (the compute emulator that allows you to build an azure application and debug it locally) is only meant for local development. There are some hacks that allow you to get around that, but I wouldn't recommend it.
My recommendation would be to spin up the service in a more traditional hosting environment, at least in these early stages. You can define it as a web app just as you always would have, and get it functioning. Then, when you know its mostly complete, create a cloud service project and do an add existing to bring your web app into the cloud service solution. Once in, its a simple matter to add the web app as a web role.
From there, you can complete testing of the service in both the local and hosted azure environments as needed. This allows you to minimize your development costs while still leveraging the power of the cloud. As an upside, you also have done most of the basic work to ensure your service is compatible with multiple deployment scenarios giving you a greater degree of choice for its final production state.
OK, I don't know if this was intentional, or if I found one of the mentioned hacks, but I saw that IIS hosts the Azure site I created on port 5100, and the binding for this site is *, so it accepts all connections.
Using this I could access the service from my emulator, and I could still debug all Azure related stuff.

Online server for desktop app - implement as web-server or custom socket application?

A bit of a generic question but let's say you have a desktop app that allows a user to connect to a central server and provides functionality like:
Login
Ability to auto-download profile data on login
Download and uploading save files through the app
A web-server (JSP/ASP.NET/PHP/etc) would do lots of work for you especially on the request-serving and threading front, but it seems a bit of a cheat for a desktop app to use HTTP requests like this.
All thoughts welcome. Maybe this should be community wiki?
If you want to leave things open for other possibilities in the future, go with a web server. That way, if you decide to write a web-based version of your desktop app (or an iPhone/Pre/Android application), you don't have to rewrite your socket server. Almost everything can speak HTTP these days.

Resources