Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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
C# Web API项目结构和体系结构_C#_Asp.net_Asp.net Mvc_Asp.net Web Api - Fatal编程技术网

C# Web API项目结构和体系结构

C# Web API项目结构和体系结构,c#,asp.net,asp.net-mvc,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,解决方案结构: MyProject-WEBAPI MyProject.CORE-类库 模型-类库 MyProject.DAL-类库 项目参考: MyProject指的是核心、模型 MyProject.CORE是指DAL、模型 MyProject.DAL指的是模型 项目说明: 我正在尝试使用ASP.NET MVC WEB API创建一个应用程序。这样我就可以在未来的移动应用程序中调用我的API。我在这个分层架构背后的想法是WebAPI项目将保存我的桌面应用程序的前端视图,并在按钮单击事件中调用AP

解决方案结构:

MyProject-WEBAPI

MyProject.CORE-类库

模型-类库

MyProject.DAL-类库

项目参考:

MyProject指的是核心、模型

MyProject.CORE是指DAL、模型

MyProject.DAL指的是模型

项目说明:

我正在尝试使用ASP.NET MVC WEB API创建一个应用程序。这样我就可以在未来的移动应用程序中调用我的API。我在这个分层架构背后的想法是WebAPI项目将保存我的桌面应用程序的前端视图,并在按钮单击事件中调用API控制器方法。API控制器中的事件处理程序方法将调用我将在其中实现业务逻辑的核心项目中的方法。然后调用将转到DAL,我将在其中调用DB存储的过程以插入数据。由于模型项目参考了其余3部分,我将能够在它们之间传输对象

下面是我的问题

1我可以使用上面相同的web API项目来创建桌面应用程序的视图,并在按钮单击之类的事件中调用API控制器方法吗

2我不想将核心应用程序中业务逻辑的实现公开给任何其他引用项目。但我仍然需要遵循分层架构

我怎样才能做到这一点。请举例说明

3是否有任何最佳架构可以满足上述要求

4这是一个有效的WEB API体系结构吗?它能工作吗

请以UserModel{Name,Password,Email}作为模型示例

我想你的意思是“解决方案”,而不是“项目”。是的,您可以在一个解决方案中保留混合类型的项目,即用于IIS托管的WebAPI和引用您的核心的WPF应用程序。 这就是接口和依赖注入发挥作用的地方。创建单独的接口项目以引用和使用某些依赖项绑定模块,如ninject或 当遵循任何架构模式时,请记住模式是为开发人员创建的,而不是相反。我想说的是,当你遵循任何架构时,你——而且只有你——知道你想要实现什么。如果你不知道自己在做什么,就不要拘泥于任何模式,可以根据自己的需要随意改变任何模式。现在,保持简单。 对
为什么?在不同的项目中分离,而不仅仅是同一项目中的文件夹,有什么用?你打算在DAL项目中投入什么?闻起来像是过度工程。唯一一个我总是分开开始的项目是一个有测试的项目,所以我猜你错过了MyProject.tests项目。