How can you host a desktop application in cloud? - c#

I have created a windows(desktop) application (large) using C#.Net, VB.Net & SQL Server 2005.
I need to move this application to cloud platform. I've not much knowledge regd Cloud.
Every thing I read about cloud, hints that applications developed using ASP.Net
or Web applications/sites can only be hosted on cloud.
Since, my application is using WinForms (desktop),
I am doubtful whether the application will work on cloud platform.
Can this application be hosted in Cloud?
Or should I recreate the entire application using ASP.Net to run in Cloud?

You can deliver this on Amazon Cloud using Citrix XenApp. AWS has Citrix XenApp AMI's in its marketplace. You can host your C#/VB.net on Amazon EC2, upgrade and migrate your MSSQL to 2012/2008 and host it on another Amazon EC2. Have Citrix XenApp installed on AWS and deliver your desktop app to your customers via Xenapp.

it would be more interesting if you moved only the DATA components of the App to the cloud, so your (heavy) clients could use the cloud as a LAN extension. Cheaper and no code impact, just addressing the dat source in the new location.
Hope this helps,

I think you're getting confused as to what actually gets hosted "in the cloud" (a term I really despise, to be honest). Essentially your desktop application remains a regular desktop application, but you can offload data and/or processing "to the cloud" and your desktop application accesses it, usually using a web service.
See the Amazon E3 overview for more information.

Few options to host windows(WinForms/WPF) app in cloud are -
Appstream2 (AWS)
Windows Virtual Desktop (Azure)
Citrix Virtual Apps and Desktops

Related

Writing Windows Service in C# .NET Core for Windows & Azure Cloud

Background: We have developed a Windows Service in C# .NET 4.5. The service does two jobs at once.
It communicates with LDAP and reads the user statuses and updates in the Database.
It communicates with the Database and rolls out items to users.
Requirement: We have got the opportunity to rewrite the service in .NET Core. We need to write the service to achieve the following targets.
The old clients who are using their own infrastructure could install and use the service like they are doing now.
The clients who are using CLOUD should be able to install it on the cloud. But I don't think for a single service we are required to use VM. Is there a better way to handle this scenario?
The service's 1st part is communicating with LDAP. Clients who are using the cloud, definitely have the database hosted on the cloud along with the other Web Applications but where should be the service installed so it can easily communicate with the LDAP as well as with the database (2nd part)?
I heard about the background worker process. Does the windows service be used as a background worker process and as a windows service at the same time?
For .NET Core take a look at Microsoft.Extensions.Hosting.BackgroundService for windows services.
As far as the Cloud issue I assume it would depend on how the customer is setup. If LDAP is still on-prem, I assume it would be easier to have the service running on-prem as they would probably have a connection to the VPC on the Cloud where the database is hosted.
If everything exists on the Cloud then I assume it would the depend on the provider how you can run the service? Small EC2 instance on Amazon, on Azure you might have to use a VM or maybe look at a WebJob on an AppService, not very familiar with Google.
Hope this helps.

UWP App design on Windows 10 with Windows Service

We are building an assistant UWP app for Windows 10 & Windows Mobile Devices. On Windows 10 we want to offer some sort of security enforcement to the user, e.g. making sure his antivirus is up to date and so on. This should be done through Powershell with Admin privileges.
Question: What would be the best approach here from architecture & user experience point of view?
Idea 1:
Architecture: UWP app communicates with a service (which is written as .NET Core web.api and offers simple REST Interface) and consumes this service through http client.
The service run's as local system. We want to host it in Kestrel webservice as this is supported when targeting .net 4.6. Prototype worked so far but everything runs in debug mode & not sure if there will be some issues with the isolation of UWP apps.
From my point of view, the UWP app is consuming the service through normal http requests which should not be isolated or intercepted in any way, right? There is no difference on consuming a local hosted webapi instead compared to a cloud api from UWP isolation perspective, right?
Idea 2:
User experience: User downloads the app from public store. App checks if it is running on Windows 10, if so, it checks if the helper windows service is already installed (through a API call on the webservice). If not, it offers the user the ability to download the service from a web page and install it (evaluated prompt).
What would be the best way to do it? Just giving a download link to the user? Or can I start a process from a UWP app that prompts to install an MSI? It should be as simple as possible.

Run external code or application on connected client desktop from application that published via RemoteApp or Citrix ICA?

I have desktop app on server, that can be used by clients via Microsoft RDP or RemoteApp or Citrix ICA. And now i need to somehow interact with REAL user desktop from that application running on server in RDP/RemoteApp/ICA session.
Is there exists some server-side API in Microsoft RDP/RemoteApp or Citrix ICA that can be used to implement this?
My app is currently written in C#, but i can easily use COM/WinAPI if needed.
Yes, on Citrix you can use the Virtual Channel SDK:
https://www.citrix.com/downloads/citrix-receiver/sdks/virtual-channel-sdk.html
Microsoft also has something similar if you want to use RDP:
http://msdn.microsoft.com/en-us/library/aa383509%28v=vs.85%29.aspx

Application Designing guide line for interaction between Win & Web application

our company has website which has been developed by asp.net web form and hosted in shared location in ORCSWEB company. web site has a specific page from where people upload their CV. when a new CV is uploaded then few entry stored in database and cv file stored in folder where our web site hosted. database is also maintain at ORCSWEB end.
i have developed a win service which run in our office and it periodically query the remote database for new CV. if found any then it will download that CV file in local machine and as well as remote cv data from remote db to local db and update a filed called isDownloaded=1 in remote db as a result next time that same records will not be queried or checked.
the whole web part and win service part working fine but now our IT head want to change in web & win service logic bit.
he wants that when any new candidate upload their CV through our site then a notification will be send to our win service after 5 minute from web apps. after getting notification from web apps then win service will download the cv.
now i am not being able to thing how to design our web apps which can send some notification directly to our win service which is running in our office because there is no physical connection or accessibility between two pc where our win service & web apps are running. our win service is running in our private network and web apps is hosted in another company machine.
some told me this can be achieve through WCF but did not guide me how to develop this kind of bridge between win service & web apps through which communication will be possible.
i know lots of experienced & scholar developer always monitor this site and that is why i like to ask them how this problem can be sorted. what logic i need to use to send notification from our web apps to win service.
so please guide me with all possible way to develop a system which solve our purpose. discuss all possible way like wcf or anything else which can be use to develop apps which enable me to achieve our goal. looking for elaborate discussion and guidance. if possible give me few sample code & links which give me idea to write code for our situation. thanks

Porting existing console application to Windows Azure

I have some console applications that communicate using WCF over TCP. Is it possible/easy to port a console application to Windows Azure, or must the application be hosted in IIS/asp .net?
Since you do not really log into a Windows Azure machine and see the screen as you could do with a local server in your network I guess you should only develop server side components or IIS Hosted services and web applications exactly as you said.
you could get the Windows Azure SDK: Windows Azure SDK and explorer the available templates and alternatives locally in your machine.
A console application can be started from a role - web or worker - and communication to that app can be via the InputEndpoint (HTTP, HTTPS or TCP).
I worked on a project that spawned a console app from a worker role, the role fed workloads read from storage queues direct to a WCF service hosted in the console application - using tcp.
I found that you can use startup tasks in the config file for Azure. That works.

Categories