Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/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.net Mvc_Unit Testing_Test First - Fatal编程技术网

Asp.net mvc 开始一个新项目-我从哪里开始?

Asp.net mvc 开始一个新项目-我从哪里开始?,asp.net-mvc,unit-testing,test-first,Asp.net Mvc,Unit Testing,Test First,我将开始一个我自己的项目,它将是ASP.NETMVC+FluentNHibernate。我希望尽可能多地使用测试优先的方法。那么,我从哪里开始呢?数据库模式?域模型?将域模型类映射到数据库?如果您在编写测试方面没有什么经验,那么从域模型(或UI下方的更高级别)开始是最容易的。当您使用TDD驱动域模型的设计时,您就会知道数据库模式需要是什么样的。推迟向系统中引入数据库可能是件好事,因为处理数据库模式迁移会给开发增加一些开销。这也将导致更好的设计,因为这样域模型将更好地与数据库层解耦 如果您擅长编写

我将开始一个我自己的项目,它将是ASP.NETMVC+FluentNHibernate。我希望尽可能多地使用测试优先的方法。那么,我从哪里开始呢?数据库模式?域模型?将域模型类映射到数据库?

如果您在编写测试方面没有什么经验,那么从域模型(或UI下方的更高级别)开始是最容易的。当您使用TDD驱动域模型的设计时,您就会知道数据库模式需要是什么样的。推迟向系统中引入数据库可能是件好事,因为处理数据库模式迁移会给开发增加一些开销。这也将导致更好的设计,因为这样域模型将更好地与数据库层解耦

如果您擅长编写测试和TDD,那么从端到端测试开始(在本例中,这些测试将针对web UI编写)并生成涉及系统所有体系结构部分的功能薄片(如中所建议的)可能是有益的。换句话说,创建一个。这种方法的好处是:(1)您将能够在一开始就解决集成问题,(2)当使用端到端测试来驱动设计时,它可以帮助您避免实现多余的部分,以及(3)编写端到端测试的困难迫使您改进体系结构并添加监控挂钩,这在生产中监控系统时可能也很有用。(仍然需要重点单元测试,因为它们在类级别提供设计压力,而且运行速度更快,从而提供更快的反馈。)


我已经在

需求收集中详细介绍了后一种方法。

从应用程序的模拟/原型(例如Balsamiq模拟)开始,然后编写视图,一边模拟控制器,然后编写控制器逻辑,一路上模拟DAO/Repository。当您开始编写DAO/存储库时,您将对所需的域对象有一个很好的了解。去掉这些,使用Fluent Nhibernate构建数据库

至少这是我尝试做事情的方式。

我建议您使用最佳实践结合以下内容的项目:

  • 亚硝酸铵
  • 氟纤维酸盐
  • TDD/DDD和model firts方法以及用于单元测试的Sqlite数据库
  • 嘲弄
  • 存储库模式

您还可以安装S#arp arch。VisualStudioIDE的模板

我最近开始沿着这条路走,我建议作为smoe的起点。虽然我不完全同意,但它给了我一些想法,你忘了敏捷、依赖注入和DDD。我可以;我不知道如果你不使用它们,你的项目怎么可能成功。我计划使用DI和DDD,尽管我对它们不太了解,并将在这一过程中对它们进行研究