Skip to main content

Xomega.Net for VS 2022

Below is a summary of the release notes for the Xomega.Net for Visual Studio 2022 releases.

Version 9.12.2

Release Date: 06/30/2024

New features

  • Support for PostgreSQL database.

    • Added Database selection with SQL Server and PostgreSQL options to the solution wizard under the Service Implementations project.
    • Updated project templates to support PostgreSQL for EF Core only.
    • Added PostgreSQL specific types and type configs to the model project as needed.
    • Added support for importing PostgreSQL enums and domain types.
    • Added ability to specify Postgres type (pg-type) for a SQL type config and import it from the DB for enums and domain types.
    • Updated Database Schema and Database Change Script generators to support PostgreSQL.
  • Standard VS connection dialog is now used instead of the custom OLE DB connection dialog.

    • Command timeout is now specified in the connection string properties.
    • Resetting connection info is now done via a selection in a new DB Provider property.
    • The new connection dialog also allows working with SQL Server Express now.
    • Note: using standard VS connection dialog removed ability to exclude tables to import for now.
  • Support for list types, backed by multi-database support of arrays in EF Core 8.x.

    • Type's xfk:property can be now configured as multi-value for array-based logical types.

Minor changes

  • DB connection string stored in the model project is now encrypted for security.
  • CamelCase, lower_case and UPPER_CASE have been renamed in generators' properties to PascalCase, lower_snake and UPPER_SNAKE respectively.
  • Configuration of cascade delete/update actions now includes the restrict value.
  • SQL Server types and configs are now in separate model files that are excluded for non-SQL Server databases.
  • Database Schema and Database Change Script generators now have a Rerunnable parameter to allow controlling wether the generated scrips are rerunnable. The new parameter is set to false by default for cleaner scripts.
  • Database Change Script has been refactored to simplify generated scripts.
  • Updated Import from Database generator to handle FKs with different types than the referenced PKs.
  • Excluded edm_config.xom if Model.Diagrams project is not selected in the new solution wizard.
  • Excluded user controls in global_config.xom if Client.Web project is not selected in the new solution wizard.

Bug fixes

  • Fixed generators to allow using sql:type specified in the type-config elements.
  • Fixed the issue with needing to open .xom files twice initially to get the Xomega editor.
  • Fixed text of the grouping NavMenu for views defined without a module by using "Views" as the default resource.
  • Fixed Import from Database generator to not use a serial key on a subobject with a PK that includes parent keys.

Version 9.12.1

Release Date: 03/27/2024

New features

  • Added support for Entity Model Diagrams as a separate project in a new solution.
  • Updated Entity Data Model generator to clean up no longer valid entities and associations on the diagrams.

Minor changes

Bug fixes

  • Fixed Import from Database generator to use generic types only (thus avoiding using the "user name" type as the base type).
  • Fixed template for the Model project to exclude type configs that are not relevant to the selected solution configuration.
  • Fixed project template for the Client.Blazor.Wasm project to use case-insensitive XML cache loader.

Version 9.12.0

Release Date: 02/29/2024

New features

  • Blazor moved to .NET 8 with support for various architectures.

    • New Blazor solutions require .NET 8 now and are not backward compatible with previous .NET versions.
    • Xomega Solution wizard allows picking any Blazor architecture with different interactive render modes.
    • The main Blazor ASP.NET Core project allows enabling Blazor Server, hosted WebAssembly, or both with Auto mode.
    • The main Blazor project allows hosting REST API for the WebAssembly instead of running it as a separate project.
    • Blazor-hosted REST API uses a path prefix api/ to not clash with Blazor view routes.
    • Blazor-hosted REST API for WebAssembly is secured with same-site cookie rather than JWT.
  • New projects are now secured with a password login screen by default.

    • New solution now includes an extensible model file login.xom in the Xomega model project.
    • login.xom is used to generate the LoginView with all the supporting objects and services.
    • New project also includes additional classes and customizations to support password login for the selected architectures.
    • The default password login implementation provides a 'Guest' login for ease of development.
    • Blazor LoginView is the same for Blazor Server and WebAssembly, despite different authentication mechanisms.
    • Blazor Server now allows to revalidate authentication state periodically.
    • REST API in the new solution implements either cookie-based or JWT authentication, or both, as needed.
    • JWT authentication now provides support for refresh tokens, in addition to short-lived access tokens.
    • Expired authentication now pops up a login screen for re-authentication.
    • Failed JWT token refresh will also display a 'Session expired' warning on the login screen.
    • WPF apps with REST API use the new login view with JWT authentication.
    • WPF apps with WCF services now both use the new password LoginView and services by default.
    • TypeScript SPA apps use the new LoginView with JWT, but with no support for refresh tokens.
    • 2-tier WPF and legacy WebForms apps also use the new LoginView and services for password authentication.
  • Xomega model now allows you to specify an authorization policy for each view.

    • The specified authorization policy is automatically used on generated pages for Blazor views.
    • The specified policy is also used on the corresponding Blazor menu items of the generated main menu.
  • Cleaner projects' structures in the new solution.

    • New solution now automatically sets up proper startup projects based on the selected configuration.
    • Projects in the new solution are now configured solely based on the selected configuration to reduce clutter.
    • There is no more conditional compilation code in the new projects, e.g. EF6 vs EFCore.
    • The model project will now include only generators for the selected architectures.
    • Customization of the Blazor top menu is now performed in a separate class rather than the main Program class.
    • Defining Blazor authorization policies has been also moved from the main Program class to a separate class.
    • Configuring and securing REST API clients has been streamlined with the new Xomega Framework 4.3.0.

Minor changes

  • Updated dependencies of the new projects to the latest versions.
  • Relaxed validation in the Import from Database generator to allow Xomega services without fields (e.g. login.xom).
  • Added support for Bootstrap 5.3.2.
  • Syncfusion Blazor controls now show validation errors under the control by default, rather than as a tooltip.
  • Valid fields in Xomega Blazor controls no longer show a big green checkmark by default.
  • Sidebar was updated to be toggled just by the Bootstrap, thus not requiring an interactive mode.
  • Added default Blazor favicons.
  • SPA project template now uses Nuget for TypeScript, instead of deprecated SDK.
  • Added ability to mark an entire service as not exposed for WCF (e.g. login), updated WCF generators accordingly.
  • Generators for WPF, SPA and WebForms views now use the field-cols config for the number of columns, rather than the legacy ui:layout config.
  • New solution wizard now checks for a Xomega license before creating a solution.

Bug fixes

  • Generated data objects now better handle reads without blank keys, when Blazor activates blank models initially.

Version 9.11.8

Release Date: 11/13/2023

Minor changes

  • Updated the Dictionary item template to add REST endpoint, make some fields required, and default the module to "Admin".
  • Updated Data Objects generator to make properties of supplied keys required and only check input of non-read operations for required properties.

Bug fixes

Version 9.11.7

Release Date: 6/21/2023

Minor changes

  • Project templates now use Xomega Framework 4.2.1 with several enhancements and bug fixes.
  • Syncfusion resources are now loaded from the versioned Syncfusion package rather than from CDN to make upgrades easier.
  • Updated the Dictionary item template to use read enum operation instead of read.
  • Updated Data Objects generator to set IsKey on properties of objects with complex keys.
  • Updated Model Operations generator to generate read list criteria for object's keys, including composite keys.
  • "Trust Server Certificate" parameter is now added to the connection string for any SQL provider by default.
  • NuGet packages on project templates were updated to the latest versions as appropriate.

Bug fixes

  • Xomega Framework 4.2.1 provides bug fixes for the Syncfusion grid version 21.2.9 and up.
  • Fixed the Service Implementations generator for objects with complex keys.
  • Fixed issue with loading Xomega Model projects in VS caused by unsupported default target framework v4.0.

Version 9.11.6

Release Date: 1/14/2023

New features

Bug fixes

  • Xomega Framework 4.2.0 provides bug fixes for using Syncfusion Blazor controls ver. 20.3.0.47.

Minor changes

  • Startup code in the web project templates is simplified to use a single top-level Program class.
  • Cleaned up the CSS files in the Blazor projects using CSS isolation.
  • The generated context for the EF Domain Objects now uses lazy loading for EF6.
  • Added "Trust Server Certificate" to the connection string as a workaround for expired SQLNCLI11 driver.
  • The target framework on legacy project templates was upgraded to net472 from net461.
  • NuGet packages on project templates were updated to the latest versions as appropriate.

Version 9.11.5

Release Date: 9/25/2022

New features

Bug fixes

  • Fixed compilation issue in generated Service Contracts due to enumeration name conflict.
  • Fixed generators of Data Objects and View Models to handle DataObjectList classes with multiple ReadList operations.
  • Fixed generation of navigation properties for fields in a key fieldset.
  • Fixed service-based generators to handle objects with only subobject operations.
  • Fixed message constant generators for VS 2022.
  • Fixed UnloadProject and ReloadProject to execute in the UI thread for VS 2022 to avoid errors.

Minor changes

  • Added file nesting to the REST controllers project.
  • Updated to the latest NuGet packages where possible.

Version 9.11.4

Release Date: 3/14/2022

New features

  • Support for Visual Studio 2022
  • Support for .NET 6

Minor changes

  • Fixed label resource generator to not output duplicate resources for data properties.
  • Fixed solution template for creating 2-tier WPF apps.
  • Updated to the latest NuGet packages where possible.