I am developing an application that needs to communicate with a Mobile Operator Messaging Center via CIMD2 protocol. I am trying to find something that has already been implemented, but the only solutions I can find cost around 1000$ US. Can anyone suggest anything?
I found that there is a Linux based program http://www.kannel.org/, and people run it on a linux box and communicate with it from .NET on a Windows box. (might run the linux box on a virtual machine).
You might also want to port the code to C# (there is a JAVA port out there).
Related
Note: because there is no windows hosting that satisfies me at the moment, I'm developing my application in PHP and host them on a linux VPS.
Since Windows Server 2016 supports Docker and you are able to create .net 4.5 images, I thought why not review my applications and hosting plans.
Because I'm not a fan of hosting websites directly on a VPS with IIS (setup and configuration seems clumsy), I thought this "infrastructure" seems ideal for me.
A Windows 2016 VPS
A Linux based VPS
For each asp.net application, create a docker image based on microsoft/iis. This means that for the application, there is nothing left to be configured, right? This application will run on the Windows 2016 server.
On the Linux VPS, I will have nginx configured to have all the configuration for SSL certificates and optimizations. Nginx will have proxies that point to the Windows 2016 VPS on specific ports for the different applications.
I think this architecture has scaling possibilities, less configuration on the Windows VPS, more room for improvement? It should even be possible to do this with Ansible if I'm not wrong.
I only need hosting, nothing related to email, ftp, ... That's why I'm not using shared and/or cloud hosting.
Does this architecture seem fine?
Am I missing something?
Would you still just use a Windows VPS for hosting asp.net applications, even if this architecture is possible?
Does this all seem possible with Ansible? I only have basic experience with it.
I don't see anything wrong in your proposal. Remember you can use ansible inside the Linux image's Dockerfile. Maybe you can find that it is an overkill but it should work.
Probably you will find some problems linking your Linux / Windows containers. But I don't see anything short stopping.
Go ahead and post your results. Also if you encounter some walls just ask here and we will try to help.
Regards
because there is no windows hosting that satisfies me at the moment, I'm developing my application in PHP and host them on a linux VPS.
Would you mind telling us a bit about your requirement of Windows Hosting?
For each asp.net http://asp.net/ application, create a docker image based on microsoft/iis. This means that for the application, there is nothing left to be configured, right?
Once fully functional pre-configured image is prepared, you don't have to perform any other changes to your main image. The main image is only modified when you want to update any application in the image or looking to make any changes or update Windows OS.
Does this architecture seem fine?
NGINX reverse proxy works with IIS backend, so, this proposed architecture is achievable. Initial setup of connecting Linux VPS NGINX web server to individual Windows docker image is slightly complex. If you are successful doing that, the next challenge will be adding subsequent dockers to Windows Hyper-V. Here, I don't see actual purpose of using Docker images to host ASP.Net http://asp.net/ applications, when you can easily deploy pre-installed VMs through Windows HyperVisor.
As far as Ansible is concerned, I don't have much idea about this product, but as seen on their website Ansible can automate the dockers.
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.
I have made an application in asp.net which sends and receive sms, it works very similar to desktop application and it will be installed on servers to send sms alerts, but the problem is if server does not have iis, it will not work. I have seen many apps which when installed, have their own server and port, you do not need to install any IIS, when you just double click it starts running on a special port and works well, similarly visual studio also runs its own port in development mod, so what is the best way to make such solution for an asp.net product.
If you're talking about how to host a service in an application outside IIS, Windows Communication Foundation (WCF), which allows you to host a service in a Windows Forms executable, Console Application, Windows service, or IIS.
It's too big a subject to explain fully here, but there's a nice starting point here.
This will allow you to create the host, and allow you to hose services similar to web services, but with more options for how to connect. (http, tcp, etc.)
But it's not an ASP.NET host. For that, you will need a web server that can execute ASP.NET, such as IIS. There's no way to get around the need to have a web server, whether it's one of the many already established, or if you write your own. I believe there are extensions for Apache that allow you to do so via Mono, but I've never used them. Writing your own would be, in my opinion, a waste of time and a bad idea.
The simplest solution by far is to specify that IIS instaled with the appropriate framework is a requirement for using your website.
Edit
However, if you REALY want to write a WinForms app and have it host ASP.NET, it looks like this previous question has an answer that would help. You can use the Cassini web server, the same one that Visual Studio uses.
This might be a 'duh' question after all.
Are there any caveats running an asp.net (3.5) application on a local host? Assuming I have all the required services installed, I am looking for pitfalls/ troubles in terms of
database access
reporting/ charting and other such features
performance
The main reason for this is that the app I am developing will be eventually hosted on a proper web server but till then I want to be able to use my app from a browser (for test, demos...).
[Note: till the time the app is hosted on a web server, only I will be using the app]
As long as you install all the same components (and the same versions of them to be 100% sure) on your computer as you have available on the server, there shouldn't be any difference at all in functionality. One thing to watch out for is that the app will certainly be less responsive when someone accesses it over the internet, compared to the client and server being the same machine.
You won't have any problems at all, this is how many people indeed test. When you are ready to move it online, just make sure the host supports everything you need.
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...