Asp.net mvc 在asp.net mvc中组织真实世界的应用程序代码时有些迷失
我有下面的真实场景,为了这个例子的缘故有些简化 我有一个对象,我们称之为电影,它由几个属性组成,比如Asp.net mvc 在asp.net mvc中组织真实世界的应用程序代码时有些迷失,asp.net-mvc,code-organization,Asp.net Mvc,Code Organization,我有下面的真实场景,为了这个例子的缘故有些简化 我有一个对象,我们称之为电影,它由几个属性组成,比如 发布日期 演员(阵列) 体裁 评级 我需要有一个可以输入新电影的表单,表单上包含以下元素: 日期日历 演员下拉列表 用体裁搜索列表 星光场 使用asp.net mvc组织代码的清晰一致的方法是什么,请概述在哪里 数据访问逻辑 业务逻辑(验证等) 我想在这里使用ViewModel概念 到目前为止我有 电影模型 MovieViewModel视图模型 iMovie存储库接口 但我不清楚
- 发布日期
- 演员(阵列)
- 体裁
- 评级
- 日期日历
- 演员下拉列表
- 用体裁搜索列表
- 星光场
- 数据访问逻辑
- 业务逻辑(验证等)
- 我想在这里使用ViewModel概念
- 电影模型
- MovieViewModel视图模型
- iMovie存储库接口
我是MVC新手,正在努力确保我的代码组织良好。我记得Mike Cohn关于敏捷的一句好话,“最佳实践并不存在。” 因此,您应该始终不断改进和重构,不仅针对代码,还针对设计、体系结构、方法等。要做到这一点,您需要以下几点:
var repository = new FakeRepository<CustomerVeiwModel>();
var customer = repository.GetById(1);
- 将可维护性作为一项无功能的要求,以满足所有工作的需要
- BDD(行为驱动开发)
- TDD(测试驱动设计)
- TDD(测试驱动开发)
- 具有适当代码覆盖率的单元测试
- 自动化构建、部署和测试(所有重复活动的完全自动化)
public ActionResult List(CustomerVeiwModel customerVeiwModel)
{
var repository = new FakeRepository<CustomerVeiwModel >();
repository.Save(customerVeiwModel);
我在MVC项目中的默认方法如下
public ActionResult List(CustomerVeiwModel customerVeiwModel)
{
var repository = new FakeRepository<CustomerVeiwModel >();
repository.Save(customerVeiwModel);
- 通过使用展开使用映射层映射的ViewModel 映射库
- 域模型考虑DDD指令
- 将控制器作为服务使用的服务层 业务逻辑
- 服务层和工作单元使用的存储库
- 视图模型
- 映射
- 服务
- 存储库
- 等等
public ActionResult List(CustomerVeiwModel customerVeiwModel)
{
var repository = new FakeRepository<CustomerVeiwModel >();
repository.Save(customerVeiwModel);
公共操作结果列表(CustomerWebModel CustomerWebModel)
{
var repository=new FakeRepository();
repository.Save(customerVeiwModel);
要检索客户,我只需要编写以下代码:
var repository = new FakeRepository<CustomerVeiwModel>();
var customer = repository.GetById(1);
var repository=newfakerepository();
var customer=repository.GetById(1);
因此,我总是在2分之后决定ViewModel、存储库、体系结构等
- 功能完成并作为客户或业务专家工作 期望
- 我有涵盖所有特性行为和响应的单元测试
顺便说一下,您可以在CodePlex上下载使用我的方法表单的MVC3项目,您将发现名为“TryFakeMVC3”的项目你的GUI似乎与你的业务逻辑相矛盾。你说一部电影有多个演员,但你在GUI中提供了一个下拉列表,显然可以选择一个演员。这表示收视率。似乎很奇怪。你是说一个多选下拉列表吗?不,当选择一个演员时,它会自动添加并显示出来显示在下拉列表上方的屏幕上,旁边有“x”(用于删除)。用户可以通过这种方式选择多个操作。我很可能会使用jquery ajax进行此操作。用户只能对电影进行一次评分-我将编辑我的问题。请看。它为asp.net mvc应用程序提供了可靠的体系结构(使用最佳实践)。