diff --git a/.github/ISSUE_TEMPLATE b/.github/ISSUE_TEMPLATE
index d200c54488..414985237d 100644
--- a/.github/ISSUE_TEMPLATE
+++ b/.github/ISSUE_TEMPLATE
@@ -10,6 +10,7 @@ If you're creating a bug/problem report, please include followings:
* Your **ABP Framework version**.
* Your **User Interface** type (Angular/MVC/React... etc.) if the issue is related to a specific UI
+* Your database provider(EF Core/MongoDB)
* Exception message and **stack trace** if available (check the logs).
* Steps needed to **reproduce** the problem.
@@ -21,4 +22,4 @@ Please use Stack Overflow for your questions about using the framework, template
https://stackoverflow.com/questions/tagged/abp
-Use **abp** tag in your questions.
\ No newline at end of file
+Use **abp** tag in your questions.
diff --git a/.gitignore b/.gitignore
index b9576fda4c..407241c7fc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -153,6 +153,7 @@ PublishScripts/
# NuGet Packages
*.nupkg
+*.snupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
index 6e3c1df3ce..32d3c16a01 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
@@ -194,6 +194,9 @@
"CoverImage": "Cover Image",
"RemoveCacheConfirmationMessage": "Are you sure you remove the cache for \"{0}\" article?",
"SuccessfullyRemoved": "Successfully cleared",
- "RemoveCache": "Remove Cache"
+ "RemoveCache": "Remove Cache",
+ "Language": "Language",
+ "Optional": "Optional",
+ "CreateArticleLanguageInfo": "The language in which the article is written"
}
}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json
index b7f7cb41a5..9ac7e39b9e 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json
@@ -156,6 +156,9 @@
"RemainingQuestionCount": "Kalan soru sayısı",
"TotalQuestionMustBeGreaterWarningMessage": "Toplam soru sayısı kalan soru sayısından büyük olmalıdır!",
"QuestionCountsMustBeGreaterThanZero": "Toplam soru sayısı ve kalan soru sayısı sıfır veya sıfırdan daha büyük olmalıdır!",
- "UnlimitedQuestionCount": "Sınırsız soru sayısı"
+ "UnlimitedQuestionCount": "Sınırsız soru sayısı",
+ "Language": "Dil",
+ "Optional": "Opsiyonel",
+ "CreateArticleLanguageInfo": "Makalenin yazıldığı dil"
}
}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
index 0d465e6966..c6eb1ad645 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
@@ -33,6 +33,7 @@
"EmailNotValid": "Please enter a valid email address.",
"JoinOurMarketingNewsletter": "Join our marketing newsletter",
"WouldLikeToReceiveMarketingMaterials": "I would like to receive marketing materials like product deals & special offers.",
- "StartUsingYourLicenseNow": "Start using your license now!"
+ "StartUsingYourLicenseNow": "Start using your license now!",
+ "WelcomePage": "Welcome Page"
}
}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json
index c570e6fb1e..a29355b401 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json
@@ -99,6 +99,8 @@
"Marketing": "Marketing",
"CommunityPrivacyPolicyConfirmation": "I agree to the Terms & Conditions and Privacy Policy.",
"ArticleRequestMessageTitle": "Open an issue on the GitHub to request an article/tutorial you want to see on this web site.",
- "ArticleRequestMessageBody": "Here, the list of the requested articles by the community. Do you want to write a requested article? Please click to the request and join to the discussion."
+ "ArticleRequestMessageBody": "Here, the list of the requested articles by the community. Do you want to write a requested article? Please click to the request and join to the discussion.",
+ "Language": "Language",
+ "CreateArticleLanguageInfo": "The language in which the article is written"
}
}
diff --git a/common.DotSettings b/common.DotSettings
index 7edbd05e75..5c1cda48fd 100644
--- a/common.DotSettings
+++ b/common.DotSettings
@@ -29,6 +29,7 @@
NeverNeverNever
+ TrueTrueTrueFalse
diff --git a/common.props b/common.props
index dee2c22cdc..b79bf61409 100644
--- a/common.props
+++ b/common.props
@@ -1,7 +1,7 @@
latest
- 4.1.0
+ 4.1.0-rc.1$(NoWarn);CS1591;CS0436https://abp.io/assets/abp_nupkg.pnghttps://abp.io/
diff --git a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/POST.md b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/POST.md
new file mode 100644
index 0000000000..4154bf7241
--- /dev/null
+++ b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/POST.md
@@ -0,0 +1,202 @@
+# ABP Framework 4.1 RC Has Been Published
+
+Today, we have released the [ABP Framework](https://abp.io/) (and the [ABP Commercial](https://commercial.abp.io/)) 4.1.0 RC. This blog post introduces the new features and important changes in this new version.
+
+> **The planned release date for the [4.1.0 final](https://github.com/abpframework/abp/milestone/47) version is January 4, 2021**.
+
+## Get Started with the 4.1 RC
+
+If you want to try the version `4.1.0` today, follow the steps below;
+
+1) **Upgrade** the ABP CLI to the version `4.1.0-rc.1` using a command line terminal:
+
+````bash
+dotnet tool update Volo.Abp.Cli -g --version 4.1.0-rc.1
+````
+
+**or install** if you haven't installed before:
+
+````bash
+dotnet tool install Volo.Abp.Cli -g --version 4.1.0-rc.1
+````
+
+2) Create a **new application** with the `--preview` option:
+
+````bash
+abp new BookStore --preview
+````
+
+See the [ABP CLI documentation](https://docs.abp.io/en/abp/latest/CLI) for all the available options.
+
+> You can also use the *Direct Download* tab on the [Get Started](https://abp.io/get-started) page by selecting the **Preview checkbox**.
+
+## Breaking Changes
+
+This version has a minor breaking change if you'd injected a repository by class. This is not a problem for 99% of the applications. However, see [#6677](https://github.com/abpframework/abp/issues/6677) for the solution if that's a breaking change for you.
+
+## What's new with the ABP Framework 4.1
+
+### Module Entity Extensions
+
+Module Entity Extension system provides a simple way of adding new properties to an existing entity defined by a module that is used by your application. This feature is now available also for the open source modules (identity and tenant-management). [The documentation](https://docs.abp.io/en/abp/latest/Module-Entity-Extensions) has been moved into the ABP Framework's documentation.
+
+**Example: Add "SocialSecurityNumber" property to the `IdentityUser` entity**
+
+````csharp
+ObjectExtensionManager.Instance.Modules()
+ .ConfigureIdentity(identity =>
+ {
+ identity.ConfigureUser(user =>
+ {
+ user.AddOrUpdateProperty( //property type: string
+ "SocialSecurityNumber", //property name
+ property =>
+ {
+ //validation rules
+ property.Attributes.Add(new RequiredAttribute());
+ property.Attributes.Add(
+ new StringLengthAttribute(64) {
+ MinimumLength = 4
+ }
+ );
+
+ //...other configurations for this property
+ }
+ );
+ });
+ });
+````
+
+The new property becomes available on the UI, API and the database. You can even define navigation properties. This provides an easy way to extend existing modules while using them as NuGet packages. See [the document](https://docs.abp.io/en/abp/latest/Module-Entity-Extensions) for details.
+
+### Blazor UI Improvements
+
+Since the Blazor UI is relatively new in the ABP Framework, we continue to add features and make enhancements to fill the gap between other supported UI types.
+
+#### Bundling & Minification
+
+In the version 4.1, we had introduced the `abp bundle` command for the Blazor UI to add global script and style files of the depended modules into the `index.html`. It was a preparation for a real bundling & minification system. With the version 4.2, this command has been completed.
+
+Whenever you add a new module to your Blazor application, just type the `abp bundle` command in a command line terminal;
+
+* It finds all the global script/style files in your application and the modules your application directly or indirectly depends on, ordered by the module dependencies.
+* Bundles all the scripts into a single file and minified the file (same for the styles).
+* Add the single bundle file to the `index.html` file.
+
+Added a configuration into the `appsettings.json` file in the Blazor application in the application startup template to control the bundling mode:
+
+````js
+{
+ "AbpCli": {
+ "Bundle": {
+ "Mode": "BundleAndMinify"
+ }
+ }
+}
+````
+
+Possible values are;
+
+* `BundleAndMinify`: Bundle all the files into a single file and minify the content.
+* `Bundle`: Bundle all files into a single file, but not minify.
+* `None`: Add files individually, do not bundle.
+
+See the [Global Scripts & Styles](https://docs.abp.io/en/abp/4.1/UI/Blazor/Global-Scripts-Styles) document for details.
+
+#### SubmitButton
+
+`SubmitButton` is a new component that simplifies to save a form:
+
+````html
+
+````
+
+The main advantages of using this component instead of a standard `Button` with submit type is; It automatically blocks the submit button until the save operation has fully completed. This prevents multiple clicks by user. And it is shorter than doing all manually. See the [document](https://docs.abp.io/en/abp/4.1/UI/Blazor/SubmitButton).
+
+#### Other Blazor UI highlights
+
+* Implemented some **animations** (like opening/closing modals and dropdowns).
+* Automatically **focus** to the first input when you open a modal form.
+
+Module extensibility system (mentioned above) for the Blazor UI is under development and not available yet.
+
+## What's new with the ABP Commercial 4.1
+
+### Blazor UI Improvements
+
+We continue to complete missing modules and functionalities for the Blazor UI.
+
+#### Organization Unit Management
+
+Organization Management UI has been implemented for the Blazor UI. Example screenshot:
+
+
+
+#### IdentityServer UI
+
+IdentityServer Management UI is also available for the Blazor UI now:
+
+
+
+### Suite: Navigation Property Selection with Typeahead
+
+We had introduced auto-complete select style navigation property selection. With this release, it is fully supported by all the UI options. So, when you create an CRUD page with ABP Suite for entity that has 1 to Many relation to another entity, you can simply select the target entity with a typeahead style select component. Example screenshot:
+
+
+
+### Spanish Language Translation
+
+We continue to add new language supports for the UI. In this version, translated the UI to **Spanish** language.
+
+
+
+### Coming: Public Website with Integrated CMS Features
+
+In the next version, the application startup template will come with a public website application option. CMS Kit module will be installed in the website by default, that means newsletter, contact form, comments and some other new features will be directly usable in your applications.
+
+An early screenshot from the public website application home page:
+
+
+
+## Other News
+
+### ABP Community Contents
+
+A lot of new contents have been published in the ABP Community Web Site in the last two weeks:
+
+* [How to Integrate the Telerik Blazor Components to the ABP Blazor UI](https://community.abp.io/articles/how-to-integrate-the-telerik-blazor-components-to-the-abp-blazor-ui-q8g31abb) by [EngincanV](https://github.com/EngincanV)
+* [Using DevExpress Blazor UI Components With the ABP Framework](https://community.abp.io/articles/using-devexpress-blazor-ui-components-with-the-abp-framework-wrpoa8rw) by [@berkansasmaz](https://github.com/berkansasmaz)
+* [Creating a new UI theme by copying the Basic Theme (for MVC UI)](https://community.abp.io/articles/creating-a-new-ui-theme-by-copying-the-basic-theme-for-mvc-ui-yt9b18io) by [@ebubekirdinc](https://github.com/ebubekirdinc)
+* [Using Angular Material Components With the ABP Framework](https://community.abp.io/members/muhammedaltug) by [@muhammedaltug](https://github.com/muhammedaltug)
+* [How to export Excel files from the ABP framework](https://community.abp.io/articles/how-to-export-excel-files-from-the-abp-framework-wm7nnw3n) by [bartvanhoey](https://github.com/bartvanhoey)
+* [Creating an Event Organizer Application with the ABP Framework & Blazor UI](https://community.abp.io/articles/creating-an-event-organizer-application-with-the-blazor-ui-wbe0sf2z) by [@hikalkan](https://github.com/hikalkan)
+
+Thanks to all of the contributors. We are waiting for your contributions too. If you want to create content for the ABP Community, please visit [community.abp.io](https://community.abp.io/) website and submit your article.
+
+#### Be a Superhero on Day 1 with ABP.IO
+
+Thanks to [@lprichar](http://github.com/lprichar) prepared an awesome introduction video for the ABP.IO Platform: "[Be a Superhero on Day 1 with ABP.IO](https://www.youtube.com/watch?v=ea0Zx9DLcGA)".
+
+#### New Sample Application: Event Organizer
+
+This is a new example application developed using the ABP Framework and the Blazor UI. See [this article](https://community.abp.io/articles/creating-an-event-organizer-application-with-the-blazor-ui-wbe0sf2z) for a step by step implementation guide.
+
+
+
+### Github Discussions
+
+We enabled the [GitHub Discussions for the abp repository](https://github.com/abpframework/abp/discussions) as another place to discuss ideas or get help for the ABP Framework. The ABP core team is spending time participating in discussions and answering to questions as much as possible.
+
+## About the Next Release(s)
+
+Beginning from the next version (4.2.0), we are starting to spend more effort on the **CMS Kit module**. The purpose of this module is to provide CMS primitives (e.g. **comments, tags, reactions, contents**...) and features (e.g. **blog, pages, surveys**) as pre-built and reusable components. Current blog module will be a part of the CMS Kit module.
+
+We will continue to prepare documents, guides, tutorials and examples. And surely, we will continue to make enhancements and optimizations on the current features.
+
+> The planned preview release date for the version 4.2.0 is January 14, 2021 and the final (stable) version release date is January 28, 2021.
+
+Follow the [GitHub milestones](https://github.com/abpframework/abp/milestones) for all the planned ABP Framework version release dates.
+
+## Feedback
+
+Please check out the ABP Framework 4.1.0 RC and [provide feedback](https://github.com/abpframework/abp/issues/new) to help us to release a more stable version. **The planned release date for the [4.1.0 final](https://github.com/abpframework/abp/milestone/45) version is January 4, 2021**.
diff --git a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/abp-commercial-public-website.png b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/abp-commercial-public-website.png
new file mode 100644
index 0000000000..8f01a9b385
Binary files /dev/null and b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/abp-commercial-public-website.png differ
diff --git a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-identityserver-ui.png b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-identityserver-ui.png
new file mode 100644
index 0000000000..8bb53d5d6b
Binary files /dev/null and b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-identityserver-ui.png differ
diff --git a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-organization-units.png b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-organization-units.png
new file mode 100644
index 0000000000..5db13d61a2
Binary files /dev/null and b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-organization-units.png differ
diff --git a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/event-list-ui.png b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/event-list-ui.png
new file mode 100644
index 0000000000..4f049c2339
Binary files /dev/null and b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/event-list-ui.png differ
diff --git a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/spanish-commercial-translation.png b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/spanish-commercial-translation.png
new file mode 100644
index 0000000000..ab6ca06719
Binary files /dev/null and b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/spanish-commercial-translation.png differ
diff --git a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/type-ahead.png b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/type-ahead.png
new file mode 100644
index 0000000000..7eabb748fd
Binary files /dev/null and b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/type-ahead.png differ
diff --git a/docs/en/CLI.md b/docs/en/CLI.md
index c5eb38bbbe..2e7b117799 100644
--- a/docs/en/CLI.md
+++ b/docs/en/CLI.md
@@ -419,4 +419,4 @@ abp bundle [options]
* ```--working-directory``` or ```-wd```: Specifies the working directory. This option is useful when executing directory doesn't contain a Blazor project file.
* ```--force``` or ```-f```: Forces to build project before generating references.
-For more details about managing style and script references in Blazor apps, see [Managing Global Scripts & Styles](UI/Blazor/Global-Scripts-Styles.md)
\ No newline at end of file
+`bundle` command reads the `appsettings.json` file inside the Blazor project for bundling options. For more details about managing style and script references in Blazor apps, see [Managing Global Scripts & Styles](UI/Blazor/Global-Scripts-Styles.md)
\ No newline at end of file
diff --git a/docs/en/Community-Articles/2020-04-27-Use-Azure-Active-Directory-Authentication-for-MVC-Razor-Page-Applications/POST.md b/docs/en/Community-Articles/2020-04-27-Use-Azure-Active-Directory-Authentication-for-MVC-Razor-Page-Applications/POST.md
index 417fa7da3e..146d250d1f 100644
--- a/docs/en/Community-Articles/2020-04-27-Use-Azure-Active-Directory-Authentication-for-MVC-Razor-Page-Applications/POST.md
+++ b/docs/en/Community-Articles/2020-04-27-Use-Azure-Active-Directory-Authentication-for-MVC-Razor-Page-Applications/POST.md
@@ -136,7 +136,7 @@ And that's it, integration is completed. Keep on mind that you can connect any o
## 3. AddMicrosoftIdentityWebAppAuthentication
-With .Net 5.0, AzureAd is marked [obsolute](https://github.com/dotnet/aspnetcore/issues/25807) and will not be supported in the near future. However its expanded functionality is available in [microsoft-identity-web](https://github.com/AzureAD/microsoft-identity-web/wiki) packages.
+With .Net 5.0, AzureAd is marked [obsolete](https://github.com/dotnet/aspnetcore/issues/25807) and will not be supported in the near future. However its expanded functionality is available in [microsoft-identity-web](https://github.com/AzureAD/microsoft-identity-web/wiki) packages.
Add (or replace with) the new nuget package Microsoft.Identity.Web nuget package](https://www.nuget.org/packages/Microsoft.Identity.Web/).
diff --git a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/POST.md b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/POST.md
index 4bdebb6234..971eb88f97 100644
--- a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/POST.md
+++ b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/POST.md
@@ -52,7 +52,10 @@ abp new TelerikComponents --ui blazor --database-provider ef
```html
...
-
+
+