Serenity 8.0.0 Release Notes (2023-11-16)

Switching to .NET 8

This major update supports .NET 8. Before transitioning to this version, ensure your Visual Studio 2022 version is 17.8.0 or later. Install .NET SDK 8 through the Visual Studio update or manually if not using VS. In your project file, adjust the target to net8.0:

<TargetFramework>net8.0</TargetFramework>`

Next, update the following packages to the listed versions or higher:

<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.0" />
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.1.4" />

Then, update Serenity and Pro packages to version 8.0. This update should be sufficient to transition to .NET 8 as there aren't many breaking changes affecting Serenity-based applications.

Note: Serenity 8.0+ will no longer support .NET 6/.NET 7.

We will not release a .NET 8 version of Serene yet, as most users who download it might not have the required Visual Studio 17.8.0 update, causing issues for newcomers. Serene users should apply the changes noted in these release notes to their apps after updating their Visual Studio.

Several NuGet Packages Updated

The following NuGet packages have been updated:

  • Microsoft.TypeScript.MSBuild to 5.2.2 (now the recommended TypeScript version.)
  • Newtonsoft.Json
  • Scriban
  • Mono.Cecil
  • Microsoft.Data.SqlClient
  • Dapper
  • MailKit
  • Nuglify
  • SixLabors.ImageSharp, etc.

CSS Files for Serene Moved to Serenity.Extensions **[BREAKING CHANGE]**

The serenity.css, currently exclusive to Serene, has been relocated to Serenity.Extensions as a static asset for easier updates.

After updating, delete wwwroot/Content/serenity/serenity.css and replace the reference to serenity.css in your appsettings.json with ~/Serenity.Extensions/common-style.css.

Serene users should also update their ~/Content/site/common-theme.css reference to ~/Serenity.Extensions/common-theme.css.

These changes simplify the process for Serene users to update their core CSS files.

Removed Legacy Scripts

The following legacy scripts and CSS files have been removed from the Serenity.Assets package:

  • Content/aristo/aristo.css
  • Content/bootstrap-theme.css (Bootstrap 3)
  • Content/bootstrap.css (Bootstrap 3)
  • Content/ionicons.css
  • Content/page.css
  • Content/simple-line-icons.css
  • Content/slick-default-theme.css
  • Content/slick.columnpicker.css
  • Content/slick.headerbuttons.css
  • Content/slick.headermenu.css
  • Content/slick.pager.css
  • Scripts/bootstrap.js (Bootstrap 3)
  • Scripts/jquery/jquery.slim.js
  • Scripts/jquery.cropzoom.js
  • Scripts/jquery.iframe-transport.js
  • Scripts/jquery.json.js
  • Scripts/jquery.scrollintoview.js
  • Scripts/jquery.slimscroll.js
  • Scripts/jsrender.js
  • Scripts/pace.js
  • Scripts/react*.js
  • Scripts/rsvp.js
  • Scripts/saltarelle/linq.js
  • Scripts/saltarelle/mscorlib.js

These files have not been used by Serene/StartSharp for a long time. If any of the above files are still referenced in your appsettings.bundles.json, remove those references or install those files via libman.json or similar.

Updated jQuery and Removed Legacy Versioned jQuery Files

We updated jQuery to 3.7.1 and removed jQuery 3.5.1 files from Serenity.Assets. If your appsettings.bundles.json contains a reference like "~/Serenity.Assets/Scripts/jquery-{version}.js", please change it to "~/Serenity.Assets/jquery/jquery.js" (currently 3.7.1 and will remain the latest version) or install it via libman.

The full version of jQuery UI, e.g., jquery-ui-1.12.1.js, has been removed from Serenity.Assets as it lacks the patches applied to jquery-ui.js, our trimmed custom version. Replace any references in appsettings.bundles.json like "~/Serenity.Assets/Scripts/jquery-ui-{version}.js" with "~/Serenity.Assets/Scripts/jquery-ui.js" or install it via libman/npm (though without our patches).

Updated Bootstrap

Bootstrap has been updated to 5.3.2, providing more customization options via CSS variables and supporting a dark theme.

The rules in Serenity.Pro.Theme have been updated to match the Bootstrap version and utilize new CSS variables and dark mode introduced by Bootstrap.

Make changes in _Layout.cshtml and _LayoutHead.cshtml so that a data-bs-theme="dark" attribute is added to the HTML element when using the cosmos-dark or similar dark theme.

Updated CKEditor to the Last Open-Source Version

CKEditor has been updated to 4.22.1, the last open-source version. We've also switched to the CKEditor moono-lisa skin, which is flatter than moono.

We updated esbuild to 0.19.15, which has some breaking changes related to watch mode.

Please update tsbuild to its latest version in package.json (currently 8.0.0) and apply changes in the StartSharp/Serene repository's tsbuild.js to your project.

TSBuild now has a type definition so that you can see the options it provides.

Select2 Localization Integrated with Serenity

We implemented Select2 localization using our localText and stringFormat functions.

The select2-locales folder has been removed from Serenity.Assets as they were not suitable for use with Serenity localization.

StartSharp Includes a Git Ignore File

The StartSharp template now includes a .gitignore file with ignore patterns suitable for general Serenity applications:

  • .restore-stamp
  • Thumbs.db
  • StyleCop.Cache
  • UpgradeLog.htm
  • *.bak
  • *.log
  • *.orig
  • *.pdb
  • *.pubxml
  • *.suo
  • *.user
  • appsettings*.machine.json
  • .vs/
  • App_Data/
  • bin/
  • node_modules/
  • obj/
  • TestResults/
  • wwwroot/esm/