jjzjj

ArchItecture

全部标签

c# - 将测试驱动开发应用于紧密耦合的架构

我最近一直在研究TDD,参加了一个session并涉足了一些测试,我已经100%被说服了,我非常喜欢TDD。因此,我向我的前辈们提出了这个问题,他们准备给它一个机会,所以他们让我想出一种在我们的企业产品开发中实现TDD的方法。问题是我们的系统从VB6时代发展到.NET,并实现了许多遗留技术和一些远非最佳实践的开发技术,即ASP.NET代码隐藏和客户端脚本中的大量业务逻辑。然而,最大的问题是我们的类是如何与数据库访问紧密耦合的;属性、方法、构造函数——通常以某种形式具有某些数据库访问权限。我们使用内部数据访问代码生成器工具创建sqlDataAdapters,为我们提供我们可能想要的所有数

c# - 延迟加载 - 什么是最好的方法?

我见过很多延迟加载的例子——你的选择是什么?例如给定一个模型类:publicclassPerson{privateIList_children;publicIListChildren{get{if(_children==null)LoadChildren();return_children;}}}Person类不应该知道它的子类是如何加载的......或者应该知道吗?它当然应该控制何时填充属性?您是否有一个将Person与其子集合耦合在一起的存储库,或者您是否会使用不同的方法,例如使用lazyloadclass-即便如此,我也不希望lazyload类在我的模型架构中变得模糊。如果首先请

c# - 存储库、管道、业务逻辑和域模型——我如何将它们组合在一起?

我在设计N层应用程序时遇到了一个难题,您可能有解决方案。表示层是MVC。我的ORM是使用LinqToSQL执行的-它是一个为存储库提供服务的独立项目。每个存储库都有一个接口(interface)和至少1个具体实现。Repositories有以下方法:FindAll(),Save(Tentity),Delete(intid)FindAll()返回某种类型的IQueryable,这意味着它返回我可以应用过滤器的查询。ORM映射是使用数据库优先方法执行的,首先创建表,然后由SQLMetal生成类。我添加了一个与存储库一起使用的管道层。它将进一步的过滤器应用于查询。例如。OrderReposi

c# - 游戏编程 - 二维游戏对象之间的通信

最近我一直在尝试用C#编写游戏代码。我没有为此使用XNA,因为我认为如果我从头开始编写游戏代码我会学到更多(尽管我使用的是多媒体引擎)。我正在尝试设计一个2DRPG游戏——我知道这有点雄心勃勃,但我至少对游戏的基本部分(即“样板”代码)有相当好的理解,而且我已经到达了我不知道从这里去哪里的部分。在2D游戏中,您通过在不同“区域”中走动来推进游戏。一旦你击中了一个“门户板block”,你就会被传送到下一个区域等等。我无法理解应该如何设置这些区域对象。这是我的第一个想法:每个区域都有一些不同的集合结构(例如,可见性四叉树、碰撞四叉树、AI实体列表等)。所以如果我要在游戏中添加一个敌人实体,

c# - 在存储库模式中使用接口(interface)优于抽象类的优势?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:InterfacevsBaseclass使用接口(interface)实现的存储库模式很常见publicinterfaceIFooRepository{FooGetFoo(intID);}publicclassSQLFooRepository:IFooRepository{//CallDBandgetafoopublicFooGetFoo(intID){}}publicclassTestFooRepository:IFooRepository{//Getfoofromin-memorystorefortest

c# - ASP.NET MVC 大型项目架构

关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.8年前关闭。Improvethisquestion这是一个与如何为大中型应用程序构建ASP.NETMVC项目相关的问题。我以为我理解了MVC的概念,但在研究了大中型应用程序的架构后,我感到很困惑。(尝试考虑可扩展性、可扩展性和持续维护)当我试图按照“最佳实践”(来自包括打印和网络在内的众多来源)的指导方针来思考如何构建应用程序时,我感到困惑试图尊重诸如Controller应该保持非常简单TDD原则(或至少是一种使future测试更容易

c# - 如何确定分布式架构?

在设计大型应用程序时,我正在努力了解思考过程。假设我有一个客户需要一个新的客户网站,他估计每天有40,000个订单,而用户群已经有25,000个。在设计应用程序时,您如何确定是否需要分布式架构?我应该使用网络农场吗?等我过去主要构建2层(物理)应用程序,我真的想提高我的理解。任何见解都会很棒! 最佳答案 从一开始就对您的新应用进行负载测试。由于预先进行大型设计永远不会给您带来预期的结果(15年以上的经验),所以最好的办法是针对变化进行设计,让正确的架构从您的需求中浮现出来。根据您的描述,对该项目采用敏捷方法,并使用其实践来指导您的项

c# - Azure 存储表分页

以相对直接的方式在Azure存储中实现简单分页:PagingwithWindowsAzureTableStorage.这可以通过延续token功能来实现。但是。这只是严肃分页的开始。第一个问题是排序。您不能在Azure表中执行OrderBy。克服这个问题的最佳解决方案是什么?页面必须排序,这是事实。第二个问题,分页时要知道总页数,仅使用延续标记功能这是不可能的。在每个页面上执行“.Count()”在我看来效率很低(例如,因为分区可能位于多个服务器上)。第三个问题是,与第二个相关,即使你可以计算你有多少页,如何将计算的页面“连接”到实际的延续标记?这对我来说是最大的谜团。如何从特定的表格

c# - 多表单应用程序显示和隐藏表单的最佳实践?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。ImprovethisquestionStackOverflow上有大量问题询问如何隐藏Form1并显示Form2。通常,会出现一些不同的答案:1)//Program.csApplication.Run(newForm1());//Form1.csForm2form2=newForm2();form2.Show();this.Hide();2)//Program.csForm1form1=newForm1();Form2for

c# - 使用 .NET 进行多线程文件处理

有一个文件夹包含1000多个小文本文件。我的目标是在将更多文件填充到文件夹中时解析和处理所有这些文件。我的意图是对该操作进行多线程处理,因为单线程原型(prototype)需要6分钟来处理1000个文件。我喜欢如下所示的读者和作者线程。当读者线程正在读取文件时,我想让编写者线程来处理它们。一旦读者开始阅读文件,我想将其标记为正在处理,例如通过重命名它。阅读后,将其重命名为completed。如何处理这样的多线程应用程序?分布式哈希表好还是队列好?我应该使用哪种数据结构来避免锁定?这个方案有更好的方法吗? 最佳答案 由于对.NET4如