Revolutionize Your SaaS Development with BlazorPlate

The All-In-One Blazor Boilerplate and Admin Dashboard Template You Need

Overview

BlazorPlate is a comprehensive solution for .NET projects that utilizes .NET 8 and Blazor WASM. It offers pre-built boilerplate code with minimal customization required, catering to the needs of startups aiming to minimize development costs and efforts. By providing a well-structured and organized foundation, BlazorPlate enables startups to focus on building their business rather than the code. BlazorPlate's code ensures future modifications are more straightforward, reducing development time.

Key Features

BlazorPlate's development team has completely redesigned ASP.NET Identity to offer an unparalleled user authentication experience. The revamped version utilizes Blazor-based components instead of traditional razor pages, simplifying the authentication process for businesses.

BlazorPlate's ASP.NET Identity includes crucial features such as Two-Factor Authentication, sign-in, sign-up, password reset, and account activation via email confirmation. These features ensure reliable and secure user authentication. With BlazorPlate's customized ASP.NET Identity, businesses can quickly create a secure and reliable user authentication system, allowing them to focus on developing their core business functionalities.

BlazorPlate introduces robust Two-Factor Authentication (2FA), an identity and access management security method that requires two forms of identification to access resources and data. With 2FA enabled, users are required to verify their identity using two distinct authentication methods:

  • Something You Know: This factor typically involves a combination of a username and password, which the user knows and uses to authenticate themselves.
  • Something You Have: This factor involves a physical item or token that the user possesses, such as a smartphone with an authenticator app. The authenticator app generates a one-time passcode, which the user must enter during the authentication process.

By requiring both a username/password combination and a one-time passcode from an authenticator app, BlazorPlate significantly enhances protection against unauthorized access, strengthening overall account security and safeguarding sensitive resources and data.

BlazorPlate now offers API-Level 2FA Enforcement, a feature inspired by real-world security practices, notably seen in banking applications. For example, when a user attempts to access sensitive banking APIs to check their account balance or initiate a transaction, API-Level 2FA Enforcement in BlazorPlate redirects the user to a 2FA page, where they are prompted to authenticate via 2FA before proceeding. This mirrors the stringent security measures implemented by banks, where users must provide additional authentication, such as a one-time passcode generated by the authenticator app on their mobile device, for accessing critical financial information or conducting transactions online. BlazorPlate's API-Level 2FA Enforcement extends this level of security to any designated API Controller or Action, ensuring that only authorized users with valid credentials and secondary authentication can access sensitive functionalities. This feature significantly enhances the application's security posture and protects users' financial data from unauthorized access and potential fraud.

Experience the power of BlazorPlate with the capability to integrate with an extensive range of up to 99 external OAuth authentication providers. From well-known platforms such as Outlook, Gmail, Twitter, and LinkedIn to a multitude of others, effortlessly empower your users with Single Sign-On (SSO). This feature enables users to seamlessly sign in to your platform using their personal or work emails, ensuring a smooth and efficient authentication process.

BlazorPlate offers a simple and streamlined way to manage user authentication and authorization, making it the ultimate solution for developers. With BlazorPlate's built-in user management system, developers can easily manage users and roles, grant access to resources, and implement robust security measures. Developers can use BlazorPlate's permission-based authorization to control user access to application resources, preventing unauthorized access and data breaches.

BlazorPlate also allows for the customization of various user settings, including sign-in, password policy, and lockout settings, to meet specific security requirements. This feature is essential for startups that require a secure and reliable user authentication system.

Authorization is crucial for securing client requests for data access in Web APIs. However, the built-in authorization filter in .NET Web API projects can be challenging to manage, as it requires hardcoding which users or roles can access newly added APIs or actions.

BlazorPlate's innovative API Dynamic Authorization addresses this challenge by automatically scanning the system APIs and their actions for potential permissions during application startup. It saves the permissions in the database's permission table, and any new API or action changes are synced by restarting the application.

This approach provides dynamic authorization, allowing system administrators to grant or revoke permission from users or roles directly through the administration GUI panel. This eliminates the need for hardcoding authorization in the built-in AuthorizeAttribute filter, providing a more efficient and streamlined approach.

BlazorPlate provides an innovative solution for building applications for multiple clients or organizations with its powerful multitenancy feature. This feature provides support for both single-tenant and multi-tenant modes, giving developers more flexibility and options to choose from based on their needs.

Data Isolation Strategies

BlazorPlate provides robust support for tenant data isolation, ensuring that each tenant can only access and manipulate their own data. BlazorPlate offers two primary strategies for data isolation:

  • Shared database for all tenants.
  • Separate database for each tenant.

Shared Database for All Tenants

The Shared Database for All Tenants strategy ensures that tenants can easily access and manipulate their data, while still enjoying the benefits of cost savings and simplified maintenance. BlazorPlate implements a layer of abstraction that maps each tenant to their data, ensuring that each tenant has complete control over their own data.

Separate Database for Each Tenant

Alternatively, developers can opt for the Separate Database for Each Tenant strategy, which offers unparalleled data isolation and control. With this approach, each tenant has their own separate database, which means they have complete control over their data, eliminating any chance of interference from other tenants. Though it requires higher costs and more maintenance, this approach guarantees complete data privacy and control for each tenant.

Tenant Models

BlazorPlate provides two tenant models:

  • Single-Tenant Model.
  • Multi-Tenant Model.

Single-Tenant Model

In single-tenant model, each tenant has their own copy of the software and a dedicated database exclusively owned by that tenant. This requires deploying a separate instance of the application for each tenant, providing complete control over their application. While this approach may incur higher costs and increased maintenance, it ensures superior data isolation and control.

Multi-Tenant Model

In multi-tenant model, multiple tenants can share the same instance of the software application with a shared database for all tenants or separate databases for each tenant. This approach offers cost savings and simplified maintenance.

Hybrid Model

BlazorPlate's hybrid multi-tenancy model offers tenants the flexibility to choose between a shared database for all tenants or a separate database for each tenant. This hybrid approach ensures efficient data isolation and control while providing options tailored to the unique needs of each tenant. This can be achieved by deploying two instances of the Tenant Dedicated Portal (TDP) with different Data Isolation Strategies. Furthermore, the Tenant Onboarding Portal (TOP) can be customized to allow tenants to select their preferred strategy during registration. This customization automatically directs them to the appropriate TDP instance, ensuring a seamless setup process. With BlazorPlate's hybrid model, tenants can customize their environment to suit their requirements while benefiting from the efficiency and resource sharing advantages of multi-tenancy.

Tenant Onboarding

BlazorPlate serves as a crucial entry point for your SaaS customers through its Tenant Onboarding portal, ensuring a smooth transition for them to quickly reach their dedicated portals. This is made possible by a customized subdomain URL matching the tenant's business name, leading them directly to their Tenant Dedicated Portal (TDP). Tenants can effortlessly access their portals via a unique subdomain URL, like my-business-name.saas.com.

Tenants Administration

The Tenant Administration Portal (TAP) serves as a centralized platform managed by Host Admins, who represent the company behind the Software as a Service (SaaS) model. It efficiently handles tenant management, including the creation of tenant accounts on behalf of customers, providing Host Admins with foundational functionalities for modifying, deleting, and managing these accounts. These functionalities streamline tenant management processes, ensuring smooth operations within the SaaS ecosystem.

BlazorPlate is a comprehensive platform designed to streamline SaaS development processes, which includes an efficient and secure file storage management system. This feature stands out with its ability to switch seamlessly between On-Premise and Azure Storage options, providing the best of both worlds.

BlazorPlate's file storage management feature provides the following benefits:

  • Switching between On-Premise and Azure Storage options without needing to restart or redeploy the application.
  • Efficient data storage on local servers using On-Premise storage.
  • Enjoying the benefits of storing data on the Microsoft Azure cloud platform with Azure Storage.
  • Increased flexibility and convenience, saving valuable time and effort.

With BlazorPlate, you can enjoy seamless management of database commands thanks to its atomic transaction processing. This feature allows for the efficient handling of multiple database commands in a single batch, eliminating any data inconsistencies.

BlazorPlate's atomic database transaction feature provides the following benefits:

  • Efficient management of multiple database commands in a single batch without any hitches.
  • Easy rollback support, which reverts the system to its original state in case of any errors.
  • Improved consistency in data management processes.
  • Reduced likelihood of data inconsistencies, resulting in a more robust and reliable application.

BlazorPlate empowers you with the Concurrency Conflict Handler, an indispensable feature that expertly manages concurrent editing scenarios. When multiple users attempt to edit or delete the same record simultaneously, this powerful mechanism steps in to ensure data integrity and prevent any accidental data loss. With the Concurrency Conflict Handler, you can rest assured that your application will seamlessly handle concurrent updates and deletions by multiple users.

The Concurrency Conflict Handler offers the following advantages:

  • Efficiently manages simultaneous database commands, maintaining data consistency effortlessly.
  • Empowers you to eliminate the chances of data conflicts caused by simultaneous editing or deletion of records.
  • Ensures data integrity and prevents any unintentional data loss when multiple users attempt to modify the same data at the same time.
  • Seamlessly supports various database systems, enabling smooth integration with different database engines.

BlazorPlate's API response wrapper and exception handling feature provide developers with a comprehensive solution for streamlining API consumption. This feature offers a unified API response structure, which simplifies development processes and eliminates inconsistencies in API responses.

BlazorPlate's API response wrapper and exception handling feature provide the following benefits:

  • Improved management of inconsistent API responses and error handling.
  • Unified API response structure for successful and failed responses.
  • Streamlined and predictable JSON formats.
  • Crystal-clear and concise error messages for system exceptions, ensuring a smooth and hassle-free user experience.
  • Quick identification and resolution of any issues that may arise.

BlazorPlate offers a robust Access Token Lifespan Management feature to ensure secure and reliable application access. This feature includes the following capabilities:

  • Intuitive GUI administration panel: BlazorPlate simplifies the management of access and refresh tokens by providing an intuitive GUI administration panel.
  • Expiration time frame: Administrators can limit the time frame in which access and refresh tokens can be used, thus increasing the security of your application.
  • Real-time adjustment: BlazorPlate offers real-time adjustment capabilities that enable system administrators to make changes to token lifespans without disrupting the application.
  • By incorporating these features, BlazorPlate ensures that your application remains secure and provides a seamless user experience.

BlazorPlate is designed to create user-friendly applications that cater to a global audience. To support this goal, BlazorPlate offers a powerful Localization & Multilingual Support feature, which includes the following capabilities:

  • Multi-lingual support: With BlazorPlate, developers can define additional languages for their projects, making it easier to reach a wider audience regardless of location or language preference.
  • Seamless addition of new languages: BlazorPlate's Localization feature allows developers to seamlessly add new languages to their projects, enabling the localization of various content types, including text and images.
  • Enhanced user experience: By offering multi-lingual support, BlazorPlate enhances the user experience, increasing user engagement and satisfaction.
  • Incorporating BlazorPlate's Localization & Multilingual Support feature into your application can significantly improve your application's reach and appeal to global audiences.

BlazorPlate's Clean Architecture is a developer-friendly solution that utilizes an organized and scalable project structure. The architecture is designed with various layers, including Presentation, Application, Domain, and Infrastructure, which promote modularity, maintainability, and separation of concerns.

Key features of BlazorPlate's Clean Architecture include:

  • Easy testing: Each layer can be tested separately, significantly reducing development time.
  • Scalability: New features or frameworks can be incorporated without impacting the entire project, allowing for faster development and quicker response times to meet changing user requirements.
  • Flexibility: Developers can choose the latest frameworks and technologies while still maintaining a consistent codebase.
  • BlazorPlate's Clean Architecture is a powerful tool for developers, offering a range of benefits that make the development process more efficient and effective.

BlazorPlate is built on MudBlazor, the top-rated Blazor Components UI Framework. MudBlazor is an open-source project that provides a wide range of versatile and responsive UI components designed with Material Design.

Features of MudBlazor include:

  • Versatile UI components: MudBlazor provides a plethora of UI components, including buttons, cards, forms, and dialogs, to create a visually appealing and intuitive user interface.
  • Advanced components: MudBlazor also offers advanced components like data grids and charts, making it easy for users to access complex data in a simplified and user-friendly way.
  • Material Design: MudBlazor's UI components are designed with Material Design, a popular design language that promotes clean, modern, and intuitive interfaces.
  • BlazorPlate's integration with MudBlazor allows developers to enhance their web application's appearance and user experience while streamlining their development process. With MudBlazor, developers can create a variety of web applications, from simple websites to complex enterprise applications.

BlazorPlate's integration with MudBlazor allows developers to enhance their web application's appearance and user experience while streamlining their development process. With MudBlazor, developers can create a variety of web applications, from simple websites to complex enterprise applications.

Conclusion

In conclusion, BlazorPlate is a powerful web application development platform that offers developers a plethora of features and tools to build efficient, scalable, and secure web applications. From its clean architecture and robust multitenancy support to its user-friendly interface and versatile UI components powered by MudBlazor, BlazorPlate provides developers with the flexibility to build web applications that meet the specific needs of their clients or organizations.

BlazorPlate's multitenancy feature, in particular, is a game-changer for developers looking to build applications for multiple clients or organizations. With its two data isolation strategies, developers can choose the approach that works best for their application, either with shared databases or separate databases for each tenant. BlazorPlate's subdomain resolution strategy ensures a smooth experience for tenants, minimizing the risk of unauthorized data access and optimizing system performance.

Overall, BlazorPlate is a comprehensive web application development platform that offers developers the flexibility, scalability, and security they need to succeed in today's rapidly evolving digital landscape. With its innovative features and user-friendly interface, BlazorPlate is a powerful tool for building web applications that deliver outstanding results.