Giter Site home page Giter Site logo

oskardudycz / goldeneye Goto Github PK

View Code? Open in Web Editor NEW
279.0 26.0 50.0 13.77 MB

The CQRS flavoured framework that will speed up your WebAPI and Microservices development

License: MIT License

C# 99.98% Shell 0.02%
framework webapi dot-net nuget-packages backend nuget goldeneye cqrs marten entity-framework

goldeneye's Introduction

GoldenEye Logo

GoldenEye

Twitter Follow Join the chat at https://gitter.im/oskardudycz/GoldenEye Github Actions blog blog

What is GoldenEye?

GoldenEye is a Full Stack framework written in .NET. The main goal of GoldenEye is to speed up your development process. It gathers most widely used frameworks in .NET world and pack them into a simple bootstrap Nuget packages. It also provide set of base classes, helpers, extensions that will help you with your daily work.

What do I get?

Complete Solution bootstrap - bottom up:

How do I get started?

Add package to your project:

dotnet add package GoldenEye

Where can I get it?

Install packages from the Nuget package manager:

Packages:

  • GoldenEye - full DDD flow for CQRS, DDD development. Basing on MediatR library gives the Command, Queries, Events handling. Repositories, Services, CRUD, helpers, extensions that will boost your development
  • GoldenEye.Marten - extension to GoldenEye that gives possibility to use Postgres as Document Database and Event Store - thanks to Marten library
  • GoldenEye.WebApi - base classes for API development like CRUD controllers, registration helpers, and many more
  • GoldenEye.EntityFramework - extensions to GoldenEye for EntityFramework development (EF repositories, etc.)
  • GoldenEye.Dapper - extensions to GoldenEye for Dapper development (Dapper repositories, etc.)
  • GoldenEye.ElasticSearch - extensions to GoldenEye for ElasticSearch development (ElasticSearch repositories, etc.)
  • GoldenEye.Kafka - extensions to GoldenEye for Kafka development (Kafka producer, concumer, etc.)

I found an issue or I have a change request

Feel free to create an issue on GitHub. Contributions, pull requests are more than welcome!

Support

๐Ÿ’– If this repository helped you - I'd be more than happy if you join the group of my official supporters at:

๐Ÿ‘‰ Github Sponsors

GoldenEye is Copyright ยฉ 2015-2021 Oskar Dudycz and other contributors under the MIT license.

goldeneye's People

Contributors

dudyczprzemek avatar gitter-badger avatar kbroniek avatar mdissel avatar mjendza avatar murbanowicz avatar oskardudycz avatar sandsmi avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

goldeneye's Issues

Production readiness

@oskardudycz Hi, do you think that GoldenEye is safe for production use cases or should we wait for stable 1.0 realase? If not do you know some production ready alternative (I know about eventflow but 1.0 version wasn't released yet)?

Template is not working

I tried installing the template using dotnet new -i GoldenEye.WebApi.Template.SimpleDDD but couldn't get it to be listed in the .net templates.

To be sure it is not related to my machine I tried as well on my 2nd mac. Both have .net sdk 5.0.101 installed, my 2nd machine has also all other sdks from 2.2 installed.

The template is indeed downloaded and is shown under ~/.templateengine/dotnetcli/v5.0.101/content but it's not part of the list when you do dotnet new after installing.

The exact output if the installation is

dotnet new -i GoldenEye.WebApi.Template.SimpleDDD
  Determining projects to restore...
  Restored /Users/NAME/.templateengine/dotnetcli/v5.0.101/scratch/restore.csproj (in 616 ms).

and then the list does not show the GoldenEye template.

I found a workaround by specifying the direct path to the downloaded nupkg file

dotnet new -i ~/.templateengine/dotnetcli/v5.0.101/content/goldeneye.webapi.template.simpleddd.5.0.0.nupkg

I have also tried to find the issue but had no luck

Add backend processing module

Going from VS2017 branch. Add backend processing module to process background jobs.

  1. Add new folder in the main structure: Cron
  2. In created above folder add .NET Core class library projects :
  • Backend.Cron - containing base abstractions (interfaces, base classes), Registration class that helps with basic setup
  • Backend.Cron.Hangfire - containing implementation base on Hangfire https://www.hangfire.io/
  • Backend.Cron.Tests - nice to have with test to main mechanism
  • Backend.Cron.Hangfire.Tests - nice to have with tests to hangfire implementation
  1. In Sample directory create new folder: Cron and setup there at least basic sample project of the Backend.Cron with Hangfire usage (suggested name Backend.Cron.Hangfire.Sample

Use Identity projects a reference how to setup .csproj files and code structure.

Any quick startup guide

As I saw in the docks, there is no quick startup guide.
I was developing the same thing before saw this framework, I want to try but template is in dotnet 2.2 an obsolete one; I updated packages but there are some obsolete reference. Maybe it will be useful to update template too. This framework is a great implementation of idea, but it lacks of documentation and as a result community share.

Implement Cap for outbox pattern

Hi nice work here
can you explain how to add Cap before publishing event to the message broker to enable outbox pattern in your code?
I assume it has to be added in your IExternalEventProducer to publish in Cap instead of Kafka the Cap send it to Kafka after persist it into database but don't have any idea where to consume it, if you don't mind give me some guide
Thanks in advance

Swagger Schema mostly empty

I started the default template and realised that the Swagger UI does not show the Model details of e.g. Post Issue. Reason is probably, that they are defined with Property getters only..

public string Title { get; }

Not sure if there is a good solution but I changed the TargetFramework to net5.0 and then we can use the new init operator which seams to work...

public string Title { get; init; }

Not sure if the project should be limited that hard, though

Netcore3.1 capability

GoldenEye.Backend.Core.WebApi.Modules contains reference to obsolete IHostingEnvironment.

POST/Issues doesn't return something

I just saw, that the POST to create a new issue does not return the generated Issue. I understand that from a CQRS perspective this is ok-ish, but from a Frontend Developers perspective it does not make sense to create a new issue and then not getting the created resources. So I wanted to change it like that:

var issueId = await commandBus.SendAsync(command);
return Ok(await queryBus.SendAsync<GetIssue, IssueView>(new GetIssue(issueId)));

or maybe like this

await commandBus.SendAsync(command);
return Ok(await queryBus.SendAsync<GetIssue, IssueView>(new GetIssue(command.Id)));

I read some articles explaining that the second concept might be ok, what do you think?

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.