Signum Framework is an Open Source (LGPL) framework for writing applications using a modular design, and taking advantage of the latest technologies from Microsoft (.Net 4.0/4.5.1, C# 5.0, LINQ, SQL Server, WPF, ASP.Net MVC 4.0/5.0 and TypeScript) and other popular web frameworks (jQuery, Bootstrap and D3.js), to provide a complete solution to Line-of-Business application.

Compile time checking

We believe that statically-typed languages like C# and Typescript, and the tools they make possible (i.e., compile-time errors, refactoring, auto-completion...) are necessary for maintain big applications built by many developers.

Functional programming

Functional programming is influencing languages by their ability to compose complex solutions in terms of simpler ones and control side effects. Lambdas, expression trees and LINQ have changed how we write C# code.

Avoid code generation

Code generation is a two edge sword: as fast as it generates a solution, it generates a big maintainability problem. Using run-time code generation/compilation, we can achieve similar performance and much more flexibility, getting the best of both worlds.

Good citizen

We try as much as possible to use standard technologies, familiar patterns and write idiomatic code. Specifically, we use WPF (on windows) and ASP.Net MVC, HTML5, jQuery, Bootstrap and Require.js (on web) to let developers have full control over the end result of the user interface.

Features

Modeling

Entities

Operations

Mixins & Symbols

  • Entities are the basic building blocks of any Signum Framework application. They represent the shape of the data in the database and, most of the time, also influence the way the user interface looks.
  • Operations are the most convenient way to let end-users create and manipulate entities.
  • Mixins and Symbols allow shared-code to be more flexible, pushing code-reuse to the limits.

Database

ORM

λ

LINQ

Schema Sync

Avoid inline SQL queries without compromises:

  • Signum Framework has a performant fluent ORM to store in-memory entities. Cycles? no problem.
  • LINQ to Signum will brow your mind: Correlated sub-queries, extension methods, batch deletes/updates/inserts and much more....
  • The Schema Synchronizer can adapt the database schema to your application, understanding renames, and with no additional meta-data. Trouble-free database evolution with multiple branches.

User Interface

Windows & Web

Entity controls

Search control

  • Signum Framework has been designed to provide first class support for Windows and Web user interfaces using the latest technologies on each field.
  • Signum.Windows and Signum.Web provide a set of base Entity controls that, taking advantage of the rich entities, provide good default behaviors that make writing user interfaces a breeze.
  • Both also provide a powerful Search control that lets end-user take advantage of a big subset of the LINQ provider in a user-friendly interface.

Principles

Modular design

The main point of Signum Framework is to be a foundation for an ecosystem of reusable modules. Is an alternative to Entity Framework designed from the ground up to create SAP-like modules on the Microsoft stack.

Complete solution

Signum Framework already has solution for the challenges that a Line of Business applications could face using Signum Extensions (technical modules) and Signum Business (business modules).

Fresh start

Unfortunately, using a framework that provides a complete solution implies that big changes will be needed in a legacy application.


Video Tutorials

Legacy Videos

Philosopy

0 Basics

1 Entities

2 Logic

3 Windows

This videos were made in 2009 and are now a little bit outdate.

Still, they are the most entertaining way to know the philosophy and learn the basics of the Signum Framework, but keep in mind Patch Notes!.

Enjoy them!


Due to it’s lean and mean character and leading edge technology Signum Framework is fun to work with and helps me keep up with the latest technologies. Signum aids us in delivering stable products while remaining flexible for changing clients needs.

Geraldo Hockx Systems Analyst and Senior Software Developer at Peterson

The synchronizer is really smart, we can update the database easily. The generated script is perfect with the massive changes that we do in Unono.net. Doing that by hand would be a full-time job!

Nuria Pérez Web developer at Unono Net 3.0

Want to know more? Check out Signum Extensions!