v0
v0.19
v0.19.3
Bugfixes
Paramaters
was causing error when default is fetch remotely, fixed
v0.19.2
Improvements
- Style improvement:
PageTitle
, bg-color
, z-index
- Nested types were causing compilation error in generated controllers when
used as parameter or return type, fixed
- Logo is now hidden during generate
- UI generation can now be disabled to allow backend-only builds in docker
- Improvement
Parameters
and QueryParameters
component for number type
behaviour - Expose
ScrollTop
component to ScrollTopOptions
in DefaultLayout
- Implement
Id
convention to properties
v0.19.1
Improvements
- UI projects were not including styles in dev mode, fixed
- Now only dependencies listed in
vite.optimizeDeps.include
setting are
optimized, make sure you add the packages that need to be optimized
v0.19.0
Packages
This release introduces a package renaming and rebundling prior to v1.0;
Baked
: The implementation package (previously Baked.Architecture
and
Baked.Recipe.Service
)Baked.Abstractions
: The abstraction package (previously Baked.Service
)@mouseless/baked
: The UI package (previously baked-recipe-admin
)
Improvements
- Renamed
Service
recipe as Monolith
ServiceNfr
and ServiceSpec
renamed as MonolithNfr
and MonolithSpec
respectively- UI components are moved from
Baked.Theme.Default
to Baked.Ui
namespace - Convention extensions are standardized
whenType:
, whenProperty:
, whenMethod:
, whenParameter:
are all
renamed as when:
to match other convention extensionsapply:
parameter in metadata configuration extensions are renamed as
attribute:
to match Set/Add
- First parameter of
when:
in metadata configuration extensions is changed
to context instead of attribute for consistency with other extensions - All metadata convention and configurations are renamed as attribute, e.g.,
SetTypeMetadata
-> SetTypeAttribute
whenComponent:
is renamed as where:
for better readability
String
UI component is renamed as Text
- The
add
and set
methods in Caster
are made internal
RequestResponseExamples
and RequestResponseExamplesData
moved from
Baked.Abstractions
to Baked
primevue
, primeicons
and @primeuix/themes
where bundled dependencies
which was increasing the package size, fixed- Some
primevue
styles were not loading due to duplication caused by bundling,
fixed Lazy
prefix in generated .baked/components.js
are removed for simplicity
- This is experimental and any issues will be fixed prior to v1.0
Library Upgrades
NuGet Package | Old Version | New Version |
---|
BenchmarkDotNet | 0.15.2 | 0.15.4 |
Microsoft.AspNetCore.Authentication.JwtBearer | 9.0.9 | 9.0.10 |
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 9.0.9 | 9.0.10 |
Microsoft.AspNetCore.Mvc.Testing | 9.0.9 | 9.0.10 |
Microsoft.Data.Sqlite.Core | 9.0.9 | 9.0.10 |
Microsoft.Extensions.Caching.Abstractions | 9.0.9 | 9.0.10 |
Microsoft.Extensions.Configuration.Abstractions | 9.0.9 | 9.0.10 |
Microsoft.Extensions.Configuration.Binder | 9.0.9 | 9.0.10 |
Microsoft.Extensions.FileProviders.Abstractions | 9.0.9 | 9.0.10 |
Microsoft.Extensions.Localization | 9.0.9 | 9.0.10 |
Microsoft.Extensions.Localization.Abstractions | 9.0.9 | 9.0.10 |
Microsoft.Extensions.Logging.Abstractions | 9.0.9 | 9.0.10 |
Microsoft.Extensions.TimeProvider.Testing | 9.9.0 | 9.10.0 |
Microsoft.NET.Test.Sdk | 17.14.1 | 18.0.0 |
NHibernate | 5.5.3 | 5.6.0 |
NUnit3TestAdapter | 5.1.0 | 5.2.0 |
Npgsql | 9.0.3 | 9.0.4 |
Oracle.ManagedDataAccess.Core | 23.9.1 | 23.26.0 |
Swashbuckle.AspNetCore | 9.0.4 | 9.0.6 |
Swashbuckle.AspNetCore.Annotations | 9.0.4 | 9.0.6 |
npm Package | Old Version | New Version |
---|
@nuxtjs/i18n | 10.1.0 | 10.1.1 |
@primeuix/themes | 1.2.3 | 1.2.5 |
primevue | 4.3.9 | 4.4.1 |
v0.18
v0.18.1
Bugfixes
- Tabs indexes order correct order for
showWhen
Improvements
- Changed context functions naming conventions for
provide
and inject
- Standardize all composables to use
({})
object pattern for better consistency - Implement
TypeError
case for client Error
, ErrorPage
- Add default param
allowEmpty
to false
IComponentDescriptor.Data
is now settable- Package keys updated in locales
FirstProperty
, FirstMethod
and FirstParameter
helper extensions added
with their overloadDataTable
and DataTable.Column
drills fixedGetListProperty
and TryGetListProperty
helper extensions added- The
itemsProp
is set in ObjectWithList
data tables. LabelAttribute
added to builder's index property- All pages now have a margin at the bottom to avoid collision of scroll to top
and data panels
npm Package | Old Version | New Version |
---|
@nuxt/kit | 3.19.2 | removed |
v0.18.0
Features
- Beta features are available in
Baked.Recipe.Service.Application
;
- Introducing UI Conventions:
UiLayer
and ThemeFeature
now provides
several conventions and extension methods to allow you to build your page
descriptors via conventions instead of configuring them one by one - Introducing UX Features: many
UxFeature
implementations are provided to
deliver built-in user experiences that leverage the new UI convention system
Improvements
AdminThemeFeature
is renamed as DefaultThemeFeature
to indicate that it
serves as a base for other themes- Component initializers now have a
schema:
and optional data:
function
parameter, minimizing the need to duplicate schema properties in component
initializers ComponentDescriptor
is removed, all components must have a schema now
Rate
, Money
, Number
now have a component schema even if the schemas
don't have any property
ComponentDescriptorAttribute<TSchema>
is renamed as
ComponentDescriptor<TSchema>
and is not an attribute any more
- To add metadata to a domain model use
ComponentDescriptorBuilderAttribute
and for schema parts use DescriptorBuilderAttribute
IPageSchema
and PageSchemaBase
are introduced to allow custom pagesClientCache
is now automatically mapped to RemoteData
attributes- Add/remove metadata extensions are now available property, method and
parameter as well
- Domain model now respects
AllowMultiple
property of an attribute, allowing
an attribute to be overriden when it is single instance attribute
Add{..}Metadata
now only works for the attributes that have
AllowMultiple
set to true
Set{..}Metadata
is now introduced to setting (or overriding) a single
instance for the attributes that have AllowMultiple
set to false
.baked/components.js
now ensures components are sorted by name to make it
easier to spot unexpected changesAttributeCollection
was not keeping the of attributes in the order they were
added fixed
Library Upgrades
NuGet Package | Old Version | New Version |
---|
Microsoft.AspNetCore.Authentication.JwtBearer | 9.0.7 | 9.0.9 |
Microsoft.AspNetCore.Mvc.Testing | 9.0.7 | 9.0.9 |
Microsoft.Data.Sqlite.Core | 9.0.7 | 9.0.9 |
Microsoft.Extensions.Caching.Abstractions | 9.0.7 | 9.0.9 |
Microsoft.Extensions.Configuration.Abstractions | 9.0.7 | 9.0.9 |
Microsoft.Extensions.Configuration.Binder | 9.0.7 | 9.0.9 |
Microsoft.Extensions.FileProviders.Abstractions | 9.0.7 | 9.0.9 |
Microsoft.Extensions.Localization | 9.0.7 | 9.0.9 |
Microsoft.Extensions.Localization.Abstractions | 9.0.7 | 9.0.9 |
Microsoft.Extensions.TimeProvider.Testing | 9.7.0 | 9.9.0 |
Microsoft.Extensions.Logging.Abstractions | 9.0.7 | 9.0.9 |
MySql.Data | 9.3.0 | 9.4.0 |
Newtonsoft.Json | 13.0.3 | 13.0.4 |
NHibernate | 5.5.2 | 5.5.3 |
NHibernate.Extensions.Sqlite | 9.0.5 | 9.0.8 |
NUnit | 4.3.2 | 4.4.0 |
NUnit3TestAdapter | 5.0.0 | 5.1.0 |
SQLitePCLRaw.bundle_e_sqlite3 | 2.1.11 | 3.0.2 |
Swashbuckle.AspNetCore | 9.0.3 | 9.0.4 |
Swashbuckle.AspNetCore.Annotations | 9.0.3 | 9.0.4 |
System.IdentityModel.Tokens.Jwt | 8.12.1 | 8.14.0 |
npm Package | Old Version | New Version |
---|
@nuxt/kit | 3.17.7 | 3.19.2 |
@nuxtjs/i18n | 10.0.1 | 10.1.0 |
@primeuix/themes | 1.2.1 | 1.2.3 |
primevue | 4.3.6 | 4.3.9 |
v0.17
v0.17.8
Improvements
Popover
styles have been moved to the module- Page scroll has been moved from the
article
to the html
element - Fix minor issues
- Add padding top
PageTitle
to ensure space on mobile - Remove accidental horizontal scroll on
ReportPage
tabs
v0.17.7
Improvements
- Failure to import
app.json
file with absolute path in Windows, fixed - Added
useBreakpoints
composable for media queries - All UI components are now responsive
PageTitle
's description now shows info icon on mobile screensPageTitle
actions now shows popover on mobile screensSideMenu
component displays labels on larger screensSideMenu
component snaps to the bottom on mobile screensDataPanel
parameters now uses popover on mobile screensDataTable
disables the frozen option for mobile screensDataTable
paginator now becomes dropdown for mobile screensLanguageSwitcher
component displays labels on larger screens
v0.17.6
Bugfixes
- Set the object value as the value for the page context key in the
Select
and
Select Button
components, fixed
Improvements
- Remove
localizeParameters
from DataTable.Export
and introduce a more
generic parameterFormatter
to allow any transformation to parameter value
for the csv export file name app.json
is now imported automatically
v0.17.5
Improvements
Select
and SelectButton
components now add selected values to the page
contextBake.vue
now provides data descriptor to the component, inject it using
context.dataDescriptor()
useDataFetcher
now provides a way to get parameter values from data
descriptor via fetchParameters
methodDataTable.vue
now includes parameter values in export file namesRemoteData.Options
has changed to RemoteData.Attributes
to avoid confusion
with ofetch
's options parameter- The select input on the cache page was not working properly, improved
- The QueryParameters component setDefaults was not working properly, improved
- Clear cache on teardown was missing for
InMemoryCachingFeature
, fixed - Improved
Layout
, Input
, MenuPage
, ReportPage
, QueryParameters
,
Parameters
components watchers
v0.17.4
Bugfixes
Select
and SelectButton
was losing stateful selected value due to async
data, fixed
v0.17.3
Bugfixes
DataTable
was having a glitch due to awaiting composableResolver
,
fixedDataTable
was having a glitch with VirtualScroller
, fixed- Revert
.json
file generation unix-style line endings
v0.17.2
Bugfixes
useFormat
was causing error due to misuse of useI18n
in useLocalization
,
fixed
v0.17.1
Improvements
- UI wasn't using default locale as a fallback, fixed
DataTable
export file name and export button label wasn't using
localization, fixeduseFormat
wasn't using locale info from i18n, fixedlocale.en.restext
format wasn't supported for default language when
generating missing keys, fixed
locale.en.{restext|json}
is now the standard format for locale files, do
NOT use locale.restext
in backend
ServiceSpec
and DataSourceSpec
were missing localization feature, fixedILocalizer
interface was removed, Baked.Service.Application
now depend on
Microsoft.AspNetCore.Localization
and may use IStringLocalizer
directlyExceptionHandler
wasn't setting details when there is no localizer, fixedExceptionHandler
wasn't using localization for exception titles, fixed
Library Upgrades
NuGet Package | Old Version | New Version |
---|
Microsoft.AspNetCore.Localization | 2.3.0 | removed |
Microsoft.Extensions.Localization | new | 9.0.7 |
Microsoft.Extensions.Localization.Abstractions | new | 9.0.7 |
v0.17.0
Features
- Beta features are available in
Baked.Recipe.Service.Application
;
RateLimiter
feature is now added with ConcurrencyLimiter
implementationLocalization
feature is now addedCaching.InMemory
is introduced to allow you to cache data in memory for
application-wide caching
- Beta feature is available in
baked-recipe-admin
;
localization
plugin has been introduced along with the useLocalization
composable to manage texts according to culture.cacheApplication
and cacheUser
plugins are introduced to cache api
responses in local storage with a configured expiration value
Improvements
useFormat
was clearing text when number has two trailing zeros, fixeduseFormat
shorteners was not working for negative values, fixedUiLayer
now provides UsingLocaleTemplate
and UsingLocalization
helpers
for adding and tracking locale keys for generated page descriptors- UI components from different page but same route was having state conflicts,
fixed
Parameters
component now emits onChanged
before onReady
to fix values
inconsistency- Local storage was getting cleared on logout, fixed
- Csv formatter now including column and row based format
.json
file generation now uses unix-style line endings
Library Upgrades
NuGet Package | Old Version | New Version |
---|
BenchmarkDotNet | 0.15.0 | 0.15.2 |
Microsoft.AspNetCore.Authentication.JwtBearer | 9.0.5 | 9.0.7 |
Microsoft.AspNetCore.Authentication.NewtonsoftJson | 9.0.5 | 9.0.7 |
Microsoft.AspNetCore.Authentication.Testing | 9.0.5 | 9.0.7 |
Microsoft.AspNetCore.Localization | new | 2.3.0 |
Microsoft.Data.Sqlite.Core | 9.0.5 | 9.0.7 |
Microsoft.Extensions.Caching.Abstractions | 9.0.5 | 9.0.7 |
Microsoft.Extensions.Configuration.Abstractions | 9.0.5 | 9.0.7 |
Microsoft.Extensions.Configuration.Binder | 9.0.5 | 9.0.7 |
Microsoft.Extensions.FileProviders.Abstractions | 9.0.5 | 9.0.7 |
Microsoft.Extensions.Logging.Abstractions | 9.0.5 | 9.0.7 |
Microsoft.Extensions.TimeProvider.Testing | 9.5.0 | 9.7.0 |
Microsoft.NET.Test.Sdk | 17.13.0 | 17.14.1 |
NHibernate.Extensions.Sqlite | 9.0.2 | 9.0.5 |
Oracle.ManagedDataAccess.Core | 23.8.0 | 23.9.1 |
Swashbuckle.AspNetCore | 8.1.1 | 9.0.3 |
Swashbuckle.AspNetCore.Annotations | 8.1.1 | 9.0.3 |
System.IdentityModel.Tokens.Jwt | 8.10.0 | 8.12.1 |
npm Package | Old Version | New Version |
---|
@nuxt/kit | 3.16.2 | 3.17.7 |
@nuxtjs/i18n | new | 10.0.1 |
@nuxtjs/tailwindcss | 6.13.2 | 6.14.0 |
@primeuix/themes | 1.1.1 | 1.2.1 |
primevue | 4.3.4 | 4.3.6 |
v0.16
v0.16.8
Improvements
- Add decimal digits support for small numbers in
Money
and Number
v0.16.7
Improvements
DataTable
now supports frozen columns and actions column is frozen by
defaultDataPanel
onload scroll into view is now removed
v0.16.6
Improvements
DataTable
styles were not loading due to an error in primevue, styles
included in the package and fixed.DataTableColumn
now has alignRight:
optionDataTable
export button was added to last column, causing misalignment,
fixed by adding actions columnDataTableColumn
title was exported as label
when no label was given, fixedDataPanel
autoscroll is triggered each time it is loaded
v0.16.5
Bugfixes
Select
and SelectButton
with async data was causing error upon reloading
v0.16.4
Library Upgrades
NuGet Package | Old Version | New Version |
---|
Microsoft.AspNetCore.Authentication.JwtBearer | 9.0.4 | 9.0.5 |
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 9.0.4 | 9.0.5 |
Microsoft.AspNetCore.Mvc.Testing | 9.0.4 | 9.0.5 |
Microsoft.CodeAnalysis.CSharp | 4.14.3 | 4.14.4 |
Microsoft.Data.Sqlite.Core | 9.0.4 | 9.0.5 |
Microsoft.Extensions.Caching.Abstractions | 9.0.4 | 9.0.5 |
Microsoft.Extensions.Configuration.Abstractions | 9.0.4 | 9.0.5 |
Microsoft.Extensions.Configuration.Binder | 9.0.4 | 9.0.5 |
Microsoft.Extensions.FileProviders.Abstractions | 9.0.4 | 9.0.5 |
Microsoft.Extensions.Logging.Abstractions | 9.0.5 | 9.0.5 |
Microsoft.Extensions.TimeProvider.Testing | 9.4.0 | 9.5.0 |
System.IdentityModel.Tokens.Jwt | 8.8.0 | 8.10.0 |
npm Package | Old Version | New Version |
---|
@primeuix/themes | 1.0.3 | 1.1.1 |
primevue | 4.3.3 | 4.3.4 |
v0.16.3
Improvements
ReportContext
was throwing error for null
query parameters, fixed.- UI components now have context aware css marker classes to enable
customization
PageTitle
had a margin issue when description is mutline, fixed
v0.16.2
Improvements
ReportPage
now offers a better full-screen rendering
DefaultLayout
provides article overflow option in UI contextoverflow
is added to ReportPageTab
to automatically enable article
overflow when tab is selectedfullScreen
is moved from ReportPageTabContent
to ReportPageTab
to
manage both fullScreen
and overflow
togetherReportPage
was rendering only first tab content when a tab is full-screen,
now it renders all contents
DefaultLayout
overflow was not hidden causing unintended scrolls, fixedDataTable
now has virtualScrollerOptions
property for increasing
performance when handling large amount of data
v0.16.1
Improvements
500
responses from running backend were causing retry instead of redirecting
to error page, fixed.- Menu sections have bigger fonts with more contrast for better readability
- Filter input now gains focus automatically to filter menus without making an
extra click
DataTable
component now provides exporting its data in CSV
format
v0.16.0
Features
- Beta features are available in
baked-recipe-admin
;
Message
component is with icon and severity supportNumber
component is introduced to display numbers in formatted with
tooltips
Improvements
- The
QueryParameter
component now supports subcomponents that manage its own
default value. It can be managed with the defaultSelfManaged
parameter. - Changed breadcrumb last item from
<span>
to link
. - Removed
DeclaredOnly
binding flag from properties. ConditionalComponent
was renamed to Conditional
and moved under the
namespace Baked.Theme.Admin
.String
component now has max length property, which will truncate the
text ending with ellipsis and show full text with a tooltipIReportContext
, now allows nulls in parameter dictionary.- New
ToBase64Url
and FromBase64Url
extensions added. showUnhandled
flag is added to exception handling, and enabled by default in
staging environmentDataTable
component now has footer supportDataTable
component now has scrollable toggle
Library Upgrades
NuGet Package | Old Version | New Version |
---|
Microsoft.AspNetCore.Authentication.JwtBearer | 9.0.3 | 9.0.4 |
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 9.0.3 | 9.0.4 |
Microsoft.AspNetCore.Mvc.Testing | 9.0.3 | 9.0.4 |
Microsoft.Data.Sqlite.Core | 9.0.3 | 9.0.4 |
Microsoft.Extensions.Caching.Abstractions | 9.0.3 | 9.0.4 |
Microsoft.Extensions.Configuration.Abstractions | 9.0.3 | 9.0.4 |
Microsoft.Extensions.Configuration.Binder | 9.0.3 | 9.0.4 |
Microsoft.Extensions.FileProviders.Abstractions | 9.0.3 | 9.0.4 |
Microsoft.Extensions.Logging.Abstractions | 9.0.3 | 9.0.4 |
Microsoft.Extensions.TimeProvider.Testing | 9.3.0 | 9.4.0 |
MySql.Data | 9.2.0 | 9.3.0 |
Oracle.ManagedDataAccess.Core | 23.7.0 | 23.8.0 |
Swashbuckle.AspNetCore | 8.1.0 | 8.1.1 |
Swashbuckle.AspNetCore.Annotations | 8.1.0 | 8.1.1 |
System.IdentityModel.Tokens.Jwt | 8.7.0 | 8.8.0 |
npm Package | Old Version | New Version |
---|
@nuxt/kit | 3.16.1 | 3.16.2 |
@primeuix/themes | 1.0.0 | 1.0.3 |
v0.15
v0.15.5
Improvements
MenuPage
now supports sectionsFilter
is added to allow MenuPage
to filter its links- Rich transients were causing build error when their initializer
With
is
async, fixed ActionModelAttribute
now has a separate InvocationIsAsync
and
ReturnIsAsync
to make it possible for the action to be async
while its
backing method is not
v0.15.4
Improvements
Baked.vue
now has key
attribute with loading
as value
v0.15.3
Improvements
Header.vue
loading skeleton height was different than loaded state, causing
a flicker after page changes, fixed
Bugfixes
Bake.vue
wasn't waiting for data to be set after loading false, causing
component to render when data is null, fixedInjectedData
with prop
value was causing error when data is still null,
fixed
v0.15.2
Improvements
primevue
is bundled again to solve dev mode style issueDataTable
now allows to define different components for the same column
depending on a row valueBake.vue
now provides loading
instead of passing it via propsBake.vue
now provides fetched data in InjectedData
InjectedData
now supports prop
to inject part of the data instead of the
whole object
v0.15.1
Improvements
- Add
setupBaked
plugin to module - Fix component styles in dev mode not working
- Add support for subdirs in
.baked
pages - Add
trailingSlash
plugin to admin recipe Auth
plugin LoginPageRoute
is now added to anonymous page routes
automatically- Add
Custom
to Components
helpers to create new ComponentDescriptor(...)
- Data type of
@default
in Parameter
is changed to IData
- Fixed
SelectButton
and Select
doesn't set selected when data is not
Inline
- Fixed
DataPanel
load title data
Library Upgrades
npm Package | Old Version | New Version |
---|
vue-deepunref | 1.0.1 | removed |
v0.15.0
Features
- Beta features are available in
baked-recipe-admin
;
DataPanel
is introduced where you can lazy load your data within a panel
Parameters
is added to render input parameters in icon
template of
Panel
ErrorHandling
plugin is introduced for handling errors and alert or full
page error info displayErrorPage
schema is added to create descriptor for custom error pageDataTable
page component is addedReportPage
schema is added to create report like pages
DeferredTabContent
component is added to load tab contents lazily in
report pagesQueryParameters
component is added to render input parameters in
actions
template of PageTitle
Icon
, Money
, Rate
, Link
page components are addeduseFormat
composable is added for number formattingAuth
plugin is now introduced for authorized routing and requests with
jwt supportAuthorizedContent
component is now introduced for to display/hide
contentSelect
input component is addeduseQuery
composable is added as a computed data to use query parameters in
place for a data
- When used in query data of a remote data, it forwards current page's all
query parameters to a remote call, allowing to use an endpoint of a rich
transient in a data panel
useContext
composable is added to manage bake context in ui componentsInjectedData
is introduced for components to provide values, e.g.
parameter data, to its child commponentsCompositeData
is introduced to combine data from different sourcesModalLayout
is introduced for pages like loginCustomPage
is introduced to allow custom pages through baked uiSelectButton
input component is added
- Beta features are available in
Baked.Recipe.Service.Application
;
Jwt
authentication feature implementation is now added with
JwtTokenBuilder
implementation of ITokenBuilder
service
Improvements
baked-recipe-admin
package size is reduced- Remove bottom margin from
PageTitle
and add space between header and content
in MenuPage
ComputedData
now accepts args to be passed from backend to frontendRemoteData
now accepts queryBake.vue
now provides a baked component path under useContext().path()
to
be used as a unique key within a pageBake.vue
now manages loading
state, making it possible for components to
show a skeleton during loadingSideMenu
, PageTitle
, Header
now supports skeletonDetailPage
and its conventions are removedLayout
now automatically resolves and changes the page layout when the page
schema has layout
property, which allows you to specify layout of a page
through its descriptor from backendbaseURL
and retryFetch
are moved from baked.components.Bake
to
baked.composables.useDataFetcher
to make them reusable across the projectroute-params
is removed from Page
and fixed to baked
, since there is no
value in making that something configurable- Page and layout descriptors are now loaded in script setup to avoid flickers
on page load
Library Upgrades
NuGet Package | Old Version | New Version |
---|
FluentNHibernate | 3.4.0 | 3.4.1 |
Microsoft.AspNetCore.Authentication.JwtBearer | new | 9.0.3 |
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 9.0.2 | 9.0.3 |
Microsoft.AspNetCore.Mvc.Testing | 9.0.2 | 9.0.3 |
Microsoft.Data.Sqlite.Core | 9.0.2 | 9.0.3 |
Microsoft.Extensions.Caching.Abstractions | 9.0.2 | 9.0.3 |
Microsoft.Extensions.Configuration.Abstractions | 9.0.2 | 9.0.3 |
Microsoft.Extensions.Configuration.Binder | 9.0.2 | 9.0.3 |
Microsoft.Extensions.FileProviders.Abstractions | 9.0.2 | 9.0.3 |
Microsoft.Extensions.Logging.Abstractions | 9.0.2 | 9.0.3 |
Microsoft.Extensions.TimeProvider.Testing | 9.2.0 | 9.3.0 |
NHibernate.Extensions.Sqlite | 9.0.1 | 9.0.2 |
SQLitePCLRaw.bundle_e_sqlite | 2.1.10 | 2.1.11 |
Swashbuckle.AspNetCore | 7.3.1 | 8.1.0 |
Swashbuckle.AspNetCore.Annotations | 7.3.1 | 8.1.0 |
System.IdentityModel.Tokens.Jwt | new | 8.7.0 |
npm Package | Old Version | New Version |
---|
@nuxt/kit | 3.15.4 | 3.16.1 |
@nuxtjs/tailwindcss | 6.13.1 | 6.13.2 |
@primeuix/themes | new | 1.0.0 |
@primevue/themes | 4.2.5 | removed |
async-mutex | new | 0.5.0 |
primevue | 4.2.5 | 4.3.3 |
vue-deepunref | new | 1.0.1 |
v0.14
v0.14.1
Improvements
- Overriding baked defaults in
nuxt.config.ts
was not possible, fixed CopyComponentDescriptors
property was causing error when not set, fixedMenuPage
now accepts any component in header
v0.14.0
Features
- Beta features are available;
baked-recipe-admin
npm package is releasedUiLayer
is added to Service
recipe, you can now configure
LayoutDescriptors
and PageDescriptors
in featuresTheme
feature is now added with Admin
implementation with below
component schemas
- Layouts:
DefaultLayout
- Pages:
DetailPage
, MenuPage
- Components:
CardLink
, Header
, None
, PageTitle
, SideMenu
,
String
Binding
feature is added with the default Rest
implementation where all
the rest api bindings are made for domain objects
Improvements
GeneratedFileDescriptor
now has optional Outdir
property- All API conventions are migrated to be domain model conventions making it
possible to access final api model in domain model builder
CodeGenerationLayer
now outputs the generated code next to the generated
assembly to allow further investigation in case code is not generated as
expectedCodeGenerationLayer
now skips compiling code if no changes in generated code
are detected
Library Upgrades
NuGet Package | Old Version | New Version |
---|
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 9.0.1 | 9.0.2 |
Microsoft.AspNetCore.Mvc.Testing | 9.0.1 | 9.0.2 |
Microsoft.CodeAnalysis.CSharp | 4.12.0 | 4.13.0 |
Microsoft.Data.Sqlite.Core | 9.0.1 | 9.0.2 |
Microsoft.Extensions.Caching.Abstraction | 9.0.1 | 9.0.2 |
Microsoft.Extensions.Configuration.Abstractions | 9.0.1 | 9.0.2 |
Microsoft.Extensions.Configuration.Binder | 9.0.1 | 9.0.2 |
Microsoft.Extensions.FileProviders.Abstractions | 9.0.1 | 9.0.2 |
Microsoft.Extensions.Logging.Abstractions | 9.0.1 | 9.0.2 |
Microsoft.Extensions.TimeProvider.Testing | 9.1.0 | 9.2.0 |
Microsoft.NET.Test.Sdk | 17.12.1 | 17.13.0 |
NHibernate.Extensions.Sqlite | 9.0.0 | 9.0.1 |
NUnitTestAdapter | 4.6.0 | 5.0.0 |
Npgsql | 9.0.2 | 9.0.3 |
Swashbuckle.AspNetCore | 7.2.0 | 7.3.1 |
Swashbuckle.AspNetCore.Annotations | 7.2.0 | 7.3.1 |
npm Package | Old Version | New Version |
---|
@nuxt/kit | new | 3.15.4 |
@nuxtjs/tailwindcss | new | 6.13.1 |
@primevue/themes | new | 4.2.5 |
primeicons | new | 7.0.0 |
primevue | new | 4.2.5 |
v0.13
v0.13.1
Bugfixes
- Post build target for generating code was incorrect in
.targets
file, fixed
v0.13.0
.NET Upgrade
Baked now supports .NET 9! Below you can find a task list to upgrade your
projects.
- [ ] Upgrade .NET and C## versions
- [ ] in projects
- [ ] in docker files
- [ ] in GitHub workflows
- [ ] Upgrade Baked version
- [ ] You can use `GeneratedRegex`es in properties instead of methods
- [ ] If `Base64` encoded information is carried in the url, use `Base64Url`
- [ ] `params` arguments should be converted from arrays to `IEnumerable`
- [ ] Use the new linQ extensions(`CountBy`, `AggregateBy`,
`Index<TSource>(IEnumerable<TSource>))`.
- [ ] Use new `TimeSpan.From*` overloads
- `FromDays`
- `FromHours`
- `FromMinutes`
- `FromSeconds`
- `FromMilliseconds`
- `FromMicroseconds`
- [ ] Use Keyed Services in Middlewares.
- [ ] Use semicolon instead of curly braces for empty class declarations
Upgrade .NET and C## versions
- Upgrade the project's
C#
language to 13
. - Framework version upgrade to
net9.0
in the projects. - Framework and sdk version upgrade to
9
in Dockerfile
. - Upgrade dotnet version
9
in Github actions.
Features
Application
now provides Generate
and Start
modes which can be run both
together or individually with distinct ApplicationContext
's.
RunFlags
is introduced for configuring application mode
LayerBase
now provides GetGeneratePhases()
method to enable registering
specific phases to run at Generate
modeService
and Data Source
recipes now triggers Generate
mode run at post
buildDomain
layer's AddDomainTypes
and BuildDomainModel
phases now only runs
in Generate
modeCodeGeneration
layer's GenerateCode
and Compile
phases now only runs
in Generate
modeCodeGeneration
layer now introduces IGeneratedFileCollection
which
enables generating data files in Generate
modeCodeGeneration
layer now introduces GeneratedContext
at
BuildConfiguration
phase which provides access to generated assemblies and
files in Start
modeDomain
layer now provides a DomainServicesCollection
configuration target
in Generate
mode which will then be used to generate IServiceAdder
implementation
Improvements
CodeGeneration
layer now compiles and saves generated assemblies and files
to entry assembly location with ASPNETCORE_ENVIRONMENT
subfolderDomainAssemblies
feature now generates
ICasterConfigurer
implementations andTagDescriptor
RequestResponseExample
json files in Generate
mode
AutoMapOrm
feature now generates IServiceAdder
implementations from
DomainModel
in Generate
modeGiveMe.PropertyOf<T>
helper is renamed to ThePropertyOf<T>
GiveMe.MethodOf<T>
helper is renamed to TheMethodOf<T>
- Following features now use
DomainServicesModel
target to register services
in Generate
mode
GiveMe.PropertyOf<T>
helper is renamed to ThePropertyOf<T>
GiveMe.MethodOf<T>
helper is renamed to TheMethodOf<T>
- Removed namespaces from
SchemaId
created in Swagger. ProblemDetails
feature now no longer searches domain assemblies and
IExceptionHandler
implementations are required to be added in
ConfigurationOverrider
featureLayerConfigurator
now provides Use<T>
helper to use phase artifacts and
no longer provides access to application context
Library Upgrades
Package | Old Version | New Version |
---|
coverlet.collector | 6.0.2 | 6.0.4 |
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 8.0.8 | 9.0.1 |
Microsoft.AspNetCore.Mvc.Testing | 8.0.10 | 9.0.1 |
Microsoft.AspNetCore.Authorization | 8.0.8 | removed |
Microsoft.CodeAnalysis.CSharp | 4.11.0 | 4.12.0 |
Microsoft.Data.Sqlite.Core | 8.0.10 | 9.0.1 |
Microsoft.CodeAnalysis.Analyzers | 3.3.4 | removed |
Microsoft.Extensions.Caching.Abstraction | 8.0.0 | 9.0.1 |
Microsoft.Extensions.Configuration.Abstractions | 8.0.0 | 9.0.1 |
Microsoft.Extensions.Configuration.Binder | 8.0.2 | 9.0.1 |
Microsoft.Extensions.FileProviders.Abstractions | 8.0.0 | 9.0.1 |
Microsoft.Extensions.Logging.Abstractions | 8.0.2 | 9.0.1 |
Microsoft.Extensions.TimeProvider.Testing | 8.10.0 | 9.1.0 |
Microsoft.NET.Test.Sdk | 17.11.1 | 17.12.0 |
MySql.Data | 9.1.0 | 9.2.0 |
NHibernate.Extensions.Sqlite | 8.0.14 | 9.0.0 |
NUnit | 4.2.2 | 4.3.2 |
Npgsql | 8.0.5 | 9.0.2 |
Oracle.ManagedDataAccess.Core | 23.6.0 | 23.7.0 |
Shouldly | 4.2.1 | 4.3.0 |
Swashbuckle.AspNetCore | 6.9.0 | 7.2.0 |
Swashbuckle.AspNetCore.Annotations | 6.9.0 | 7.2.0 |
v0.12
v0.12.1
Improvements
- Fake reporting wasn't working without registering a
ReportOptions
, fixed - Fake reporting now allows to provide a base path
- Data source spec was throwing missing
ISession
error, fixed - Add query not found option to report context mocking
- Rich transient wasn't added to data source recipe, fixed
- Rich transient group names are now plural, making it similar to rich entity
- Domain assemblies feature now accepts one assembly when it accepts one base
namespace, to avoid confusion
- File provider wasn't working without providing a base namespace in domain
assemblies, fixed
v0.12.0
Features
- Beta features are available in Baked.Recipe.Service package;
RuntimeLayer
is added which merges the following layers:
Configuration
DependencyInjection
Monitoring
Oracle
implementation of Database
feature is now addedCors
feature is now added with AspNetCore
implementationReporting
feature is introduced with three implenmentations NativeSql
for production, Mock
and Fake
for developmentDataSource
recipe is available which includes minimal features for a web
application that only reads data from given databaseRichTransient
coding style feature is now addedNamespaceAsRoute
coding style is introduced where namespaces are directly
reflected to the endpoints routes
Improvements
MockConfiguration
feature now clears FakeSettings
list on teardownMockMe.TheClient
helper now provides optional parameter to clear previous
invocationsConfigureAction
and OverrideAction
helpers are now added to configure
RestApi.ActionModel
before and after conventionsEnum<T>
helper class is added to use enum values within ValueSource
attributeDataAccess
layer now exposes FluentConfiguration
as configuration targetDataAccess
layer now introduces IDatabaseInitializerCollection
configuration target for registering database initialization actionsIServiceProvider
now has UseCurrentScope
extensions to resolve services
using the scope provided by IServiceProviderAccessor
implementationsTestRun
now creates and disposes a scope for each test run toRuntime
layer now provides IFileProvider
component with
CompositeFileProvider
implementationReadAsString
and ReadAsStringAsync
helper extensions are now added for
IFileProvider
DomainAssemblies
feature now have options to auto add embedded file
providers for give assembliesDotnet
feature now adds embedded and physical file providers for given
entry assembly- Async overloads for
ShouldPass
and ShouldFail
are now available Default
exception handler is renamed as ProblemDetails
ITextTransformer
is introduced in Core
feature to allow business to make
use of Humanizer
methods without depending on it
Library Upgrades
Package | Old Version | New Version |
---|
Oracle.ManagedDataAccess.Core | new | 23.6.0 |
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 8.0.8 | 8.0.10 |
Microsoft.AspNetCore.Mvc.Testing | 8.0.8 | 8.0.10 |
Microsoft.Data.Sqlite.Core | 8.0.8 | 8.0.10 |
Microsoft.Extensions.Logging.Abstractions | 8.0.1 | 8.0.2 |
Microsoft.Extensions.TimeProvider.Testing | 8.9.1 | 8.10.0 |
MySql.Data | 9.0.0 | 9.1.0 |
NHibernate.Extensions.Sqlite | 8.0.13 | 8.0.14 |
Npgsql | 8.0.4 | 8.0.5 |
Swashbuckle.AspNetCore | 6.8.0 | 6.9.0 |
Swashbuckle.AspNetCore.Annotations | 6.8.0 | 6.9.0 |
v0.11
v0.11.2
Improvements
Testing
layer and MockOverrider
feature were coupled with ServiceSpec
preventing to create a custom recipe, fixed.PUT
, PATCH
and DELETE
method conventions are improved for bulk
operations
Library Upgrades
Package | Old Version | New Version |
---|
NHibernate.Extensions.Sqlite | 8.0.12 | 8.0.13 |
Swashbuckle.AspNetCore | 6.7.3 | 6.8.0 |
Swashbuckle.AspNetCore.Annotations | 6.7.3 | 6.8.0 |
v0.11.1
Bugfixes
- Generated
IManyToOneFecher
services was getting compiler error when a
non-public member was accessed, fixed
Improvements
- Generated assembly names are now set from
Name
property of
GeneratedAssemblyDescriptor
with Baked.g.
prefix
v0.11.0
Features
- Beta features are available in Baked.Recipe.Service package;
PostgreSql
implementation is added to Database
featureRecordsAreDtos
coding style was added to support domain type records as
api inputs
Improvements
- Built-in configs couldn't be overridden in
appsettings.json
and
appsettings.[Environment].json
files, fixed IQueryContext
now provides whereIf:
to allow dynamic where clause building*By
methods were causing parents to be fetched lazily, fixed
Library Upgrades
Package | Old Version | New Version |
---|
BenchmarkDotNet | 0.13.12 | 0.14.0 |
Microsoft.AspNetCore.Authorization | 8.0.7 | 8.0.8 |
Microsoft.Extensions.TimeProvider.Testing | 8.8.0 | 8.9.1 |
Microsoft.NET.Test.Sdk | 17.11.0 | 17.11.1 |
Moq | 4.20.70 | 4.20.72 |
NHibernate.Extensions.Sqlite | 8.0.8 | 8.0.12 |
NUnit | 4.2.1 | 4.2.2 |
Npgsql | new | 8.0.4 |
SQLitePCLRaw.bundle_e_sqlite3 | 2.1.9 | 2.1.10 |
Swashbuckle.AspNetCore | 6.7.1 | 6.7.3 |
Swashbuckle.AspNetCore.Annotations | 6.7.1 | 6.7.3 |
v0.10
v0.10.10
Improvements
- Change
Response.StatusCode
property type to HttpStatusCode
VerifySent
now have allowErrorResponse
parameter as optionalMockMe.TheClient<T>
can now set response with only statusCode
parameter
Bugfixes
VerifySent
was throwing key not found exception when header key was not
present, fixed
Library Upgrades
Package | Old Version | New Version |
---|
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 8.0.7 | 8.0.8 |
Microsoft.AspNetCore.Mvc.Testing | 8.0.6 | 8.0.8 |
Microsoft.CodeAnalysis.CSharp | 4.10.0 | 4.11.0 |
Microsoft.Data.Sqlite.Core | 8.0.7 | 8.0.8 |
Microsoft.Extensions.TimeProvider.Testing | 8.7.0 | 8.8.0 |
Microsoft.NET.Test.Sdk | 17.10.0 | 17.11.0 |
NUnit | 4.1.0 | 4.2.1 |
NUnit3TestAdapter | 4.5.0 | 4.6.0 |
SQLitePCLRaw.bundle_e_sqlite3 | 2.1.8 | 2.1.9 |
Swashbuckle.AspNetCore | 6.6.2 | 6.7.1 |
Swashbuckle.AspNetCore.Annotations | 6.6.2 | 6.7.1 |
v0.10.9
Improvements
InMemory
and Sqlite
data base features were not working under ARM
processors, fixed- Automatic schema update is removed from
Sqlite
database because
Microsoft.Data.Sqlite.Core
does not support SchemaUpdate
autoExportSchema
parameter is introduced to Sqlite
database with default
value true
to use automatic schema for development databases which clears
data each time your application runs. You may set it to false if you want your
data to retain.Client.Send
now has option to disable ensure success status code check to
return error response data
Library Upgrades
Package | Old Version | New Version |
---|
Microsoft.Data.Sqlite.Core | new | 8.0.7 |
NHibernate.Extensions.Sqlite | new | 8.0.8 |
SQLitePCLRaw.bundle_e_sqlite3 | new | 2.1.8 |
System.Data.SQLite | 1.0.118 | removed |
v0.10.8
Library Upgrades
Package | Old Version | New Version |
---|
FluentNHibernate | 3.3.0 | 3.4.0 |
Microsoft.AspNetCore.Authorization | 8.0.6 | 8.0.7 |
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 8.0.6 | 8.0.7 |
Microsoft.Extensions.Configuration.Binder | 8.0.1 | 8.0.2 |
Microsoft.Extensions.TimeProvider.Testing | 8.6.0 | 8.7.0 |
MySql.Data | 8.4.0 | 9.0.0 |
NHibernate | 5.5.1 | 5.5.2 |
v0.10.7
Improvements
- Add support for including entity and record (response) properties in swagger
- Request and response examples are included in swagger
- Allow multi scheme IDs in security requirement filter
- Tag documentation was causing empty tags to appear, fixed
Bugfixes
- Newlines in XML comments were causing code generation to fail, fixed
Library Upgrades
Package | Old Version | New Version |
---|
Microsoft.AspNetCore.Authorization | 8.0.5 | 8.0.6 |
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 8.0.5 | 8.0.6 |
Microsoft.AspNetCore.Mvc.Testing | 8.0.5 | 8.0.6 |
Microsoft.CodeAnalysis.CSharp | 4.9.2 | 4.10.0 |
Microsoft.Extensions.TimeProvider.Testing | 8.5.0 | 8.6.0 |
v0.10.6
Improvements
- Existing swashbuckle configuration and filters now allow a multi document
setup
FixedBearerToken
now accepts document names and description of token
parameter- Document based security definition extension is added
json
request and response types were documented as more than one type,
restricted to application/json
- Domain model now contains xml comments as
XmlNode
instances - Swagger now includes xml documentation coming from doman model
v0.10.5
Improvements
- DO is renamed as Baked (Objects)
- Root namespace is
Baked
Forge
is now Bake
Blueprints
is now Recipe
Authentication.Disabled
was removed- NHibernate logs are now redirected to logger instead of direct console logging
- Default levels are added to enable request/response and sql logging for
development, only error for production
Bugfixes
- NHibernate proxies were causing serialization error, fixed
v0.10.4
Improvements
- Log now includes, domain type and method, timestamp and trace id in log
message
4xx
is now logged in warning level leaving only 5xx
in error level- Single line is now configurable from outside of
RequestLoggingFeature
v0.10.3
Improvements
- Add
Lock
to IEntityContext
to enable select for update for making critical
updates in sync
v0.10.2
Improvements
ObjectAsJson
coding style feature now supports rendering object
parameter
as FromBody
without generating a request class- Only concrete classes are now included in
EntityExtensionViaComposition
and
EntitySubclassViaComposition
coding style features RequireClaim
and RequireNoClaim
renamed to RequireUser
and
AllowAnonymous
respectivelyRequireUser
now accepts list of claims and can keep the base claimRequireUser
and AllowAnonymous
can now be added to classAuthorization
now expects authenticated user when no base claim is givenAuthorization
now allows multiple base claims- Transients having only one initializer with not api input paramteres are now
not marked as api service
Create
is now added as alias to add child methods
v0.10.1
Improvements
- NFR tests now run faster.
Nfr
and ServiceNfr
is redesigned to built only
once for the complete test run.
Nfr
environment is added to environment extensions for NFR specific
configuration under Program.cs
ServiceNfr
now runs only for Nfr
environment- Forge configurations of
ServiceNfr
is removed completely, it uses
automatically generated Program
class
- To enable test projects to see internal
Program
class, add
InternalsVisibleTo
to your application
- Test projects don't need to have
GenerateProgramFile
set to false
any
more
WelcomePage
greeting feature is now removed
Bugfixes
- Fixes a bug where casters fails because of service providers during nfr tests
Library Upgrades
Package | Old Version | New Version |
---|
BenchmarkDotNet | 0.13.11 | 0.13.12 |
Microsoft.AspNetCore.Authorization | 8.0.3 | 8.0.5 |
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 8.0.3 | 8.0.5 |
Microsoft.AspNetCore.Mvc.Testing | 8.0.3 | 8.0.5 |
Microsoft.CodeAnalysis.CSharp | 4.8.0 | 4.9.2 |
Microsoft.Extensions.TimeProvider.Testing | 8.3.0 | 8.5.0 |
Microsoft.NET.Test.Sdk | 17.9.0 | 17.10.0 |
MySql.Data | 8.3.0 | 8.4.0 |
NHibernate | 5.5.0 | 5.5.1 |
Swashbuckle.AspNetCore | 6.5.0 | 6.6.2 |
v0.10.0
Features
- Beta features are available in do-blueprints-service package;
CodeGenerationLayer
is introduced, now it is possible to generate code
during initialization of a serviceDomainLayer
now provides;
- an inherited factory mechanism to individually configure level of
reflected details for registered types. Models for types are now built as
following inherited levels;
TypeModel
TypeModelGenerics
TypeModelInheritance
TypeModelMetadata
TypeModelMembers
- a metadata mechanism that allows you to add custom attributes to domain
model
- an indexer mechanism that allows you to index models based on their
attributes
RestApiLayer
now provides;
- api model to generate controller code from domain model
- model binder configuration to allow custom parameter types from action
parameters
Forge.New.Service
now automatically generates;
- api controllers and actions from domain model
- entity lookup calls for entity and entity extension parameters
- all types of parameters and return types
- stylized routes with default conventions
- additional attributes for controller actions
- multi unique property instead of just id route
- commands as actions
- entity extension services under entity route
- entity subclass services under entity route via a discriminator unique
property
- add/remove child routes
- null check for not-null parameters
- redirect result for uri returning methods
Business
and Orm
is split into two features
LifetimeFeature
is introduced with three implementations Singleton
,
Scoped
and Transient
CodingStyleFeature
is introduced with existing coding styles to separate
them from business feature
Business
now allows service casting, service.Cast().To<AnotherService>()
Authorization
feature is now added with ClaimBasedAuthorization
implementation which supports;
- Individual claim requirements for actions
- Default claim requirement for all actions
- Anonymous access to specific actions
HttpServerLayer
now registers authentication services and adds
authentication middleware
- provides
AuthenticationCollection
configuration target which
supports forwarding request to appropriate handlers
Improvements
MvcNewtonsoftJsonOptions
is added to RestApiLayer
as configuration targetIScoped
marker interface is removed, [Name]Context
convention is
introduced to configure scoped lifetime by conventionFixedToken
authentication is now the default in Service
blueprintDefault
business feature is renamed as DomainAssemblies
Default
orm feature is renamed as AutoMap
Documentation
feature is refactored into coding styles and removed
completelyAuthentication
feature is now a multi-feature- Not null parameters throw bad request when null value is received
FixedToken
authentication feature is now renamed to FixedBearerToken
- Feature now have
TokenOptions
parameter to configure token names and
associated claims with given tokens - Feature now automatically adds
hash
and requestId
parameters to actions
when form post authentication is required
Bugfixes
TypeModel
's which are not business types were throwing null reference
exception for collection properties, fixed
Library Upgrades
Package | Old Version | New Version |
---|
Humanizer.Core | new | 2.14.1 |
Microsoft.AspNetCore.Authorization | new | 8.0.3 |
v0.9
v0.9.1
Improvements
SecurityRequirementOperationFilter
was resetting the whole security
definition list instead of adding, fixedUseAttribute
didn't allow multiple usage, fixedAddHeaderOperationFilter
was specific to adding headers, generalized and
renamed as AddParameterOperationFilter
HasMetadata
helper added to make it easy to check if an HttpContext
has
given attribute in requests action
Library Upgrades
Package | Old Version | New Version |
---|
coverlet.collector | 6.0.0 | 6.0.2 |
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 8.0.1 | 8.0.3 |
Microsoft.AspNetCore.Mvc.Testing | 8.0.1 | 8.0.3 |
Microsoft.Extensions.Logging.Abstractions | 8.0.0 | 8.0.1 |
Microsoft.Extensions.TimeProvider.Testing | 8.1.0 | 8.3.0 |
Microsoft.NET.Test.Sdk | 17.8.0 | 17.9.0 |
NUnit | 4.0.1 | 4.1.0 |
v0.9.0
Features
- Beta features are available in do-blueprints-service package;
Authentication
feature is added with FixedToken
implementation
v0.8
v0.8.0
Features
- Beta features are available in do-blueprints-service package;
HttpClient
layer is added, you can now configure HttpClientDescriptor
to add and configure HttpClient's
Communication
feature is added with Http
and Mock
implementations
v0.7
v0.7.1
Improvements
AGuid()
test spec helper now returns a fixed value with optional
starts:string parameter
v0.7.0
Features
- Beta features are available in
do-blueprints-service
package;
DomainLayer
is added which creates DomainModel
phase artifact to be
used in features- Added
IScoped
marker interface - Added a default
BusinessFeature
which uses DomainModel
to register
services using following conventions:
- Types which have
With
method with are registered as transient
services with singleton
factories - Types which implements
IScoped
interface are registered as
scoped
services with singleton
factories - Remaining types are registered as
singleton
services - Implemented interfaces are registered for types with same service
lifetimes, if interfaces belongs to any assembly in the added to
assembly descriptor list
- Following types are ignored:
- Types not in configured assembly or type collection
- Types with System namespace
- Non public types
- Abstract types
- Value types
- Types with generic type parameters
- Attributes
- Exceptions
- Delegates
- Records
- DTOs
Improvements
- Features can now access
ApplicationContext
through LayerConfigurator
- Added folllowing helper extensions for registering services;
AddTransientWithFactory<TService,TImplementation>()
AddScopedWithFactory<TService,TImplementation>()
AddSingleton<TService,TImplementation>(bool forward)
- Added
ServiceNfr
base class which exposes overridable members for
performing integration tests using Microsoft.AspNetCore.Mvc.Testing
package
Bugfixes
- Transaction rollback was not reverting changes properly when an exception
occured, fixed
Library Upgrades
Package | Old Version | New Version |
---|
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 8.0.0 | 8.0.1 |
Microsoft.AspNetCore.Mvc.Testing | new | 8.0.1 |
Microsoft.Extensions.Configuration.Binder | 8.0.0 | 8.0.1 |
Microsoft.Extensions.TimeProvider.Testing | 8.0.0 | 8.0.1 |
MySql.Data | 8.2.0 | 8.3.0 |
v0.6
v0.6.0
.NET Upgrade
DO now supports .NET 8! Below you can find a task list to upgrade your projects.
- [ ] Upgrade .NET and C## versions
- [ ] in projects
- [ ] in docker files
- [ ] in GitHub workflows
- [ ] Upgrade DO version
- [ ] Syntax improvements
- [ ] Use primary constructors
- [ ] Use collection expressions
- [ ] Use `[FromKeyedServices]` and `[FromServices]` in controllers
Upgrade .NET and C## versions
- Upgrade the project's
C#
language to 12
. - Framework version upgrade to
net8.0
in the projects. - Framework and sdk version upgrade to
8
in Dockerfile
. - Upgrade dotnet version
8
in Github actions.
Syntax improvements
Use primary constructor, when there is a dependency that needs to be injected at
the constructor without any logic or when the base class constructor is called.
Parameter names start with underscore.
public class Entity(IEntityContext<Entity> _context)
{
...
}
Use new and simplified collection expressions, where possible.
Visit Collection expression for more details.
[FromServices]
in controllers
Instead of using constructor injection, use [FromServices]
attribute to inject
dependencies in controllers.
public Entity Get([FromServices] IQueryContext<Entity> entityQuery) { }
Improvements
ExceptionHandling
now uses
Microsoft.AspNetCore.Diagnostics.IExceptionHandling
ExceptionHandling
feature now adds StatusCodePages
middleware.
- Exceptions now return
ProblemDetails
as response ISystem
is replaced with TimeProvider.System
Mocker
, TheSystem
extension is renamed to TheTime
- Use
FakeTimeProvider
for tests by mocking TheTime
- Internal Server Error response included extra details in message, removed
- Extra details can be reached from the logs
HandledException
is now abstract
- Added optional
ExtraDetails
collection property to HandledException
Library Upgrades
Package | Old Version | New Version |
---|
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 7.0.13 | 8.0.0 |
Microsoft.Extensions.Configuration.Abstractions | 7.0.0 | 8.0.0 |
Microsoft.Extensions.Configuration.Binder | 7.0.0 | 8.0.0 |
Microsoft.Extensions.Logging.Abstractions | 7.0.0 | 8.0.0 |
Microsoft.NET.Test.Sdk | 7.0.0 | 8.0.0 |
Microsoft.Extensions.TimeProvider.Testing | new | 8.0.0 |
Moq | 4.20.69 | 4.20.70 |
NHibernate | 5.4.6 | 5.5.0 |
NUnit | 3.14.0 | 4.0.1 |
StyleCop.Analyzers.Unstable | 1.2.0.507 | 1.2.0.556 |
v0.5
v0.5.0
Features
- Beta features are available in do-blueprints-service package;
Caching
feature is now added with ScopedMemory
implementation
Improvements
- Added
CustomMySQL57Dialect
for enabling varchar
column type with 1023
max capacity - Added
TransientWithFactory<TService, TImplementation>
and
ScopedWithFactory<TService, TImplementation>
extensions for registering
services with implementations - Added new ServiceSpec extensions:
AnInteger
extension for Stubber
AMemoryCache
extension for Stubber
ShouldHaveCount
extension for IMemoryCache
v0.4
v0.4.3
Improvements
CommitAsync
now accepts nullable parameters- Added generic overload for
MockMe.ASetting()
v0.4.2
Improvements
- Improved exception message when there is no valid json in the database.
- Added
GetRequiredValue<T>
extension to IConfiguration
with default value
option - Mock
IConfiguration
return values for not defined settings can now be
configured by overriding ServiceSpec.GetDefaultSettingsValue()
Bugfixes
ObjectUserType
was causing its data to be corrupted when it contains special
characters, fixed.
v0.4.1
Bugfixes
- Automatic
StyleCop.Analyzer
reference conflicts with
Directory.Packages.props
usage, fixed
v0.4.0
.NET Upgrade
DO now supports .NET 7! Below you can find a task list to upgrade your projects.
- [ ] Upgrade .NET and C## versions
- [ ] in projects
- [ ] in docker files
- [ ] in GitHub workflows
- [ ] Migrate to central package management
- [ ] Utilize regex source generator
Upgrade .NET and C## versions
- Change the C## version to
11.0
in <LangVersion>
tag in
Directory.Build.props
. - Change the .NET version to
net7.0
in <TargetFramework>
tag in
Directory.Build.props
.
Update .NET version in Dockerfile
- replace
.../dotnet/aspnet:6.0-focal
to .../dotnet/aspnet:7.0
- replace
.../dotnet/sdk:6.0-focal
to .../dotnet/sdk:7.0
- again docker compose up ✅
Update dotnet-version
to 7
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7
Migrate to central package management
- Add
Directory.Packages.props
root - Set
true
to <ManagePackageVersionsCentrally>
- Go through all
.csproj
and collect all packages into
Directory.Packages.props
and remove versions from all .csproj
.
Visit Central Package Management for more details.
Utilize regex source generator
Use regex source generator where possible.
Visit Regular expressions for more details.
Library Upgrades
Package | Old Version | New Version |
---|
FluentNHibernate | 3.2.1 | 3.3.0 |
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 6.0.22 | 7.0.13 |
Microsoft.Extensions.Configuration.Abstractions | 6.0.0 | 7.0.0 |
Microsoft.Extensions.Configuration.Binder | 6.0.0 | 7.0.4 |
Moq | 4.18.4 | 4.20.69 |
MySql.Data | 8.1.0 | 8.2.0 |
NUnit | 3.13.3 | 3.14.0 |
v0.3
v0.3.7
Improvements
- All packages include
StyleCop
and a custom stylecop.ruleset
now
Library Upgrades
Package | Old Version | New Version |
---|
StyleCop.Analyzers.Unstable | new | 1.2.0.507 |
v0.3.6
Bugfixes
passSomeTime
parameter was not changing ISystem.Now
correctly, fixed
v0.3.5
Improvements
- Added
ScopedWithFactory<T>()
helper for registering scoped services - Added new ServiceSpec extensions:
ADateTime
extension for Stubber
ADictionary
extensions for Stubber
AnEmail
extension for Stubber
ToGuid
extension for string
- Added
passSomeTime
parameter to Mocker.TheSystem
extension
v0.3.4
Improvements
- Enums in responses are returned as string now.
- Swagger now supports object parameter and return type in endpoints.
By
and All
methods now have Take
and Skip
options
Library Upgrades
Package | Old Version | New Version |
---|
Microsoft.AspNetCore.Mvc.NewtonsoftJson | 6.0.20 | 6.0.22 |
Moq | 4.18.4 | 4.20.69 |
NHibernate | 5.4.4 | 5.4.6 |
v0.3.3
Improvements
- Transaction function or action allows task return
- Add logger services during unit testing
- Reset mocked singleton services were not setup after reset, fixed
- Added
HandledException
and HandledExceptionHandler
for providing a
better distinction in results for managed and unmanaged exceptions AddHandler<T>()
extension for exception handling feature is now removed,
all IExceptionHandler
implementations should be registered as singleton
services from featuresRecordNotFoundException
now returns 404 status code- Added an
ISetup.Returns()
extensions for ordered setup return values of
a mock service
v0.3.2
Improvements
ITransaction
now accepts Action
and Action<TEntity>
where you can give
an entity to be updated in a new transactionApplicationContext
KeyNotFoundException
is now more informative- Same
Layer
and Feature
can no longer be added multiple times - Mocked services which are singleton are now reset during unit test teardown
IConfiguration
mock is now added and can be configured with helpers
provided from ServiceSpec
ISystem
can now be configured with helpers provided from ServiceSpec
ShouldBeInserted
and ShouldBeDeleted
extensions are now added for testing
entities- Swagger now renders
enum
as string
SingleById()
query now throws a RecordNotFoundException
if no matching
record is found
Library Upgrades
Package | Old Version | New Version |
---|
Microsoft.Extensions.Configuration.Abstractions | new | 6.0.0 |
Microsoft.Extensions.Configuration.Binder | new | 6.0.0 |
v0.3.1
Bugfixes
DbType.Object
type was not supported in SQLite
and InMemory
features,
fixed.
v0.3.0
Features
- Beta features are available in
do-blueprints-service
package;
Documentation
feature is added with Default
implementation.
Improvements
- Changed Id automaping logic. Now
Guid
properties named as Id
are being
mapped as Id. - Entity properties of type
object
were not being mapped as MEDIUMTEXT
,
fixed. - Swagger schema ID conflict that occurred when two different controllers had a
nested class with the same name, fixed.
Searcher
GetMe
is added to Spec
, Searcher
extensions have been added
to ServiceSpecExtensions
.Url Extensions
and Guid Extensions
are added to ServiceSpecExtensions
for generating new Uri
and Guid
.
v0.2
v0.2.1
Improvements
- Added singleton access helper to Stubber,
GiveMe.The<TService>()
. GiveMe.Create()
is renamed to GiveMe.A()
, GiveMe.An()
.GiveMe.A()
and GiveMe.An()
are renamed to GiveMe.AnInstanceOf()
- Configurators now have ability to switch based on environments
developmentDatabase
is removed, you can use environment switcher
- Added
Uri
to String
mapping support for Orm
feature - Added
object
to StringClob
mapping support for Orm
feature
v0.2.0
Packages
Do.Blueprints.Service.Application
package is introduced. This package
exposes was formerly named as Do.Blueprints.Service
Do.Blueprints.Service
package now only contains ports of service blueprint
and expected to be used from business domain projects
Features
- Beta features are available in
do-blueprints-service
package;
Core
feature is added with Dotnet
and Mock
implementationsDataAccess
layer is added, you can now configure NHibernate
Monitoring
layer is added, you can now configure ILoggerBuilder
HttpServer
layer is added, you can now configure
IMiddlewareCollection
along with IEndpointRouteBuilder
Web
layer is merged into this new layer and IApplicationBuilder
is
removed from configuration
Configuration
layer is added, you can now configure
IConfigurationBuilder
RestApi
layer is added, you can now configure SwaggerGenOptions
,
SwaggerOptions
and SwaggerUIOptions
along with
IApplicationPartCollection
Testing
layer is added, you can now configure TestConfiguration
Swagger
implementation is added for greeting featureLogging
feature is added with Request
implementationMockOverrider
feature is added with FirstInterface
implementationBusiness
feature is added with no implementationHelloWorld
implementation of Greeting
feature is now removedException Handling
feature is now added with Default
implementationDatabase
feature is added with InMemory
,Sqlite
and MySql
implementationsOrm
feature is added with NHibernate
implementation
Library Upgrades
Package | Old Version | New Version |
---|
FluentNHibernate | new | 3.2.1 |
Microsoft.AspNetCore.Mvc.NewtonsoftJson | new | 6.0.20 |
Microsoft.Extensions.Logging.Abstractions | new | 7.0.1 |
Moq | new | 4.18.4 |
MySql.Data | new | 8.1.0 |
NHibernate | new | 5.4.4 |
NUnit | new | 3.13.3 |
Shouldly | new | 4.2.1 |
Swashbuckle.AspNetCore | new | 6.5.0 |
System.Data.SQLite | new | 1.0.118 |
v0.1
v0.1.0
Packages
Do.Architecture
package is introduced. This package exposes core feature
and layer system that is mentioned in
Architecture section
Features
- Beta features are available in
do-blueprints-service
package;
DependencyInjection
layer is added, you can now configure
IServiceCollection
in featuresWeb
layer is added, you can now configure IApplicationBuilder
and
IEndpointRouteBuilder
in featuresGreeting
feature is added with two implementations HelloWorld
and
WelcomePage
v0.0
v0.0.0
Packages
Do.Blueprints.Service
package is created with literally zero features
- Architecture is documented with initial vision
- Empty solution is created with initial projects that have no code