AlwaysUp was created to solve a simple problem. How do you make an existing executable run all the time, despite reboots, crashes and other annoying interruptions?
To solve the problem, AlwaysUp leverages Microsoft’s technology of choice for 24/7 operation — the Windows Service. A service typically starts at boot and chugs away, uninterrupted, while your computer is on.
More specifically, AlwaysUp is a service wrapper.
When you configure your application with AlwaysUp, a true/native Windows Service is installed. And when that service is run, AlwaysUp intercepts the calls from the Windows Service Control Manager (SCM) and passes them on to your program.
But the service wrapper approach is not the only way to solve the problem of 24/7 operation. Why not roll up your sleeves and write some C#, VB.Net or C++ code to make your application itself a Windows Service?
You should certainly entertain that option — especially if you are an experienced developer with access to your application’s source code. However, here are five questions to consider before going down that road:
1. Do you have the time to build a first-rate solution?
Does your organization employ a competent, professional development team? If so, they should be smart enough to develop a Windows Service. After all, it’s not rocket science.
But how long will it take your team to create a solution that you and your business will be proud of?
To be successful, you and your team must:
Learn the Windows Services architecture
Write the initial/prototype code (in C#, VB.Net or C++)
Harden the new code for production use (focusing on security, 24/7 reliability, logging, etc.)
Test/certify the code on all current variations of Windows (including Windows 10, 8, 8.1, 7 and Windows Server 2019, 2016, 2012, 2012 R2, 2008, 2008 R2)
As you know, producing great software is not trivial — especially when commercial deadlines are involved!
AlwaysUp costs money but it is ready right now. Not next week, not next month — today.
2. Is coding a Windows Service the best way to spend your limited development resources?
Even if converting your application into a Windows Service is important, it is probably one of many high-priority items on your ambitious feature list. Might any of the other projects yield a higher ROI?
The days (and weeks) spent learning the Windows Services API and crafting secure, robust code that works flawlessly on all versions of Windows won’t come for free. What other features could your developers be implementing during that time?
What high-priority work will you have to delay as your developers dive into the wild world of Windows Services?
Be mindful of lost opportunities as you deviate from your core competencies.
3. Are you willing to continue investing in your Windows Services custom code?
This article on software maintenance highlights the dominant cost of custom software over time — ongoing maintenance.
First, there will be the inevitable bugs in your new code. It will take time and effort to identify and eliminate those self-inflicted problems as your code matures.
But beyond the home-grown defects, every patch from Microsoft brings the risk of “breakage”.
For example, Windows 10 build 1803 crippled access to Session 0. This was a seismic event for some legacy software, which can no longer show a GUI on that version of the OS.
The sad truth is that developers operate in an environment of constant change — not always for the better.
Of course, AlwaysUp is subject to the same shifting sands. We too can be caught off guard by the little “surprises” that the folks in Redmond occasionally deliver.
But we are experts in Windows Services. And our team tests each major release of Windows before it available to the general public.
That expertise and vigilance enables us to identify and solve problems very quickly — before our customers become aware of them.
As a result, AlwaysUp is rock solid. When you deploy AlwaysUp, you automatically benefit from 15 years of commercial operation and more than 80,000 installations on physical and virtual machines across the globe.
4. Do you need failure protection? Email notifications? Advanced Windows Service features?
Converting your application into a Windows Service is a great step forward, but AlwaysUp offers much more — to get you to 100% uptime.
For example, AlwaysUp can:
Recycle your application if it hangs, uses too much memory or hogs the CPU
Restart your application once per day, to cure memory leaks and keep things “fresh”
Notify you if your application crashes, hangs or stops
Send you a weekly report showing application uptime, performance, errors, etc.
Capture console output to a file
You won’t need all those features on day one, but having them available will provide peace of mind as you contemplate serving a wide range of customers.
5. Are you lacking expertise in Windows Services?
When you buy AlwaysUp, you get much more than software alone.
You get a knowledgeable, professional support team that has been working with Windows Services for over 15 years. A team that will help you resolve those thorny customer problems — quickly and efficiently.
You will receive help and support:
Whatever combination works best for you!