Skip to content

Conversation

@anton-schieber
Copy link

Splitting up the project into:

  • src
  • tests
  • samples
  • benchmarks

This change was driven by that fact that viewing in github the project names cannot be read as they are too long.

@anton-schieber anton-schieber force-pushed the feature/project-structure branch from 9b03e8e to ba59845 Compare November 14, 2025 01:43
@anton-schieber anton-schieber force-pushed the feature/project-structure branch from ba59845 to b39bbf0 Compare November 14, 2025 01:45
@anton-schieber anton-schieber force-pushed the feature/project-structure branch 2 times, most recently from c33bde4 to 93fc585 Compare November 14, 2025 02:18
@anton-schieber
Copy link
Author

anton-schieber commented Nov 14, 2025

image For reference, thats what I saw before these changes were implemented

@anton-schieber
Copy link
Author

TODO: add this back, what is this?

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8EC462FD-D22E-90A8-E5CE-7E832BA40C5D}"
	ProjectSection(SolutionItems) = preProject
		.editorconfig = .editorconfig
		.gitignore = .gitignore
		CODE_OF_CONDUCT.md = CODE_OF_CONDUCT.md
		docker-compose.yml = docker-compose.yml
		Scripts\Publish-Local.ps1 = Scripts\Publish-Local.ps1
		README.md = README.md
		Scripts\Switch-References.ps1 = Scripts\Switch-References.ps1
	EndProjectSection

@sebastian-ederer
Copy link
Contributor

@anton-schieber I'll have a look at this PR tomorrow. Just wanted to let you know, what this project code is.

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8EC462FD-D22E-90A8-E5CE-7E832BA40C5D}"
	ProjectSection(SolutionItems) = preProject
		.editorconfig = .editorconfig
		.gitignore = .gitignore
		CODE_OF_CONDUCT.md = CODE_OF_CONDUCT.md
		docker-compose.yml = docker-compose.yml
		Scripts\Publish-Local.ps1 = Scripts\Publish-Local.ps1
		README.md = README.md
		Scripts\Switch-References.ps1 = Scripts\Switch-References.ps1
	EndProjectSection

This code is part of the solution file to define a virtual folder in the Solution Explorer of Visual Studio called "Solution Items". It just makes it easier to work with these files in Visual Studio as you normally don't see files on the solution level in the solution explorer. :)

image

@sebastian-ederer
Copy link
Contributor

Nvm. I reviewed it today, haha.

First of all, thanks for contributing @anton-schieber! ❤️

I like the thought of having this project more organized on GitHub and I think the hierarchy is overall better. However, I already used the term Eftdb (short for "Entity Framework TimescaleDB") on the website and in the docs, so I'd like to keep using this term.

Further, namespaces, packageIds and also assemblyNames should follow default conventions and the Design.Tests project was named FunctionalTests by official Microsoft conventions (see this).

My recommended structure would be this:

CmdScale.EntityFrameworkCore.TimescaleDB/
 ├── src/
 │   ├── Eftdb/
 │   │   └── Eftdb.csproj
 │   │       - AssemblyName: CmdScale.EntityFrameworkCore.TimescaleDB
 │   │       - RootNamespace: CmdScale.EntityFrameworkCore.TimescaleDB
 │   │       - PackageId: CmdScale.EntityFrameworkCore.TimescaleDB
 │   └── Eftdb.Design/
 │       └── Eftdb.Design.csproj
 │           - AssemblyName: CmdScale.EntityFrameworkCore.TimescaleDB.Design
 │           - RootNamespace: CmdScale.EntityFrameworkCore.TimescaleDB.Design
 │           - PackageId: CmdScale.EntityFrameworkCore.TimescaleDB.Design
 ├── test/
 │   ├── Eftdb.Tests/
 │   │   └── Eftdb.Tests.csproj
 │   │       - AssemblyName: CmdScale.EntityFrameworkCore.TimescaleDB.Tests
 │   │       - RootNamespace: CmdScale.EntityFrameworkCore.TimescaleDB.Tests
 │   └── Eftdb.Design.Tests/
 │       └── Eftdb.FunctionalTests.csproj
 │           - AssemblyName: CmdScale.EntityFrameworkCore.TimescaleDB.FunctionalTests
 │           - RootNamespace: CmdScale.EntityFrameworkCore.TimescaleDB.FunctionalTests
 ├── samples/
 │   ├── Eftdb.Samples.Shared/
 │   │   └── Eftdb.Samples.DataAccess.csproj
 │   │       - AssemblyName: CmdScale.EntityFrameworkCore.TimescaleDB.Samples.DataAccess
 │   │       - RootNamespace: CmdScale.EntityFrameworkCore.TimescaleDB.Samples.DataAccess
 │   ├── Eftdb.Samples.CodeFirst/
 │   │   └── Eftdb.Samples.CodeFirst.csproj
 │   │       - AssemblyName: CmdScale.EntityFrameworkCore.TimescaleDB.Samples.CodeFirst
 │   │       - RootNamespace: CmdScale.EntityFrameworkCore.TimescaleDB.Samples.CodeFirst
 │   └── Eftdb.Samples.DatabaseFirst/
 │       └── Eftdb.Samples.DatabaseFirst.csproj
 │           - AssemblyName: CmdScale.EntityFrameworkCore.TimescaleDB.Samples.DatabaseFirst
 │           - RootNamespace: CmdScale.EntityFrameworkCore.TimescaleDB.Samples.DatabaseFirst
 └── benchmarks/
     └── Eftdb.Benchmarks/
         └── Eftdb.Benchmarks.csproj
             - AssemblyName: CmdScale.EntityFrameworkCore.TimescaleDB.Benchmarks
             - RootNamespace: CmdScale.EntityFrameworkCore.TimescaleDB.Benchmarks

I really appreciate your effort and think this refactoring is a very good idea! 🙏


Resources:

Splitting up the project into:
- src
- tests
- samples
- benchmarks

This change was driven by that fact that viewing in github the project
names cannot be read as they are too long.
@anton-schieber anton-schieber force-pushed the feature/project-structure branch from 93fc585 to 8bb91a9 Compare November 24, 2025 01:51
@anton-schieber
Copy link
Author

Updated in line with your spec

@anton-schieber
Copy link
Author

Merge this before anything else please, its a lot of work to have to resolve conflicts on something like this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants