C# .net开发代码结构-控制器、服务、存储库和;上下文
作为一名新开发人员,我对使用最佳实践开发c#代码的命名和结构约定感到十分困惑 我很感激它可能适用于我正在开发的每个领域,但我已经看到了许多不同开源项目的代码,似乎有一个共同的主题。成功的项目具有经过深思熟虑的维护和可扩展性结构 上下文、服务、存储库和控制器等术语经常被使用,我想知道这些术语是否可以解释,或者在使用它们的内容、地点或方式上是否存在共识或约定 例如,在电子商务平台中,我看到了订单服务、订单上下文、客户存储库和产品控制器。基于这些名称,他们应该做什么?控制器是否对服务执行不同的操作?什么时候应该使用上下文?名称空间有约定吗?当你试着从一个用勺子喂饱的新手开发人员那里挤出来,并试图继续前进时,这是令人难以置信的 为了开发高质量的代码,我应该真正使用什么软件/工具?单元测试,持续集成,重竖琴,模拟工具,DOI容器,nHibernate 我真的不知道博客/书籍会帮助我从一个熟练的web开发人员发展成为一个能够开发可扩展、高质量和可测试代码的人。作者的假设有很大差距。你要么是新手,要么是软件架构师 我想从一个初级的开发人员转变为一个长期的软件架构师。我意识到这一切都与模式和实践有关,但培训材料在哪里?我自己工作,所以没有机会向别人学习C# .net开发代码结构-控制器、服务、存储库和;上下文,c#,.net,asp.net,asp.net-mvc,namespaces,C#,.net,Asp.net,Asp.net Mvc,Namespaces,作为一名新开发人员,我对使用最佳实践开发c#代码的命名和结构约定感到十分困惑 我很感激它可能适用于我正在开发的每个领域,但我已经看到了许多不同开源项目的代码,似乎有一个共同的主题。成功的项目具有经过深思熟虑的维护和可扩展性结构 上下文、服务、存储库和控制器等术语经常被使用,我想知道这些术语是否可以解释,或者在使用它们的内容、地点或方式上是否存在共识或约定 例如,在电子商务平台中,我看到了订单服务、订单上下文、客户存储库和产品控制器。基于这些名称,他们应该做什么?控制器是否对服务执行不同的操作?什
感谢对单元测试的支持。 对于持续集成,有CruiseControl.net 对于Moq,我个人觉得Moq更简单,也更容易学习。 对于DI,有Ninject、Structuremap和其他一些,我更喜欢Structuremap。这些是我使用过的,通常有不止一个选项 如果您想读一本好书,让您了解ASP.NETMVC、常见的设计模式(如Repository模式)以及我推荐的开发可测试代码
至于您正在谈论的命名约定,这是常见的领域驱动设计约定,许多人正在使用或部分使用.NET中的DDD,您可以获得更多信息。我认为没有一个完美的解决方案适合您的答案。我也弄糊涂了。但根据我在工作和学校的经验,我制定了自己的规则。也许会给你一个关于你所问问题的线索 我假设您已经了解MVC设计模式。模型将要处理业务逻辑和数据库事务的地方。视图是您希望在屏幕上看到的内容。控制器响应用户的请求,决定加载哪个视图和模型 我通常通过创建一些文件夹(名称空间)来组织模型。这是我的模型:
- 存储库:将只执行查询, 插入、更新和删除单个 表(接口和实现)李>
- 服务:结合 基于存储库的表,请执行以下操作: 登录和注销,以及其他一些 这与数据库访问无关
- 类:是声明的对象
- Utils:静态函数从存储库重定向,可以通过视图调用
也许你可以分享你的 +1我会分享!我的
模型
文件夹中有:部分
,提供者
,存储库
和视图
<代码>局部视图包含要传递给局部视图的基本模型和扩展模型<代码>提供商与您的服务
相同,我更喜欢这个名字<代码>存储库与您的存储库
相同。和视图
包含要传递给视图的基本模型和扩展模型。独立类和数据容器(EF、L2S、nHibernate或其他)是模型的根对象。