Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
5bdb5af
migrate csproj to sdk version, move files around, migrate code, comme…
sandrock Mar 10, 2023
f18fac8
removal of SrkToolkit.Xaml and SrkToolkit.Mvvm
sandrock Mar 10, 2023
94fc0df
Merge branch 'dev/v2.0.0' of github.com:sandrock/SrkToolkit into dev/…
sandrock Mar 10, 2023
26216c0
README: explain major versions
sandrock Mar 10, 2023
a0a9646
migrate code, comment non-migrated code... #20
sandrock Mar 10, 2023
0924f60
publish 2.0.144
sandrock Mar 10, 2023
eccaff3
SrkToolkit.Common: fix DataAnnotations, fix file links
sandrock Mar 10, 2023
598436a
SrkToolkit.Common: v2.0.145-preview1
sandrock Mar 10, 2023
e0b2bf7
SrkToolkit.Web: preserve old namespaces
sandrock Mar 10, 2023
294e21c
SrkToolkit.Domain: fix EnumTool being public
sandrock Mar 10, 2023
35805f9
nuget: set icon
sandrock Mar 10, 2023
29e2fd4
SrkToolkit.Web.AspNetCore2: fixed many problems
sandrock Mar 10, 2023
c03f2e5
SrkToolkit.Web: new DisplayTimeSpan HtmlHelper extension
sandrock Mar 23, 2023
ecfb20a
SrkToolkit.Web: restore Submit HtmlHelper extension
sandrock Mar 23, 2023
9f63d28
nuget: tentative to enhance nuget cross references #25
sandrock Mar 23, 2023
121216a
SrkToolkit.Web: migrate WebDependencies
sandrock Mar 23, 2023
bc0cc2c
SrkToolkit.Web: compile SrkViewExtensions
sandrock Mar 27, 2023
bf29d7d
nuget: release 2.0.146-preview1
sandrock Mar 27, 2023
184cea8
remove old solution files
sandrock Mar 27, 2023
4b11ed7
SrkToolkit.AspNetCore2: restore many unit tests (WIP)
sandrock Mar 27, 2023
8c2ceea
SrkToolkit.AspNetCore2: migrate HttpRequest extensions
sandrock Mar 27, 2023
2499cef
SrkToolkit.Domain.AspNetCore2: migrate temptada messages
sandrock Mar 28, 2023
d69a6fc
SrkToolkit.Domain.AspNetCore2: migrate controller.ValidateResult (WIP)
sandrock Mar 28, 2023
1df9cc4
nuget: include a readme file
sandrock Apr 3, 2023
a48e9d6
notes on releasing
sandrock Apr 3, 2023
a74e6ed
README: info v2
sandrock Apr 19, 2023
eb2d191
README: logo
sandrock Apr 19, 2023
ee1e3c2
CI: create dotnet.yml
sandrock Jul 7, 2023
22ad86d
CI: update dotnet.yml try skip assembly signing
sandrock Jul 7, 2023
508f316
CI: update dotnet.yml try skip assembly signing
sandrock Jul 7, 2023
54f93de
BaseErrorController: catch exception if headers sent
sandrock Aug 14, 2023
13c91be
SrkToolkit.Services: migrated with unit tests
sandrock Aug 14, 2023
894ca73
SrkToolkit.Common: tinies
sandrock Aug 14, 2023
bbcefb0
AspNetCore2 + AspMvc5: both can build now
sandrock Aug 14, 2023
46858d9
release 2.0.148-preview2
sandrock Aug 16, 2023
1fced97
build: fix SrkToolkit.Web.AspMvc5
sandrock Oct 3, 2025
814ce25
Domain Result classes: fix adding error
sandrock Oct 16, 2025
d71d8e9
build: align target frameworks across projects
sandrock May 30, 2026
3a6a50c
DateRangeAttribute: fix ISO parsing, error messages and expand tests
sandrock May 30, 2026
db7e007
build: bump target frameworks to net48 and net8.0
sandrock May 30, 2026
48ca2bf
build: update CI to net8.0, add Windows job for net48 tests
sandrock May 30, 2026
7ceaed2
build: ignore Claude container files
sandrock May 30, 2026
ec97fc9
BasicResult: add AddError(IResultError), fix AddError detail bug, exp…
sandrock May 30, 2026
f906a07
build: add Microsoft.NETFramework.ReferenceAssemblies for Linux cross…
sandrock May 30, 2026
e1d7090
PageInfoObject: fix self-closing tags in AspNetCore renderer
sandrock May 30, 2026
033e0cd
BaseResult: fix proxy not reset on Errors setter, expand tests
sandrock May 30, 2026
e4dc63f
WebDependencies: fix newlines and CSS double-newline on Linux
sandrock May 30, 2026
7b8e79c
SrkToolkit.Web.AspNetCore2: drop obsolete MVC5 file references (issue…
sandrock May 30, 2026
30a20bb
AspNetCore2: migrate SrkViewExtensions + session services
sandrock May 30, 2026
88b1b03
AspNetCore2: migrate ResultServiceBase
sandrock May 31, 2026
39f6932
AspNetCore2: migrate ResultService + AuthorizeAttribute
sandrock May 31, 2026
3c3cdc8
AspNetCore2: migrate HttpErrors cluster + resx HTTP descriptions
sandrock May 31, 2026
b4aa912
AspNetCore2: migrate DecimalModelBinder to async IModelBinder API
sandrock May 31, 2026
b51a89c
Wiki: rewrite DecimalModelBinder page with accurate explanation
sandrock May 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
53 changes: 53 additions & 0 deletions .github/workflows/dotnet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# This workflow will build a .NET project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net

name: .NET

on:
push:
branches: [ "dev/v2.0.0" ]
pull_request:
branches: [ "dev/v2.0.0" ]

jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
- name: Setup signin key
run: mv SrkToolkit.CI-key.snk SrkToolkit.snk
working-directory: ./Sources
- name: Restore dependencies
run: dotnet restore SrkToolkit-v2.sln
working-directory: ./Sources
- name: Build
run: dotnet build SrkToolkit-v2.sln --no-restore -p:DelaySign=true
working-directory: ./Sources
- name: Test
run: dotnet test SrkToolkit-v2.sln --no-build --verbosity normal --framework net8.0
working-directory: ./Sources

build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
- name: Setup signin key
run: mv SrkToolkit.CI-key.snk SrkToolkit.snk
working-directory: ./Sources
- name: Restore dependencies
run: dotnet restore SrkToolkit-v2.sln
working-directory: ./Sources
- name: Build
run: dotnet build SrkToolkit-v2.sln --no-restore -p:DelaySign=true
working-directory: ./Sources
- name: Test (net48)
run: dotnet test SrkToolkit.Common.FxUnitTests/SrkToolkit.Common.FxUnitTests.csproj --no-build --verbosity normal --framework net48
working-directory: ./Sources
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -214,3 +214,13 @@ Package/SrkToolkit.Services/
Package/*.nupkg

tools/NuGet.exe

/claude.env

/claude.Dockerfile

/claude.docker-compose.yml

/claude-entrypoint.sh

/.claude*
2 changes: 1 addition & 1 deletion Package/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.2.142
2.0.145
52 changes: 47 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@

SrkToolkit
SrkToolkit ![](Sources/logo-32.png)
==========

Here goes another set of libraries to help out. Separated into a few assemblies to avoid loading too much stuff in your app.
Here goes another set of libraries to help out: SandRock's toolkit. Separated into a few assemblies to avoid loading too much stuff in your app.

License: Apache License Version 2.0

Expand All @@ -11,24 +11,57 @@ Branches
--------------------

- `release/2.0` current major release (WIP)
- `dev/v2.0.0` current development effort
- `release/1.2` previous release (hotfixes only)
- `release/1.1` old release (hotfixes only)



Assemblies
Assemblies and nugets
--------------------

### v2.0 (netstandard2.0 and AspNetCore, keep partial support for net46) - "near stable"

Keep support for latest .NET Framework and MVC5, full support for AspNetCore.

WARNING: work is in progress

| Assembly | FX | Nuget | Remark |
|----------------------------------------------------------|-------------------------------|----------------------------------------------------------------------------------|--------|
| [SrkToolkit.Common](Wiki/SrkToolkit.Common.md) | net46, netstandard2.0, net7.0 | [nuget](https://www.nuget.org/packages/SrkToolkit.Common) prerelease | |
| [SrkToolkit.Domain](Wiki/SrkToolkit.Domain.md) | net46, netstandard2.0, net7.0 | [nuget](https://www.nuget.org/packages/SrkToolkit.Domain) prerelease | |
| [SrkToolkit.Web.AspMvcCore2](Wiki/SrkToolkit.Web.md) | netstandard2.0, net7.0 | [nuget](https://www.nuget.org/packages/SrkToolkit.Web.AspMvcCore2) prerelease | |
| SrkToolkit.Domain.AspMvcCore2 | netstandard2.0, net7.0, | [nuget](https://www.nuget.org/packages/SrkToolkit.Domain.AspMvcCore2) prerelease | |


### v1.2 (support for net40 and MVC 4, net45 and MVC 5, netstandard2.0) - "stable"

Keep support for many .NET Framework and MVC5, growing support for newer .NET.

| Assembly | FX | Nuget | Remark |
|----------------------------------------------------------|------------------------------|-----------------------------------------------------------|--------|
| [SrkToolkit.Common](Wiki/SrkToolkit.Common.md) | net40, net45, netstandard2.0 | [nuget](https://www.nuget.org/packages/SrkToolkit.Common) | |
| SrkToolkit.Common.Unsafe | net40 | | |
| [SrkToolkit.Domain](Wiki/SrkToolkit.Domain.md) | net40, net45, netstandard2.0 | [nuget](https://www.nuget.org/packages/SrkToolkit.Domain) | |
| [SrkToolkit.Web (for ASP MVC 3)](Wiki/SrkToolkit.Web.md) | net40 | [nuget mvc4](https://www.nuget.org/packages/SrkToolkit.Web.AspMvc4) | |
| [SrkToolkit.Web (for ASP MVC 4)](Wiki/SrkToolkit.Web.md) | net45 | [nuget mvc5](https://www.nuget.org/packages/SrkToolkit.Web.AspMvc5) | |
| SrkToolkit.Domain.AspMvc3 | net40, | [nuget mvc4](https://www.nuget.org/packages/SrkToolkit.Domain.AspMvc4) | |
| SrkToolkit.Domain.AspMvc4 | net45 | [nuget mvc5](https://www.nuget.org/packages/SrkToolkit.Domain.AspMvc5) | |
| SrkToolit.WebForms | net40 | | |


### v1.1 (support for net40 and MVC 4, net45 and MVC 5) - "obsolete"

Support for many .NET Framework and MVC4/MVC5.

| Assembly | FX | Nuget | Remark |
|----------------------------------------------------------|------------------------------|-----------------------------------------------------------|--------|
| [SrkToolkit.Common](Wiki/SrkToolkit.Common.md) | net40, net45 | [nuget](https://www.nuget.org/packages/SrkToolkit.Common) | |
| SrkToolkit.Common.Unsafe | net40 | | |
| [SrkToolkit.Domain](Wiki/SrkToolkit.Domain.md) | net40, net45 | [nuget](https://www.nuget.org/packages/SrkToolkit.Domain) | |
| [SrkToolkit.Web (for ASP MVC 3)](Wiki/SrkToolkit.Web.md) | net40 | [nuget mvc4](https://www.nuget.org/packages/SrkToolkit.Web.AspMvc4) | |
| [SrkToolkit.Web (for ASP MVC 4)](Wiki/SrkToolkit.Web.md) | net45 | [nuget mvc5](https://www.nuget.org/packages/SrkToolkit.Web.AspMvc5) | |
| SrkToolkit.Domain.AspMvc3 | net40, | [nuget mvc4](https://www.nuget.org/packages/SrkToolkit.Domain.AspMvc4) | |
| SrkToolkit.Domain.AspMvc4 | net45 | [nuget mvc5](https://www.nuget.org/packages/SrkToolkit.Domain.AspMvc5) | |
| SrkToolit.WebForms | net40 | | |
| SrkToolit.Xaml | net40, wp70, wp71, sl4 | | |
| SrkToolkit.Mvvm | net40, wp70, wp71, sl4 | | |
| SrkToolkit.Services | net40, wp70, wp71, sl4 | | |
Expand All @@ -51,6 +84,14 @@ Content at-a-glance

And more...


### Request-Result-ErrorCode pattern

`SrkToolkit.Domain` contains a few classes to represent API or domain operations.

Use the `rrr` [code snippet](snippets/visual-studio/srk.domain.snippet) to obtain a set of types for an operation.


### extensions for ASP MVC

- [date and time display helpers](Wiki/SrkToolkit.Web-HtmlHelpers.md) (based on timezone, standard formats, <time /> tag...)
Expand All @@ -70,6 +111,7 @@ And more...

And more...


Signed code
--------------------

Expand Down
44 changes: 23 additions & 21 deletions Releasing.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@

Evaluate next version identifier by running the build app

```batch
cd Tools
.\build.bat
```

Update the `SrkToolkit.Mvvm.AssemblyInfo.cs` file accordingly.

Run the build script again.

then:

```batch
cd Package
..\tools\nuget.exe push -src https://api.nuget.org/v3/index.json .\SrkToolkit.*.1.2.140.nupkg -apikey xxx
```




Releasing
================

1. Evaluate next version identifier.
2. Update release notes for each project
3. Change all CSPROJ files to use the new version number (`<Version>2\.\d+\.(\d+)-preview1+</Version>` -> `<Version>2.0.666-preview2</Version>`)
4. Change all CSPROJ files around `<FileVersion>2.\d+.\d+.0</FileVersion>`
5. Update the `SrkToolkit.Mvvm.AssemblyInfo.cs` file accordingly. (???)
6. Build and run unit tests
4. Commit, if everything OK
5. Build nugets
```bash
dotnet build Sources/SrkToolkit-v2.sln -c Release -v q
```
7. publish nugets
```batch
find . -wholename '*/Release/*2.0.147-*.nupkg' \
-exec dotnet nuget push "{}" -s https://api.nuget.org/v3/index.json --api-key XXX \;
```



8 changes: 8 additions & 0 deletions Sources/Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<Project>

<!-- Provides .NET Framework reference assemblies on Linux/macOS for net48 multi-targeting -->
<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" PrivateAssets="All" />
</ItemGroup>

</Project>

This file was deleted.

Loading
Loading