.NET项目开发规范

今天项目经理给了一个.NET项目的开发规范,深有感触。好的项目需要考虑解耦,封装,线程等问题。分享给大家。

一.层级

  • 层级结构与定义

.NET项目开发规范_第1张图片层级引用从下至上,下级层不允许引用上级层。同级之间不允许相互引用

通用层:主要包括各种基础类,通用方法,与业务无关。例如Http访问网络资源,Excel导入导出

数据层:数据库访问,数据库持久化映射模型

模块层:独立功能模块,例如用户模块,财务模块。各个模块之间相互独立,不允许相互引用

业务层:用于实现具体的业务逻辑,如报名,购买等,不允许调用数据层,不允许直接访问数据库,引用模块层的各个模块,使用各个模块中提供的接口完成业务逻辑

服务层:用于提供网络接口,一般采用原生MVC项目。只允许引用业务层,不允许引用其他层。

展示层:用于与用户直接交互,根据需求,可能是网页,可能是小程序,也可能是APP等等。直接与服务层进行交互。如使用MVC作为展示层,则与服务层合并为一层

  • 层级命名规范

通用层:Common或BaseClass

数据层:<项目名称>.Model

模块层:

普通模块:<项目名称>.<模块名称>Module
与第三方服务对接模块:<项目名称>.<模块名称>SDK
业务层:<项目名称>.Server

服务层:<项目名称>.APP

展示层:根据需求命名。若使用VUE项目展示,则命名为<项目名称>.Vue

二、文件结构规范

通用层:根据功能划分文件夹,在文件夹下创建类文件。

数据层:直接使用VS生成的文件结构即可

模块层与业务层:

在Common文件夹下存放全局类
在Enumerate文件夹下存放枚举类
在Implementation文件夹下存放实现类,如同一接口有多个实现类,需要创建文件夹存放,文件夹名称与接口名一直
在Interface文件夹下存放接口文件
在Model文件夹下存放模型类文件
在根目录下创建InstanceCreator工厂类。
服务层:使用原生MVC项目文件接口。接口采用三级路由,根据不同业务,将接口放在不同Area下

展示层:使用原生文件结构即可

三、命名规范

- 公共规范

优先使用英文全拼命名,在英文单词无法准确表达时,可酌情使用汉语拼音全拼,或汉字。

除以下列举情况外,严禁使用缩写,尤其严禁使用汉语拼音缩写,严禁使用汉语拼音缩写和英文缩写混合命名!!!。

公认缩写,例如:ID No. VIP
命名单词过长,影响代码阅读,此时使用缩写,应写明注释
命名尽可能选择常见单词,尽可能使命名容易理解

- 代码规范

接口、抽象类:使用大驼峰式命名,所有单词首字母大写,在第一个单词前加大写字母I
实现类、属性、方法:使用大驼峰式命名,所有单词首字母大写
私有字段、私有属性:使用大驼峰式命名,所有单词首字母大写,第一个单词前加下划线“_”

- 特定接口与类定义规范

InstanceCreator工厂类
所有层与模块中的InstanceCreator工厂类统一名称为InstanceCreator
InstanceCreator工厂类为静态类
InstanceCreator内对应每个接口提供Create方法,方法名格式为Create<接口名>()
除特殊需求外,InstanceCreator工厂类创建的对象应为全新实例,不应该使用单例模式

你可能感兴趣的:(.NET)