我有一个架构决策问题: 我们即将构建一个新的应用程序,我们已经决定使用 ASP.NET MVC 和实体框架(数据库首先可能) )。在第一个案例中,我们只会为常规浏览器构建Web应用程序,但将来我们可能会添加移动应用程序。 (SOA?)
现在我的问题是建立应用程序架构的最佳方法是什么?
这是正确的吗?
我一直在寻找示例,模式和最佳做法,但我似乎找不到合适的东西。
谢谢!
答案 0 :(得分:9)
我通常构建解决方案的方式(编辑适用于NuGet)
依赖关系流向这个结构,即上面的内容可能引用下面的内容,但反之亦然。每个项目我也会有一个单独的测试项目。在某些情况下,我使用与NuGet打包并托管在本地存储库上的Web /通用类的外部共享库。
对于移动设备,如果您通过网络,我会使用jQuery Mobile和移动感知视图引擎将其直接构建到WebSite中。如果您正在考虑本机,那么我将添加一个WebAPI层,该层可能会或可能不会与用于API交付的网站共享相同的视图模型,并在此结构之外针对API开发移动应用程序。 API最有可能拥有自己的模型,并位于单独堆栈中的业务层之上。在我目前的项目中,我们将数据放在一个单独的解决方案中,并在单独的解决方案中开发API和网站,通过NuGet包共享模型。
答案 1 :(得分:2)
听起来您的团队还没有足够的信息来做出决定。我知道这就是你在这里问这个问题的原因,但你不应该依赖于你得到的任何答案。 ASP.NET MVC和EF 可能 对您来说是一个很好的解决方案,但如果没有至少通过Nerd Dinner或Music Store工作,您就不应该选择它。教程。
完成此操作后,您将能够回答有关架构的问题,并可能会发现一些其他问题。
答案 2 :(得分:1)
基本策略可能包含以下内容:
答案 3 :(得分:1)
首先,您必须决定如何实施网站的移动版本。 基本上你有两个选择:
通常我正在使用3个项目
答案 4 :(得分:0)
我认为您选择了正确的应用程序架构,我们在其中一个项目中也使用了相同的应用程序架构......
MvcProject
Model
View
Controller
DAL project
Holds edmx and T4 templates
答案 5 :(得分:0)
请记住,最佳架构与预算和时间表直接相关。
MVC的费用将超过常规的asp.net:
当你说DAL项目时,我认为你的意思是普通的asp.net。如果是这种情况,那么:
关于移动开发,您选择的网站并不重要。您的移动应用程序应使用设备的本机语言(IOS,Android等)进行开发。然后通过SSL和JSON与应用程序通信。