+
+### Database Provider Options
+
+
+
+## What ABP Provides?
+
+ABP provides a **full stack developer experience**.
+
+### Architecture
+
+
+
+ABP offers a complete, **modular** and **layered** software architecture based on **[Domain Driven Design](https://docs.abp.io/en/abp/latest/Domain-Driven-Design)** principles and patterns. It also provides the necessary infrastructure and guiding to [implement this architecture](https://docs.abp.io/en/abp/latest/Domain-Driven-Design-Implementation-Guide).
+
+ABP Framework is suitable for **[microservice solutions](https://docs.abp.io/en/abp/latest/Microservice-Architecture)** as well as monolithic applications.
+
+### Infrastructure
+
+There are a lot of features provided by the ABP Framework to achieve real world scenarios easier, like [Event Bus](https://docs.abp.io/en/abp/latest/Event-Bus), [Background Job System](https://docs.abp.io/en/abp/latest/Background-Jobs), [Audit Logging](https://docs.abp.io/en/abp/latest/Audit-Logging), [BLOB Storing](https://docs.abp.io/en/abp/latest/Blob-Storing), [Data Seeding](https://docs.abp.io/en/abp/latest/Data-Seeding), [Data Filtering](https://docs.abp.io/en/abp/latest/Data-Filtering), etc.
+
+### Cross Cutting Concerns
+
+ABP also simplifies (and even automates wherever possible) cross cutting concerns and common non-functional requirements like [Exception Handling](https://docs.abp.io/en/abp/latest/Exception-Handling), [Validation](https://docs.abp.io/en/abp/latest/Validation), [Authorization](https://docs.abp.io/en/abp/latest/Authorization), [Localization](https://docs.abp.io/en/abp/latest/Localization), [Caching](https://docs.abp.io/en/abp/latest/Caching), [Dependency Injection](https://docs.abp.io/en/abp/latest/Dependency-Injection), [Setting Management](https://docs.abp.io/en/abp/latest/Settings), etc.
+
+### Application Modules
+
+ABP is a modular framework and the Application Modules provide **pre-built application functionalities**;
+
+- [**Account**](https://docs.abp.io/en/abp/latest/Modules/Account): Provides UI for the account management and allows user to login/register to the application.
+- **[Identity](https://docs.abp.io/en/abp/latest/Modules/Identity)**: Manages organization units, roles, users and their permissions, based on the Microsoft Identity library.
+- [**IdentityServer**](https://docs.abp.io/en/abp/latest/Modules/IdentityServer): Integrates to IdentityServer4.
+- [**Tenant Management**](https://docs.abp.io/en/abp/latest/Modules/Tenant-Management): Manages tenants for a [multi-tenant](https://docs.abp.io/en/abp/latest/Multi-Tenancy) (SaaS) application.
+
+See the [Application Modules](https://docs.abp.io/en/abp/latest/Modules/Index) document for all pre-built modules.
+
+### Startup Templates
+
+The [Startup templates](https://docs.abp.io/en/abp/latest/Startup-Templates/Index) are pre-built Visual Studio solution templates. You can create your own solution based on these templates to **immediately start your development**.
+
+## ABP Community
+
+### ABP Community Web Site
+
+The [ABP Community](https://community.abp.io/) is a website to publish **articles** and share **knowledge** about the ABP Framework. You can also create content for the community!
+
+### Blog
+
+Follow the [ABP Blog](https://blog.abp.io/) to learn the latest happenings in the ABP Framework.
+
+### Samples
+
+See the [sample projects](https://docs.abp.io/en/abp/latest/Samples/Index) built with the ABP Framework.
+
+### Want to Contribute?
+
+ABP is a community-driven open source project. See [the contribution guide](https://docs.abp.io/en/abp/latest/Contribution/Index) if you want to be a part of this project.
+
+## Official Links
+
+* Main Web Site
* Get Started
* Features
- * Documentation
- * Samples
- * Blog
+* Documentation
+* Samples
+* Blog
+* Community
* Stack overflow
* Twitter
-## Contribution
+## Support the ABP Framework
-ABP is an open source platform. Check [the contribution guide](docs/en/Contribution/Index.md) if you want to contribute to the project.
+Love ABP Framework? **Please give a star** to this repository :star:
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json
index a916cd82d9..71dc425dc6 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json
@@ -27,6 +27,8 @@
"Blog": "Blog",
"Commercial": "Commercial",
"MyAccount": "My account",
+ "Permission:License": "License",
+ "Permission:UserInfo": "Usere info",
"SeeDocuments": "See Documents",
"Samples": "Samples"
}
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
index cb4a8d076c..e1dd405851 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
@@ -45,7 +45,7 @@
"CompleteArchitectureInfo": "Modern architecture to create maintainable software solutions.",
"DomainDrivenDesignBasedLayeringModelExplanation": "Helps you to implement a DDD based layered architecture and build a maintainable code base.",
"DomainDrivenDesignBasedLayeringModelExplanationCont": "Provides startup templates, abstractions, base classes, services, documentation and guides to help you to develop your application based on DDD patterns & principles.",
- "MicroserviceCompatibleModelExplanation": "The core framework & pre-build modules are designed the microservice architecture in mind.",
+ "MicroserviceCompatibleModelExplanation": "The core framework & pre-build modules are designed with microservice architecture in mind.",
"MicroserviceCompatibleModelExplanationCont": "Provides infrastructure, integrations, samples and documentation to implement microservice solutions easier, while it doesn\u2019t bring additional complexity if you want a monolithic application.",
"ModularInfo": "ABP provides a module system that allows you to develop reusable application modules, tie into application lifecycle events, and express dependencies between core parts of your system.",
"PreBuiltModulesThemes": "Pre-Built Modules & Themes",
@@ -184,6 +184,14 @@
"ABPCLIExamplesInfo": "new command creates a layered MVC application with Entity Framework Core as the database provider. However, it has additional options. Examples:",
"SeeCliDocumentForMoreInformation": "See the ABP CLI document for more options or select the \"Direct Download\" tab above.",
"Optional": "Optional",
- "LocalFrameworkRef": "Keep local project reference for the framework packages."
+ "LocalFrameworkRef": "Keep local project reference for the framework packages.",
+ "BlobStoring": "BLOB Storing",
+ "BlobStoringExplanation": "BLOB Storing system provides an abstraction to work with BLOBs. ABP provides some pre-built storage provider integrations (Azure, AWS, File System, Database, etc.) that you can easily use in your applications.",
+ "TextTemplating": "Text Templating",
+ "TextTemplatingExplanation": "Text templating is used to dynamically render contents based on a template and a model (a data object). For example, you can use it to create dynamic email contents with a pre-built template.",
+ "MultipleUIOptions": "Multiple UI Options",
+ "MultipleDBOptions": "Multiple Database Providers",
+ "MultipleUIOptionsExplanation": "The core framework is designed as UI independent and can work with any type of UI system, while there are multiple pre-built and integrated options are provided out of the box.",
+ "MultipleDBOptionsExplanation": "The framework can work with any data source, while the following providers are officially developed and supported;"
}
}
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json
index 4dcb0cad51..6e9d9bf0da 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json
@@ -184,6 +184,13 @@
"ABPCLIExamplesInfo": "new命令创建一个 分层的MVC应用程序 使用 Entity Framework Core 做为数据库提供程序. 它还有其他选项. 示例:",
"SeeCliDocumentForMoreInformation": "参阅 ABP CLI 文档 获得更多选项或选择上方的 \"直接下载\" 标签.",
"Optional": "可选的",
- "LocalFrameworkRef": "保留框架包的本地项目引用."
+ "LocalFrameworkRef": "保留框架包的本地项目引用.",
+ "BlobStoring": "BLOB存储",
+ "BlobStoringExplanation": "BLOB存储系统提供了BLOB的抽象. ABP提供了一些预构建的存储提供程序集成(Azure,AWS,文件系统,数据库等),你可以轻松的在你的应用程序中使用它们.",
+ "TextTemplating": "文本模板",
+ "TextTemplatingExplanation": "文本模板是基于模板和模型(数据对象)使用动态渲染内容. 例如你可以使用预构建的模板来创建动态的电子邮件内容.",
+ "MultipleUIOptions": "多个UI选项",
+ "MultipleDBOptions": "多个数据库提供程序",
+ "MultipleUIOptionsExplanation": "核心框架设计为独立与UI,可以和任何类型的UI系统一起使用. 同时提供了多个开箱即用的预构建集成选项."
}
}
\ No newline at end of file
diff --git a/docs/en/AspNet-Boilerplate-Migration-Guide.md b/docs/en/AspNet-Boilerplate-Migration-Guide.md
index c7cc8a9e53..f4c2ec712b 100644
--- a/docs/en/AspNet-Boilerplate-Migration-Guide.md
+++ b/docs/en/AspNet-Boilerplate-Migration-Guide.md
@@ -438,7 +438,7 @@ ABP Framework uses and extends ASP.NET Core's [distributed caching abstraction](
### Logging
-ASP.NET Boilerplate uses Castle Windsor's [logging facility](http://docs.castleproject.org/Windsor.Logging-Facility.ashx) as an abstraction and supports multiple logging providers including Log4Net (the default one comes with the startup projects) and Serilog. You typically property-inject the logger:
+ASP.NET Boilerplate uses Castle Windsor's [logging facility](https://github.com/castleproject/Windsor/blob/master/docs/logging-facility.md) as an abstraction and supports multiple logging providers including Log4Net (the default one comes with the startup projects) and Serilog. You typically property-inject the logger:
````csharp
using Castle.Core.Logging; //1: Import Logging namespace
diff --git a/docs/en/Authentication/Social-External-Logins.md b/docs/en/Authentication/Social-External-Logins.md
index 309d4977a5..e80e53d4bd 100644
--- a/docs/en/Authentication/Social-External-Logins.md
+++ b/docs/en/Authentication/Social-External-Logins.md
@@ -1,32 +1,3 @@
# Social/External Logins
-The [Account Module](../Modules/Account.md) has already configured to handle social or external logins out of the box. You can follow the ASP.NET Core documentation to add a social/external login provider to your application.
-
-## Example: Facebook Authentication
-
-Follow the [ASP.NET Core Facebook integration document](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/facebook-logins) to support the Facebook login for your application.
-
-#### Add the NuGet Package
-
-Add the [Microsoft.AspNetCore.Authentication.Facebook](https://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.Facebook) package to your project. Based on your architecture, this can be `.Web`, `.IdentityServer` (for tiered setup) or `.Host` project.
-
-#### Configure the Provider
-
-Use the `.AddFacebook(...)` extension method in the `ConfigureServices` method of your [module](../Module-Development-Basics.md), to configure the client:
-
-````csharp
-context.Services.AddAuthentication()
- .AddFacebook(facebook =>
- {
- facebook.AppId = "...";
- facebook.AppSecret = "...";
- facebook.Scope.Add("email");
- facebook.Scope.Add("public_profile");
- });
-````
-
-> It would be a better practice to use the `appsettings.json` or the ASP.NET Core User Secrets system to store your credentials, instead of a hard-coded value like that. Follow the [Microsoft's document](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/facebook-logins) to learn the user secrets usage.
-
-## Angular UI
-
-Beginning from the v3.1, the Angular UI uses authorization code flow (as a best practice) to authenticate the user by redirecting to the MVC UI login page. So, even if you are using the Angular UI, social/external login integration is same as explained above and it will work out of the box.
\ No newline at end of file
+> This document has been moved. See the [Account Module](../Modules/Account.md) documentation.
\ No newline at end of file
diff --git a/docs/en/Authorization.md b/docs/en/Authorization.md
index 158466d153..bceca3548f 100644
--- a/docs/en/Authorization.md
+++ b/docs/en/Authorization.md
@@ -406,5 +406,5 @@ This is already done for the startup template integration tests.
## See Also
* [Permission Management Module](Modules/Permission-Management.md)
-* [ASP.NET Core MVC / Razor Pages JavaScript Auth API](API/JavaScript-API/Auth.md)
+* [ASP.NET Core MVC / Razor Pages JavaScript Auth API](UI/AspNetCore/JavaScript-API/Auth.md)
* [Permission Management in Angular UI](UI/Angular/Permission-Management.md)
diff --git a/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/POST.md b/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/POST.md
new file mode 100644
index 0000000000..840b5585fd
--- /dev/null
+++ b/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/POST.md
@@ -0,0 +1,87 @@
+# ABP.IO Platform 4.0 with .NET 5.0 in the 4th Year!
+
+Today, we are extremely happy to release ABP Framework 4.0 with **.NET 5.0 support**!
+
+## 4 Years of Work
+
+As a nice coincidence, today is the **4th year** since the first commit made in the [abp repository](https://github.com/abpframework/abp)! So, we can say "*Happy Birthday ABP Framework!*".
+
+
+
+### Some Statistics
+
+ABP.IO Platform and the ABP Community is growing. Here, a summary of these 4 years.
+
+From GitHub, only from the main [abp repository](https://github.com/abpframework/abp);
+
+* **15,297 commits** done.
+* **3,764 issues** are closed.
+* **2,133 pull requests** are merged.
+* **158 contributors**.
+* **88 releases** published.
+* **5.2K stars** on GitHub.
+
+From NuGet & NPM;
+
+* **220 NuGet** packages & **52 NPM** packages.
+* **1,000,000 downloads** only for the core NuGet package.
+
+From Website;
+
+* **200,000 visitors**.
+* **1,000,000+ sessions**.
+
+## What's New With 4.0?
+
+Since all the new features are already explained in details with the [4.0 RC Announcement Post](https://blog.abp.io/abp/ABP.IO-Platform-v4.0-RC-Has-Been-Released-based-on-.NET-5.0), I will not repeat all the details again. Please read [the RC post](https://blog.abp.io/abp/ABP.IO-Platform-v4.0-RC-Has-Been-Released-based-on-.NET-5.0) for **new feature and changes** you may need to do for your solution while upgrading to the version 4.0.
+
+Here, a brief list of major features and changes;
+
+* Migrated to **.NET 5.0**.
+* Stable **Blazor** UI.
+* Moved to **System.Text.Json**.
+* Upgraded to **IdentityServer** version 4.0.
+* **WPF** startup template.
+
+## Creating New Solutions
+
+You can create a new solution with the ABP Framework version 4.0 by either using the `abp new` command or using the **direct download** tab on the [get started page](https://abp.io/get-started).
+
+> See the [getting started document](https://docs.abp.io/en/abp/latest/Getting-Started) for details.
+
+## How to Upgrade an Existing Solution
+
+This is a **major version** and requires some **manual work**, especially related to **.NET 5.0** and **IdentityServer** 4.0 upgrades.
+
+* See the [MIGRATION GUIDE](https://docs.abp.io/en/abp/latest/Migration-Guides/Abp-4_0) that covers all the details about the upgrade progress.
+
+* You can also see the [upgrading document](https://docs.abp.io/en/abp/latest/Upgrading).
+
+## New Guides / Documents
+
+We are constantly improving the documentation. Our purpose is not only document the ABP Framework, but also write architectural and practical guides for developers.
+
+### Implementing Domain Driven Design
+
+[Implementing Domain Driven Design](https://docs.abp.io/en/abp/latest/Domain-Driven-Design-Implementation-Guide) is a practical guide for they want to implement the DDD principles in their solutions. While the implementation details rely on the ABP Framework infrastructure, core concepts, principles and patterns are applicable in any kind of solution, even if it is not a .NET solution.
+
+
+
+### Testing
+
+The new [Testing document](https://docs.abp.io/en/abp/latest/Testing) discusses different kind of automated tests and explains how you can write tests for your ABP based solutions.
+
+### UI Documents
+
+We've created a lot of documents for the [MVC](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Overall), [Blazor](https://docs.abp.io/en/abp/latest/UI/Blazor/Overall) and the [Angular](https://docs.abp.io/en/abp/latest/UI/Angular/Quick-Start) UI.
+
+## About the Next Version
+
+The next versions 4.1 will mostly focus on;
+
+* Improving current features.
+* Complete module features for the Blazor UI.
+* Improve developer experience and productivity.
+* More documentation and examples.
+
+Planned preview date for the version **4.1 is December 17, 2020**. See the [Road Map](https://docs.abp.io/en/abp/latest/Road-Map) document and [GitHub Milestones](https://github.com/abpframework/abp/milestones) to learn what's planned for the next versions. We are trying to be clear about the coming features and the next release dates.
\ No newline at end of file
diff --git a/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/abp-contribution-graph-4-years.png b/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/abp-contribution-graph-4-years.png
new file mode 100644
index 0000000000..cb778d8dfe
Binary files /dev/null and b/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/abp-contribution-graph-4-years.png differ
diff --git a/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/ddd-implementation-guide-sample.png b/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/ddd-implementation-guide-sample.png
new file mode 100644
index 0000000000..3aab36e979
Binary files /dev/null and b/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/ddd-implementation-guide-sample.png differ
diff --git a/docs/en/CLI.md b/docs/en/CLI.md
index a119770286..d51dd91b5d 100644
--- a/docs/en/CLI.md
+++ b/docs/en/CLI.md
@@ -107,6 +107,7 @@ abp new Acme.BookStore
* `--create-solution-folder` or `-csf`: Specifies if the project will be in a new folder in the output folder or directly the output folder.
* `--connection-string` or `-cs`: Overwrites the default connection strings in all `appsettings.json` files. The default connection string is `Server=localhost;Database=MyProjectName;Trusted_Connection=True;MultipleActiveResultSets=true` for EF Core and it is configured to use the SQL Server. If you want to use the EF Core, but need to change the DBMS, you can change it as [described here](Entity-Framework-Core-Other-DBMS.md) (after creating the solution).
* `--local-framework-ref --abp-path`: Uses local projects references to the ABP framework instead of using the NuGet packages. This can be useful if you download the ABP Framework source code and have a local reference to the framework from your application.
+* `--no-random-port`: Uses template's default ports.
### update
diff --git a/docs/en/CSRF-Anti-Forgery.md b/docs/en/CSRF-Anti-Forgery.md
index 33b856f563..720edc5924 100644
--- a/docs/en/CSRF-Anti-Forgery.md
+++ b/docs/en/CSRF-Anti-Forgery.md
@@ -25,7 +25,7 @@ ABP Framework provides `[AbpValidateAntiForgeryToken]` and `[AbpAutoValidateAnti
ABP Framework also automates the following infrastructure;
-* Server side sets a **special cookie**, named `XSRF-TOKEN` by default, that is used make the antiforgery token value available to the browser. This is **done automatically** (by the [application configuration](Application-Configuration.md) endpoint). Nothing to do in the client side.
+* Server side sets a **special cookie**, named `XSRF-TOKEN` by default, that is used make the antiforgery token value available to the browser. This is **done automatically** (by the [application configuration](API/Application-Configuration.md) endpoint). Nothing to do in the client side.
* In the client side, it reads the token from the cookie and sends it in the **HTTP header** (named `RequestVerificationToken` by default). This is implemented for all the supported UI types.
* Server side validates the antiforgery token **only for same and cross site requests** made by the browser. It bypasses the validation for non-browser clients.
diff --git a/docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md b/docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md
new file mode 100644
index 0000000000..b36d83d0ba
--- /dev/null
+++ b/docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md
@@ -0,0 +1,936 @@
+# Creating an Event Organizer Application with the ABP Framework & Blazor UI.
+
+## Introduction
+
+In this article, we will create an example application that is a simple **meeting/event organizer**: People create events and other people registers to the event.
+
+The application has been developed with **Blazor** as the UI framework and **MongoDB** as the database provider.
+
+> This tutorial is based on my notes that I'd created to implement this application in a workshop. It shows the necessary steps to build the application rather than detailed explanations.
+
+### Source Code
+
+Source code of the completed application is [available on GitHub](https://github.com/abpframework/abp-samples/tree/master/EventOrganizer).
+
+### Screenshots
+
+Here, the pages of the final application.
+
+**Home Page - Event List**
+
+
+
+**Creating a new Event**
+
+
+
+**Event Detail Page**
+
+
+
+## Requirements
+
+The following tools are needed to be able to run the solution.
+
+* .NET 5.0 SDK
+* Visual Studio 2019 16.8.0+ or another compatible IDE
+* MongoDB Server (with MongoDB Compass)
+
+## Development
+
+### Creating a new Application
+
+* Use the following ABP CLI command:
+
+````bash
+abp new EventOrganizer -u blazor -d mongodb
+````
+
+### Open & Run the Application
+
+* Open the solution in Visual Studio (or your favorite IDE).
+* Run the `EventOrganizer.DbMigrator` application to seed the initial data.
+* Run the `EventOrganizer.HttpApi.Host` application that starts the server side.
+* Run the `EventOrganizer.Blazor` application to start the UI.
+
+### Apply the Custom Styles
+
+* Add styles to `wwwroot/main.css`:
+
+````css
+body.abp-application-layout {
+ background-color: #222 !important;
+ font-size: 18px;
+}
+nav#main-navbar.bg-dark {
+ background-color: #222 !important;
+ box-shadow: none !important;
+}
+.event-pic {
+ width: 100%;
+ border-radius: 12px;
+ box-shadow: 5px 5px 0px 0px rgba(0,0,0,.5);
+ margin-bottom: 10px;
+}
+.event-link:hover, .event-link:hover *{
+ text-decoration: none;
+}
+.event-link:hover .event-pic {
+ box-shadow: 5px 5px 0px 0px #ffd800;
+}
+.event-form {
+ background-color: #333 !important;
+ box-shadow: 5px 5px 0px 0px rgba(0,0,0,.5);
+ border-radius: 12px;
+}
+.table {
+ background: #fff;
+ border-radius: 12px;
+ box-shadow: 5px 5px 0px 0px rgba(0,0,0,.5);
+}
+.table th{
+ border: 0 !important;
+}
+.modal {
+ color: #333;
+}
+.page-item:first-child .page-link {
+ margin-left: 0;
+ border-top-left-radius: 12px;
+ border-bottom-left-radius: 12px;
+}
+.page-item:last-child .page-link {
+ border-top-right-radius: 12px;
+ border-bottom-right-radius: 12px;
+}
+.btn {
+ border-radius: 8px;
+}
+.att-list {
+ list-style: none;
+ padding: 0;
+}
+.att-list li {
+ padding: 4px 0 0 0;
+}
+````
+
+* `wwwroot/index.html`: Remove `bg-light` class from the `body` tag and add `bg-dark text-light`.
+
+### Domain Layer
+
+* Add the following `Event` aggregate (with `EventAttendee`) to the solution:
+
+**Event**
+
+````csharp
+using System;
+using System.Collections.Generic;
+using Volo.Abp.Domain.Entities.Auditing;
+
+namespace EventOrganizer.Events
+{
+ public class Event : FullAuditedAggregateRoot@upcomingEvent.Title
+@upcomingEvent.Description.TruncateWithPostfix(150)
+@Event.Description
+You are registered in this event
+ + } +
-[Web application development tutorial](Tutorials/Part-1.md) is a complete tutorial to develop a full stack application using the ABP Framework.
+### Database Provider Options
-### ABP Community Articles
+
-See also the [ABP Community](https://community.abp.io/) articles.
+## Exploring the Documentation
-## Samples
+ABP has a **comprehensive documentation** that not only explains the ABP Framework, but also includes **guides** and **samples** to help you on creating a **maintainable solution** by introducing and discussing common **software development principle and best practices**.
-See the [sample projects](Samples/Index.md) built with the ABP Framework.
+### Architecture
+
+ABP offers a complete, modular and layered software architecture based on [Domain Driven Design](Domain-Driven-Design.md) principles and patterns. It also provides the necessary infrastructure to implement this architecture.
+
+* See the [Modularity](Module-Development-Basics.md) document to understand the module system.
+* [Implementing Domain Driven Design](Domain-Driven-Design-Implementation-Guide.md) document is an ultimate guide for who want to understand and implement the DDD.
+* [Microservice Architecture](Microservice-Architecture.md) document explains how ABP helps to create a microservice solution.
+
+### Infrastructure
+
+There are a lot of features provided by the ABP Framework to achieve real world scenarios easier, like [Event Bus](Event-Bus.md), [Background Job System](Background-Jobs.md), [Audit Logging](Audit-Logging.md), [BLOB Storing](Blob-Storing.md), [Data Seeding](Data-Seeding.md), [Data Filtering](Data-Filtering.md).
+
+### Cross Cutting Concerns
+
+ABP also simplifies (and even automates wherever possible) cross cutting concerns and common non-functional requirements like [Exception Handling](Exception-Handling.md), [Validation](Validation.md), [Authorization](Authorization.md), [Localization](Localization.md), [Caching](Caching.md), [Dependency Injection](Dependency-Injection.md), [Setting Management](Settings.md), etc.
+
+### Application Modules
+
+Application Modules provides pre-built application functionalities;
+
+* [**Account**](Modules/Account.md): Provides UI for the account management and allows user to login/register to the application.
+* **[Identity](Modules/Identity.md)**: Manages organization units, roles, users and their permissions, based on the Microsoft Identity library.
+* [**IdentityServer**](Modules/IdentityServer.md): Integrates to IdentityServer4.
+* [**Tenant Management**](Modules/Tenant-Management.md): Manages tenants for a [multi-tenant](Multi-Tenancy.md) (SaaS) application.
-## Source Code
+See the [Application Modules](Modules/Index.md) document for all pre-built modules.
+
+### Startup Templates
+
+The [Startup templates](Startup-Templates/Index.md) are pre-built Visual Studio solution templates. You can create your own solution based on these templates to **immediately start your development**.
+
+## ABP Community
+
+### The Source Code
ABP is hosted on GitHub. See [the source code](https://github.com/abpframework).
-## Want to Contribute?
+### ABP Community Web Site
+
+The [ABP Community](https://community.abp.io/) is a website to publish articles and share knowledge about the ABP Framework. You can also create content for the community!
+
+### Blog
+
+Follow the [ABP Blog](https://blog.abp.io/) to learn the latest happenings in the ABP Framework.
+
+### Samples
+
+See the [sample projects](Samples/Index.md) built with the ABP Framework.
+
+### Want to Contribute?
ABP is a community-driven open source project. See [the contribution guide](Contribution/Index.md) if you want to be a part of this project.
diff --git a/docs/en/Migration-Guides/Abp-4_0.md b/docs/en/Migration-Guides/Abp-4_0.md
index 33ccc63513..9e1bd4e816 100644
--- a/docs/en/Migration-Guides/Abp-4_0.md
+++ b/docs/en/Migration-Guides/Abp-4_0.md
@@ -244,13 +244,28 @@ public class MyService : ITransientDependency
public async Task DoItAsync()
{
await _options.SetAsync();
-
+
var requiredLength = _options.Value.Password.RequiredLength;
}
}
````
Pre-built modules already handles this. However, if you have used `IdentityOptions` directly in your code, you also need to follow this new pattern.
+Please make sure that the injected `IOptions