Skip to content

Commit 944836a

Browse files
committed
Merge branch 'rel-9.2' into feature/#22507
2 parents 7f26390 + cff2545 commit 944836a

File tree

152 files changed

+2971
-648
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

152 files changed

+2971
-648
lines changed

Directory.Packages.props

Lines changed: 130 additions & 130 deletions
Large diffs are not rendered by default.

docs/en/framework/architecture/modularity/extending/module-entity-extensions.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,17 @@ property =>
151151

152152
> Tip: Use `DefaultValueFactory` option only if the default value may change over the time (like `DateTime.Now` in this example). If it is a constant value, then use the `DefaultValue` option.
153153

154+
### DataTypeAttribute
155+
156+
`DataTypeAttribute` is used to specify the type of the property. It is used to determine how to render the property on the user interface:
157+
158+
```csharp
159+
property =>
160+
{
161+
property.Attributes.Add(new DataTypeAttribute(DataType.Date));
162+
}
163+
```
164+
154165
### Validation
155166

156167
Entity extension system allows you to define validation for extension properties in a few ways.

docs/en/framework/data/entity-framework-core/index.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -755,7 +755,17 @@ public static class QADbContextModelCreatingExtensions
755755
756756
> The `Object Extension` feature need the `Change Tracking`, which means you can't use the read-only repositories for the entities that have `extension properties(MapEfCoreProperty)`, Please see the [Repositories documentation](../../architecture/domain-driven-design/repositories.md) to learn the change tracking behavior.
757757
758-
See the "*ConfigureByConvention Method*" section above for more information.
758+
See the **ConfigureByConvention Method** section above for more information.
759+
760+
### Accessing Extra Properties(Shadow Properties)
761+
762+
Extra properties stored in separate fields in the database are known as **Shadow Properties**. These properties are not defined in the entity class, but are part of the EF Core model and can be referenced in LINQ queries using the EF.Property static method
763+
764+
```csharp
765+
var query = (await GetQueryableAsync()).Where(x => EF.Property<string>(x, "Title") == "MyTitle");
766+
```
767+
768+
See the [EF Core Shadow and Indexer Properties document](https://learn.microsoft.com/en-us/ef/core/modeling/shadow-properties) for more information.
759769

760770
## Advanced Topics
761771

docs/en/framework/fundamentals/localization.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,17 @@ namespace MyProject
248248

249249
The `L` property is also available for some other base classes like `AbpController` and `AbpPageModel`.
250250

251+
## Supported Languages
252+
253+
You can configure the `AbpLocalizationOptions`'s `Languages` property to add the languages supported by the application. The template already sets common languages, but you can add new languages as shown below:
254+
255+
```csharp
256+
Configure<AbpLocalizationOptions>(options =>
257+
{
258+
options.Languages.Add(new LanguageInfo("uz", "uz", "Uzbek"));
259+
});
260+
```
261+
251262
## The Client Side
252263

253264
See the following documents to learn how to reuse the same localization texts in the JavaScript side;

docs/en/framework/ui/maui/index.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,15 @@ Open a command line terminal and run the `adb reverse` command to expose a port
3737

3838
`adb reverse tcp:44305 tcp:44305`
3939

40-
> You should replace "44305" with the real port.
41-
> You should run the command after starting the emulator.
40+
> Replace `44305` with the port number your backend application is running on.
41+
>
42+
> Run this command **after** the Android emulator has started.
4243
43-
> If you don't have a separate installation of Android Debug Bridge, you can open it from **Visual Studio** by following toolbar menu `Tools` > `Android` > `Android Adb Command Prompt`. Android emulator has to be running for this operation.
44+
> [!IMPORTANT]
45+
> If your project uses a **tiered** or **microservice** architecture, ensure that both the **auth server** and all **remote service ports** are properly proxied using the `adb reverse` command. You can find all the required remote service ports and AuthServer configurations in your `YourProjectName.Maui/appsettings.json` file.
46+
47+
> [!NOTE]
48+
> If you don't have a separate installation of **Android Debug Bridge** _(adb)_, you can open it from **Visual Studio** by following toolbar menu `Tools` > `Android` > `Android Adb Command Prompt`. Android emulator has to be running for this operation.
4449
4550

4651
### iOS

docs/en/framework/ui/mvc-razor-pages/customization-user-interface.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,10 @@ This example overrides the **login page** defined by the [Account Module](../../
8989

9090
Create a page model class deriving from the ` LoginModel ` (defined in the ` Volo.Abp.Account.Web.Pages.Account ` namespace):
9191

92+
> If you are using the `AbpAccountWebOpenIddictModule` or `AbpAccountPublicWebOpenIddictModule`, the base class is `OpenIddictSupportedLoginModel` instead of `LoginModel`. And you should change the `ExposeServices` attribute to `[ExposeServices(typeof (MyLoginModel), typeof(OpenIddictSupportedLoginModel), typeof(LoginModel))]`
93+
9294
````csharp
95+
[ExposeServices(typeof (MyLoginModel), typeof(LoginModel))]
9396
public class MyLoginModel : LoginModel
9497
{
9598
public MyLoginModel(
@@ -114,8 +117,6 @@ public class MyLoginModel : LoginModel
114117

115118
You can override any method or add new properties/methods if needed.
116119

117-
> Notice that we didn't use `[Dependency(ReplaceServices = true)]` or `[ExposeServices(typeof(LoginModel))]` since we don't want to replace the existing class in the dependency injection, we define a new one.
118-
119120
Copy `Login.cshtml` file into your solution as just described above. Change the **@model** directive to point to the `MyLoginModel`:
120121

121122
````xml

docs/en/modules/cms-kit-pro/url-forwarding.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,20 @@ You can create new forwardings or update/delete existing ones, in the admin side
3737

3838
![url-forwarding-page](../../images/url-forwarding-page.png)
3939

40+
41+
## Options
42+
43+
### ShortenedUrlCacheOptions
44+
45+
`ShortenedUrlCacheOptions` is used to configure the cache settings for the URL forwarding system. Example:
46+
47+
```csharp
48+
Configure<ShortenedUrlCacheOptions>(options =>
49+
{
50+
options.CacheAllOnStartup = true; // Cache all shortened URLs on startup
51+
});
52+
```
53+
4054
# Internals
4155

4256
## Domain Layer

docs/en/modules/language-management.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ This module adds some initial data (see [the data seed system](../framework/infr
6262

6363
* Creates language records configured using `AbpLocalizationOptions`.
6464

65-
If you want to change the seeded language list, see the next section.
65+
If you want to change the seeded language list, see the [Localization](../framework/fundamentals/localization.md#Supported-Languages) document.
6666

6767
## Internals
6868

docs/en/release-info/migration-guides/abp-8-2.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ With this version on, ABP Framework allows you to use single blog mode, without
2828
* `Volo.Blogging.Pages.Members` -> `Volo.Blogging.Pages.Blogs.Members` (members folder)
2929

3030
> If you haven't overridden the pages above, then you don't need to make any additional changes. See [#19418](https://github.com/abpframework/abp/pull/19418) for more information.
31+
3132
## Removed `FlagIcon` property from the `ILanguageInfo`
3233

3334
The `FlagIcon` property has been removed from the `ILanguageInfo` interface since we removed the flag icon library in the earlier versions from all of our themes and none of them using it now.
@@ -57,11 +58,20 @@ In this version, the Angular UI has been updated to use the Angular version 17.3
5758

5859
The **Session Management** feature allows you to prevent concurrent login and manage user sessions.
5960

60-
In this version, a new entity called `IdentitySession` has been added to the framework and you should create a new migration and apply it to your database.
61+
In this version, a new entity called `IdentitySession` has been added to the framework and you need to add new `DbSet<IdentitySession>` to your `DbContext` class if it implements `IIdentityDbContext` interface.
62+
63+
```csharp
64+
public class YourDbContext : AbpDbContext<YourDbContext>, IIdentityDbContext
65+
{
66+
public DbSet<IdentitySession> Sessions { get; set; }
67+
}
68+
```
69+
70+
You should also create a new migration and apply it to your database.
6171

6272
## Upgraded NuGet Dependencies
6373

64-
You can see the following list of NuGet libraries that have been upgraded with this release, if you are using one of these packages explicitly, you may consider upgrading them in your solution:
74+
You can see the following list of NuGet libraries that have been upgraded with this release, **if you are using one of these packages explicitly**, you may consider upgrading them in your solution, especially **Microsoft.IdentityModel.*** packages:
6575

6676
| Package | Old Version | New Version |
6777
| ---------------------------------------------------------- | ----------- | ----------- |

docs/en/tutorials/microservice/part-06.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,9 @@ public class ProductIntegrationService : ApplicationService, IProductIntegration
107107

108108
Now that we have created the `IProductIntegrationService` interface and the `ProductIntegrationService` class, we can consume this service from the Ordering service.
109109

110-
### Adding a Reference to the `CloudCrm.CatalogService.Contracts` Package
110+
### Adding a Reference to the `CloudCrm.OrderingService` Package
111111

112-
First, we need to add a reference to the `CloudCrm.CatalogService.Contracts` package in the Ordering service. Open the ABP Studio, and stop the application(s) if it is running. Then, open the *Solution Explorer* and right-click on the `CloudCrm.OrderingService` package. Select *Add* -> *Package Reference* command:
112+
First, we need to add a reference to the `CloudCrm.OrderingService` package in the Ordering service. Open the ABP Studio, and stop the application(s) if it is running. Then, open the *Solution Explorer* and right-click on the `CloudCrm.OrderingService` package. Select *Add* -> *Package Reference* command:
113113

114114
![add-package-reference-ordering-service](images/add-package-reference-ordering-service.png)
115115

0 commit comments

Comments
 (0)