Skip to content

Xomega-Net/Xomega.Examples

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

Xomega.Examples

Current repository contains examples for building .Net web and desktop apps with Xomega technology and frameworks.

The examples demonstrate working multi-tier applications based on the sample AdventureWorks database in the following technologies:

  • Blazor Server application;
  • Blazor WebAssembly application;
  • Single Page Application in TypeScript with a REST middle tier based on ASP.NET Core
  • ASP.NET WebForms application;
  • WPF Core 2-tier application;
  • WPF Core multi-tier application with a REST middle tier based on ASP.NET Core;
  • WPF Core multi-tier application with a WCF middle tier;

Most of the code, including views, view models, business service contracts and service implementations are generated from the Xomega model, with custom code added on top of it to make up the fully functional applications. The business services are async, and use EntityFrameworkCore, but allow switching to EF 6.4, which also supports .NET Core.

AdventureWorks Xomega examples were initially created by following the comprehensive Xomega tutorial.

Prerequisites

To run these examples you need to have the following software installed:

Setting up your projects

You need to make the following updates to be able to run the examples.

  • Reinstall 3rd party NuGet packages, by opening Tools > NuGet Package Manager > Package Manager Console, and running the following command: Update-Package -Reinstall -IgnoreDependencies -FileConflictAction Ignore
  • Update connection string in the db.config file in the AdventureWorks.Services.Entities project to point to your AdventureWorks DB.
  • On the properties of the AdventureWorks.Services.Wcf project select "Don't open a page" option as a Start Action under the Web tab.

Running the apps

  • Blazor Server - select AdventureWorks.Client.Blazor.Server as the startup project and run the solution.
  • Blazor WebAssembly - open solution properties, and select multiple startup projects as follows, and run the solution.
    • AdventureWorks.Client.Blazor.Wasm with 'Start' action.
    • AdventureWorks.Services.Rest with 'Start' action.
  • SPA - open solution properties, and select multiple startup projects as follows, and run the solution.
    • AdventureWorks.Client.Spa with 'Start without Debugging' action. (Debugging will be in the browser)
    • AdventureWorks.Services.Rest with 'Start' action.
  • ASP.NET WebForms - select AdventureWorks.Client.Web as the startup project and run the solution.
  • WPF 2-Tier - set TWO_TIER conditional constant in the AdventureWorks.Client.Wpf project properties. Then select AdventureWorks.Client.Wpf as the startup project and run the solution.
  • WPF Multi-Tier with REST middle tier - set REST conditional constant in the AdventureWorks.Client.Wpf project properties. Then open solution properties, and select multiple startup projects as follows, and run the solution.
    • AdventureWorks.Client.Wpf with 'Start' action.
    • AdventureWorks.Services.Rest with 'Start' action.
  • WPF Multi-Tier with WCF middle tier - set WCF conditional constant in the AdventureWorks.Client.Wpf project properties. Then open solution properties, and select multiple startup projects as follows, and run the solution.
    • AdventureWorks.Client.Wpf with 'Start' action.
    • AdventureWorks.Services.Wcf with 'Start' action.
  • Any app above using Entity Framework 6.4 - set EF6 conditional constant in the properties of the AdventureWorks.Services.Entities and the startup projects, and run the solution.

Use an email address for a person from the AdventureWorks DB as the user name (e.g. ken0@adventure-works.com), and the word 'password' as the password.