Costly Bare Minimum vs. Next Level Innovation (PowerApps vs. Web Application)

When it comes to developing an application, there are a variety of options available to choose from, each with their own pros and cons. Prior to analyzing the options, it is critical that the organization come to terms and establish its identity. Establishing an identity involves leadership to take inventory of their core competencies and reaching a consensus that the organization is far beyond being ordinary and thus views technology specifically information technology as either a commodity or rather a strategic asset and a discipline that separates the organization from its competition. As we dive deeper into the options, we'll make the assumption that the size (in terms of financials and process complexities) of the organization is one that needs a tier 1 ERP application in this case a Microsoft Dynamics 365 Finance & Operations (D365), and along with that the typical roster of talent that it takes to run such first class enterprise systems.

Power Platform vs. ASP.NET

The tech stacks being proposed consist of Microsoft's Power Platform, specifically PowerApps, while another option is to use ASP.Net and host the application in Azure App Service. Both options have their own unique benefits and drawbacks, and it's important to understand these in order to make the best decision for your project.

Power Platform Primer

Microsoft Power Platform is a low-code platform that enables users to create custom business applications without the need for extensive development resources. PowerApps is a part of the Power Platform that provides a visual, drag-and-drop interface and is marketed towards "citizen developers" or non-technical employees who are responsible for creating custom business applications.

ASP.NET Primer

ASP.NET is a development platform created by Microsoft that allows developers to build a variety of applications for purpose build use cases. ASP.NET provides a number of features that make it well-suited for building robust web applications, such as a built-in security system, support for Model-View-Controller (MVC) architecture, asynchronous programming, full featured caching mechanisms, and integration with other Microsoft technologies such as Azure and Visual Studio.

Solution Breakdown

In terms of pricing, the Power Platform has a different pricing model compared to Azure App Service. The Power Platform is a subscription-based model, where users pay for access to the platform and its features. On the other hand, Azure App Service is a pay-as-you-go model, where users only pay for the resources they consume.

In terms of time to market, PowerApps can allegedly be faster to develop and deploy compared to an ASP.Net application. However, this speed comes at the cost of flexibility and control over the user experience and performance capabilities. PowerApps is a platform designed for citizen developers, and as such, it comes with certain guardrails and limitations that can make it difficult to customize the application to meet specific requirements. An ASP.Net application, on the other hand, offers more flexibility and control over the application's design and functionality with its built-in features such asynchronous programming and caching mechanisms.

Perhaps the key difference between the two options is scalability. An ASP.Net application can be scaled without incurring additional costs in licenses, only consumption. On the other hand, PowerApps can be more cost-prohibitive when attempting to scale, as practitioners will need to purchase additional licenses to access more advanced features.

Finally, an ASP.Net application offers the utmost flexibility in terms of development. Developers are not bound or held hostage to vendor releases of features, which means that new features can be added without being limited by the capabilities of the platform. This can be particularly beneficial for projects that require a high degree of customization or specific functionality.

Whether you choose to develop an application using Microsoft's Power Platform or ASP.Net, it's important to understand the benefits and drawbacks of each option. PowerApps claims to be faster to develop and deploy, but it comes with certain limitations and costs that may make it less suitable for certain projects. An ASP.Net application, on the other hand, offers more flexibility and control over the user experience and performance capabilities, but it may take longer to develop and deploy. Ultimately, the choice will depend on the specific requirements of your project and more importantly your organization's identity. 

Development Costs: PowerApps and ASP.Net

When it comes to the initial development costs, there are a few factors to consider. For the purpose of this comparison, let's assume that a PowerApps application will take 2 months to develop, and an ASP.Net web application will take 3 months to develop. Additionally, let's assume that the developer salary is $10,000 per month on both platforms.

If we take these assumptions into account, the initial development costs for the PowerApps application would be 2 months x $10,000 = $20,000. Fast forward this means that the PowerApps application appears to be $10,000 cheaper to develop compared to the ASP.Net web application at 3 months x $10,000 = $30,000.

However, it's important to note that these are just the initial costs and the total cost of ownership may vary depending on a number of factors such as the complexity of the application, the number of developers working on the project, and the specific requirements of the project, but for the purpose of this review we are assuming that 1 developer is tasked with the projects.

It's also worth noting that the ongoing costs for both PowerApps and ASP.Net application are different. PowerApps has a subscription-based pricing model, so the ongoing costs will depend on the number of users, and the features that are being used, whereas the ongoing costs for an ASP.Net application will depend on the resources consumed by the application, such as storage, bandwidth and compute.

In summary, the initial development costs for a PowerApps application would be $20,000, and for an ASP.Net web application would be $30,000, assuming a 2 months and 3 months development time respectively and a developer salary of $10,000 per month.

Licensing/Hosting Costs: PowerApps

PowerApps is a subscription-based service, which means that users pay for access to the platform and its features. The licensing cost for PowerApps is $5 per user per month. This means that if you need to support an initial user base of 150 users, the licensing cost would be 150 users x $5/user/month = $750/month.

It's worth noting that there are different plans of PowerApps, such as PowerApps per App or PowerApps per user. PowerApps per App plan is intended for users who want to create and use custom business apps, and it's a per-app pricing model. PowerApps per User plan is intended for users who want to create and share custom business apps, and it's a per-user pricing model. The cost of the PowerApps per App plan is $10/app/month and the cost of the PowerApps per user plan is $40/user/month.

When it comes to scalability, the PowerApps licensing model can become cost-prohibitive when the number of users increases. As the number of users increases, the licensing costs will also increase. This means that as the user base grows, the costs associated with licensing PowerApps will also grow. This can be a significant barrier for organizations that need to support large user bases or that anticipate significant growth in the future.

Licensing/Hosting Costs: Web Application

The pricing model for an ASP.Net application running in Azure App Service is based on a pay-as-you-go model, which means that users only pay for the resources they consume. The main components that make up the cost of running an ASP.Net application in Azure App Service are:

  • Compute: This includes the cost of running the web app in an Azure App Service plan. The cost depends on the App Service plan tier selected and the number of instances running.
  • Storage: This includes the cost of storing the application's data in Azure storage. The cost depends on the type of storage used, such as Azure Blob storage or Azure SQL Database, as well as the amount of storage consumed.
  • Bandwidth: This includes the cost of data transfer in and out of the application. The cost depends on the amount of data transferred.
  • Additional services: This includes the cost of any additional services that the application may use, such as Azure Cosmos DB, Azure Event Hubs, or Azure Functions.

Users can also choose between different Azure App Service Plans, such as the Free, Shared, Basic, Standard, and Premium plans. Each plan offers different features and different levels of compute, storage, and bandwidth, and the costs vary accordingly. Users can also choose between Windows and Linux runtime environments.

When it comes to Azure App Service pricing, there are a variety of options available, each with its own costs and features. The Basic Tier, for example, provides 2 cores of compute and starts at $164.25 per month.

When compared to PowerApps, the costs of running an ASP.Net application in Azure App Service can be significantly lower over time. The pay-as-you-go model means that users only pay for the resources they consume, and the costs can be adjusted as needed. This means that as the user base grows, the costs associated with running the application will also grow. However, the costs will still be lower than the cost of licensing PowerApps for the same number of users.

Additionally, with Azure App Service, users can scale the application as needed, without incurring additional costs in licenses. This means that as the number of users or the load on the application increases, users can simply scale up the resources to meet the demand. This is in contrast to PowerApps, where the licensing costs will increase as the number of users increases.

When compared to PowerApps, the costs of running an ASP.Net application in Azure App Service can be significantly lower over time. The ability to scale the application as needed, without incurring additional costs in licenses, makes it a more cost-effective option for organizations that anticipate significant growth in the future.

Putting It All Together

Calculating the total costs for both PowerApps and the Azure App Service option over the next 3 years is a bit of a complex task, as it depends on various factors such as the number of users, the usage of the application, and the specific requirements of the project.

Assuming that the initial user base for PowerApps is 150 users, and the subscription cost is $5 per user per month, the total cost over 3 years would be $20,000 + (150 x $5 x 12 x 3) = $47,000. This is assuming that the number of users remains constant throughout the 3 years.

Assuming that the development costs for the ASP.Net web application is $30,000, and the Basic Tier with 2 cores of compute starts at $164.25 per month, the total cost over 3 years would be $30,000 + (164.25 x 12 x 3) = $35,913. This is assuming that the number of users remains constant throughout the 3 years and the application is not scaled.

It's important to keep in mind that the above costs are just estimates and the actual costs may vary. The costs for Azure App Service may be higher/lower if the application is scaled to meet the usage, and the costs for PowerApps may be higher if the number of users increases. Additionally, the costs for Azure App Service would also depend on additional services used, such as storage and bandwidth, which also need to be factored in.

In summary, based on the information provided, the total costs for PowerApps over the next 3 years are estimated to be $47,000, and the total costs for the Azure App Service option are estimated to be $35,913, assuming a constant user base and no scaling of the application over the 3 years. 

From here it is important to forecast and plan for outcomes that may turn out positively or negatively.  In this case a scenario unfolds that in year 5 we see user count increase by 100 for both approaches, if we were to revisit the numbers, we see an entirely different story told.

Taking another look at the PowerApps option now needing to support 250 users, we see $20,000 + (250 x $5 x 12 x 5) = $95,000. Applying the same scalability needs to the ASP.Net option we'll see only a slight increase due to assumed increase in compute, storage, and bandwidth consumption (approximately $7,500) and thus $30,000 + (164.25 x 12 x 5) + $7,500 = $47,355.

The Identity Crisis

The decision on whether to go with PowerApps or ASP.Net largely depends on the identity of the organization. Microsoft's Power Platform, including PowerApps, is marketed towards citizen developers in an organization, which means that the features available may be more limited compared to the full-featured capabilities of a more mature and fully adopted platform like ASP.Net.

If the organization is not a technology-driven organization and contracts all development work with the idea that software is written once and runs unchanged forever, PowerApps may be a better choice as it's a more user-friendly platform that can be used by non-technical employees. PowerApps is designed for creating simple, low-code solutions that can be quickly deployed without the need for extensive development resources. If this fits your organization, be prepared to be in the position of disappointing your internal customers by having to educate them on the limitations of the decided upon solution, as it will be difficult to enhance and accommodate future needs.

On the other hand, if the organization is more forward-thinking and employs software developers with the idea that there will always be efficiencies to be gained by forward-thinking technology advocates, ASP.Net is by far the better choice. ASP.Net offers more flexibility and control over the application's design and functionality, and it can be customized to meet the specific requirements of the project. Additionally, ASP.Net is a more mature platform with a larger developer community, which means that developers have access to a wider range of tools and resources.

Comments

Popular posts from this blog

Exploring C# Optimization Techniques from Entry-Level to Seasoned Veteran

Lost in Translation: The Risks and Rewards of Programming Language Selection In 2023

The Ultimate KPI: Why Knowledge Sharing, Collaboration, and Creative Freedom Are Critical to Success