Signum Framework is an Open Source framework from Signum Software for writing data-centric applications over the latest technologies from Microsoft (.Net Core, C#, ASP.Net Web.API and Typescript in their latest versions) and web standard libraries (React, Bootstrap and D3). It uses either Microsoft SQL Server or PostgreSQL to store data.
The main focus of the framework is being able to write vertical modules (database tables, entities, logic and React UI components) that can be shared between projects.
It provides a consistent model for N-layer architectures by moving the entities to the very center of your solution using Signum.Entities.
Our cutting-edge ORM, Signum.Engine, has a full LINQ Providers that avoids N + 1 problem and lets you UPDATE / DELETE / INSERT entities without having to retrieve them first.
Signum.React let you write a Single Page Application using React, Bootstrap and TypeScript.
Check some of the features of Signum Framework in Southwind, a Northwind port running in Azure.
Set of modules that complements Signum Framework like Authorization, Charting, Dashboards, Mailing, Processes, Scheduled Tasks, Disconnected, User Queries...
Check the different modules in https://www.signumsoftware.com/es/Extensions
- Designed for vertical modules (aka: Bounded Context)
- Entities-first approach
- ORM with a full LINQ Provider
- Unified validation
- Schema generation and synchronization
- WPF smart-client interface
- React/Typescript SPA
- Promote simple and clean code, avoiding astronautical architectures.
- Favor compile-time checked code over dynamic code.
- Create a solid foundation for the integration of application modules (on schema, BL and UI code).
- Encourage a more functional way of programming.
- Avoid code duplication.
- Be a good citizen wherever we are (.Net, LINQ, React) following common practices and conventions.
- Signum Framework: Know what makes Signum Framework suited for building complex business applications.
- Signum Extensions: A set of ready-to-use modules that work with any Signum Framework application.
- Documentation: Documentation (from Markdown files in GitHub)
- Tutorials: Tutorials (in docx and pptx)
- Create Application: The simplest way to get started. Create a new project by renaming and customizing Southwind example application.
Signum Framework doesn't use any numeric versioning, since is distributed as source code we just use Git commit hashes.
Whenever there are big changes worth to mention, we typicaly write it in the related commit. Here is the list of the relevant changes:
- 2024.08.19 Time Machine in Charting! ⏲📈
- 2024.07.02 Isolated Declarations
- 2024.03.27 Navigator, Finder, Operations, and *Client modules get a
namespace
- 2024.02.17
EntityLine<T>
with TS 5.4 beta - 2023.10.31 From ValueLine to AutoLine
- 2023.09.02 Presenting QueryAuditors (aka TypeConditionLogic.RegisterWhenAlreadyFilteringBy)
- 2023.08.30 QuickLinks in SearchControl Columns
- 2023.05.09 Modular Revolution 🔥🔥🔥
- 2023.04.18 Full-Text-Search 🔎
- 2023.04.14 Simple Pinned Filters, Split Values and EntityStrip in SearchControl
- 2023.03.24 Accessibility 🧑🦯
- 2023.02.18 Time Machine 2.0 🕰️
- 2023.02.07 Presenting Custom Drilldowns
- 2023.01.31 Upgrade to react-router 6.7.0
- 2022.12.16 Responsive SearchControl
- 2022.12.14 Client-side Diff
- 2022.12.06 ChatGPT 🤖 can program with Signum Framework!
- 2022.12.01 Color Palette 🌈
- 2022.11.08 Upgrade to .Net 7
- 2022.10.25 Cleanup in EmailSenderConfigurationEntity
- 2022.08.30 Presenting EntityAccordion
- 2022.08.18 Presenting EntityTypeToken
- 2022.08.11 Logging Client-Side Errors
- 2022.08.09 Presenting SeparatedByNewLine / SeparatedByComma
- 2022.08.05 Remove Promise.done()
- 2022.07.30 CellOperationButton and commonOnClick
- 2022.07.27 RoleEntity IsTrivialMerge
- 2022.07.22 TypeCondition intersection
- 2022.06.26 Presenting Lite Model
- 2022.06.13 Initial Migration
- 2022.04.05 ImplementedByAll with multiple ID columns
- 2022.03.29 ValueSearchControl(Line) renamed to SearchValue(Line)
- 2022.03.18 Improvements in Charting
- 2022.03.16 Faster queries using @foreach on WordTemplate / EmailTemplate
- 2022.03.16 Cleaner translation from dynamic queries to LINQ
- 2022.03.15 Presenting ConcurrentUser
- 2022.02.07 New Responsive Sidebar
- 2022.01.08 Dashboard V: Dashboard Pinned Filters
- 2022.01.08 Dashboard IV: Dashboard IV: Token Equivalences
- 2021.12.19 Split between Size and Precission and Microsoft.Data.SqlClient 4.0.0
- 2021.12.17 CacheLogic.ServerBrodcast
- 2021.12.16 Add SignalR to AlertDropdown
- 2021.12.13 IsNew and GetType() members supported in ToStringExpression
- 2021.12.03 Dashboard III; InitialSelectionDashboardFilter and DefaultDashboardFilter
- 2021.12.02 Dashboard II: Presenting CachedQueries
- 2021.11.30 Target ES2017 (async await welcomed!)
- 2021.11.30 Replace GroupsOf -> Chunk, WithMin -> MinBy and WithMax -> MaxBy
- 2021.11.14 Operation Executing
- 2021.11.13 Bootstrap 5
- 2021.11.09 .Net 6 and C# 10
- 2021.11.04 WordTemplate with embedded Excel charts from UserCharts / UserQueries
- 2021.11.01 Dashboard I: Dashboard filters and InteractionGroup
- 2021.08.28 Update to TypeScript 4.4
- 2021.08.28 Extensions ❤ Framework
- 2021.03.31 Update to React Widgets to 5.0.0 final
- 2021.02.17 Improvements in Instance Translations
- 2021.02.16 Improvements in SearchControl and UserQueries
- 2021.01.19 Improvements in Translations (DeepL)
- 2020.12.31 Replacing CNTK with TensorFlow.NET and back to Any CPU
- 2020.12.20 Upgrade to react 17.0, react-widgets 5.0.0-beta.22, d3 6.0 etc..
- 2020.12.08 UI Improvements in FrameModal and FramePage
- 2020.11.24 Update to Typescript 4.1
- 2020.11.24 Presenting CombinedUserChartPart
- 2020.11.23 IE Support?
- 2020.11.13 Presenting Signum.Upgrade
- 2020.11.13 Switch to .Net 5 and C# 9
- 2020.09.29 Adding support for WebAuthn
- 2020.09.21 Switch to core-js for polyfills
- 2020.09.21 Replace numbro.js by Intl.NumberFormat
- 2020.09.21 Replace moment.js by luxon
- 2020.09.16 Introducing MultiPropertySetter
- 2020.09.10 Adding SignumInitializeFilterAttribute
- 2020.08.31 Introducing BigStringEmbedded (move logs to FileSystem/Azure Blob Storage)
- 2020.08.30 Update to Typescript 4.0 and clean csproj
- 2020.07.23 improve performance for api/types
- 2020.06.07 Update NPM packages and remove draft-js-plugins
- 2020.05.22 From react-rte to draft-js-plugins
- 2020.05.17 Update to Typescript 3.9.... Is MUCH faster!!!!
- 2020.05.16 Pivot Table Chart
- 2020.05.14 Slimming Signum.React
- 2020.02.27 Updates package.json
- 2020.02.25 Typescript 3.8 and other changes
- 2020.02.14 Southwind inside of a Docker Container and running in Azure
- 2020.02.10 Rename Southwind.Load to Southwind.Terminal
- 2020.02.09 New Date type in Signum.Utilities
- 2020.02.04 Improving Security and Performance with optional TypeInfo
- 2020.01.27 New Signum Framework Map in documentation
- 2019.01.24 PostgreSQL support is here!
- 2019.12.04 Update to .Net Core 3.1
- 2019.12.04 Update to Typescript 3.7
- 2019.12.04 More improvements in compilation speed using TSGenerator caching
- 2019.11.25 Typescript MSBuild times 25% to 50% FASTER with Project References
- 2019.11.11 Typescript 3.6, React 16.11.0 and back to react-bootstrap
- 2019.10.25 Remove ajaxGet / ajaxPost generic parameter
- 2019.09.26 .Net Core 3.0 is here!
- 2019.08.11 New [AutoExpressionField] (and [ExpressionField("auto")] removed)
- 2019.08.06 Update to Null Reference Type changes in VS 16.2
- 2019.07.16 lite.Retrieve renamed to lite.RetrieveAndRemember
- 2019.07.10 Windows Authentication with Single Sign-On
- 2019.04.08 Fix Signum.Analyzer
- 2019.04.08 Fix TSGenerator
- 2019.04.08 Improve TypeScript compilation performance
- 2019.04.03 Nullable Reference Types merged! (C# 8, VS2019)
- 2019.04.03 Update to Typescript 3.4
- 2019.03.07 React Hooks 2
- 2019.02.20 UseAPI (React Hooks!)
- 2019.02.16 C# 8 Nullable reference types
- 2018.12.24 Pinned Filters
- 2018.12.20 QueryTokenString: Against the last stringly-typed stronghold
- 2018.12.11 Animated Charts
- 2018.12.07 Update to Typescript 3.2
- 2018.12.07 Update to .Net Core 2.2
- 2018.12.01 Signum MSBuildTask and TSGenerator as Nuget
- 2018.11.25 UX Improvements in Charting