Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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 mvc 架构决策:ASP.NETMVC&;实体框架_Asp.net Mvc_Asp.net Mvc 3_Entity Framework_Architecture_N Tier Architecture - Fatal编程技术网

Asp.net mvc 架构决策:ASP.NETMVC&;实体框架

Asp.net mvc 架构决策:ASP.NETMVC&;实体框架,asp.net-mvc,asp.net-mvc-3,entity-framework,architecture,n-tier-architecture,Asp.net Mvc,Asp.net Mvc 3,Entity Framework,Architecture,N Tier Architecture,我遇到了架构决策问题: 我们即将构建一个新的应用程序,我们决定使用ASP.NET MVC和实体框架(可能首先使用数据库)。在第一阶段,我们将只为常规浏览器构建一个web应用程序,但在未来,我们可能会添加移动应用程序。(SOA?) 我现在的问题是,构建应用程序体系结构的最佳方式是什么 这是正确的吗 MVC项目 模型 看法 控制器 DAL项目 保存edmx和T4模板 我一直在寻找例子、模式和最佳实践,但似乎找不到合适的 谢谢大家! 我认为您选择了正确的应用程序体系结构,我们在一个项目中也使用

我遇到了架构决策问题: 我们即将构建一个新的应用程序,我们决定使用ASP.NET MVC实体框架(可能首先使用数据库)。在第一阶段,我们将只为常规浏览器构建一个web应用程序,但在未来,我们可能会添加移动应用程序。(SOA?)

我现在的问题是,构建应用程序体系结构的最佳方式是什么

这是正确的吗

  • MVC项目
    • 模型
    • 看法
    • 控制器
  • DAL项目
    • 保存edmx和T4模板
  • 我一直在寻找例子、模式和最佳实践,但似乎找不到合适的


    谢谢大家!

    我认为您选择了正确的应用程序体系结构,我们在一个项目中也使用了相同的应用程序体系结构

    MvcProject
    Model
    View
    Controller
    
    DAL project
    Holds edmx and T4 templates
    

    我认为您选择了正确的应用程序体系结构,我们在一个项目中也使用了相同的应用程序体系结构

    MvcProject
    Model
    View
    Controller
    
    DAL project
    Holds edmx and T4 templates
    

    听起来你的团队还没有足够的信息来做出决定。我知道这就是为什么你在这里问这个问题,但你不应该依赖你得到的任何答案。ASP.NET MVC和EF对您来说可能是一个很好的解决方案,但您不应该在至少没有参加过书呆子晚餐或教程的情况下选择它


    完成此操作后,您将能够回答自己关于体系结构的问题,并且可能还会发现一些其他问题。

    听起来您的团队还没有足够的信息来做出决策。我知道这就是为什么你在这里问这个问题,但你不应该依赖你得到的任何答案。ASP.NET MVC和EF对您来说可能是一个很好的解决方案,但您不应该在至少没有参加过书呆子晚餐或教程的情况下选择它


    完成此操作后,您将能够回答自己关于体系结构的问题,并且可能还将发现一些其他问题。

    我通常构建解决方案的方式(编辑适用于NuGet)

  • 网站(MVC)
    • 控制器
    • 观点
    • 内容(脚本、css、图像等)
  • 演示模型(对于简单的项目,这将嵌入到网站中)
    • 视图模型
    • 模型映射器
  • 业务逻辑
    • 规则
    • 本地扩展(Web和通用)
  • 数据(如果复杂,请根据上下文/repos/模型使用单独的子文件夹)
    • 存储库
    • 实体模型
    • 数据上下文和配置
  • Web库(可能是通过本地NuGet提供的单独解决方案)
    • 扩展(到MVC/Web类)
    • 助手类 =属性
  • 通用库(可能是通过本地NuGet提供的单独解决方案)
    • 扩展
    • 助手类
  • 依赖关系沿着这个结构向上流动,也就是说,上面的东西可能引用下面的东西,但反之亦然。我也会有一个单独的测试项目,每个项目。在某些情况下,我将外部共享库用于使用NuGet打包并托管在本地存储库中的web/general类


    对于移动设备,如果您通过web访问,我会使用jQuery mobile和移动感知视图引擎将其直接构建到网站中。如果您认为是原生的,那么我会添加一个WebAPI层,该层可能与用于API交付的网站共享相同的视图模型,也可能不共享相同的视图模型,并根据API开发此结构之外的移动应用程序。API很可能有自己的模型,并且位于业务层之上的一个单独的堆栈中。在我当前的项目中,我们将数据放在单独的解决方案中,并在单独的解决方案中开发API和网站,通过NuGet软件包共享模型。

    我通常构建解决方案的方式(编辑适合NuGet)

  • 网站(MVC)
    • 控制器
    • 观点
    • 内容(脚本、css、图像等)
  • 演示模型(对于简单的项目,这将嵌入到网站中)
    • 视图模型
    • 模型映射器
  • 业务逻辑
    • 规则
    • 本地扩展(Web和通用)
  • 数据(如果复杂,请根据上下文/repos/模型使用单独的子文件夹)
    • 存储库
    • 实体模型
    • 数据上下文和配置
  • Web库(可能是通过本地NuGet提供的单独解决方案)
    • 扩展(到MVC/Web类)
    • 助手类 =属性
  • 通用库(可能是通过本地NuGet提供的单独解决方案)
    • 扩展
    • 助手类
  • 依赖关系沿着这个结构向上流动,也就是说,上面的东西可能引用下面的东西,但反之亦然。我也会有一个单独的测试项目,每个项目。在某些情况下,我将外部共享库用于使用NuGet打包并托管在本地存储库中的web/general类


    对于移动设备,如果您通过web访问,我会使用jQuery mobile和移动感知视图引擎将其直接构建到网站中。如果您认为是原生的,那么我会添加一个WebAPI层,该层可能与用于API交付的网站共享相同的视图模型,也可能不共享相同的视图模型,并根据API开发此结构之外的移动应用程序。API很可能有自己的模型,并且位于业务层之上的一个单独的堆栈中。在我当前的项目中,我们将数据放在单独的解决方案中,并在单独的解决方案中开发API和网站,通过NuGet软件包共享模型。

    基本策略可能包含以下内容:

    • 数据项目
      • EF模型
      • 实体/T4代
    • 逻辑工程
      • 应用规则
      • 与t的表示无关的逻辑