本文将解释在 .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. 在Eclipse中快速添加main方法

    方法一: 在创建类时自动添加,勾选“public static void main(String[]   args)” 方法二: 输入main之后按"alt+/"组合键,选择如图所 ...

  2. C++ 知识点积累---待整理

  3. Android开发--List与ArrayList区别

    List是一个接口,而ArrayList是一个类.  ArrayList继承并实现了List.  所以List不能被构造,但可以向上面那样为List创建一个引用,而ArrayList就可以被构造.  ...

  4. 常数PK系列汇总

    常数PK系列说明: 在AC的情况下得分=\(\sum_{i=1}^{10}{1000-runtime\_on\_point_i}\) RE会显示UKE UPD:之前的数据太水,导致好多题都在9000分 ...

  5. C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 00)

    一.安装说明 https://studygolang.com/dl 二.环境变量 // 下载 *.msi 安装文件,部分环境变量默认配置好了. 其他配置如下描述 三.目录及项目层级关系 在系统环境变量 ...

  6. php7.2版本+yii2会报错

    FastCGI sent in stderr: "PHP message: PHP Fatal error:  Cannot use 'Object' as class name as it ...

  7. Ubuntu 下Python 环境问题

    问题描述: 原先使用Anaconda环境,若卸载后仍不能恢复到系统默认的Python环境. 解决方案: shell 寻找缓存路径,python的扩展/home/tom/anaconda/bin/pyt ...

  8. Java获取系统环境信息

    使用System.getProperty()方法获取JVM信息 public class TestSystemGetProperty { public static void main(String[ ...

  9. socket的几个配置函数

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  10. 【前端安全】 web前端安全编码(模版篇)【转】

    在web的开发的开发过程中,前端总是在处理后端打的各种变量,变量可以包含着中的各种各样的字符,如果不对这些字符进行”特殊“处理的话,轻者导 致页面不正常的显示,潜入了其他的东西,亦即页面挂了,或者弹出 ...