Kar*_*awy 5 c# asp.net-mvc-4 visual-studio-2013
我有一个“ ASP.NET MVC 4 Web 应用程序”,在 Visual Studio 2013 中分为多个区域。
该项目变得越来越大,以至于我目前在应用程序中拥有大量区域。
有一个特定区域可以在另一个 MVC 4 应用程序中单独分离。我创建了一个新的 MVC 4 应用程序,并将该区域移至该应用程序。
这些是我面临的问题:
这是我尝试过的:
这是我的问题:
我尝试在 SO 和 Google 上搜索如何实现这种分离。然而,我发现的似乎适用于以前版本的MVC和VS。由于我对 MVC 领域和一般 MVC 的概念很陌生,所以我无法解决这个问题。
我会对这个问题采取更普遍的观点。这并不是一个具体的 ASP.NET MVC 问题,而是一个 .NET 代码组织问题。我不相信有任何一种特定的规范方法,而是一些通用指南可以根据您的喜好以及您的项目/团队的工作方式提供帮助。
我关注的总体项目是将代码拆分为单独的程序集并创建资产管道。
拆分程序集允许您的项目根据需要独立编译和重新编译。如果您需要在 Web 服务中跨计算机拆分内容并在其他相关项目(例如 WCF 服务)中重用,或者如果您需要根据您的要求执行 GAC 特定程序集之类的操作,那么这会带来额外的好处。
将事物放入管道只会使共享和管理一切变得更加容易。
以下是一些建议:
您的解决方案中不需要 1 个整体项目来完成听起来像您所拥有的一切。将事物分成多个项目,从而产生多个程序集。您还可以为不需要其他部分运行的应用程序的独立部分提供多个解决方案。
从整个应用程序共享的任何“后端”和“业务”逻辑开始。例如,如果您有一个由多个视图使用的 CustomerService 类,请将其放入类似 MyCompany.MyApp.Services 的内容中。显然,如果您最终添加大量项目,您获得的粒度越细,您的命名可能会越具体。
特别是对于 MVC 类型的项目,通常很容易将模型拆分为 1 个或多个程序集。示例:MyCompany.MyApp.SomeGroupingName1.Models 和 MyCompany.MyApp.SomeGroupingName2.Models,或简单地转换为 1 作为 MyCompany.MyApp.Models
您也可以将控制器拆分为多个程序集,与上一点相同。
您也可以将 UI 中的任何类型的组件抽象为它们自己的程序集,视图也是如此。
使用您提到的解决方案文件夹。
如果需要,可以引入资产管理库来帮助构建和解决资源捆绑问题。如果库尚未执行此操作,您可以创建一个资产管道,将其插入其中以缩小 css 和 js。然后,在您的应用程序中,您只需在所需的页面中引用所需的捆绑包,而不是总是在每个页面手动包含所有内容或在整个应用程序中共享整个站点中的所有内容。
如果可能的话,优先选择组合而不是继承。从你的帖子中还不清楚,但我看到人们试图为每个控制器、视图等实现一个规则所有基类的许多问题。正如他们所说,它可能会起作用,直到它不起作用。使用基类和继承仍然是一个好主意,但不要将执行不同操作的多个事物绑定到同一基实现。那时,如果您需要执行某种契约,那么接口可能更适合您。
最后一点:如果您将内容捆绑在内容管道中,如果操作正确,客户端会最大限度地减少下载脚本的次数,并且您可以让浏览器尝试为其他页面缓存它。有时,最好将一个大文件推送一次,而不是在每个页面上建立许多网络连接到不同的文件,这些文件不容易被缓存或内联在视图中。
| 归档时间: |
|
| 查看次数: |
2859 次 |
| 最近记录: |