Multi Project Setup

Good Morning.

I have about 20 different .NET solutions.

Each solution has it own github repository.

The requirement is, that all projects using the same coding rules and same spell check dictionary with custom words.

 

I am still confused how to deal with such a setting.

Should I create a github repository containing the the coding rules and spell checks and make this project a submodule for each other .NET repository? 

Is there any howto to make it work and how are you doing this?

Kind Regards, Dieter

0
3 comments

Hello, 

This is indeed a good question. The coding rules and spell check dictionary can be saved in layer-based settings (<solutionname>.sln.DotSettings), which can be shared across solutions. However, it's tricky to maintain it in a central store as this file needs to be put under solution root (where .sln file is located). Git submodule does not apply here as it requires the files to be saved in a dedicated folder, not the solution root. 

So I think that the best way is manually add this file in each repo and ask each team to maintain their own copy. 

Thanks,

Tom

 

 

0

Hello,

I am aware of the layer-based-settings, but in my opinion they don't fit - not always. If a company is working on multiple products based on multiple shared libraries, it is necessary that all developers are using the same abbreviations, dictionaries and style guides. Each library is its own .net project or .net solution, if the libraries project/solution contains test projects, console projects and all that stuff you need to get reliable code.

Currently I am still in evaluation of the Ride IDE. I started my evaluation round about at the beginning of 2025. I am using Rider for my private and personal development. Within our company we are using Microsoft Visual Studio and Visual Studio Code. I was using both IDE's for years. Because I am responsible for the development I am always looking around for new and better stuff. 

Within our company we are currently 30 software developers. Some are using Windows and some are using Mac. Some of them are using MS Visual Studio and others are using VS Code. For Web Development we are using mostly VS Code and Mac. 

Within my private and currently fun projects, which may become a product in the future I am mostly using Linux (Ubuntu), sometimes Mac and rarely Windows. I am switching my Machine, my projects and my solutions and what I would need is the following:

  • The setting layer “This Computer” does not fit, because I am using different computers.
  • The settings-layer “Solution Personal” does also not fit, because I am developing in parallel on may projects and the mentioned different machines.
  • The settings-layer “Solution Team Shared” does also not fit, because I have many solutions.
  • What I would need is a kind of  “Enterprise Level”.

If many people are working on many projects, they have to use the same “Abbreviations”. It's not good, if 10.000 Lines of Code contain the abbreviation “PEM” and other contain the abbreviation “Pem”. PEM like Privacy Enhanced Mail.

If many people are working on many projects, they have to use the same “branch/domain specific ”Language. Within an quality management software product world - the abbreviation and the word “SOP” stands for Standard Operating Procedure.  And it is much easier if all developers are using the same words within and enterprise Dictionary.

I know that each developer has it's own preferences to name classes, properties, and all that stuff within a programming language. But if all develops using the same “Coding Styles” it is much easier for other to understand code from others. 

Using the layer-settings concept makes it a little bit “unusable powerful” :) and complicated. And it is a kind of impractical and error-prone if developers have always to remember to copy an Abbreviation-List,  Dictionary or Code Styles from one project/solution to another. 

If there were something like an "Enterprise-Setting-Level" a company could create a kind of “DevEnv” GIT Project. This projects contains all readme-files for new colleagues, some first instruction to set up your development environment, some useful stuff to get started and so on. And this repository (Git, Subversion, Bitbucket, …) contains one directory with all abbreviations, dictionaries and style guides. The instruction for new developers would be - checkout the DevEnv Project. After your the installation of Rider open Rider and go to the settings. Click on “Manage Layers” and select “Enterprise Level”. Choose the sub directory “rider” from then DevEnv repository.

Right after that, the new machine knows all code styles, abbreviations and dictionaries. May some developers get the right to commit changes or not. 

Because of all the layers I never know, where an abbreviation, dictionary entry or code style comes from. Using such an Enterprise Level settings it would be clear. All settings come from the specified “Enterprise-Level-Directory”.

BUT, after all my evaluations of the Ride IDE I am still convinced that I would use Rider for “future companies” even if there is no “Enterprise Settings Level” :)

Kind Regards

Dieter

0

Hello Dieter, 

Thanks for such a detailed suggestion. This makes total sense to me. For personal use, you may explore IDE settings backup and sync | JetBrains Rider Documentation. This allows to store your personal setting on your jetbrains account and sync between different computers. However, only a subset of Rider settings is supported now. Spelling dictionary setting is not covered yet. 

As for the so-called “Enterprise Level” setting store, it's not supported yet. I suggest you submit a feature request in our issue tracker. This allows others to view your request and add their votes if they find the feature useful. Such feedback is invaluable in helping our team prioritize features that matter most to our users.

Thanks,

Tom

 

0

Please sign in to leave a comment.