Your Genesys Source Framework
Genesys Source Framework
One Framework - Your Data - Any Platform

Features & Benefits

Genesys Source Framework helps you create your business-object framework with standard C# knowledge and minimal plumbing. Your objects can migrate full-stack, and be consumed in MVC, Web API, WPF, UWP and Xamarin iOS/Android. Works with your existing SQL tables, and allows you to incrementally build your reusable Framework one object, one page at a time.

Projects included in the Genesys Source Framework

  • Framework.WebApp - MVC Web App project. Small starter MVC web app that creates, reads, updates and deletes your reusable Framework objects in this solution.
  • Framework.WebServices - Web API Web Services project. Small starter web service that creates, reads, updates and deletes your reusable Framework objects in this solution.
  • Framework.UniversalApp - UWP Universal App project. Small starter cross-platform app that creates, reads, updates and deletes your reusable Framework objects in this solution.
  • Framework.DesktopApp - WPF Desktop App project. Small starter desktop native app that creates, reads, updates and deletes your reusable Framework objects in this solution.
  • Framework.Models - Cross-Platform View Models project. Contains the Framework-level view models for http transport and .Serialize() built-in.
  • Framework.Interop - Cross-Platform Interface project. All projects reference this project so that interfaces are enforced in all tiers, and on mobile device as well.
  • Framework.DataAccess - Entity Framework (EF)/Data Access Object (DAO) project. Contains EF EDMX (database first), Data Access Objects, CRUDEntity, ModelEntity, EntityReader and EntityWriter.
  • Framework.Database - SQL Server Data Tools (SSDT) project. Contains view/SP layer for the Framework.DataAccess to consume.
Your Genesys Source Framework

What is the Genesys Framework?

The Genesys Framework is a full-stack C# business object framework. Your Customer object, for example, can exist as a:

Data object: EF-enabled to pull data from your SQL Server via common repository-pattern methods like: GetById(), GetAll(), Save() and Delete().
Domain object: Enriched domain object containing domain behavior such as IsEmployee, IsActive, HasRegistered, CurrentStatus, etc.
View Model object: Model for your screen Views that are thin, atomic and transportable. Can be extended to have view-specific properties such as a Gender select list, without altering your CustomerModel class.
Data-transfer object: Expose your object as a DTO for data-transfer specific operations such as inter-web-services data sharing or returning your object through public API endpoints.

Why do you care?

Fast Development = Fast Return on Investment

Full-stack projects in seconds: Your entire C# stack solution is up in seconds, ready for you to add your business objects. From Visual Studio: File -> New -> Project, select Genesys Source Quick-Start, and your stack framework is runnable and ready to code.

Cross-platform by default: Enable your business-objects to run truly everywhere: In web apps - In any mobile app - In desktop native apps - As middle-tier domain service - As Public API web services - even in client-side TypeScript.

Full-stack by default: Other frameworks focus only on the UI, only in the web, only for data access. Genesys Framework includes Database projects (SSDT), Middle Tier projects (.NET Standard) and projects for all major apps (MVC, Web API, UWP, WPF.)

Critical Next Steps

❶ Install .NET Core SDK [download]
❷ Update Visual Studio [download]
❸ Build solution to verify .NET Core

Developer Next Steps

❶ Right-click -> Set as Startup Project
❷ Press F5 to run debugger
❸ Click Search to lookup a customer

Frequently Asked Questions

Where is the DB connection string?
  1. Open \App_Data\ConnectionStrings.json
  2. Change DefaultConnection to match your DB
Where is the Web Service Url?
  1. Open \App_Data\AppSettings.json
  2. Change MyWebService to match your Url
How to read from my database?
  1. Open Framework.Database\CustomerCode\Views\CustomerInfo.sql
  2. Change this view to join to your "Person" table
How to write to my database?
  1. Open Framework.Database\CustomerCode\Stored Procedures\CustomerInsert.sql
  2. Change this SP to insert to your "Person" table
How to publish the database?
  1. Open Framework.Database\Publish\PublishToDev.publish.xml (Ensure database connection is correct)
  2. Click Generate Script and review
  3. Click Publish to push changes to SQL
How to publish to a web server?
  1. In Solution Explorer, right-click Framework.WebApp
  2. Click Publish, the Publish window will display
  3. Click the Settings... link in the Publish window
  4. Change Target Location to the dev web site folder path, click Save
  5. Click Publish to publish the project to your development web server
22431 Antonio, Suite B160-843
Rancho Santa Margarita, CA 92688
+1 949.544.1900