<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://knowledgebase.pirho.net/index.php?action=history&amp;feed=atom&amp;title=Applications_Demistified</id>
	<title>Applications Demistified - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://knowledgebase.pirho.net/index.php?action=history&amp;feed=atom&amp;title=Applications_Demistified"/>
	<link rel="alternate" type="text/html" href="https://knowledgebase.pirho.net/index.php?title=Applications_Demistified&amp;action=history"/>
	<updated>2026-09-10T08:03:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://knowledgebase.pirho.net/index.php?title=Applications_Demistified&amp;diff=468&amp;oldid=prev</id>
		<title>Dex: /* Applications Demystified */</title>
		<link rel="alternate" type="text/html" href="https://knowledgebase.pirho.net/index.php?title=Applications_Demistified&amp;diff=468&amp;oldid=prev"/>
		<updated>2026-08-13T08:57:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Applications Demystified&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:57, 13 August 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= Applications Demystified =&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Summary:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Summary:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Applications have existed for as long as computers have been capable of running software, yet the term &amp;#039;&amp;#039;application&amp;#039;&amp;#039; has become increasingly ambiguous. Today an application may be a traditional executable, a web site that behaves like a desktop program, a mobile app installed from a store, a Progressive Web App (PWA), or a hybrid solution combining several technologies.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Applications have existed for as long as computers have been capable of running software, yet the term &amp;#039;&amp;#039;application&amp;#039;&amp;#039; has become increasingly ambiguous. Today an application may be a traditional executable, a web site that behaves like a desktop program, a mobile app installed from a store, a Progressive Web App (PWA), or a hybrid solution combining several technologies.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-467:rev-468:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dex</name></author>
	</entry>
	<entry>
		<id>https://knowledgebase.pirho.net/index.php?title=Applications_Demistified&amp;diff=467&amp;oldid=prev</id>
		<title>Dex: Created page with &quot;= Applications Demystified =  &#039;&#039;&#039;Summary:&#039;&#039;&#039; Applications have existed for as long as computers have been capable of running software, yet the term &#039;&#039;application&#039;&#039; has become increasingly ambiguous. Today an application may be a traditional executable, a web site that behaves like a desktop program, a mobile app installed from a store, a Progressive Web App (PWA), or a hybrid solution combining several technologies.  This article explores the major application delivery m...&quot;</title>
		<link rel="alternate" type="text/html" href="https://knowledgebase.pirho.net/index.php?title=Applications_Demistified&amp;diff=467&amp;oldid=prev"/>
		<updated>2026-08-13T08:57:04Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= Applications Demystified =  &amp;#039;&amp;#039;&amp;#039;Summary:&amp;#039;&amp;#039;&amp;#039; Applications have existed for as long as computers have been capable of running software, yet the term &amp;#039;&amp;#039;application&amp;#039;&amp;#039; has become increasingly ambiguous. Today an application may be a traditional executable, a web site that behaves like a desktop program, a mobile app installed from a store, a Progressive Web App (PWA), or a hybrid solution combining several technologies.  This article explores the major application delivery m...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Applications Demystified =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Applications have existed for as long as computers have been capable of running software, yet the term &amp;#039;&amp;#039;application&amp;#039;&amp;#039; has become increasingly ambiguous. Today an application may be a traditional executable, a web site that behaves like a desktop program, a mobile app installed from a store, a Progressive Web App (PWA), or a hybrid solution combining several technologies.&lt;br /&gt;
&lt;br /&gt;
This article explores the major application delivery mechanisms, explains how they differ, and demonstrates that most solutions ultimately consist of the same building blocks: code, a user interface, a runtime environment, and a method of delivery.&lt;br /&gt;
&lt;br /&gt;
== Context ==&lt;br /&gt;
&lt;br /&gt;
The software industry often introduces new terminology to describe evolving approaches to application delivery.&lt;br /&gt;
&lt;br /&gt;
Terms such as:&lt;br /&gt;
&lt;br /&gt;
* Native Application&lt;br /&gt;
* Web Application&lt;br /&gt;
* Single Page Application (SPA)&lt;br /&gt;
* Progressive Web App (PWA)&lt;br /&gt;
* Hybrid Application&lt;br /&gt;
* Widget&lt;br /&gt;
* Cloud Application&lt;br /&gt;
* Software as a Service (SaaS)&lt;br /&gt;
&lt;br /&gt;
are frequently used interchangeably despite referring to very different concepts.&lt;br /&gt;
&lt;br /&gt;
In reality, most application technologies attempt to solve the same challenge:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
How do we deliver software functionality to users in a way that is efficient, maintainable, portable, and user-friendly?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Understanding the evolution of application delivery helps architects and developers make informed design decisions rather than simply following current trends.&lt;br /&gt;
&lt;br /&gt;
== What Is An Application? ==&lt;br /&gt;
&lt;br /&gt;
At its simplest, an application consists of four elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Application&lt;br /&gt;
│&lt;br /&gt;
├── User Interface&lt;br /&gt;
├── Business Logic&lt;br /&gt;
├── Data&lt;br /&gt;
└── Runtime Environment&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The runtime environment provides the services the application requires to operate.&lt;br /&gt;
&lt;br /&gt;
Examples include:&lt;br /&gt;
&lt;br /&gt;
* Windows&lt;br /&gt;
* Linux&lt;br /&gt;
* macOS&lt;br /&gt;
* Android&lt;br /&gt;
* iOS&lt;br /&gt;
* Java Runtime Environment (JRE)&lt;br /&gt;
* .NET Runtime&lt;br /&gt;
* Web Browser&lt;br /&gt;
&lt;br /&gt;
Different application technologies primarily differ in the runtime they target.&lt;br /&gt;
&lt;br /&gt;
== A Taxonomy of Applications ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Applications&lt;br /&gt;
│&lt;br /&gt;
├── Native Applications&lt;br /&gt;
│   ├── Windows&lt;br /&gt;
│   ├── macOS&lt;br /&gt;
│   ├── Linux&lt;br /&gt;
│   ├── Android&lt;br /&gt;
│   └── iOS&lt;br /&gt;
│&lt;br /&gt;
├── Web-Based Applications&lt;br /&gt;
│   ├── Traditional Web Apps&lt;br /&gt;
│   ├── SPAs&lt;br /&gt;
│   ├── PWAs&lt;br /&gt;
│   └── SaaS Platforms&lt;br /&gt;
│&lt;br /&gt;
├── Hybrid Applications&lt;br /&gt;
│   ├── Electron&lt;br /&gt;
│   ├── Cordova&lt;br /&gt;
│   ├── Capacitor&lt;br /&gt;
│   └── MAUI Hybrid&lt;br /&gt;
│&lt;br /&gt;
└── Historical Technologies&lt;br /&gt;
    ├── HTA&lt;br /&gt;
    ├── Java Applets&lt;br /&gt;
    ├── Widgets&lt;br /&gt;
    ├── AIR&lt;br /&gt;
    └── Silverlight&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Native Applications ==&lt;br /&gt;
&lt;br /&gt;
A native application is compiled specifically for a particular operating system and executes directly against that platform&amp;#039;s APIs.&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
* Direct access to operating system functionality&lt;br /&gt;
* High performance&lt;br /&gt;
* Deep platform integration&lt;br /&gt;
* Platform-specific development tools&lt;br /&gt;
* Platform-specific deployment mechanisms&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Typical Technologies&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| Win32, MFC, .NET, WinUI&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| Cocoa, Swift&lt;br /&gt;
|-&lt;br /&gt;
| Linux&lt;br /&gt;
| GTK, Qt&lt;br /&gt;
|-&lt;br /&gt;
| Android&lt;br /&gt;
| Kotlin, Java&lt;br /&gt;
|-&lt;br /&gt;
| iOS&lt;br /&gt;
| Swift, Objective-C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advantages ===&lt;br /&gt;
&lt;br /&gt;
* Excellent performance&lt;br /&gt;
* Rich operating system integration&lt;br /&gt;
* Full access to device capabilities&lt;br /&gt;
&lt;br /&gt;
=== Disadvantages ===&lt;br /&gt;
&lt;br /&gt;
* Multiple codebases may be required&lt;br /&gt;
* Higher development and maintenance costs&lt;br /&gt;
* Platform-specific expertise required&lt;br /&gt;
&lt;br /&gt;
== Web-Based Applications ==&lt;br /&gt;
&lt;br /&gt;
Web applications execute within a web browser rather than directly on the operating system.&lt;br /&gt;
&lt;br /&gt;
Historically, a web application was little more than a website capable of processing user input. Modern web applications can be remarkably sophisticated and often rival desktop applications in functionality.&lt;br /&gt;
&lt;br /&gt;
=== Traditional Web Applications ===&lt;br /&gt;
&lt;br /&gt;
Traditional web applications generate pages on a server and return fully rendered responses to the browser.&lt;br /&gt;
&lt;br /&gt;
Examples include:&lt;br /&gt;
&lt;br /&gt;
* Early SharePoint sites&lt;br /&gt;
* Webmail systems&lt;br /&gt;
* Content Management Systems&lt;br /&gt;
* E-commerce platforms&lt;br /&gt;
&lt;br /&gt;
Typical architecture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Browser&lt;br /&gt;
   │&lt;br /&gt;
HTTP&lt;br /&gt;
   │&lt;br /&gt;
Web Server&lt;br /&gt;
   │&lt;br /&gt;
Database&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Single Page Applications (SPA) ===&lt;br /&gt;
&lt;br /&gt;
Single Page Applications move much of the application logic into the browser.&lt;br /&gt;
&lt;br /&gt;
Examples include:&lt;br /&gt;
&lt;br /&gt;
* React applications&lt;br /&gt;
* Angular applications&lt;br /&gt;
* Vue applications&lt;br /&gt;
&lt;br /&gt;
Typical architecture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Browser&lt;br /&gt;
│&lt;br /&gt;
├── User Interface&lt;br /&gt;
├── Business Logic&lt;br /&gt;
└── API Calls&lt;br /&gt;
        │&lt;br /&gt;
        ▼&lt;br /&gt;
      Backend&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This model often provides a more responsive user experience by reducing page reloads.&lt;br /&gt;
&lt;br /&gt;
=== Progressive Web Applications (PWA) ===&lt;br /&gt;
&lt;br /&gt;
A Progressive Web Application is a web application enhanced with browser technologies that allow it to behave more like an installed application.&lt;br /&gt;
&lt;br /&gt;
Common features include:&lt;br /&gt;
&lt;br /&gt;
* Offline support&lt;br /&gt;
* Service Workers&lt;br /&gt;
* Push Notifications&lt;br /&gt;
* Installation from the browser&lt;br /&gt;
* Home Screen integration&lt;br /&gt;
&lt;br /&gt;
A PWA remains fundamentally a web application.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Web Application&lt;br /&gt;
      +&lt;br /&gt;
Manifest&lt;br /&gt;
      +&lt;br /&gt;
Service Worker&lt;br /&gt;
      =&lt;br /&gt;
Progressive Web App&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Software as a Service (SaaS) ===&lt;br /&gt;
&lt;br /&gt;
SaaS describes a delivery model rather than a specific technology.&lt;br /&gt;
&lt;br /&gt;
Examples include:&lt;br /&gt;
&lt;br /&gt;
* Microsoft 365&lt;br /&gt;
* Salesforce&lt;br /&gt;
* ServiceNow&lt;br /&gt;
* Google Workspace&lt;br /&gt;
&lt;br /&gt;
A SaaS platform may internally use:&lt;br /&gt;
&lt;br /&gt;
* Traditional web applications&lt;br /&gt;
* SPAs&lt;br /&gt;
* PWAs&lt;br /&gt;
* Hybrid technologies&lt;br /&gt;
&lt;br /&gt;
The defining characteristic is that the software is consumed as a service.&lt;br /&gt;
&lt;br /&gt;
== Hybrid Applications ==&lt;br /&gt;
&lt;br /&gt;
Hybrid applications attempt to bridge the gap between web technologies and native platforms.&lt;br /&gt;
&lt;br /&gt;
The objective is usually:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Write once, deploy everywhere.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Electron ===&lt;br /&gt;
&lt;br /&gt;
Electron combines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Application&lt;br /&gt;
+&lt;br /&gt;
Chromium&lt;br /&gt;
+&lt;br /&gt;
Node.js&lt;br /&gt;
=&lt;br /&gt;
Desktop Application&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples include:&lt;br /&gt;
&lt;br /&gt;
* Visual Studio Code&lt;br /&gt;
* Discord&lt;br /&gt;
* Slack&lt;br /&gt;
&lt;br /&gt;
Advantages:&lt;br /&gt;
&lt;br /&gt;
* Cross-platform&lt;br /&gt;
* Familiar web technologies&lt;br /&gt;
&lt;br /&gt;
Disadvantages:&lt;br /&gt;
&lt;br /&gt;
* Large deployment size&lt;br /&gt;
* Significant memory usage&lt;br /&gt;
&lt;br /&gt;
=== Apache Cordova ===&lt;br /&gt;
&lt;br /&gt;
Cordova packages web applications inside a native mobile container.&lt;br /&gt;
&lt;br /&gt;
This allows:&lt;br /&gt;
&lt;br /&gt;
* HTML&lt;br /&gt;
* CSS&lt;br /&gt;
* JavaScript&lt;br /&gt;
&lt;br /&gt;
to access selected device capabilities.&lt;br /&gt;
&lt;br /&gt;
=== Capacitor ===&lt;br /&gt;
&lt;br /&gt;
Capacitor evolved from the Cordova model and provides modern native integration for web applications.&lt;br /&gt;
&lt;br /&gt;
It is commonly used with:&lt;br /&gt;
&lt;br /&gt;
* Angular&lt;br /&gt;
* React&lt;br /&gt;
* Vue&lt;br /&gt;
&lt;br /&gt;
=== .NET MAUI Hybrid ===&lt;br /&gt;
&lt;br /&gt;
.NET MAUI Hybrid combines native desktop or mobile interfaces with embedded web technologies.&lt;br /&gt;
&lt;br /&gt;
This approach permits organisations with existing web development experience to leverage their skills while still producing native deployments.&lt;br /&gt;
&lt;br /&gt;
== Historical Technologies ==&lt;br /&gt;
&lt;br /&gt;
Many modern application platforms are built upon ideas first explored decades ago.&lt;br /&gt;
&lt;br /&gt;
=== HTML Applications (HTA) ===&lt;br /&gt;
&lt;br /&gt;
HTAs were introduced by Microsoft as trusted desktop applications based on Internet Explorer technologies.&lt;br /&gt;
&lt;br /&gt;
Characteristics included:&lt;br /&gt;
&lt;br /&gt;
* HTML user interfaces&lt;br /&gt;
* JavaScript and VBScript support&lt;br /&gt;
* Windows integration&lt;br /&gt;
* Reduced browser security restrictions&lt;br /&gt;
&lt;br /&gt;
An HTA can be viewed as a web application running with desktop-level trust.&lt;br /&gt;
&lt;br /&gt;
=== Java Applets ===&lt;br /&gt;
&lt;br /&gt;
Java Applets allowed Java applications to execute within web browsers.&lt;br /&gt;
&lt;br /&gt;
Their promise was:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Write Once&lt;br /&gt;
Run Anywhere&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Despite early popularity, browser support gradually disappeared due to security, performance, and usability concerns.&lt;br /&gt;
&lt;br /&gt;
=== Opera Widgets and W3C Widgets ===&lt;br /&gt;
&lt;br /&gt;
Widgets attempted to provide small, focused applications that could be installed independently or embedded into larger environments.&lt;br /&gt;
&lt;br /&gt;
Examples included:&lt;br /&gt;
&lt;br /&gt;
* Desktop widgets&lt;br /&gt;
* Dashboard widgets&lt;br /&gt;
* Mobile widgets&lt;br /&gt;
&lt;br /&gt;
Many widget concepts later influenced modern application component architectures.&lt;br /&gt;
&lt;br /&gt;
=== Adobe AIR ===&lt;br /&gt;
&lt;br /&gt;
Adobe AIR combined:&lt;br /&gt;
&lt;br /&gt;
* Flash&lt;br /&gt;
* HTML&lt;br /&gt;
* JavaScript&lt;br /&gt;
&lt;br /&gt;
with desktop deployment capabilities.&lt;br /&gt;
&lt;br /&gt;
AIR was particularly popular for media-rich applications before the decline of Flash technologies.&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Silverlight ===&lt;br /&gt;
&lt;br /&gt;
Silverlight was Microsoft&amp;#039;s browser-hosted application framework.&lt;br /&gt;
&lt;br /&gt;
It provided:&lt;br /&gt;
&lt;br /&gt;
* Rich user interfaces&lt;br /&gt;
* .NET programming&lt;br /&gt;
* Multimedia capabilities&lt;br /&gt;
&lt;br /&gt;
Silverlight was eventually superseded by modern web standards and HTML5 technologies.&lt;br /&gt;
&lt;br /&gt;
== Common Themes ==&lt;br /&gt;
&lt;br /&gt;
Although application technologies vary greatly, most share a common structure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Application&lt;br /&gt;
     │&lt;br /&gt;
     ▼&lt;br /&gt;
Runtime&lt;br /&gt;
     │&lt;br /&gt;
     ▼&lt;br /&gt;
Operating System&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The primary differences are:&lt;br /&gt;
&lt;br /&gt;
* Where the runtime exists&lt;br /&gt;
* Which APIs are exposed&lt;br /&gt;
* How the application is delivered&lt;br /&gt;
* How the application is updated&lt;br /&gt;
&lt;br /&gt;
The business logic itself is often remarkably similar.&lt;br /&gt;
&lt;br /&gt;
== Choosing the Right Approach ==&lt;br /&gt;
&lt;br /&gt;
No application technology is universally superior.&lt;br /&gt;
&lt;br /&gt;
Considerations include:&lt;br /&gt;
&lt;br /&gt;
* Performance requirements&lt;br /&gt;
* Platform targets&lt;br /&gt;
* Offline requirements&lt;br /&gt;
* Security constraints&lt;br /&gt;
* Development cost&lt;br /&gt;
* Existing team skills&lt;br /&gt;
* Long-term maintainability&lt;br /&gt;
&lt;br /&gt;
The best solution is often the one that balances business requirements with technical constraints rather than the newest or most fashionable technology.&lt;br /&gt;
&lt;br /&gt;
== Key Takeaways ==&lt;br /&gt;
&lt;br /&gt;
* An application consists of code, data, a user interface, and a runtime environment.&lt;br /&gt;
* Native applications execute directly against operating system APIs.&lt;br /&gt;
* Web applications execute within a browser.&lt;br /&gt;
* PWAs are enhanced web applications rather than a separate application type.&lt;br /&gt;
* Hybrid technologies attempt to combine the benefits of native and web approaches.&lt;br /&gt;
* Many modern solutions are evolutionary improvements upon ideas explored decades earlier.&lt;br /&gt;
* Understanding application delivery mechanisms helps architects make informed design decisions and avoid reinventing previous mistakes.&lt;br /&gt;
&lt;br /&gt;
== Related Topics ==&lt;br /&gt;
&lt;br /&gt;
* [[Progressive Web Applications]]&lt;br /&gt;
* [[Single Page Applications]]&lt;br /&gt;
* [[Software as a Service]]&lt;br /&gt;
* [[Runtime Environments]]&lt;br /&gt;
* [[Application Architecture]]&lt;br /&gt;
* [[Offline First Design]]&lt;br /&gt;
* [[Opera Widgets]]&lt;br /&gt;
* [[Microsoft HTA]]&lt;br /&gt;
* [[Cross Platform Development]]&lt;/div&gt;</summary>
		<author><name>Dex</name></author>
	</entry>
</feed>