Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.NET naming conventions for solution with .NET Standard, .NET Core and .NET Framwork Projects

I have found nothing on the web about the accepted naming conventions for a .NET solution which contains .NET Standard, .NET Core and .NET Framework projects.

In my case we had the following convention in our .NET Framwork project:

[CompanyName].[TechnologyName].[Feature]

Now we want to port this to .NET Standard and .NET Core. Not all of the classes inside the feature work on all of them, so we have a .NET Standard project which is referenced by the .NET Core project. The .NET Core project is then reference by the .NET Framework project. How should we now name our projects.

One solution would be to include the name of Standard or Core in the namespace:

[CompanyName].Standard.[TechnologyName].[Feature]
[CompanyName].Core.[TechnologyName].[Feature]
[CompanyName].[TechnologyName].[Feature]

or

[CompanyName].[TechnologyName].[Feature].Standard
[CompanyName].[TechnologyName].[Feature].Core
[CompanyName].[TechnologyName].[Feature]

But we want to know if there is a global naming convention for this.

like image 270
Daniel Bretzigheimer Avatar asked Jan 19 '17 16:01

Daniel Bretzigheimer


People also ask

What is the difference between .NET Core and .NET Framework and .NET standard?

. Net Core does not support desktop application development and it rather focuses on the web, windows mobile, and windows store. . Net Framework is used for the development of both desktop and web applications as well as it supports windows forms and WPF applications.

Is .NET standard compatible with .NET Framework?

NET Standard 1.3 will be compatible with apps that target . NET Framework 4.6, . NET Core 1.0, Universal Windows Platform 10.0, and any other platform that supports .

What is the difference between .NET Standard and .NET Framework?

Net Standard is not a framework or platform of its own. It does not have implementations or a runtime, it just defines a specification what different . Net platforms has to implement to remain . Net Standard compliant.

What is naming convention in project management?

Project naming conventions include a standard format for the name and unique identification of each project, and standard identification for each project deliverable. The naming conventions also include version control attributes for both project management and software development (engineering) documentation.


1 Answers

I think the original guideline still stands. Take the sample Microsoft.AspNetCore.Mvc. That is company, product and whatever below. .NET Standard or .NET Core version should be shipped under the same name just packaged for their target framework moniker. Take the sample of Newtonsoft.Json. If the API surface/feature set changes, go for a breaking version change or change the product name.

Don't get confused by the Core additions at Microsoft product names. They choose to make ASP.NET Core, .NET Core and EF Core new products to avoid misleading assumptions of a higher product version: ASP.NET 5.

Listening the ASP.NET community standup I can tell you that this topic came up and they concluded that not everything should be added a Core naming part.

like image 127
Thomas Avatar answered Oct 05 '22 18:10

Thomas