C# .net开发代码结构-控制器、服务、存储库和;上下文

C# .net开发代码结构-控制器、服务、存储库和;上下文,c#,.net,asp.net,asp.net-mvc,namespaces,C#,.net,Asp.net,Asp.net Mvc,Namespaces,作为一名新开发人员,我对使用最佳实践开发c#代码的命名和结构约定感到十分困惑 我很感激它可能适用于我正在开发的每个领域,但我已经看到了许多不同开源项目的代码,似乎有一个共同的主题。成功的项目具有经过深思熟虑的维护和可扩展性结构 上下文、服务、存储库和控制器等术语经常被使用,我想知道这些术语是否可以解释,或者在使用它们的内容、地点或方式上是否存在共识或约定 例如,在电子商务平台中,我看到了订单服务、订单上下文、客户存储库和产品控制器。基于这些名称,他们应该做什么?控制器是否对服务执行不同的操作?什

作为一名新开发人员,我对使用最佳实践开发c#代码的命名和结构约定感到十分困惑

我很感激它可能适用于我正在开发的每个领域,但我已经看到了许多不同开源项目的代码,似乎有一个共同的主题。成功的项目具有经过深思熟虑的维护和可扩展性结构

上下文、服务、存储库和控制器等术语经常被使用,我想知道这些术语是否可以解释,或者在使用它们的内容、地点或方式上是否存在共识或约定

例如,在电子商务平台中,我看到了订单服务、订单上下文、客户存储库和产品控制器。基于这些名称,他们应该做什么?控制器是否对服务执行不同的操作?什么时候应该使用上下文?名称空间有约定吗?当你试着从一个用勺子喂饱的新手开发人员那里挤出来,并试图继续前进时,这是令人难以置信的

为了开发高质量的代码,我应该真正使用什么软件/工具?单元测试,持续集成,重竖琴,模拟工具,DOI容器,nHibernate

我真的不知道博客/书籍会帮助我从一个熟练的web开发人员发展成为一个能够开发可扩展、高质量和可测试代码的人。作者的假设有很大差距。你要么是新手,要么是软件架构师

我想从一个初级的开发人员转变为一个长期的软件架构师。我意识到这一切都与模式和实践有关,但培训材料在哪里?我自己工作,所以没有机会向别人学习


感谢对单元测试的支持。 对于持续集成,有CruiseControl.net 对于Moq,我个人觉得Moq更简单,也更容易学习。 对于DI,有Ninject、Structuremap和其他一些,我更喜欢Structuremap。这些是我使用过的,通常有不止一个选项

如果您想读一本好书,让您了解ASP.NETMVC、常见的设计模式(如Repository模式)以及我推荐的开发可测试代码


至于您正在谈论的命名约定,这是常见的领域驱动设计约定,许多人正在使用或部分使用.NET中的DDD,您可以获得更多信息。

我认为没有一个完美的解决方案适合您的答案。我也弄糊涂了。但根据我在工作和学校的经验,我制定了自己的规则。也许会给你一个关于你所问问题的线索

我假设您已经了解MVC设计模式。模型将要处理业务逻辑和数据库事务的地方。视图是您希望在屏幕上看到的内容。控制器响应用户的请求,决定加载哪个视图和模型

我通常通过创建一些文件夹(名称空间)来组织模型。这是我的模型:

  • 存储库:将只执行查询, 插入、更新和删除单个 表(接口和实现)
  • 服务:结合 基于存储库的表,请执行以下操作: 登录和注销,以及其他一些 这与数据库访问无关
  • 类:是声明的对象
  • Utils:静态函数从存储库重定向,可以通过视图调用

也许你可以分享你的

+1我会分享!我的
模型
文件夹中有:
部分
提供者
存储库
视图
<代码>局部视图包含要传递给局部视图的基本模型和扩展模型<代码>提供商与您的
服务
相同,我更喜欢这个名字<代码>存储库与您的
存储库
相同。和
视图
包含要传递给视图的基本模型和扩展模型。独立类和数据容器(EF、L2S、nHibernate或其他)是
模型的根对象。