What’s New in ASP.NET Boilerplate 2.1 and ASP.NET Zero 4.1

What’s New in ASP.NET Boilerplate 2.1 and ASP.NET Zero 4.1

Introduction

ASP.NET Boilerplate v2.1 has recently been released which includes important features, enhancements and bug fixes. ASP.NET Zero v4.1 is also released with exciting new features and enhancements. In this post, I will highlight some of the new features of both.

ASP.NET Boilerplate v2.1

New ASP.NET Core / Angular 2 Startup Template

We completely renewed User Interface of ASP.NET Core / Angular 2 startup template. We used a free, open source and modern UI theme: BSB Admin. A screenshot from the new theme:

module-zero-core-template-ui-home

Create a new startup project from templates to see it in action. See documentation for more (MVC UI – Angular UI).

Docker Files

In addition to new theme, we also included Docker and build files to deploy your project as Docker images and run as Docker containers. While it’s simple to use, created a tutorial that explains it.

Identity Server 4 Integration

This was one of the most wanted features and now is available for Abp.ZeroCore package. We documented it, so you can add Identity Server 4 to your applications. This release inheritly integrated to ASP.NET Core Identity too.

Dapper Integration

Abp.Dapper package is now more stable and works integrated to Entity Framework 6.x, Entity Framework Core and NHibernate ORMs (thanks to @osoykan).  There is no documentation yet except this issue on Github.

IExtendableObject

IExtendableObject interface is introduced to provide ability to associate arbitrary key-value data to an entity. Consider this simple entity:

public class Person : Entity, IExtendableObject
{
    public string Name { get; set; }

    public string ExtensionData { get; set; }

    public Person(string name)
    {
        Name = name;
    }
}

IExtendableObject just defines ExtensionData string property which is used to store JSON formatted name value objects. Example:

var person = new Person("John");

person.SetData("RandomValue", RandomHelper.GetRandom(1, 1000));
person.SetData("CustomData", new MyCustomObject { Value1 = 42, Value2 = "forty-two" });

We can use any type of object as value to SetData method. When we use such the code above, ExtensionData will be like that:

{"CustomData":{"Value1":42,"Value2":"forty-two"},"RandomValue":178}

Then we can use GetData to get any value:

var randomValue = person.GetData<int>("RandomValue");
var customData = person.GetData<MyCustomObject>("CustomData");

While this technique can be very useful in some cases (when you need to provide ability to dynamically add extra data to an entity), you normally should use regular properties. Such a dynamic usage is not type safe and explicit. See documentation.

Sourcelink Enabled

All official Abp packages are now sourcelink enabled. That means you can easily step into Abp’s source code while debugging your project. See documentation to learn how to use it.

More

See release notes for all features, enhancements and bug fixes.

ASP.NET Zero v4.1

We also worked on ASP.NET Zero v4.1 to develop exciting new features in addition those come from ASP.NET Boilerplate v2.1 release.

Tenant Subscription System & Payment Integration

In this release, we created a most wanted feature: basic subscription management. We also implemented Paypal integration for subscription payments.

New Edition Features

Added a few new properties to Edition to be able to implement Subscription features:

edition-properties-2

We can create free and paid editions, we can determine if we allow trial for an edition and select an action when subscription ends and so on.

Edition Comparison Table

We added an edition comparison table when you click “New Tenant”:

editions-comparison-small

This table is automatically created from editions and features. After pick an edition, you are redirected to tenant registration form and payment page (if you clicked to buy now button). A tenant can later upgade/extend the subscription.

Host Dashboard

Since we have introduced subscriptions and payments, we thought that an overall dashboard would be good to show some statistics in the host side:

host-dashboard

This dashboard includes some income, edition and tenant statictics and provide a good start point for your own statistics.

Renewed Tenant Dashboard

In addition to the new host dashboard, we have renewed the tenant dashboard to provide you a better starting point for your application dashboard. In this version, all statistics are randomly generated on the server, so we provide a full stack sample dashboard:

tenant-dashboard

Moved Public Web Site Into It’s Own Project

Public Web Site was not available for Angular UI since it was inside the MVC UI. We moved it into it’s own project and created a simple single sign on mechanism to be able to sign in in the public web site. So, it’s now possible to have the public web site even if you select Angular for your UI.

Identity Server 4 Integration

As Identity Server 4 integration is implemented as described above, we have integrated to ASP.NET Zero by default. You can enable/disable it just from a configuration in appsettings.json.

Converted Unit Tests to SQLite

We were using Entity Framework Core In-Memory database for unit tests, but since it’s not a relational database it can not well simulate some cases. So, we’ve replaced it with SQLite in-memory database which is relational and closer to the real database.

2 Comments
  • wilfred
    Reply
    Posted at 10:32, June 18, 2017

    is it ready for download?

Post a Comment

Comment
Name
Email
Website