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
release/2.0current major release (WIP)dev/v2.0.0current development effort
release/1.2previous release (hotfixes only)release/1.1old release (hotfixes only)
Keep support for latest .NET Framework and MVC5, full support for AspNetCore.
WARNING: work is in progress
| Assembly | FX | Nuget | Remark |
|---|---|---|---|
| SrkToolkit.Common | net46, netstandard2.0, net7.0 | nuget prerelease | |
| SrkToolkit.Domain | net46, netstandard2.0, net7.0 | nuget prerelease | |
| SrkToolkit.Web.AspMvcCore2 | netstandard2.0, net7.0 | nuget prerelease | |
| SrkToolkit.Domain.AspMvcCore2 | netstandard2.0, net7.0, | nuget prerelease |
Keep support for many .NET Framework and MVC5, growing support for newer .NET.
| Assembly | FX | Nuget | Remark |
|---|---|---|---|
| SrkToolkit.Common | net40, net45, netstandard2.0 | nuget | |
| SrkToolkit.Domain | net40, net45, netstandard2.0 | nuget | |
| SrkToolkit.Web (for ASP MVC 3) | net40 | nuget mvc4 | |
| SrkToolkit.Web (for ASP MVC 4) | net45 | nuget mvc5 | |
| SrkToolkit.Domain.AspMvc3 | net40, | nuget mvc4 | |
| SrkToolkit.Domain.AspMvc4 | net45 | nuget mvc5 | |
| SrkToolit.WebForms | net40 |
Support for many .NET Framework and MVC4/MVC5.
| Assembly | FX | Nuget | Remark |
|---|---|---|---|
| SrkToolkit.Common | net40, net45 | nuget | |
| SrkToolkit.Common.Unsafe | net40 | ||
| SrkToolkit.Domain | net40, net45 | nuget | |
| SrkToolkit.Web (for ASP MVC 3) | net40 | nuget mvc4 | |
| SrkToolkit.Web (for ASP MVC 4) | net45 | nuget mvc5 | |
| SrkToolkit.Domain.AspMvc3 | net40, | nuget mvc4 | |
| SrkToolkit.Domain.AspMvc4 | net45 | nuget mvc5 | |
| SrkToolit.WebForms | net40 | ||
| SrkToolit.Xaml | net40, wp70, wp71, sl4 | ||
| SrkToolkit.Mvvm | net40, wp70, wp71, sl4 | ||
| SrkToolkit.Services | net40, wp70, wp71, sl4 |
- date manipulations, DataAnnotations
- string manipulations (trim with suffix,
AsNullIfEmpty(),AddHtmlLineBreaks(),TrimTextToWord(),HtmlParagraphizify(),RemoveDiacritics(),MakeUrlFriendly()) NameValueCollection.ToDictionary()- ObservableCollection:
AddRange(IEnumerable<T>),RemoveAll(Func<T, bool>) - StopwatchExtensions: fluent methods to avoid writing many lines of code when using it
- email address decomposition (account, tags, local part, domain part) and validation
- no fancy stuff like
StringExtension.IsEmpty())
And more...
SrkToolkit.Domain contains a few classes to represent API or domain operations.
Use the rrr code snippet to obtain a set of types for an operation.
- date and time display helpers (based on timezone, standard formats, tag...)
- PageInfo is the one object to set your page title, description, meta tags, opengraph values...
- fixed
AuthorizeAttributeto return a "HTTP 403 Forbidden" instead of 401 auth page when already authenticated - 1-line error handling code for customized http-accept-aware error pages
- wrapper for tempmessages to show nice informations, warnings and errors (extension methods for both controllers and view)
DecimalModelBinderwith "friendly" decimal separator detection (useful for stupid cultures like French)- OpenGraph extensions to easily ouput tags in your page
BaseSessionServiceclass that allows auto-populating new and expired sessions in a lazy wayResultServiceclass that allows oupting error pages from actionsHtml.DescriptionFor()to show the Description property from the[DisplayAttribute(Name = "", Description = "<desc here>")]Html.Submit()'cauz it's missingUrlHelper.SetQueryString(string url, params string[] keysAndValues)to add/change query strings from a raw urlJsonNetResult: ActionResult class that allows you to specify your favorite JSON serializerHttpRequest:.IsXmlHttpRequest(),.IsUrlLocalToHost(url),IsPost()...
And more...
All assemblies are signed. The real key is not in source control; I keep it to ensure my builds are only made by myself (yes, I know that is not 100% true).
The latest build can be found here: https://www.nuget.org/packages?q=Tags%3A%22srktoolkit%22
Want unsigned assemblies? Get the code, remove the option and build.
