{"id":6607,"date":"2019-04-02T08:36:27","date_gmt":"2019-04-02T15:36:27","guid":{"rendered":"https:\/\/www.coretechnologies.com\/blog\/?p=6607"},"modified":"2025-11-24T11:36:18","modified_gmt":"2025-11-24T19:36:18","slug":"vs-custom-windows-service","status":"publish","type":"post","link":"https:\/\/www.coretechnologies.com\/blog\/alwaysup\/vs-custom-windows-service\/","title":{"rendered":"Why Should I Buy AlwaysUp Instead of Writing My Own Windows Service?"},"content":{"rendered":"<div align=\"center\"><img loading=\"lazy\" decoding=\"async\" class=\"no-lazy-load\" class=\"image-padding\" src=\"\/blog\/images\/buy-vs-build.webp\" title=\"Why Buy AlwaysUp Instead of Writing my own Windows Service?\" alt=\"Why Buy AlwaysUp Instead of Writing my own Windows Service?\" border=\"0\" width=\"520\" height=\"209\" \/><\/div>\n<p>AlwaysUp was created to solve a simple problem. <b>How do you make an existing executable run all the time, despite reboots, crashes and other annoying interruptions?<\/b><\/p>\n<p>To solve the problem, AlwaysUp leverages Microsoft&#8217;s technology of choice for 24\/7 operation &mdash; the <a href=\"\/WindowsServices\/FAQ.html#WhatIsAWindowsService\">Windows Service<\/a>. A service typically starts at boot and chugs away, uninterrupted, while your computer is on.<\/p>\n<p>More specifically, AlwaysUp is a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Service_wrapper\" target=\"_blank\" rel=\"noopener noreferrer\">service wrapper<\/a>.<\/p>\n<p>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.<\/p>\n<p>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?<\/p>\n<p>You should certainly entertain that option &mdash; especially if you are an experienced developer with access to your application&#8217;s source code. However, here are five questions to consider before going down that road:<\/p>\n<hr class=\"blog-section\">\n<div style=\"width:100%;margin-bottom:30px;\">\n<div style=\"margin:0px;float:right;\"><a href=\"#top\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.coretechnologies.com\/images\/top.jpg\" border=\"0\" width=\"50\" height=\"18\" title=\"Go to the top\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2 class=\"blog-caption\">1.&nbsp;&nbsp;Do you have the time to build a first-rate solution?<\/h2>\n<div align=\"center\"><a href=\"\/blog\/images\/planning.png\" class=\"zoomPopup\" title=\"Use your time wisely\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/planning.png\" title=\"Use your time wisely (click to enlarge)\" alt=\"Use your time wisely\" border=\"0\" \/><\/a><\/div>\n<p>Does your organization employ a competent, professional development team? If so, they should be smart enough to develop a Windows Service. After all, it&#8217;s not rocket science.<\/p>\n<p>But <b>how long will it take<\/b> your team to create a solution that you and your business will be proud of?<\/p>\n<p>To be successful, you and your team must:<\/p>\n<ol type=\"i\">\n<li>\n<p><b>Learn<\/b> the Windows Services architecture<\/p>\n<\/li>\n<li>\n<p><b>Write<\/b> the initial\/prototype code (in C#, VB.Net or C++)<\/p>\n<\/li>\n<li>\n<p><b>Harden<\/b> the new code for production use (focusing on security, 24\/7 reliability, logging, etc.)<\/p>\n<\/li>\n<li>\n<p><b>Test\/certify<\/b> 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)<\/p>\n<\/li>\n<\/ol>\n<p>As you know, producing great software is not trivial &mdash; especially when commercial deadlines are involved!<\/p>\n<p>AlwaysUp costs money but it is ready right now. Not next week, not next month &mdash; <b>today<\/b>.<\/p>\n<hr class=\"blog-section\">\n<div style=\"width:100%;margin-bottom:30px;\">\n<div style=\"margin:0px;float:right;\"><a href=\"#top\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.coretechnologies.com\/images\/top.jpg\" border=\"0\" width=\"50\" height=\"18\" title=\"Go to the top\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2 class=\"blog-caption\">2.&nbsp;&nbsp;Is coding a Windows Service the best way to spend your limited development resources?<\/h2>\n<div align=\"center\"><a href=\"\/blog\/images\/priorities.png\" class=\"zoomPopup\" title=\"Be true to your business priorities\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/priorities.png\" title=\"Be true to your business priorities (click to enlarge)\" alt=\"Be true to your business priorities\" border=\"0\" \/><\/a><\/div>\n<p>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 <b>higher ROI<\/b>?<\/p>\n<p>The days (and weeks) spent learning the Windows Services API and crafting secure, robust code that works flawlessly on all versions of Windows won&#8217;t come for free. What other features could your developers be implementing during that time?<\/p>\n<p>What <b>high-priority work<\/b> will you have to <b>delay<\/b> as your developers dive into the wild world of Windows Services?<\/p>\n<p>Be mindful of lost opportunities as you deviate from your core competencies.<\/p>\n<hr class=\"blog-section\">\n<div style=\"width:100%;margin-bottom:30px;\">\n<div style=\"margin:0px;float:right;\"><a href=\"#top\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.coretechnologies.com\/images\/top.jpg\" border=\"0\" width=\"50\" height=\"18\" title=\"Go to the top\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2 class=\"blog-caption\">3.&nbsp;&nbsp;Are you willing to continue investing in your Windows Services custom code?<\/h2>\n<p>This <a href=\"https:\/\/web.archive.org\/web\/20180915002424\/http:\/\/www.clarityincode.com:80\/software-maintenance\/\" target=\"_blank\" rel=\"noopener noreferrer\">article on software maintenance<\/a> highlights the dominant cost of custom software over time &mdash; ongoing maintenance.<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/software-tco.png\" class=\"zoomPopup\" title=\"Software Total Cost of Ownership (TCO)\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/software-tco.png\" title=\"Software Total Cost of Ownership (TCO) (click to enlarge)\" alt=\"Software Total Cost of Ownership (TCO)\" border=\"1\" \/><\/a><\/div>\n<p>First, there will be the <b>inevitable bugs in your new code<\/b>. It will take time and effort to identify and eliminate those self-inflicted problems as your code matures.<\/p>\n<p>But beyond the home-grown defects, every patch from Microsoft brings the risk of &#8220;breakage&#8221;.<\/p>\n<p>For example, Windows 10 build 1803 <a href=\"\/blog\/windows-services\/interactive-services-removed-windows-10\/\">crippled access to Session 0<\/a>. This was a seismic event for some legacy software, which can no longer show a GUI on that version of the OS.<\/p>\n<p>The sad truth is that developers operate in an environment of constant change &mdash; not always for the better.<\/p>\n<p>Of course, AlwaysUp is subject to the same shifting sands. We too can be caught off guard by the little &#8220;surprises&#8221; that the folks in Redmond occasionally deliver.<\/p>\n<p>But we are <b>experts in Windows Services<\/b>. And our team <b>tests each major release of Windows<\/b> before it available to the general public. <\/p>\n<p>That expertise and vigilance enables us to identify and solve problems very quickly &mdash; before our customers become aware of them.<\/p>\n<p>As a result, AlwaysUp is rock solid. When you deploy AlwaysUp, you automatically benefit from <b>15 years of commercial operation<\/b> and more than <b>80,000 installations<\/b> on physical and virtual machines across the globe.<\/p>\n<hr class=\"blog-section\">\n<div style=\"width:100%;margin-bottom:30px;\">\n<div style=\"margin:0px;float:right;\"><a href=\"#top\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.coretechnologies.com\/images\/top.jpg\" border=\"0\" width=\"50\" height=\"18\" title=\"Go to the top\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2 class=\"blog-caption\">4.&nbsp;&nbsp;Do you need failure protection? Email notifications? Advanced Windows Service features?<\/h2>\n<div align=\"center\"><a href=\"\/blog\/images\/toolbox.png\" class=\"zoomPopup\" title=\"Do you need advanced Windows Service features?\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/toolbox.png\" title=\"Do you need advanced Windows Service features? (click to enlarge)\" alt=\"Do you need advanced Windows Service features?\" border=\"0\" \/><\/a><\/div>\n<p>Converting your application into a Windows Service is a great step forward, but AlwaysUp offers much more &mdash; to get you to 100% uptime.<\/p>\n<p>For example, AlwaysUp can:<\/p>\n<ul>\n<li>\n<p>Recycle your application if it <b>hangs, uses too much memory or hogs the CPU<\/b><\/p>\n<\/li>\n<li>\n<p>Restart your application once per day, to <b>cure memory leaks<\/b> and keep things &#8220;fresh&#8221;<\/p>\n<\/li>\n<li>\n<p><b>Notify you<\/b> if your application crashes, hangs or stops<\/p>\n<\/li>\n<li>\n<p>Send you a weekly report showing <b>application uptime, performance, errors, etc.<\/b><\/p>\n<\/li>\n<li>\n<p>Capture <b>console output<\/b> to a file<\/p>\n<\/li>\n<\/ul>\n<p>You won\u2019t need all those features on day one, but having them available will provide <b>peace of mind<\/b> as you contemplate serving a wide range of customers.<\/p>\n<hr class=\"blog-section\">\n<div style=\"width:100%;margin-bottom:30px;\">\n<div style=\"margin:0px;float:right;\"><a href=\"#top\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cdn.coretechnologies.com\/images\/top.jpg\" border=\"0\" width=\"50\" height=\"18\" title=\"Go to the top\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2 class=\"blog-caption\">5.&nbsp;&nbsp;Are you lacking expertise in Windows Services?<\/h2>\n<div align=\"center\"><a href=\"\/blog\/images\/here-to-help.png\" class=\"zoomPopup\" title=\"We're here to help\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/here-to-help.png\" title=\"We're here to help (click to enlarge)\" alt=\"We're here to help\" border=\"0\" \/><\/a><\/div>\n<p>When you buy AlwaysUp, you get much more than software alone.<\/p>\n<p>You get a knowledgeable, <b>professional support team<\/b> that has been working with Windows Services for over 15 years. A team that will help you resolve those <b>thorny customer problems<\/b> &mdash; quickly and efficiently.<\/p>\n<p>You will receive help and support:<\/p>\n<ul>\n<li>\n<p><b>Online<\/b> (through our up-to-date <a href=\"\/products\/AlwaysUp\/AlwaysUp_FAQ.html\">FAQ<\/a>, <a href=\"\/blog\/\">Blog<\/a>, etc.)<\/p>\n<\/li>\n<li>\n<p>Via <b>email<\/b><\/p>\n<\/li>\n<li>\n<p>On the <b>telephone<\/b> (toll free in the USA)<\/li>\n<\/ul>\n<p>Whatever combination works best for you!<\/p>\n<div style=\"margin-top:30px\" align=\"center\">\n<div class=\"cta-button-1\">\n<table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" align=\"left\">\n<tbody>\n<tr>\n<td align=\"center\"><a href=\"\/blog\/tag\/alwaysup-tag\/\" title=\"Click to read more articles about AlwaysUp\"><span><nobr>More articles about AlwaysUp&#8230;<\/nobr><\/span><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<!-- relpost-thumb-wrapper --><div class=\"relpost-thumb-wrapper\"><!-- filter-class --><div class=\"relpost-thumb-container\"><style>.relpost-block-single-image, .relpost-post-image { margin-bottom: 10px; }<\/style><h3>You may also like...<\/h3><div style=\"clear: both\"><\/div><div style=\"clear: both\"><\/div><!-- relpost-block-container --><div class=\"relpost-block-container relpost-block-column-layout\" style=\"--relposth-columns: 3;--relposth-columns_t: 2; --relposth-columns_m: 2\"><a href=\"https:\/\/www.coretechnologies.com\/blog\/windows-services\/delay-service-start\/\"class=\"relpost-block-single\" ><div class=\"relpost-custom-block-single\"><img decoding=\"async\" loading=\"lazy\" class=\"relpost-block-single-image\" alt=\"Q&amp;A: How Do I Delay the Start of my Windows Service?\"  src=\"https:\/\/www.coretechnologies.com\/blog\/wp-content\/uploads\/delay-windows-service-start-150x150-1.png\" style=\"aspect-ratio:1\/1\" style=\"aspect-ratio:1\/1\"><\/img><div class=\"relpost-block-single-text\"  style=\"height: 75px;font-family: Arial;  font-size: 12px;  color: #333333;\"><h2 class=\"relpost_card_title\">Q&amp;A: How Do I Delay the Start of my Windows Service?<\/h2><\/div><\/div><\/a><a href=\"https:\/\/www.coretechnologies.com\/blog\/alwaysup\/alwaysup-version-8-0-released\/\"class=\"relpost-block-single\" ><div class=\"relpost-custom-block-single\"><img decoding=\"async\" loading=\"lazy\" class=\"relpost-block-single-image\" alt=\"New Version\"  src=\"https:\/\/www.coretechnologies.com\/blog\/wp-content\/uploads\/new-version-150x150.png\" style=\"aspect-ratio:1\/1\" style=\"aspect-ratio:1\/1\"><\/img><div class=\"relpost-block-single-text\"  style=\"height: 75px;font-family: Arial;  font-size: 12px;  color: #333333;\"><h2 class=\"relpost_card_title\">AlwaysUp Version 8.0 Released<\/h2><\/div><\/div><\/a><a href=\"https:\/\/www.coretechnologies.com\/blog\/alwaysup\/onedrive-folder-permissions\/\"class=\"relpost-block-single\" ><div class=\"relpost-custom-block-single\"><img decoding=\"async\" loading=\"lazy\" class=\"relpost-block-single-image\" alt=\"Q&amp;A: Why Can&#039;t OneDrive Find my Folder?\"  src=\"https:\/\/www.coretechnologies.com\/blog\/wp-content\/uploads\/onedrive-security-150x150-1.png\" style=\"aspect-ratio:1\/1\" style=\"aspect-ratio:1\/1\"><\/img><div class=\"relpost-block-single-text\"  style=\"height: 75px;font-family: Arial;  font-size: 12px;  color: #333333;\"><h2 class=\"relpost_card_title\">Q&amp;A: Why Can&#039;t OneDrive Find my Folder?<\/h2><\/div><\/div><\/a><\/div><!-- close relpost-block-container --><div style=\"clear: both\"><\/div><\/div><!-- close filter class --><\/div><!-- close relpost-thumb-wrapper -->","protected":false},"excerpt":{"rendered":"<p>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&#8217;s technology of choice for 24\/7 operation &mdash; &hellip; <a href=\"https:\/\/www.coretechnologies.com\/blog\/alwaysup\/vs-custom-windows-service\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":6691,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[26,47,196],"class_list":["post-6607","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-alwaysup","tag-alwaysup-tag","tag-buy-vs-build","tag-windows-services-2"],"_links":{"self":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/6607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=6607"}],"version-history":[{"count":4,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/6607\/revisions"}],"predecessor-version":[{"id":13226,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/6607\/revisions\/13226"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/media\/6691"}],"wp:attachment":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=6607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=6607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=6607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}