diff --git a/docs/en/API/Auto-API-Controllers.md b/docs/en/API/Auto-API-Controllers.md index a81da00b98..ee7c068bec 100644 --- a/docs/en/API/Auto-API-Controllers.md +++ b/docs/en/API/Auto-API-Controllers.md @@ -214,3 +214,6 @@ services.Configure(options => options.ControllersToRemove.Add(typeof(AbpLanguagesController)); }); ```` +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/auto-api-controllers) \ No newline at end of file diff --git a/docs/en/Application-Services.md b/docs/en/Application-Services.md index 3593b43845..0bd71f08c9 100644 --- a/docs/en/Application-Services.md +++ b/docs/en/Application-Services.md @@ -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) \ No newline at end of file diff --git a/docs/en/Authorization.md b/docs/en/Authorization.md index 063af84708..37e50279e9 100644 --- a/docs/en/Authorization.md +++ b/docs/en/Authorization.md @@ -473,3 +473,4 @@ Configure(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) \ No newline at end of file diff --git a/docs/en/Best-Practices/Application-Services.md b/docs/en/Best-Practices/Application-Services.md index 309b264522..c209f01c5e 100644 --- a/docs/en/Best-Practices/Application-Services.md +++ b/docs/en/Best-Practices/Application-Services.md @@ -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) + diff --git a/docs/en/Best-Practices/Data-Transfer-Objects.md b/docs/en/Best-Practices/Data-Transfer-Objects.md index 5d6409af7d..cd3a34513a 100644 --- a/docs/en/Best-Practices/Data-Transfer-Objects.md +++ b/docs/en/Best-Practices/Data-Transfer-Objects.md @@ -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. \ No newline at end of file +* **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) \ No newline at end of file diff --git a/docs/en/Best-Practices/Domain-Services.md b/docs/en/Best-Practices/Domain-Services.md index e651086673..bb43ee9025 100644 --- a/docs/en/Best-Practices/Domain-Services.md +++ b/docs/en/Best-Practices/Domain-Services.md @@ -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) \ No newline at end of file diff --git a/docs/en/Best-Practices/Entities.md b/docs/en/Best-Practices/Entities.md index 5a8c07c075..b16234d52b 100644 --- a/docs/en/Best-Practices/Entities.md +++ b/docs/en/Best-Practices/Entities.md @@ -154,4 +154,8 @@ public class IssueLabel : Entity ### References * Effective Aggregate Design by Vaughn Vernon - http://dddcommunity.org/library/vernon_2011 \ No newline at end of file + http://dddcommunity.org/library/vernon_2011 + + ## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/entities) \ No newline at end of file diff --git a/docs/en/Best-Practices/Entity-Framework-Core-Integration.md b/docs/en/Best-Practices/Entity-Framework-Core-Integration.md index bae484af27..4a6c82c379 100644 --- a/docs/en/Best-Practices/Entity-Framework-Core-Integration.md +++ b/docs/en/Best-Practices/Entity-Framework-Core-Integration.md @@ -191,3 +191,7 @@ public class AbpIdentityEntityFrameworkCoreModule : AbpModule } } ```` + + ## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/abp-ef-core) \ No newline at end of file diff --git a/docs/en/Best-Practices/MongoDB-Integration.md b/docs/en/Best-Practices/MongoDB-Integration.md index 594244443e..16a6a7d58f 100644 --- a/docs/en/Best-Practices/MongoDB-Integration.md +++ b/docs/en/Best-Practices/MongoDB-Integration.md @@ -148,4 +148,8 @@ public class AbpIdentityMongoDbModule : AbpModule } ``` -Notice that this module class also calls the static `BsonClassMap` configuration method defined above. \ No newline at end of file +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) \ No newline at end of file diff --git a/docs/en/Best-Practices/Repositories.md b/docs/en/Best-Practices/Repositories.md index 4f646a7d94..97cae7c35e 100644 --- a/docs/en/Best-Practices/Repositories.md +++ b/docs/en/Best-Practices/Repositories.md @@ -72,3 +72,4 @@ Task> 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) \ No newline at end of file diff --git a/docs/en/CLI.md b/docs/en/CLI.md index 4c79453ed7..e0eede9241 100644 --- a/docs/en/CLI.md +++ b/docs/en/CLI.md @@ -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) diff --git a/docs/en/Data-Transfer-Objects.md b/docs/en/Data-Transfer-Objects.md index 4d45570c1d..45533cca72 100644 --- a/docs/en/Data-Transfer-Objects.md +++ b/docs/en/Data-Transfer-Objects.md @@ -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. \ No newline at end of file +* 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) \ No newline at end of file diff --git a/docs/en/Dependency-Injection.md b/docs/en/Dependency-Injection.md index 826d360e22..27eaaad553 100644 --- a/docs/en/Dependency-Injection.md +++ b/docs/en/Dependency-Injection.md @@ -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) \ No newline at end of file diff --git a/docs/en/Domain-Services.md b/docs/en/Domain-Services.md index 6ad9b78cf0..877ccfe27e 100644 --- a/docs/en/Domain-Services.md +++ b/docs/en/Domain-Services.md @@ -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. \ No newline at end of file +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) \ No newline at end of file diff --git a/docs/en/Dynamic-Proxying-Interceptors.md b/docs/en/Dynamic-Proxying-Interceptors.md index 76a23daa8f..e8b57b80fb 100644 --- a/docs/en/Dynamic-Proxying-Interceptors.md +++ b/docs/en/Dynamic-Proxying-Interceptors.md @@ -1,3 +1,7 @@ ## Dynamic Proxying / Interceptors -TODO \ No newline at end of file +TODO + +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/interception) \ No newline at end of file diff --git a/docs/en/Entities.md b/docs/en/Entities.md index 02631d3e0b..b5498c4adb 100644 --- a/docs/en/Entities.md +++ b/docs/en/Entities.md @@ -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) diff --git a/docs/en/Entity-Framework-Core.md b/docs/en/Entity-Framework-Core.md index 73efe7970a..f5394dd93b 100644 --- a/docs/en/Entity-Framework-Core.md +++ b/docs/en/Entity-Framework-Core.md @@ -960,3 +960,4 @@ public class MyCustomEfCoreBulkOperationProvider * [Entities](Entities.md) * [Repositories](Repositories.md) +* [Video tutorial](https://abp.io/video-courses/essentials/abp-ef-core) \ No newline at end of file diff --git a/docs/en/Exception-Handling.md b/docs/en/Exception-Handling.md index d12e9a62b6..32f45b6b28 100644 --- a/docs/en/Exception-Handling.md +++ b/docs/en/Exception-Handling.md @@ -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) \ No newline at end of file diff --git a/docs/en/Localization.md b/docs/en/Localization.md index 4fec386c69..5b04940025 100644 --- a/docs/en/Localization.md +++ b/docs/en/Localization.md @@ -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) \ No newline at end of file +* [Localization for the Angular UI](UI/Angular/Localization.md) +* [Video tutorial](https://abp.io/video-courses/essentials/localization) \ No newline at end of file diff --git a/docs/en/Module-Development-Basics.md b/docs/en/Module-Development-Basics.md index 1fdd09f8b2..785f631563 100644 --- a/docs/en/Module-Development-Basics.md +++ b/docs/en/Module-Development-Basics.md @@ -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) diff --git a/docs/en/MongoDB.md b/docs/en/MongoDB.md index df7f92e779..101712da35 100644 --- a/docs/en/MongoDB.md +++ b/docs/en/MongoDB.md @@ -509,4 +509,5 @@ public class MyCustomMongoDbBulkOperationProvider ## See Also * [Entities](Entities.md) -* [Repositories](Repositories.md) \ No newline at end of file +* [Repositories](Repositories.md) +* [Video tutorial](https://abp.io/video-courses/essentials/abp-mongodb) \ No newline at end of file diff --git a/docs/en/Repositories.md b/docs/en/Repositories.md index 92a4a42807..d99e0cb83e 100644 --- a/docs/en/Repositories.md +++ b/docs/en/Repositories.md @@ -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) diff --git a/docs/en/Startup-Templates/Application-Single-Layer.md b/docs/en/Startup-Templates/Application-Single-Layer.md index 02a743c5ee..1b2e28be64 100644 --- a/docs/en/Startup-Templates/Application-Single-Layer.md +++ b/docs/en/Startup-Templates/Application-Single-Layer.md @@ -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: ![](../images/single-layer-angular-folder-structure.png) + + ## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/app-template) \ No newline at end of file diff --git a/docs/en/Startup-Templates/Application.md b/docs/en/Startup-Templates/Application.md index 52344db94b..fb5a1f1c07 100644 --- a/docs/en/Startup-Templates/Application.md +++ b/docs/en/Startup-Templates/Application.md @@ -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) diff --git a/docs/en/UI/Angular/Authorization.md b/docs/en/UI/Angular/Authorization.md index 5fad925c9d..d2e8a61d51 100644 --- a/docs/en/UI/Angular/Authorization.md +++ b/docs/en/UI/Angular/Authorization.md @@ -175,3 +175,7 @@ export class OAuthErrorFilterService extends AbstractAuthErrorFilter< } ``` + +## See Also + +* [Video tutorials](https://abp.io/video-courses/essentials/authorization) \ No newline at end of file diff --git a/docs/en/UI/Angular/Localization.md b/docs/en/UI/Angular/Localization.md index 8b53a534e0..72a6b4fc57 100644 --- a/docs/en/UI/Angular/Localization.md +++ b/docs/en/UI/Angular/Localization.md @@ -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) \ No newline at end of file diff --git a/docs/en/UI/Angular/Service-Proxies.md b/docs/en/UI/Angular/Service-Proxies.md index f6a34b76b8..90e687147c 100644 --- a/docs/en/UI/Angular/Service-Proxies.md +++ b/docs/en/UI/Angular/Service-Proxies.md @@ -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) \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/JavaScript-API/Localization.md b/docs/en/UI/AspNetCore/JavaScript-API/Localization.md index 0f6851799a..4932dc7696 100644 --- a/docs/en/UI/AspNetCore/JavaScript-API/Localization.md +++ b/docs/en/UI/AspNetCore/JavaScript-API/Localization.md @@ -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) diff --git a/docs/en/UI/Blazor/Authorization.md b/docs/en/UI/Blazor/Authorization.md index 7325c8e57b..b798fc1bc1 100644 --- a/docs/en/UI/Blazor/Authorization.md +++ b/docs/en/UI/Blazor/Authorization.md @@ -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) diff --git a/docs/en/UI/Blazor/Localization.md b/docs/en/UI/Blazor/Localization.md index d42249388e..938c07cf99 100644 --- a/docs/en/UI/Blazor/Localization.md +++ b/docs/en/UI/Blazor/Localization.md @@ -75,4 +75,5 @@ Format arguments can be passed after the localization key. If your message is `H ## See Also -* [Localization](../../Localization.md) \ No newline at end of file +* [Localization](../../Localization.md) +* [Video tutorial](https://abp.io/video-courses/essentials/localization) \ No newline at end of file diff --git a/docs/en/Unit-Of-Work.md b/docs/en/Unit-Of-Work.md index 743aa515bb..abe72f5c4e 100644 --- a/docs/en/Unit-Of-Work.md +++ b/docs/en/Unit-Of-Work.md @@ -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) diff --git a/docs/en/Virtual-File-System.md b/docs/en/Virtual-File-System.md index 4a13bf5740..236c393d99 100644 --- a/docs/en/Virtual-File-System.md +++ b/docs/en/Virtual-File-System.md @@ -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) \ No newline at end of file