Skip to content

v3.1.0

Compare
Choose a tag to compare
@gumbarros gumbarros released this 19 Jan 20:00
· 1885 commits to main since this release
8a19ee4

version

Release Notes 🪐

HTML Rendering

  • JJMasterData.Core no longer contains hard-coded HTML Strings
  • Added HtmlBuilder class, responsible to render a node in the HTML tree

Development

  • Removed JJMasterData.Web.Bootstraper, now JJMasterData.Web.Example is used at development
  • Added a single appsettings.json for every project

.NET

  • .NET 7 is officially supported with C# 11.

DataAccess

  • Added IDataDictionary and IEntityRepository

    image

TagHelpers

  • Added TagHelpers to some JJMasterData components like <jj-formview element-name="YourDictionary"\>

Application Options

  • Now have a web UI
  • You can also test your connection at this view
  • appsettings.json now can be saved at runtime
  • Implement IWritableOptions if you want to write your settings somewhere

L10N

  • You no longer need to truncate your resources table after every update
  • Now uses IStringLocalizer internally

WebApi

  • Now have a File manipulation route

First time setup

  • Automatically creates everything now

Example Project

  • Now have new examples
  • Added validation if the example dictionary does not exist
  • Bootstrap agnostic layout

Data Dictionary

Home

  • Now showcase the dictionary info
  • You can now Render your dictionary from the grid without clicking on edit (finally 🙏)
  • If you export only a single dictionary, a .json exported instead of a .zip

Repository Support

  • MongoDB support 🍃
    You can now store your metadata at MongoDB! Just install JJMasterData.MongoDB
  • File System
    Just use with FileSystemDataDictionaryRepository

Validations

  • Only fields of type VarChar or Text can have a filter of the type Contains.

FormEvents

  • Now support FormEventAttribute to have any class name
  • Python events now support debugging on VSCode
  • Created IFormEventResolver to any custom implementation
  • WebApi can now have FormElement customizations using OnMetadataLoad

Logger

  • Removed Console, EventViewer and Trace from JJMasterData.Commons, just use Microsoft Loggers enabling at your IConfiguration source
  • Splitted file and database into DbLogger and FileLogger
  • New log levels following Microsoft conventions
  • Better log messages using ILogger formatter

Added support to DateTime2

  • A recommended SQLServer DateTime type with milliseconds support

Breaking Changes

DataAccess

  • Removed methods ValueExists, ValueExistsAsync, GetValue, GetValueAsync
  • Removed KeepConnAlive Property

JJBaseView

  • Removed RenderHtml, please use RenderHtmlElement

JJUploadFile

  • The event OnPostFile parameter JJFormFile was changed to another class called FormFileContent

JJDataImp

  • OnAfterImport is removed, please use OnAfterUpdate, OnAfterInsert and OnAfterDelete

The events:

  • OnBeforeDelete
  • OnAfterDelete
  • OnBeforeInsert
  • OnAfterInsert
  • OnBeforeUpdate
  • OnAfterUpdate
  • OnBeforeImport

are now fired on JJFormView, JJDataImp and WebApi via FormService.

JJDataPanel

  • JJDataPanel UI related properties moved to UISettings class

JJComboBox

  • Renamed Itens to Items on JJComboBox

JJGridView

  • Renamed SizeTitle to TitleSize
  • Renamed TotalReg to TotalRecords
  • Renamed Erros to Errors
  • Moved DoSqlCommand to ActionManager.ExecuteSqlCommand
  • Moved DoPythonScriptAction to ActionManager.ExecutePythonScriptAction
  • Padronized all public HTML methods to suffix with Html (correct english convention).
  • GridConfigSorting renamed to GridSortingConfig

JJLinkButton

  • Removed property IsSubmit please use LinkButtonType
public enum LinkButtonType
{
    Link = 0,
    Button = 1,
    Submit = 2
}

EventArgs Classes

  • Renamed ResultHtml to HtmlResult 💣

FormEvents

  • Removed OnInstanceCreated please use OnMetadataLoad

WebApi

  • Renamed masterApi/{elementName}/{id}/file/{fieldName}/ route to masterApi/{elementName}/{id}/{fieldName}/file (IMPORTANT @🐍) 💣

Logger

Important ⚠️

  • Default constructors of the components maybe removed in the next version, give a preference to TagHelpers 💣
  • This change will be made to remove the service locator anti-pattern.
  • Using TagHelpers with the Fluent configuration methods, you will see that your code quality will improve without instantiating a JJFormView.

Miscellaneous

  • Removed JJDate,JJDateTime and JJHour, please add the needed attributes to JJTextBox 💣
  • Removed IDataAccess, please use DataAccess
  • Removed ISettings please use IOptions<JJMasterDataOptions>
  • Removed ITranslator please use ILocalizationProvider
  • Renamed JJUploadFile to JJUploadArea
  • Removed TripAdvisor icon ( they were angry with FontAwesome)
  • Moved XUnit Test from FromElement to Metadata
  • Renamed DicParser and related classes to Metadata
  • Renamed method StringManager.NoAccents to StringManager.GetStringWithoutAccents
  • Renamed DataDictionaryManager to FormService
  • Renamed DataDictionaryManagerResult to FormLetter
  • Renamed Factory to EntityRepository 💣
  • Renamed DictionaryDao to DatabaseDataDictionaryRepository 💣