Application Frameworks

In a typical application, much of the required functionality is not directly related to the core business use case but is instead functionality common to most applications.

This can include code related to

  • database connectivity and persistence
  • security and authorization
  • error handling, reporting, and logging
  • automated testing
  • front-end components
  • localization
  • input validation
  • user management, and signup

Software libraries (packages)

Most of this common functionality is already available in the form of third party prebuilt packages (software libraries) which can be imported and used in your application saving many hours of software development.

A typical .NET web application (other development environments are available) can require several thousand third party software libraries,

Using software libraries offers many advantages

  • time-saving
  • code reuse
  • reliability as code has already been tested by other developers
  • code maintained by the publisher
  • versioning of code changes
  • parameter documentation etc.
  • availability of source code in many cases

Disadvantages

  • compatibility issues and conflicts with other software libraries can occur
  • breaking changes can be introduced between versions
  • the library can become obsolete if not maintained in future

Application Frameworks

An application framework provides most of the functionality above. You just need to implement your core business requirements.

Apps By Design often develop using .NET Core with various front ends. The application frameworks we use include

Radzen

Radzen is a Rapid application development environment that can generate CRUD frontends for Blazor or Angular quickly. It has a wide range of data sources, allows code customization and several deployment options. See our review here.

ASP.NetBoilerplate Framework

ASP.NET Boilerplate is a popular open-source web application framework.

Functionality includes

  • Front end options for Angular, Vue.js, React and JQuery
  • JQuery version recently upgraded to use AdminLte.IO theme 3 based on bootstrap 4
  • Signup and login forms
  • Management of users, tenants, and roles
  • Multi-tenant
  • Good documentation
  • MIT license
  • JSON API documentation via Swagger
  • Create your application by selecting options via web form then follow the comprehensive instructions to extract, and run
  • Several tutorials and sample applications

ASP.NET Boilerplate – MVC JQuery template

ASP.Net Zero

We use ASP.NET Zero for large projects. It is a commercial startup solution based on the ASP.NET Boilerplate framework with lots of standard functionality included. Here are some recent user reviews.

ASPNetZero
ASP.NET Zero starter template

additional functionality to the ASP.NET Boilerplate template includes

  • Popular Metronic admin front-end with multiple layouts/themes
  • Forgot password, user lockout, change password
  • LDAP (Active Directory) / ADFS login
  • Two-factor authentication
  • Tenant signup
  • User and Role-based permission management
  • Feature and edition management
  • Online chat
  • Xamarin mobile application
  • Rapid Application Development Code generation tool
  • full access to the majority of project source files
  • generated project count limited by subscription level paid
  • unlimited deployments

ABP Framework

ABP Framework is the successor to the popular ASP.NET Boilerplate framework.

ABP.IO Razor pages web app template – new user

It is designed to be more modular and easier to upgrade than the ASP.NET Boilerplate framework but it more suited to new projects than porting over existing complex projects.

Functionality in the ABP Framework includes

  • front-end based on MVC JQuery with Razor pages or Angular SPA
  • Support for NoSql databases
  • Command line Interface tool
  • create custom application modules
  • bootstrap tag helpers
  • dynamic forms based on model classes
  • virtual file system
  • automated package upgrade vis ABP CLI
  • modular and designed for microservice use-cases
  • open source license based on LGPLv3.0
  • react-native mobile application
react-native app template – menu (android)
react-native app template – new user (android)

Note: The functionality and documentation of the ABP Framework was only partly complete at the time of review during June 2020.

ABP Commercial

ABP Commercial Web app template

ABP Commercial is based on the latest ABP Framework. The modules included and access to source files is dependent upon the subscription level paid.

Functionality includes

  • pre-built modules and front-end themes (Lepton)
  • CRUD page generator
  • unlimited projects and deployments