Skip to content

Latest commit

 

History

History
91 lines (59 loc) · 3.52 KB

Sample-Cosmos-GettingStarted.md

File metadata and controls

91 lines (59 loc) · 3.52 KB

Getting started

This tutorial will demonstrate how to get a .NET Solution using Beef created on your machine connecting to a local Azure Cosmos DB Emulator. A pre-configured soluion will be created to enable, and demonstrate, the key end-to-end capabilities.


Prerequisites

The following need to be installed locally for the sample to run:

It is recommended that the following is installed to simplify the opening of a command line from Visual Studio:


Beef Template Solution

The Beef.Template.Solution needs to be installed so that it can be used to easily create the required solution structure.

Install (or update) the latest template from the public NuGet repository using the dotnet new -i command as follows:

dotnet new -i beef.template.solution --nuget-source https://api.nuget.org/v3/index.json

Create solution

To create the Solution you must first be in the directory that you intend to create the artefacts within. The beef template requires the company and appname; which is also the recommended directory name (it will also represent the .NET namespace). For this tutorial we will also choose the Cosmos data source.

mkdir Foo.Bar
cd Foo.Bar
dotnet new beef --company Foo --appname Bar --datasource Cosmos

The solution should now have been created; and the file system should look like the following:

└── Foo.Bar
  └── Foo.Bar.Api         # API end-point and operations
  └── Foo.Bar.Business    # Core business logic components
  └── Foo.Bar.CodeGen     # Entity and Reference Data code generation console
  └── Foo.Bar.Common      # Common / shared components
  └── Foo.Bar.Test        # Unit and intra-integration tests
  └── Foo.Bar.sln         # Solution file that references all above projects

Code-generation

The solution has been created with a sample Person entity defined and related reference data to demonstrate the code generation configuration. There are other Person related classes within the solutiom to demonstrate the corresponding non-generated interactions, as well as the intra-integration testing.

The code-generation will reference the following configuration within the Foo.Bar.CodeGen directory:

  • Foo.Bar.xml - contains the entity(s) configuration.
  • Foo.RefData.xml - contains the reference data configuration.

Generate the configured entities and reference data:

cd Foo.Bar.CodeGen
dotnet run all

This will build and run the Foo.Bar.CodeGen console; the outcome of the code generation will be logged to the console showing what was added or updated.


Testing

To verify that the generated APIs function as expected an example set of tests has been created to exercise the GET/PUT/POST/PATCH/DELETE operations:

cd ..\Foo.Bar.Test
dotnet test Foo.Bar.Test.csproj

Visual Studio

Open the solution within Visual Studio:

cd ..
Foo.Bar.sln