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.

You also don't have to pay any module right away, just when you go to production with the application, so feel free to try as many as you want.

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

€0.00 Migrations

Load

Example React SPA

Windows UI

Auth (Reset password)

Auth (User Ticket)

Auth (Session Log)

€0.00 Disconnected

€0.00 Chart

€0.00 User Queries

€0.00 Dashboard

€0.00 Omnibox

€0.00 Excel

€0.00 Cache

€0.00 Profiler

Split Database

€0.00 Files

€0.00 Process

€0.00 Scheduler

€0.00 Mailing

€0.00 Notes

€0.00 Alerts

€0.00 Translation

Public product catalog example

Test Environment

Test Logic

€0.00 Test Windows

€0.00 Test React


  Create Application (takes 1 min)

 

Getting Started

Software Requirements:

  • [Required] Microsoft Visual Studio 2015: Community version works perfectly.
  • [Required] Microsoft Sql Server 2008/2012/2014: Express version should be enough for development. LocalDB is also necessary if Disconnected module is selected
  • [Required] Typescript 2.0 beta or greater: Required for React UI.
  • [Required] Node.js v6: Required to compile/bundle React UI, includes NPM.
  • [Required] Webpack: Module bundler. Can be installed using npm install webpack --global.
  • [Highly Recommended] Git Extensions: The more complete application to manage git repositories visually. Has great support for git submodules, used by Signum Framework.

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.
     
  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.Entities: Project with example entities for a shop. Replace with your custom entities.
    • MyApplication.Logic: Project with the starter and example logic classes for a shop. Replace with your custom logic.
    • MyApplication.Load: Console application for creating the database schema, synchronize it, and execute loading processes. Replace with your custom load.
    • MyApplication.React: Web project with example components for the shop entities. Replace with your the React components for your entities.
    • MyApplication.Windows: Windows Project with example controls for the shop entities. Replace with your the windows controls for your entities.
    • MyApplication.Local: (if Disconnected was selected) contains the necessary scaffolding to enable Disconnected usage of the server.
    • 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.
      • MyApplication.Test.Windows: Test project with a windows test example using Signum.Windows.UIAutomation.
    • 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 a git submodule, so if you want to push changes you'll need to clone it in GitHub and make a Pull Request.
       
  4. Compile application: Your personal 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 / 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.Load
    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:
  8. Learn how it works:
  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 WPF (for Windows) or React, Bootstrap and Typescript (for React).
    • 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!.