Create Application

Getting started using Signum Framework couldn't be easier!. Just choose the name of your application and the modules you want to include and, in less than a minute, you'll have a working example application.

This is what this page does for you:

  1. Checkout the latest version of Southwind example application.
  2. Copy the application.
  3. Rename the application files, classes, namespaces, projects, etc...
  4. Create a brand new git repository with the application.
  5. Add Signum Framework and Signum Extensions GitHub repositories as submodules.
  6. Simplify the application removing the modules that you didn't select.
  7. Zip the result and give you the link to download it.

While this page helps you getting started, Signum Framework is not based in code generation, instead all the code is in Framework and Extensions submodules and the applications just Starts the selected modules. 

The Zip contains the git repository and the project files already checked out, so you don't need to know git to start developing the application, but it's necessary to update Framework and Extensions submodules.

Each module that you do not select, will be removed in an isolated commit, so you can revert it in the future if you miss it. 

If you have a legacy database, checkout our detailed tutorial about how to build a Signum Framework application on top of AdventureWorks with minimal database changes. 

Ready?

git repo

Example Entites and Logic

Example Load (Northwind)

Migrations Migrations

Auth (Reset password)

Auth (User Ticket)

Auth (Azure AD)

Auth (Session Log)

User Queries User Queries

Toolbar Toolbar

Dashboard Dashboard

ViewLog

Omnibox Omnibox

Map Map

Excel Excel

Predictor Predictor

Cache Cache

Profiler Profiler

Split Database

Files Files

Processes Process

Scheduler Scheduler

Dynamic Dynamic

Workflow Workflow

Word Word

Mailing Mailing

SMS SMS

Notes Notes

SignalR

Alerts Alerts

Concurrent Users

Help Help

Translation Translation

Public API (Swagger)

Public product catalog example

Test Environment

Test Logic

Docker

Azure Bicep Templates

CI/CD with Gitlab


  Create Application (takes 1 min)

 

Getting Started

Software Requirements:

  • [Required] Microsoft Visual Studio: Community version works perfectly.
  • [Required] Microsoft Sql Server: Express version with SSMS should be enough for development. LocalDB necessary for Disconnected module.
  • [Required] .Net SDK: Runtime for multi-platform .Net applications.
  • [Required] Node.js: Required to compile/bundle React UI, includes NPM.
  • [Required] NPM Task Runner for Visual Studio: Integrates npm scripts with Visual Studio. Also for React UI.
  • [Required] Yarn: Faster than NPM for restoring npm packages. 
  • [Highly Recommended] VS Code: Better TypeScript / React support.
  • [Highly Recommended] Git Extensions: The more complete application to manage git repositories visually. Has great support for git submodules, used by Signum Framework.
  • [Highly Recommended] P4Merge: Great 3-way merge tool. Only install the Visual Merge option and configure in Git Extensions

And, once you have unzipped your application, there are some goodies in Framework/Snippets folder:

  • [Highly Recommended] Snippets: Add YourApplication/Framework/Snippets to Visual Studio Snippets (Tools > Code Snippet Manager > Visual C# > Add ) to get some useful snippets to the Framework
  • [Recommended] Font Colors: Import Framework\Snippets\Signum.Fonts.vssettings to Visual Studio Settings (Tools > Import and Export settings) to have different colors for C# delegates, interfaces, structs and enums.
  • [Recommended] Install NPM Task Runner and configure Visual Studio to use the latest Node.js

First steps:

  1. Unzip your application: We usually use D:\Signum\MyApplication, but you can use your own. Inside of the zip you have the source control of your new App, Signum Framework, Signum Extensions and git repositories already configured.
     
  2. Open repository: Open MyApplication directory in Git Extensions to have a feel of the folder structure and the initial commits.
    • The initial commit adds the new renamed application
    • The next commits add Framework and Extensions as git submodules
    • The remaining commits remove, one by one, the options that you have not selected. You can revert the commits in the future to bring them back. 
       
  3. Open the solution: Open MyApplication.sln and get used to the folder structure.
    • MyApplication: Project with example entities / logic and react components for a shop. Replace with your custom code. 
    • MyApplication.Terminal: Console application for creating the database schema, synchronize it, and execute loading processes. Include your custom custom C#/SQL migrations.
    • Test folder: Contains the test project files.
      • MyApplication.Test.Environment: Test project that fills the database with artificial information for testing purposes.
      • MyApplication.Test.Logic: Test project with a logic test example.
      • MyApplication.Test.React: Test project with a react test example using Signum.React.Selenium.
    • Framework folder: Contains the source code of Signum.Framework. It's a git submodule, so if you want to push changes you'll need to clone it in GitHub and make a Pull Request.
    • Extensions folder: Contains the source code of Signum.Extensions. It's in the same git submodule as Framework.
       
  4. Compile application: 
    1. In Task Runner Explorer, select YourApplication in the drop-down menu. Then Select package.json > Defaults > install and double-click in it. (Equivalent to running yarn install in YourApplication.React folder).
    2. The solution should compile cleanly out of the box, but maybe if fails with certain application names (simple 1-word names recommended), and we haven't tried the 2^30 possible combinations. If doesn't compile try with different names and options, or fix it yourself :). 
       
  5. Create or Restore database:
    1. If you're creating an application from scratch, create a database with the same name than your application using Sql Management Studio (i.e.: MyApplication) .
    2. Otherwise, if you are following the Legacy Database tutorial, just restore or use the database that you already have.
    3. If you want a different name or your server is not 'localhost' you can create a simple text file with name UserConnections.txt in C:\ with, for example:
       MyApplication>Data Source=MyServer\SQLEXPRESS;Initial Catalog=MyApplication;Integrated Security=true
       
  6. Load example data:
    1. Download Northwind database.
    2. Restore it with SQL Management Studio with name Northwind.
    3. Execute MyApplication.Terminal
    4. Generate a new database.
    5. Load Northwind data by executing all the process in order but the last one.
       
  7. Play with your example application:
    • In Task Runner Explorer, select YourApplication in the drop-down menu. Then Select package.json > Defaults > watch and double-click in it. (Equivalent to running yarn run watch in YourApplication.React folder).
    • Execute MyApplication
    • Learn how to use the Search Control.
    • Learn how to use Charting.
    • Learn how to use Dashboards.
       
  8. Learn how it works:
    • Learn about the underlying technologies like C#, LINQ, Typescript, React, NPM and Webpack. 
    • Watch the Video Tutorials to get an idea of how the Framework works. Be careful, they are outdated.
    • Take a look at the Documentation
    • Consider our Traning courses.
       
  9. Adapt the application to your needs: Apply what you have learned to make changes in the application. For example:
    • Model your entities using classes and attributes.
    • Define your business logic using operations and LINQ queries.
    • Design your user interfaces using React, Bootstrap and Typescript.
    • Synchronize you database schema as you make changes.
    • Write logic and UI tests to ensure mantainability.
       
  10. Remove examples: As you feel more confident of how the Framework works, you can remove the example entities, logic and user interfaces (Orders, Employees, Products...)
     
  11. Goto 8: Cheer up! You're a developer!.