v3.1.0
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
, nowJJMasterData.Web.Example
is used at development - Added a single appsettings.json for every project
.NET
- .NET 7 is officially supported with C# 11.
DataAccess
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 installJJMasterData.MongoDB
- File System
Just use withFileSystemDataDictionaryRepository
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 usingOnMetadataLoad
Logger
- Removed Console, EventViewer and Trace from
JJMasterData.Commons
, just use Microsoft Loggers enabling at yourIConfiguration
source - Splitted file and database into
DbLogger
andFileLogger
- 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 useRenderHtmlElement
JJUploadFile
- The event OnPostFile parameter JJFormFile was changed to another class called FormFileContent
JJDataImp
OnAfterImport
is removed, please useOnAfterUpdate
,OnAfterInsert
andOnAfterDelete
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 toUISettings
class
JJComboBox
- Renamed Itens to Items on
JJComboBox
JJGridView
- Renamed
SizeTitle
toTitleSize
- Renamed
TotalReg
toTotalRecords
- Renamed
Erros
toErrors
- Moved
DoSqlCommand
toActionManager.ExecuteSqlCommand
- Moved
DoPythonScriptAction
toActionManager.ExecutePythonScriptAction
- Padronized all public HTML methods to suffix with Html (correct english convention).
GridConfigSorting
renamed toGridSortingConfig
JJLinkButton
- Removed property
IsSubmit
please useLinkButtonType
public enum LinkButtonType
{
Link = 0,
Button = 1,
Submit = 2
}
EventArgs Classes
- Renamed
ResultHtml
toHtmlResult
💣
FormEvents
- Removed
OnInstanceCreated
please useOnMetadataLoad
WebApi
- Renamed
masterApi/{elementName}/{id}/file/{fieldName}/
route tomasterApi/{elementName}/{id}/{fieldName}/file
(IMPORTANT @🐍) 💣
Logger
- Configurations now follow Microsoft ILogger 💣
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
andJJHour
, please add the needed attributes toJJTextBox
💣 - Removed
IDataAccess
, please useDataAccess
- Removed
ISettings
please useIOptions<JJMasterDataOptions>
- Removed
ITranslator
please useILocalizationProvider
- Renamed
JJUploadFile
toJJUploadArea
- Removed TripAdvisor icon ( they were angry with FontAwesome)
- Moved XUnit Test from FromElement to Metadata
- Renamed
DicParser
and related classes toMetadata
- Renamed method
StringManager.NoAccents
toStringManager.GetStringWithoutAccents
- Renamed
DataDictionaryManager
toFormService
- Renamed
DataDictionaryManagerResult
toFormLetter
- Renamed
Factory
toEntityRepository
💣 - Renamed
DictionaryDao
toDatabaseDataDictionaryRepository
💣