Release Notes

v1.2.2

Improvements

  • Fixes an issue that caused a serious slow down on application init

Bugfixes

  • Client api generation from local was not working because of missing assemblies, fixed
  • Mvc hosts with client api was not starting, fixed

v1.2.1

Features

  • apigen now can create client api from bin directory

Improvements

  • apigen now shows compile errors in console output

Bugfixes

  • apigen was not deleting temp folder when an error occurs, fixed

v1.2.0

Features

  • "Gazel CLI" is introduced as a global tool (g). Install it through choco install gazel-cli.
  • CommandLineApplication is introduced as a new application type which supports verb and option parsing via CommandLineParser
  • IComponentModelBuilderConfiguration is introduced to enable modifying default registration of components.
    • LifestyleContributor is implemented to enable changing registered lifestyle of a component. (e.g. cmb.SetLifeStyle(of: typeof(SomeClass), to: LifestyleType.Singleton))
    • OrderedInterceptorContributor is implemented to allow ordered interceptors from "Castle.Windsor".
  • ColoredLevelConsoleAppender is added to allow beautiful log messages to console.

Breaking Changes

  • apigen.exe is removed from "Gazel.Client" package and moved to "Gazel CLI" as a sub command (e.g. g apigen http://api.project.com -n MyCompany.MyProject)
  • apigen options are redesigned completely
  • singleton parameter of TestBase.CreateMock is renamed to @override
  • DateTimeRange.DateTimeFormat field is renamed to DATE_TIME_FORMAT and made private, you can use Constants.DATE_TIME_FORMAT instead
  • Default color style is ColorStyle.Gray for MVC Public Theme

Improvements

  • Missing XML documentation of Gazel.System classes are completed
  • A lot of refactoring was made to improve code readibility
  • Nuget specs are revised to conform to best practices
  • ColorStyle.Gray added to MVC Public Theme
  • Added FileSystem feature to MVC applications

Bugfixes

  • SQLite.Interop assemblies will be added with CopyIfNewer set to TRUE
  • 3rd party library XML documentation files are included in nuget packages
  • MVC DecimalPointOption.Always was not working correctly, fixed

v1.1.9

Bugfixes

  • SessionInfo columns are excluded from CustomerUserType naming convention like audit columns.

Improvements

  • In order to store session information like AuditInfo on entities, SessionInfo is added. IWithSession and IAuditableWithSession interfaces are added to enforce user to use as properties.

v1.1.7

Improvements

  • Npgsql is added to Gazel.Configuration in order to support PostgreSQL.

v1.1.6

Improvements

  • Instead of fetching fonts from google, Google Fonts in gazel.css are embeded into Gazel.Configuration.Mvc
  • Submodules of Acelang are embeded into Gazel.Configuration.Mvc

v1.1.4

Bugfixes

  • The maxResultLengthInBytes specified using the ServiceConfigurer in Global.asax for GateWay Application is not set on the JavaScriptSerializer.MaxJsonLength property. It gives "The length of the string exceeds the value set on the maxJsonLength property" error message, fixed.

v1.1.3

Library Upgrades

  • Upgraded Routine 0.8.1 to 0.8.2

v1.1.2

Bugfixes

  • The maxResultLengthInBytes specified using the ServiceConfigurer in Global.asax is not set on the JavaScriptSerializer.MaxJsonLength property. It gives "The length of the string exceeds the value set on the maxJsonLength property" error message, fixed.

v1.1.1

Bugfixes

  • License keys with MvcApplication were not working under ServiceApplication, fixed.

Library Upgrades

  • Upgraded Routine 0.8.0 to 0.8.1

v1.1.0

Features

  • Nuget - The Nuget packages were arranged.
    • Created Gazel.Configuration.Mvc NuGet package to support MVC web applications on .NET Framework.

Breaking Changes

  • MVC web application support has been removed from Gazel.Configuration. It has been moved to the new Gazel.Configuration.Mvc NuGet package.
  • Auto UI support has been removed from Gazel.Configuration. It has been moved to the new Gazel.Configuration.Mvc NuGet package.
  • Microsoft.AspNet.Mvc NuGet package has been removed from both Gazel and Gazel.Configuration.
  • Newtonsoft.Json library has been removed from Gazel.Configuration NuGet package.

Improvements

  • Added json serializer support for Middleware Application

Library Upgrades

  • Upgraded Routine 0.7.8.37795 to 0.8.0

Older Releases

v1.0.2

Library Upgrades

  • Upgraded RabbitMQ.Client 5.1.0 to 5.1.2
  • Upgraded Castle.Windsor 5.0.0 to 5.0.1
  • Upgraded Castle.Facilities.AspNet.SystemWeb 5.0.0 to 5.0.1
  • Upgraded Castle.WcfIntegrationFacility 5.0.0 to 5.0.1
  • Upgraded Castle.LoggingFacility 5.0.0 to 5.0.1
  • Upgraded Moq 4.12.0 to 4.13.1

v1.0.1

Bugfixes

  • When context session is overriding, if an exception occurs in action, context session is not restored to previous value, fixed.
  • When an MVC application is started, action filters on UI modules are not automatically registered in kernel, fixed.
  • When a HTTP post request with content type application/x-www-form-urlencoded, REST api is throwing System.StackOverflowException, fixed.

Improvements

  • After NHibernate 5.1.2 upgrade, if an entity is mapped with explicit implementation of an interface, when accessing the Id property via an interface, it returns Id property of a proxy entity. That is expected behavior. But, NHibernate DefaultProxyFactory(obsoleted) was not doing this. It can still be enabled using useDefaultProxyFactory parameter of DatabaseConfigurer from Global.asax.
  • System.Threading.Tasks.Extensions library has been added in Gazel.Configuration NuGet package.

Library Upgrades

  • Upgraded Castle.Core 4.3.1 to 4.4.0
  • Upgraded Castle.Core-log4net 4.3.1 to 4.4.0
  • Upgraded NUnit 3.11.0 to 3.12.0
  • Upgraded Newtonsoft.json 12.0.1 to 12.0.2
  • Upgraded Moq 4.2.1402.2112 to 4.12.0
  • Upgraded System.Data.SQLite.Core 1.0.110 to 1.0.111

v1.0.0-rc3

Bugfixes

  • RemoteSyslogAppender doesn't properly handle newline in log message, fixed.

v1.0.0-rc2

Bugfixes

  • Fixed issue of not overriding what has been injected to already created objects with new mock objects when singleton is true create mock.

v1.0.0-rc1

Features

  • RabbitMQ now supports sending messages directly without implementing IMessageManager. It can be enabled using messageDeliveryStrategy parameter of MessageQueueConfigurer.RabbitMq from Global.asax.
  • Added json file localizer and custom localizer support. They can be configured using LocalizationFeature from Global.asax.
  • Sql reserved keywords can now be specified by configuring from Global.asax.
  • Documentation - Added PlantUML plugin inside Gazel documentation.
  • Documentation - Security and web service features have been published.

Breaking Changes

  • .Net Framework 4.0 support has been removed.
  • .Net Framework 4.5 is changed to 4.5.2.
  • Castle.FactorySupportFacility library has been removed from Gazel.Configuration nuget package.
  • For primary key, naming convention following EntityName+Id has been removed. It can now be specified using IMappingConfiguration implementation.

Improvements

  • Castle.Facilities.AspNet.SystemWeb 5.0.0, Remotion.Linq 2.1.2, Remotion.Linq.EagerFetching 2.1.0 and Antlr3.Runtime 3.5.1 libraries have been added in Gazel.Configuration nuget package.
  • NuGet package have been changed to provide support for .Net Framework 4.5.2 version.
  • Documentation - Architecture feature has been updated. (see: https://docs.gazel.io/architecture.html)

Library Upgrades

  • Upgraded Castle.Windsor 3.2.1 to 5.0.0
  • Upgraded Castle.Core 3.2.0 to 4.3.1
  • Upgraded Castle.Core-log4net 3.2.0 to 4.3.1
  • Upgraded Castle.LoggingFacility 3.2.0 to 5.0.0
  • Upgraded Castle.WcfIntegrationFacility 3.2.0 to 5.0.0
  • Upgraded Common.Logging 2.1.2 to 3.4.1
  • Upgraded log4net 1.2.10 to 2.0.8
  • Upgraded NUnit 2.6.3 to 3.11.0
  • Upgraded Quartz 2.2.4 to 3.0.7
  • Upgraded RabbitMQ.Client 3.5.7 to 5.1.0
Upgrades specific for .Net Framework 4.7
  • Upgraded NHibernate 3.3.5.4000 to 5.1.2
  • Upgraded NHibernate.Caches.SysCache 3.3.3.4000 to 5.4.0
  • Upgraded FluentNHibernate 1.4.0 to 2.1.2

v0.98.5

Features

  • For unhandled exceptions, request header and body can now be included in log message. It can be specified using UnhandledExceptionMessage method of LoggingFeature in Global.asax.
  • Context session can be changed using the IModuleContext.OverrideSession implementation at runtime.

Bugfixes

  • Fixed a bug with min value and max value on money data type for MS SQL Server. Money data type now correctly handles them.
  • Incorrect naming of data contract namespace in the WSDL which is generated by WCF data service, fixed. The namespace of data contract can now be specified using WebServiceConfiguration in Global.asax.

Improvements

  • Added CORS feature support for Mvc Service Client Application
  • Changed the execute order of Audit and Secure configuration interceptions.
  • Added System.Web.Http library in Gazel.Configuration nuget package.

v0.98.4

Features

Improvements

  • Service - Add support for refresh an entity's data from database. (IRepository<T>.Refresh(T entity))
  • System - Added a new system type that truncates long text. (see: https://docs.gazel.io/value-types/CodeContent.html)
  • Changed as protected accessibility of BuildQuery method in Query<T>

v0.98.2

Features

  • NuGet package have been changed to provide support for .Net Framework 4, 4.5, 4.6 and 4.7 versions.
  • Service - Root namespace is now detected automatically.
    • The assembly prefix to which Global.asax belongs is detected as the root namespace.
    • The root namespace can be specified by configuring it from Global.asax.
  • Documentation - The website of the Gazel has been published. (see: http://gazel.io)
  • Documentation - A draft version documentation has been published. (see: http://docs.gazel.io)
  • Tools - An online tool for creating an empty project has been developed. (see: http://gazel.io/create-project)
  • Web - Dropdown component for Enums was created.
    • It can be used as multiple choice.
    • Enum's text values are passed to localization and loaded into dropdown.
    • The icon and color for each item of the dropdown can be specified.
  • Web - The UI component of ContentValueType was created.

Bugfixes

  • Web - The last 2 hours, today and yesterday in the DateTimeRangePicker had incorrect date and time information, fixed.
  • Web - If the form is posted to the Nullable MoneyRange component without any values entered, the service returned the default MoneyRange value instead of null, fixed.

Improvements

  • Nuget - The Nuget packages were arranged.
    • Gazel package is now a single package. Dependencies of Gazel comes within Gazel to simplify nuget packages in projects.
    • apigen package is renamed to Gazel.Client
    • Apigen.exe has been removed from the project references. It was added under the Content folder in the project.
    • When the Gazel.Client package is installed, the apigen.exe readme file is opened.
  • Service - Exceptions within WithNewTransaction blocks were logged in ERROR level, changed to DEBUG.
  • Web - The library was changed to mask Money UI component.
  • Service - CreateDate and ModifyDate columns are now mapped to Timestamp.
  • Web - Allows to select currency in Money
    • If the default value is present, the default value is the currency. Otherwise, the Auto UI is retrieved from the configuration.
    • It can be gotton from Global.asax.
    • If the object has a property of type CurrencyCode, the currency value of the property is taken.
  • Service - ResultCode information is added to fail and success logs.
  • Web - Added 8-digit card number validation to CardNumber's UI component.
  • Service - More options in database connection;
    • Max pool size management for SqlServer connections
    • Oracle, PostgreSQL and MySql support
  • Web - Date constraint feature added to DatePicker UI component