New Application Development - Addon vs Standalone

At the starting phase of developing an application, the primary question usually comes like this—whether to make it an add-on application or a standalone application?

Before we get into the details, we need to understand what exactly these two terms mean in the computing world.

An add-on (also known as addon or plug-in) is a software application, which is added to an existing computer program to introduce specific features.

As per Microsoft’s style guide, the term add-on is supposed to represent the hardware features while add-ins should be used only for software utilities, although these guidelines are not really followed as terms are mixed up quite often. When a program supports add-ons, it usually means it supports customization. Web browsers have always supported the installation of different add-ons to suit the tastes and topics of different users by customizing the look and feel of that particular browser.

There are many reasons for introducing add-ons in computer applications. The primary reasons are:

  • To introduce abilities to extend an application by enabling third-party developers to create variety of add-ons
  • To support new features
  • To reduce the size of an application
  • To separate source code from an application because of incompatible software licenses

Usually, the host applications operate independently, which makes it possible for developers to add and update add-on features without impacting the host application itself. A host application doesn’t depend on add-ons but on the contrary, an add-on depends on the host application. Add-ons usually depend on the services provided by the host application and cannot operate by themselves.

A Standalone application is the type software that doesn’t comes bundled with other independent software features. In simple words, a standalone application does not require any separate software to operate.

A stand-alone application deploys services locally, uses the services, and terminates the services when they are no longer needed. If an application does not need to interact with any other applications, then it can be a stand-alone application with its own exclusive local service deployment. Services locally deployed by this application are not available to any other application.

A standalone application needs to be installed on every system which makes it hard to maintain. In the event of a system crash or a virus attack, when a system needs to be replaced or reinstalled, the application also needs to be reinstalled. The access to the application is limited only to the systems that have the application installed.

Standalone applications can never be kept online, and remote availability of data is practically impossible. However, there are situations where standalone application is the best choice. Here are a few:

  • Text mode printing on pre-printed stationary, which browsers fail to do
  • Where data security is very high and you don’t want the data to travel on the wire at all
  • Design applications which need very high responsiveness and at the same time work on big data structures
  • Printing on legacy continuous stationery
  • No need of networking, application is needed only on a single system
  • More hardware support like barcode printers, webcam, biometric devices, LED Panels, etc.
  • More Operating System level operations like direct backup to external devices, mouse control, etc.
  • Creation and manipulation of local files