Quizzarex / CosmosDb.Graph.Repository

A light-weight .Net Standard/Framework library for CosmosDb graph databases
MIT License
4 stars 2 forks source link

Unable to compile on Visual Studio 2017 #1

Open reddy6ue opened 6 years ago

reddy6ue commented 6 years ago

I get the following errors.

Invalid NuGet version string: '#{Build.BuildNumber}#'. CosmosDb.Graph Invalid NuGet version string: '#{Build.BuildNumber}#'. CosmosDb.Graph file 'D:\Projects\external\CosmosDb.Graph.Repository\Test\CosmosDb.Graph.Tests\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. CosmosDb.Graph.Tests file 'D:\Projects\external\CosmosDb.Graph.Repository\Test\CosmosDb.Graph.Tests\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. CosmosDb.Graph.Tests file 'D:\Projects\external\CosmosDb.Graph.Repository\Test\CosmosDb.Graph.TestStubs\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. CosmosDb.Graph.TestStubs file 'D:\Projects\external\CosmosDb.Graph.Repository\Test\CosmosDb.Graph.TestStubs\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. CosmosDb.Graph.TestStubs file 'D:\Projects\external\CosmosDb.Graph.Repository\Test\CosmosDb.Graph.Integration.Tests\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. CosmosDb.Graph.Integration.Tests file 'D:\Projects\external\CosmosDb.Graph.Repository\Test\CosmosDb.Graph.Integration.Tests\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. CosmosDb.Graph.Integration.Tests file 'D:\Projects\external\CosmosDb.Graph.Repository\Src\CosmosDb.Graph\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. CosmosDb.Graph file 'D:\Projects\external\CosmosDb.Graph.Repository\Src\CosmosDb.Graph\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. CosmosDb.Graph file 'D:\Projects\external\CosmosDb.Graph.Repository\Src\CosmosDb.Graph\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. CosmosDb.Graph file 'D:\Projects\external\CosmosDb.Graph.Repository\Src\CosmosDb.Graph\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. CosmosDb.Graph file 'D:\Projects\external\CosmosDb.Graph.Repository\Src\CosmosDb.Graph.Interfaces\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. CosmosDb.Graph.Interfaces file 'D:\Projects\external\CosmosDb.Graph.Repository\Src\CosmosDb.Graph.Interfaces\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. CosmosDb.Graph.Interfaces

Quizzarex commented 6 years ago

The project is set up with continuous integration and deployment. That is the reason for not being able to build, if you for instance change #{Build.BuildNumber}# with say, 1.0.0, it should resolve your problem.

If you want to build the nuget you will have to change this in the nuspec file as well.

This is on my todo list for future improvements.

reddy6ue commented 6 years ago

Thanks @Quizzarex. This is a great project, which I hope grows into a widely adopted graph repository pattern. Can you please create issues for everything you wish to work on. I'll help where I can.

Quizzarex commented 6 years ago

Thank you @reddy6ue.

I am happy with the attention this project is getting, both here and on nuget.org and it would be a joy to see it develop. Sadly, I must admit that I am currently not able to work on the project.

I am quite curious about why you think it is a good pattern, and what problem it might solve for you? What are your experiences with patterns in general? I am aquinted with the "standard" repository pattern but it does not really fit the problem of mixing types into one bucket. So I have tried solving it by making the GraphRepository class abstract, but not generic and then it provide its CRUD operations by protected methods. Thus, forcing the implementation of a new repository class for each graph. On the other hand, the implementation of the repository is open and capable of supporting different types. One downside with this is, that a repository implemtation might grow to colossus' size which is hard to maintain. Splitting the implementation into partial classes which hold functionality for each type of object, could be a way to solve this issue.

If you want to develop on this project, then you are very welcome to make pull requests which adds/improve the functionality. I also have Continues Integration/Deployment set up in Microsoft Team Services.

Kind regards, Quizz

reddy6ue commented 6 years ago

The best repository project I have seen is the one by Long Le featured here. This works for relational databases, but not for graph dbs. It also makes heavy use of OData everywhere which is not the best fit for REST apis IMHO. I am looking for ways to merge the concepts in your code with the ones from URF.

I think a lot of people can use the graph api with a repository pattern on CosmosDB, hopefully in a DDD context, which would make it have the widest utilty for cloud backends.