GithubHelp home page GithubHelp logo

xservice's Introduction

XService - Enterprise Console Service Template

The goal of this template is to provide a 12-Factor ready .NET Core based console service solution from the dotnet new cli.

Other than the IoC container and logging mechansim, this project is designed to keep tooling opinions to a minimum, while providing the a starting point for creating robust enterprise level applications. That said, Autofac is an opionated choice and there are a few areas, which are commented, that demonstate some lesser known features that can be useful

There are other templates that focus on domain driven design or implement stronger paradigms; however, the world is full of FileWatchers, adhocs and data movers that do not gain value of DDD or other architectural paradigms. Since the value is in quick turn-around, I wanted to make sure developers spent less time undoing opinions are more time adding value. You are welcome.

What is included

  • AutoFac
    • Provides DI support as an Inversion of Control container
    • Aspect Oriented Programming support for
      • Interceptors
      • Attributes
  • Serilog
    • Standard logging functionality
    • Logging via configuration with support for the following sinks
      • Console (SystemConsole)
      • File
    • Logging is managed through IoC using ILogger<T> as a dependency
  • Decoupled hosted service model
    • Allows the business hosted service to remain portable from its execution profile
  • Linting
    • .editorconfig settings to enforce (or encourage) development standards
    • dotnet-format
      • Allows for automated code corrections via .editorconfig file
      • For VS Code/Codium Users there are tasks supporting installation and running
  • Docker Support
    • The Driver application supports docker for .NET Core 2.2
    • At a solution level, docker-compose support allows for multi application services

Coming soon

  • Conditional test project
  • Coverlet support for code coverage reporting
  • Support for automated documentation
  • Install via nuget

To install as a dotnet new template

dotnet new -i .

To uninstall

dotnet new -u xservice

To use

By default this applicaton will assume the name of the directory it is created in and includes 3 projects in the solution:

  • XService.Business
    • Contains business logic supporting unique activities and behaviors
  • XService.Driver
    • Contains the execution logic
  • XService.Enterprise
    • Contains core enterprise functionality agnostic of the business layer, such as aspects

When the application is created XService is replaced with the directory name or the value provided with the -n parameter

mkdir mydemoservice
cd mydemoservice
dotnet new xservice

This will create 3 folders in ./mydemoservice with each solution

./mydemoservice
  - mydemoservice.Business
  - mydemoservice.Driver
  - mydemoservice.Enterprise

xservice's People

Contributors

danielmpries avatar

Watchers

 avatar

Forkers

5l1v3r1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.