繁体   English   中英

ASP.NET MVC 和 Web API 共享类库项目

[英]ASP.NET MVC and Web API sharing Class Library Project

我将在 .NET 中构建以下应用程序,我对正确的架构有几个问题:

  1. 控制台应用程序:读取本地文件并将数据更新到 Azure 中的 SQL 数据库
  2. ASP.NET MVC:仪表板站点与上传到 SQL 数据库的数据进行交互
  3. Web API:处理业务逻辑和数据访问。

我首先想到使用 Web API 作为提供数据和业务逻辑的核心。 但是,跨项目需要一个类库,以便所有项目在业务对象方面“使用相同的语言”。 示例:我在控制台应用程序中有一个 SMS 对象,它将向 Web API 提交数据。 此 Web API 也应具有相同的 SMS 对象。 接下来,ASP.NET 将显示 SMS 数据,因此也应该访问相同的对象。 但由于这是一个 MVC 应用程序,它将拥有自己的数据对象。

什么是正确的方法? Visual Studio 中的解决方案树应该如何?

谢谢你的帮助。

这并不意味着因为它是一个MVC应用程序它需要有自己的数据对象。我过去所做的是创建一个类库并将对MVC相关DLL的引用添加到这个项目中。然后我会装饰具有所有必需 MVC 属性的对象,最后我将向我的应用程序中需要它们的所有项目添加对此类库的引用,如业务层、Web api 层和 MVC(UI) 层。

在您的场景中,它可能是这样的:

通用对象库

不要使用MVC,做一个WebApi服务,选择react或angular之类的Web UI框架。 MVC 不再值得使用。

这样,每个人都可以连接到 WebAPI、您的控制台应用程序、您的网站/仪表板,甚至是未来的移动应用程序。

如果您曾经将数据库从 SQL 服务器更改为 txt 文件 (xD),那么您的控制台应用程序也必须更改。 仅使用一个 API 与您的数据库交互将有效地分离您的所有层。

但是,跨项目需要一个类库,以便所有项目

是的,但您可以使用共享库甚至共享项目来实现这一点。 这只是一堆课程......

您的所有逻辑都应该在 Web API 中。 包括控制台应用程序部分。 它应该只读取数据,然后连接到 API。

因此,在这种情况下,您不需要在所有项目中都使用相同的模型,因为 Web API 业务模型的模型可能比与之交互的模型更复杂。

此外,将仪表板文件提供给客户端(浏览器)将非常容易,因为只需要分派 HTML、js 和 CSS 文件。 任何服务器都可以,而且它不会绑定到 .Net 或您喜欢的任何服务器端代码。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM