Browse Source
Merge pull request #19257 from abpframework/auto-merge/rel-8-1/2570
Merge branch dev with rel-8.1
pull/19260/head
maliming
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
32 changed files with
99 additions and
11 deletions
docs/en/API/Auto-API-Controllers.md
docs/en/Application-Services.md
docs/en/Authorization.md
docs/en/Best-Practices/Application-Services.md
docs/en/Best-Practices/Data-Transfer-Objects.md
docs/en/Best-Practices/Domain-Services.md
docs/en/Best-Practices/Entities.md
docs/en/Best-Practices/Entity-Framework-Core-Integration.md
docs/en/Best-Practices/MongoDB-Integration.md
docs/en/Best-Practices/Repositories.md
docs/en/CLI.md
docs/en/Data-Transfer-Objects.md
docs/en/Dependency-Injection.md
docs/en/Domain-Services.md
docs/en/Dynamic-Proxying-Interceptors.md
docs/en/Entities.md
docs/en/Entity-Framework-Core.md
docs/en/Exception-Handling.md
docs/en/Localization.md
docs/en/Module-Development-Basics.md
docs/en/MongoDB.md
docs/en/Repositories.md
docs/en/Startup-Templates/Application-Single-Layer.md
docs/en/Startup-Templates/Application.md
docs/en/UI/Angular/Authorization.md
docs/en/UI/Angular/Localization.md
docs/en/UI/Angular/Service-Proxies.md
docs/en/UI/AspNetCore/JavaScript-API/Localization.md
docs/en/UI/Blazor/Authorization.md
docs/en/UI/Blazor/Localization.md
docs/en/Unit-Of-Work.md
docs/en/Virtual-File-System.md
@ -214,3 +214,6 @@ services.Configure<AbpAspNetCoreMvcOptions>(options =>
options.ControllersToRemove.Add(typeof(AbpLanguagesController));
});
````
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/auto-api-controllers )
@ -562,3 +562,7 @@ namespace MyProject.Test
Lifetime of application services are [transient ](Dependency-Injection.md ) and they are automatically registered to the dependency injection system.
## See Also
* [Video tutorial Part-1 ](https://abp.io/video-courses/essentials/application-services-part-1 )
* [Video tutorial Part-2 ](https://abp.io/video-courses/essentials/application-services-part-2 )
@ -473,3 +473,4 @@ Configure<AbpClaimsServiceOptions>(options =>
* [Permission Management Module ](Modules/Permission-Management.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 )
* [Video tutorial ](https://abp.io/video-courses/essentials/authorization )
@ -228,4 +228,9 @@ This method votes a question and returns the current score of the question.
* The current module has only reference to the application contracts of the used module.
## See Also
* [Video tutorial Part-1 ](https://abp.io/video-courses/essentials/application-services-part-1 )
* [Video tutorial Part-2 ](https://abp.io/video-courses/essentials/application-services-part-2 )
@ -6,4 +6,8 @@
* **Do** define DTO members with **public getter and setter** .
* **Do** use **data annotations** for **validation** on the properties of DTOs those are inputs of the service.
* **Do** not add any **logic** into DTOs except implementing `IValidatableObject` when necessary.
* **Do** mark all DTOs as ** [Serializable]** since they are already serializable and developers may want to binary serialize them.
* **Do** mark all DTOs as ** [Serializable]** since they are already serializable and developers may want to binary serialize them.
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/data-transfer-objects )
@ -2,3 +2,6 @@
> **This document is not ready yet. Please see the [Domain Services ](../Domain-Services.md ) document.**
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/domain-services )
@ -154,4 +154,8 @@ public class IssueLabel : Entity
### References
* Effective Aggregate Design by Vaughn Vernon
http://dddcommunity.org/library/vernon_2011
http://dddcommunity.org/library/vernon_2011
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/entities )
@ -191,3 +191,7 @@ public class AbpIdentityEntityFrameworkCoreModule : AbpModule
}
}
````
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/abp-ef-core )
@ -148,4 +148,8 @@ public class AbpIdentityMongoDbModule : AbpModule
}
```
Notice that this module class also calls the static `BsonClassMap` configuration method defined above.
Notice that this module class also calls the static `BsonClassMap` configuration method defined above.
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/abp-mongodb )
@ -72,3 +72,4 @@ Task<List<IdentityUser>> GetListByNormalizedRoleNameAsync(
* [Entity Framework Core Integration ](Entity-Framework-Core-Integration.md )
* [MongoDB Integration ](MongoDB-Integration.md )
* [Video tutorial ](https://abp.io/video-courses/essentials/generic-repositories )
@ -609,3 +609,4 @@ abp install-libs [options]
## See Also
* [Examples for the new command ](CLI-New-Command-Samples.md )
* [Video tutorial ](https://abp.io/video-courses/essentials/abp-cli )
@ -277,4 +277,8 @@ You are free to design your DTO classes. However, there are some best practices
### Output DTO Principles
* You can **reuse output DTOs** if you **fill all the properties** on all the cases.
* You can **reuse output DTOs** if you **fill all the properties** on all the cases.
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/data-transfer-objects )
@ -566,3 +566,4 @@ Startup templates come with Autofac installed. See [Autofac integration](Autofac
## See Also
* [ASP.NET Core Dependency Injection Best Practices, Tips & Tricks ](https://medium.com/volosoft/asp-net-core-dependency-injection-best-practices-tips-tricks-c6e9c67f9d96 )
* [Video tutorial ](https://abp.io/video-courses/essentials/dependency-injection )
@ -132,4 +132,8 @@ While both of [Application Services](Application-Services.md) and Domain Service
## Lifetime
Lifetime of Domain Services are [transient ](https://docs.abp.io/en/abp/latest/Dependency-Injection ) and they are automatically registered to the dependency injection system.
Lifetime of Domain Services are [transient ](https://docs.abp.io/en/abp/latest/Dependency-Injection ) and they are automatically registered to the dependency injection system.
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/domain-services )
@ -1,3 +1,7 @@
## Dynamic Proxying / Interceptors
TODO
TODO
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/interception )
@ -438,3 +438,4 @@ You typically **don't need** to use this system for your own entities, because i
## See Also
* [Best practice guide to design the entities ](Best-Practices/Entities.md )
* [Video tutorial ](https://abp.io/video-courses/essentials/entities )
@ -960,3 +960,4 @@ public class MyCustomEfCoreBulkOperationProvider
* [Entities ](Entities.md )
* [Repositories ](Repositories.md )
* [Video tutorial ](https://abp.io/video-courses/essentials/abp-ef-core )
@ -338,3 +338,6 @@ Here, a list of the options you can configure:
* `SendExceptionsDetailsToClients` (default: `false` ): You can enable or disable sending exception details to the client.
* `SendStackTraceToClients` (default: `true` ): You can enable or disable sending the stack trace of exception to the client. If you want to send the stack trace to the client, you must set both `SendStackTraceToClients` and `SendExceptionsDetailsToClients` options to `true` otherwise, the stack trace will not be sent to the client.
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/exception-handling )
@ -254,4 +254,5 @@ See the following documents to learn how to reuse the same localization texts in
* [Localization for the MVC / Razor Pages UI ](UI/AspNetCore/JavaScript-API/Localization.md )
* [Localization for the Blazor UI ](UI/Blazor/Localization.md )
* [Localization for the Angular UI ](UI/Angular/Localization.md )
* [Localization for the Angular UI ](UI/Angular/Localization.md )
* [Video tutorial ](https://abp.io/video-courses/essentials/localization )
@ -189,3 +189,6 @@ There are **two types of modules.** They don't have any structural difference bu
- **Framework modules** : These are **core modules of the framework** like caching, emailing, theming, security, serialization, validation, EF Core integration, MongoDB integration... etc. They do not have application/business functionalities but makes your daily development easier by providing common infrastructure, integration and abstractions.
- **Application modules** : These modules implement **specific application/business functionalities** like blogging, document management, identity management, tenant management... etc. They generally have their own entities, services, APIs and UI components. See [pre-built application modules ](Modules/Index.md ).
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/modularity )
@ -509,4 +509,5 @@ public class MyCustomMongoDbBulkOperationProvider
## See Also
* [Entities ](Entities.md )
* [Repositories ](Repositories.md )
* [Repositories ](Repositories.md )
* [Video tutorial ](https://abp.io/video-courses/essentials/abp-mongodb )
@ -506,3 +506,6 @@ This method is suggested;
* If you want to **completely isolate** your domain & application layers from the database provider.
* If you develop a **reusable [application module](Modules/Index.md)** and don't want to force to a specific database provider, which should be done as a [best practice ](Best-Practices/Index.md ).
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/generic-repositories )
@ -104,3 +104,7 @@ The server-side is similar to the solution described in the *Solution Structure*
The client-side application consumes the HTTP APIs as mentioned. You can see the folder structure of the Angular project shown below:

## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/app-template )
@ -459,3 +459,6 @@ If you want to configure social/external logins for your application, please fol
- [The getting started document ](../Getting-Started.md ) explains how to create a new application in a few minutes.
- [The application development tutorial ](../Tutorials/Part-1.md ) explains step by step application development.
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/app-template )
@ -175,3 +175,7 @@ export class OAuthErrorFilterService extends AbstractAuthErrorFilter<
}
```
## See Also
* [Video tutorials ](https://abp.io/video-courses/essentials/authorization )
@ -391,4 +391,5 @@ Which locale files you add to `webpackInclude` magic comment, they will be inclu
## See Also
- [Localization in ASP.NET Core ](../../Localization.md )
* [Localization in ASP.NET Core ](../../Localization.md )
* [Video tutorial ](https://abp.io/video-courses/essentials/localization )
@ -175,3 +175,7 @@ yarn nx g @abp/nx.generators:generate-proxy
### Known Limitations
When you run a project on Visual Studio using IIS Express as the web server, there will be no remote access to your endpoints. This is the default behavior of IIS Express since it explicitly protects you from the security risks of running over the network. However, that will cause the proxy generator to fail because it needs a response from the `/api/abp/api-definition` endpoint. You may serve your endpoints via Kestrel to avoid this. Running `dotnet run` in your command line (at your project folder) will do that for you.
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/generating-client-proxies )
@ -141,3 +141,6 @@ Used to get list of all **available languages** in the application. An example v
]
````
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/localization )
@ -72,4 +72,4 @@ There are some useful extension methods for the `IAuthorizationService`:
* [Authorization ](../../Authorization.md ) (server side)
* [Blazor Security ](https://docs.microsoft.com/en-us/aspnet/core/blazor/security/ ) (Microsoft documentation)
* [ICurrentUser Service ](CurrentUser.md )
* [Video tutorial ](https://abp.io/video-courses/essentials/authorization )
@ -75,4 +75,5 @@ Format arguments can be passed after the localization key. If your message is `H
## See Also
* [Localization ](../../Localization.md )
* [Localization ](../../Localization.md )
* [Video tutorial ](https://abp.io/video-courses/essentials/localization )
@ -354,3 +354,7 @@ app.UseUnitOfWork();
app.UseConfiguredEndpoints();
````
## See Also
* [Video tutorial Code ](https://abp.io/video-courses/essentials/unit-of-work-code )
* [Video tutorial Presentation ](https://abp.io/video-courses/essentials/unit-of-work-presentation )
@ -182,3 +182,7 @@ So, if you need to replace a file of a module, just create the file in the exact
### Physical Files
Physical files always override the virtual files. That means if you put a file under the `/wwwroot/my-folder/my-file.css` , it will override the file in the same location of the virtual file system. So, you need to know the file paths defined in the modules to override them.
## See Also
* [Video tutorial ](https://abp.io/video-courses/essentials/virtual-file-system )