SaaS is solution that's included with the Plus and Pro editions of Dofactory .NET. As with all our products, it comes with 100% source code.
SaaS University is a full-functional SaaS solution that has it all: it's multi-tenant, multi-timezone, multi-language, multi-locale, and multi-currency. It's designed for international universities and other educational organizations to help them manage their student and course registration records.
Imagine having this SaaS solution available to you with the latest SaaS development code and techniques and apply these directly to your own SaaS projects. Alternatively, use it to accelerate your career with newly gained skills as a SaaS expert.
To view the pages click on the menu on the left under VIEW APPLICATION PAGES. Soon you'll deliver similar results in your own applications.
Create multi-tenant SaaS solutions using the latest SaaS design patterns and principles. 100% source code.
SaaS University is a multi-tenant SaaS solution for universities and other educational organizations all over the world. It's designed to manage students, courses, classes, instructors, and enrollments.
The application is multi-tenant, multi-language, multi-locale, multi-timezone, and multi-currency. The demo database contains five tenants, two of which have complete data sets: Stanford Univerity and University of Amsterdam, each with their own language, locale, timezone, and currency settings.
Stanford Univerity is configured with US culture settings, whereas the University of Amsterdam is setup with the Dutch culture, language, and the euro currency.
Localization and globalization of the UI uses cached language strings that are loaded into memory from the database at startup time.
ASP.NET Identity is used for identity management, authentication, and authorization. Three roles are supported: Host, Admin, and User.
Host is a special role designed to only manage tenants and system resources -- this role cannot see any of the tenant's private data. The Admin role performs administrative tasks for their particular org (organization, i.e. tenant) including managing the org's users. Finally, end-users of the application have the User role and they can only see their own data within the org.
The application uses a single multi-tenant database (just like Salesforce, the world's largest SaaS vendor). Each table has a tenantId column to identify the owning tenant of the records.
SaaS University is fully DX (Design Excellence™) and CX (Code Excellence™) compliant, which means this is a solution with minimal footprint and a codebase that is easy-to-understand and easy-to-maintain. DX and CX are important application design guides. Both are included with all editions of Dofactory .NET.
Of course 100% source code is included which you can use right away in your own projects. Patterns and features of this solution are listed to your left under PATTERNS AND FEATURES.
Code Excellence™ is designed to help you create simple, easily navigable VS solutions. Below is a screenshot of the entire multi-tentant SaaS University solution: 1 project and only 4 main folders: Areas, Code, Data, and Domain.
The next few images show the expanded folders.
Below is the Areas folder. Notice the _Base folder. This is the _Shared folder that was originally located under the Views folder which does not exist anymore. The _Base folder provides much easier access to these important files.
All Areas are Flat Areas without subfolders. Models, views, and controllers are all at the same location making the code highly discoverable. No more clicking through 3 different subfolders over and over again. Below is the expanded Student Area (more on Areas later).
Infrastructure code resides in a folder named Code.
Each category in its own subfolder.
The LocalDb database is placed in the Data folder.
When using SQL Server this folder won't exist.
Reverse engineered EF entities using the Database First approach are located in the Domain folder. The entire application has just 17 entities which is remarkable for such a feature-rich solution This is accomplished by creating a Ultra-Clean™ Datamodel for the database.
The models, views, and controller of a module (Area) are located in a single folder (see Student Area below). Models and views are paired by name: List.cs, List.cshtml, Detail.cs, Detail.cshtml, etc. The _ (underscore) prefixed files represent partial views and their paired models. Everything is so simple and easy to access.
Below is the Student controller, which is absolutely simple and minimal. Request handling in the SaaS controllers takes place in 4 standard regions: Pages, Handlers, Helpers, and Mapping.
The example below is specific for .NET Core, which includes a BaseController that features the 'Lazy Injection' pattern. This patterns makes dependency injected (DI) services available without any coding.
The Pages region in the above code has the standard 5 action methods, most of which are just two lines of code. Each request is passed on to a handler in the Handlers region which processes the request. Handlers come in two types: query handlers or command handlers. The Helpers region is optional with usually only one or two helper methods. Finally, the Mapping region is where the AutoMapper mappings are defined for this area (module).
And that is all the code for the entire Student module: just 227 lines of code!
This includes all student pages shown above: List, Detail, and Edit which handle all CRUD operations.
These pages fully support advanced filtering,
sorting, pagination, and any other operation that may be required. It even includes
student enrollments which are displayed on the student detail page. This is low-code programming
at its finest!
And that is it!
Wouldn't you rather create SaaS solutions like this and develop your application in days or weeks rather than months or years?