After a heavy work on ASP.NET Boilerplate and ASP.NET Zero projects, we are very happy to announce that both projects supports .net core now!
ASP.NET Boilerplate v2.0.0
ABP 2.0 supports both .netstandard 1.6 and .netframework 4.6. That means it’s a cross-platform framework from now on.
Entity Framework Core Integration
Entity Framework Core integration is now completed. Previously there were two important missing points: Automatic data filtering and DateTime Kind normalization (see this post for details). We handled automatic data filtering in the repository level, without depending any 3rd-party library. It’s limited to repositories, so it does not work when you work with navigation properties or when you direcly work with DbContext or SQL.
Abp.Zero depends on ASP.NET Identity, which is not cross platform (does not support .net core). So, we introduced a new re-write of Abp.Zero as Abp.ZeroCore which depends on ASP.NET Core Identity and Entity Framework Core.
We will change module zero core template to use these new packages and be a cross platform startup template.
Hangfire ASP.NET Core Integration
Created a new package, Abp.HangFire.AspNetCore, to direcly integrate to Hangfire.AspNetCore package which uses ASP.NET Core’s middlewares.
.net core (and .net standard) does not support old SmtpClient class to simply send emails. So, we have created a new package, Abp.MailKit, that implements ABP’s IEmailSender and sends emails via MailKit. Microsoft also will support MailKit and will not introduce SmtpClient in .netstandard.
Castle Windsor Integration
ABP depends on Castle Windsor for dependency injection. But it does not support .netstandard/.netcore yet. To overcome this problem, we are now conditionally depending on Fortress.Windsor package, which is a .netstandard port of Castle Windsor. We also contributed to the creation and testing of this new library. Thank you @fir3pho3nixx for your hard work!
We haven’t introduce major breaking changes (there are a few minor breaking changes). But if you want to move to .net core, it’s another story. It may require significiant changes on your code since .net core does not support all APIs of .net framework.
See all changes in v2.0.0: https://github.com/aspnetboilerplate/aspnetboilerplate/milestone/78?closed=1
AspNet Zero v4.0.0
We worked on our AspNet Zero product in parallel to ABP works. Thus, we have better tested .net core support.
AspNet Zero has now a cross platform base solution to create modern web applications. It has significiant changes in the code base.
ASP.NET Core Identity & Entity Framework Core
Moved from Identity to Core Identity and from Entity Framework 6.x to Entity Framework Core as an essential change because old ones don’t support .net core (and will not support ever).
SignalR, Chat and Real Time Notifications
Microsoft has not finished the work on SignalR to support .net core yet. So, if you want to use .net core, you will not be able to use SignalR and related features of AspNet Zero. Fortunately, AspNet Zero can also work on .net framework 4.6.1. If you select .net framework 4.6.1, then chat and other real time features will work as expected. We have designed AspNet Zero to support both frameworks in single solution and allow you to choose your framework on project creation. And also you can then change to other one by simply changing target framework of the project.
If you don’t need to cross platform support, you can continue to work on full .net framework 4.6.1 and take advantage of all features.
We are constantly updating our dependencies. Latest AspNet Zero is based on latest ASP.NET Core and Angular 4 frameworks. As you know AspNet Zero has also an MVC version which is not SPA and does not use Angular as well.
In latest release, we included build script and docker files to automatically publish your project as docker images. Then you can use docker-compose to run your project in docker containers. While it’s configured of the box, we will create a tutorial for it to show different configurations and details for Docker usage.
Future of ABP and AspNet Zero
We have spend so much time to only adapt changes in the software development tools: Porting to ASP.NET Core, Entity Framework Core, Angular 2/4… and so on. From now, we hope to more focus on features rather than technology stack changes. In addition, our team is getting bigger. We are now 4 full-time developers just working on the ABP and AspNet Zero projects, and the count is increasing.