Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该如何组织我的ASP.NET Web API解决方案?_Asp.net_Asp.net Web Api - Fatal编程技术网

我应该如何组织我的ASP.NET Web API解决方案?

我应该如何组织我的ASP.NET Web API解决方案?,asp.net,asp.net-web-api,Asp.net,Asp.net Web Api,我正在启动一个新的ASP.NET Web API项目。我承认,我从来都不擅长在我的解决方案中组织我的项目。我想在这方面做得更好,这就是问题所在 首先,我计划使用的命名约定是我在几个地方(博客、MSDN等)找到的,其中包括CompanyName.ProductName.Component 我的困惑在于解决方案中的项目。我有服务工作的概念证明,但一切都在一个项目中。它可以工作,但由于各种原因这是不好的,我想分离组件。该项目使用EF、数据存储库接口、测试项目、业务对象和MyWebAPI控制器。我应该如

我正在启动一个新的ASP.NET Web API项目。我承认,我从来都不擅长在我的解决方案中组织我的项目。我想在这方面做得更好,这就是问题所在

首先,我计划使用的命名约定是我在几个地方(博客、MSDN等)找到的,其中包括CompanyName.ProductName.Component


我的困惑在于解决方案中的项目。我有服务工作的概念证明,但一切都在一个项目中。它可以工作,但由于各种原因这是不好的,我想分离组件。该项目使用EF、数据存储库接口、测试项目、业务对象和MyWebAPI控制器。我应该如何组织我的解决方案和各种项目?

对于这个问题没有一个一刀切的答案。但是,这是我的默认设置:

一些附加说明:

虽然web、core和数据的项目名称为[productName].[layer],但我将默认名称空间和程序集名称更改为[company].[product].[layer]。我没有完全限定路径长度,以便能够将路径长度保持在较低的水平(一旦路径中出现256个字符,构建就会发出抱怨)

模型项目通常也有其他文件夹,如\validation、\exceptions等。。。但我只是想说明,我通常将数据访问接口与模型类放在一起

我不会更改测试项目的默认名称空间或程序集名称,因为它们对于解决方案之外的任何内容都不重要

也就是说,如果我的API非常简单(只有几个控制器),我可能会选择一个API项目和一个测试项目。如果我这样做,我会在API下为每个逻辑层(核心、数据等)添加文件夹