我将在.NET中构建以下应用程序,我对正确的架构有几个问题:
我首先想到使用Web API作为服务数据和业务逻辑的核心。但是,整个项目都需要一个类库,这样他们所有人都可以说同一种语言"在业务对象方面。示例:我在控制台应用程序中有一个SMS对象,它将向Web API提交数据。此Web API也应具有相同的SMS对象。接下来,ASP.NET将显示SMS数据,因此也应该访问同一个对象。但由于这是一个MVC应用程序,它将拥有自己的数据对象。
对此有何正确的解决方法? Visual Studio中的解决方案树应该如何?
感谢您的帮助。
答案 0 :(得分:2)
这并不意味着因为它是一个MVC应用程序,它需要拥有自己的数据对象。我过去做的是创建一个类库并添加对它的引用MVC与此项目相关的DLL。然后我将使用所有必需的MVC属性来装饰对象,最后我将向我的应用程序中的所有项目添加对此类库的引用,这些项目需要它们,如Business Layer,Web api层和MVC (UI)图层。
在您的方案中,它可能是这样的:
答案 1 :(得分:2)
不要使用MVC,制作WebApi服务并选择像反应或角度的Web UI框架。 MVC不值得使用了。
这样,每个人都可以连接到WebAPI,您的控制台应用程序,您的网站/仪表板,甚至是未来的移动应用程序。
如果您将数据库从sql server更改为txt文件(xD),那么您的控制台应用程序也必须更改。仅使用单个API与数据库交互将有效地分离所有图层。
但是,整个项目需要一个类库 所有这些
是的,但您可以使用共享库甚至共享项目来实现此目的。它只是一堆课......
你的所有逻辑都应该在webapi中。包括控制台应用程序部分。它应该只读取数据,然后连接到API。
因此,在这种情况下,您不需要在所有项目中使用相同的模型,因为webapi业务模型的模型可能比模型与其交互更复杂。
此外,将仪表板文件提供给客户端(浏览器)将非常简单,因为只需要发送html,js和css文件。任何服务器都可以,也不会绑定.Net或您喜欢的任何服务器端代码。