本文将解释在 .NET 技术栈中各种不同使用方式下 N E T 三个字母何时大写何时小写;前面的 “.” 什么时候加上,什么时候去掉,什么时候又使用 “dot”。


 

.NET 在技术文档中

如果你阅读过 https://docs.microsoft.com/zh-cn/dotnet/ 中的多数 .NET 技术文档,你应该几乎已经注意到了,在所有对大小写敏感的地方,NET 三个字母都是大写的。

“.NET” 是 .NET 技术栈名称的最官方写法了,如果能写出 “.NET” 且不会产生其他问题的地方,都应该使用 “.NET”。


▲ 首先映入眼帘的,便是 .NET 技术栈中的所有文档标题

.NET 在代码中

.NET 在代码中并不符合 PascalCase 对命名规范的大小写建议。一般来说三个字母无论是单个单词还是多个单词的缩写,在 PascalCase 中都应该是首字母大写,其后全部小写。但在微软的代码中,NET 依然都是全大写的。

例如 Microsoft.NET.Sdk,去 dotnet/sdk - GitHub 上看,写法都是 NET 全大写的。

.NET 在标识符中

其实,我这里想说的标识符并不是指类名或方法名,那是上一节 .NET 在代码中 所说的内容。这里想说的是,当 .NET 作为用于识别 .NET 某种特征所用的标识符。一般这种标识符有一些命名限制(例如 “.” 开头经常就不符合限制)。

通常作为这种类型的标识符是大小写不敏感的,于是,微软在文档中对此的惯用写法是全部小写

例如,在 Url 中:

前面的 “.” 被改写成了 “dot”。

例如,在项目的目标框架中作为标识符使用时:

  • netstandard2.0
  • netcoreapp2.1
  • net472

这时,连前面的 “.” 都直接去掉了。

.NET 在文件系统中

在文件系统中,“.” 作为前缀的文件或文件夹在 OSX 和 Linux 上都是有特殊用途的,代表隐藏文件夹。这意味着如果没有特别的安排,尽量不要为常规文件夹使用 “.” 作为前缀。

这就意味着,如果你想建一个 .NET 文件夹,你应该去掉前面的 “.”。可是去掉之后的辨识度就太低了,看不出来是 .NET 技术栈。那么怎么命名呢?

这里给一些建议:

  • dotNET 适用于有大小写规范的命名中(例如为了跟 Windows/Android/iOS/OSX 这样的名称保持统一)
  • dotnet 适用于作为普通标识符的命名中(例如为了跟 windows/android/ios/osx 这样的名称保持统一)
  • net 适用于使用缩写的命名中(例如为了跟 win/android/ios/osx 这样的名称保持统一)

.NET 作为产品或机构名称的一部分

JetBrains 家的 .NET 团队很喜欢用 dot 作为软件名称的前缀,例如 dotCover、dotMemory、dotPeek、dotTrace。去 JetBrains: Developer Tools for Professionals and Teams 看看很快就能找到这几款软件的名称。

.NET Core 开源峰会使用 dnc 这样奇怪的缩写,代表 dotnet-core。

总结

合理的 .NET 写法有这些:

  • .NET 推荐
  • NET
  • dotNET
  • dotnet
  • net

如果与其他相关技术名词进行组合:

  • .NET Core
  • ML.NET
  • Microsoft.NET.Sdk
  • dotnet-standard
  • net472

.NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?的更多相关文章

  1. dotnet core 项目脚手架这种小事嘛...

    dotnet core脚手架批处理.bat @echo 请修改批处理文件名后,如:Example.Core ,注释掉goto end,再执行脚本 pause goto end ::goto end s ...

  2. 国产中标麒麟Linux部署dotnet core 环境并运行项目 (一) 安装dotnet core

    背景 根据我之前写的文章 将 Net 项目升级 Core项目经验:(一)迁移Net项目为Net Core\Standard项目,我们将公司内部最核心的ORM框架迁移到net core 上面,并在win ...

  3. win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序

    本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...

  4. dotnet core 发布只带必要的依赖文件

    在使用 dotnet core 发布独立项目的时候,会带上大量依赖的库,但是通过微软提供的工具可以去掉一些在代码没有用到的库. 本文介绍的工具是 Microsoft.Packaging.Tools.T ...

  5. dotnet core TargetFramework 解析顺序测试

    dotnet core TargetFramework 解析顺序测试 Intro 现在 dotnet 的 TargetFramework 越来越多,抛开 .NET Framework 不谈,如果一个类 ...

  6. 探索 dotnet core 为何在 Windows7 系统需要补丁的原因

    在一些 Windows 7 系统上,根据 dotnet 官方文档,需要安装上 KB2533623 补丁,才能运行 dotnet core 或 .NET 5 等应用.尽管非所有的设备都需要安装此,但这也 ...

  7. dotNet Core开发环境搭建及简要说明

    一.安装 .NET Core SDK 在 Windows 上使用 .NET Core 的最佳途径:使用Visual Studio. 免费下载地址: Visual Studio Community 20 ...

  8. dotnet core 使用 MongoDB 进行高性能Nosql数据库操作

    好久没有写过Blog, 每天看着开源的Java社区流口水, 心里满不是滋味. 终于等到了今年六月份 dotnet core 的正式发布, 看着dotnet 社区也一步一步走向繁荣, 一片蒸蒸日上的大好 ...

  9. dotnet Core Asp.net 项目搭建

    Asp.Net Core 介绍 Asp.Net Core 目前最新版本 1.0.0-preview2-003131 Asp.Net Core官网:https://dotnet.github.io/ A ...

随机推荐

  1. angular js实现开关效果

    功能:实现点击排序,再点击排倒序. 实现方法如下 方法一:定义变量实现点击切换true或false,代码为:  $scope.lidata = [                {"name ...

  2. ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków

    ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków Problem A: Rubik’s Rect ...

  3. BOM(Browser Object Model) 浏览器对象模型

    JavaScript 实现是由 3 个部分组成:核心(ECMAScript),文档对象模型(DOM),浏览器对象模型(BOM) BOM(Browser Object Model) 浏览器对象模型BOM ...

  4. C++双向循环链表实现

    双向循环链表C++实现 1.单链表: 结构图: 2.双向链表: 3.双向循环链表: 对于本程序中,则是给定一个_head  头结点,而不是指针,因为这样更加方便避免一些空判断问题 /* 版权信息:狼 ...

  5. Linux命令详解-mkdir

    linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录... 2.命令 ...

  6. pandas dataframe在指定的位置添加一列, 或者一次性添加几列,re

    相信有很多人收这个问题的困扰,如果你想一次性在pandas.DataFrame里添加几列,或者在指定的位置添加一列,都会很苦恼找不到简便的方法:可以用到的函数有df.reindex, pd.conca ...

  7. CodeForces 297C Splitting the Uniqueness (脑补构造题)

    题意 Split a unique array into two almost unique arrays. unique arrays指数组各个数均不相同,almost unique arrays指 ...

  8. JavaScript--跨域

    跨域 什么是跨域? 跨域请求就是不同域的网站之间的文件数据之间的传送 ,由于浏览器的同源策略机制(基于安全,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性)Ajax直接请求普通 ...

  9. 初识async函数

    为什么会出现async函数 首先从大的方面来说,出现async函数时为了解决JS编程中的异步操作,再往具体说就是为了对以往异步编程方法的一种改进,也有人说仅仅只是Generator 函数的语法糖,这个 ...

  10. C++:获取指定目录下的所有文件

    1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 #include <io.h> #include <string> #include <vector&g ...