jjzjj

ArchItecture

全部标签

c# - 用户的账户余额应该存储在数据库中还是动态计算?

用户的账户余额应该存储在数据库中还是动态计算?为了获得准确的结果,动态计算它是有意义的,但是当有很多用户并且数据库变得非常大时,这可能会成为一个问题?交易身份证(公钥)账号类型日期时间金额等等……等等……账户余额TransactionId(PK/FK)余额 最佳答案 为了保持准确的审计,您应该记录每笔影响用户账户余额的交易。这意味着您可以动态计算余额,但是出于性能原因,我也会存储余额。不过,为了确保余额正确,我每天都会运行一个作业,从头开始重新计算余额。 关于c#-用户的账户余额应该存储

c# - 将 csv 文件/excel 导入 sql 数据库 asp.net

我正在使用c#使用asp.netvisualstudio2008/SQL2000(future的2005)开始一个项目。对我来说棘手的部分是现有的数据库模式经常变化,导入文件的列都必须与现有的数据库模式匹配,因为它们可能不是列名的一对一匹配。(有一个查找表为表模式提供了我将使用的列名)我正在探索解决这个问题的不同方法,需要一些专家建议。是否有我可以利用的任何现有控件或框架来执行这些操作?到目前为止,我探索了FileUpload.NET控件,以及一些第3方上传控件来完成上传,例如SlickUpload。但上传的文件应该下一部分是读取我的csv/excel并解析它以显示给用户,以便他们可以

c# - 洋葱架构中的典型层是什么?

我目前正在研究领域驱动设计,并尝试将其应用到一个WPF项目中。我观看了一些教程视频,并阅读了很多文章,例如:Onionarchicecturedependenciesinthesamelayer:InfrastructureandWebcommunicatinghttp://eohmicrosoft.blogspot.fr/2012/08/laying-it-out-onion-architecture.htmlDomainDrivenDesign:DomainService,ApplicationService我理解对接口(interface)和控制反转的关注。我读到有一些经常性的层

c# - 如何避免复杂屏幕上的数据绑定(bind)/事件 hell ?

这更像是一个架构/设计问题。我过去遇到过一些用WPF/WindowsForms等编写的项目,这些项目具有包含很多字段的复杂屏幕,并且这些字段相互连接(它们的值相互依赖,涉及一些逻辑).这些项目是我在实现后接手的,我发现很多事件/数据绑定(bind)hell-我的意思是因为所有这些字段都依赖于其他人,所以他们已经实现了INotifyPropertyChanged并且其他领域正在结果修改。这会导致相同的字段在屏幕加载时被更新5-6次,并且填充字段的顺序会导致可怕的错误。(例如,日期设置在工作类型之前,而不是在工作类型之后,所以我最终得到了不同的工作费用.)更糟糕的是,一些hack是在UI事

c# - 使用 DTO 而不是在公共(public)程序集中共享对实体的引用是否有好处?

我正试图为一个让我抓狂了很长时间的问题找到一个明确的最终答案。通常表示BLL应包含业务逻辑和业务对象(BO),并具有对DAL的引用。另一方面,DAL不能引用BLL,因此它不能接受BO作为参数,或返回BO作为返回值。这个问题最传统的答案是:a)接受简单参数,返回(最好是Typed)DataSets和DataTables返回数据:命名空间DAL{公共(public)课联系方式公共(public)数据表GetContacts(){...}公共(public)UpdateContacts(DataTable联系人){...}b)第二个最推荐的解决方案是定义临时的、可序列化的数据传输对象(DTO

c# - 为什么堆栈在 Exception.StackTrace 中被截断?

为什么堆栈的高位部分(在Exception.StackTrace中)被截断?让我们看一个简单的例子:publicvoidExternalMethod(){InternalMethod();}publicvoidInternalMethod(){try{thrownewException();}catch(Exceptionex){//ex.StackTraceheredoesn'tcontainExternalMethod()!}}这似乎是“设计使然”。但是这样奇怪的设计的原因是什么?它只会使调试变得更加复杂,因为在日志消息中我无法理解是谁调用了InternalMethod(),而通常

c# - 组件、行为和 MonoBehaviour 之间有什么区别?为什么这些要分开?

MonoBehaviour扩展了Behaviour并且Behaviour扩展了Component。我想知道为什么要分开这些类,以及这些类的语义。将这些类分开有什么目的吗?是否有直接扩展Behaviour或Component的类?我知道我们必须使用MonoBehaviour在Unity中创建C#代码。不过,我对Unity作为游戏引擎的架构很感兴趣。 最佳答案 组件:Component是Behaviour和MonoBehaviour的基类。它是可以附加到游戏对象的任何脚本的基类。这几乎是每个Unity内置脚本的来源。这包括Collide

c# - 不了解在系统架构中的何处创建 IoC 容器

假设我有以下4个.net程序集:Winforms用户界面业务逻辑SQLServer数据访问(实现IRepository)通用接口(interface)(IRepository等的定义)我的业务逻辑(2)使用构造函数依赖注入(inject)通过IRepository(在4中定义)调用数据访问层(3)。然而,当我创建一个业务对象时,我需要传入一个实际的存储库。我通过在我的业务逻辑层中使用一个单例类来返回当前正在使用的实现IRepository的具体对象来实现这一点。我得出的结论是这是一件坏事,因为我的业务逻辑层现在必须引用3和4。我想我需要一个IoC容器,但问题是我在哪里创建/放置它,因为

c# - 依赖注入(inject)和开发生产力

摘要在过去的几个月里,我一直在使用API抽象和实体/组件/脚本系统编写一个基于C#的轻量级游戏引擎。它的整个想法是通过提供类似于Unity引擎的架构来简化XNA、SlimDX等中的游戏开发过程。设计挑战大多数游戏开发人员都知道,您需要在整个代码中访问许多不同的服务。许多开发人员求助于使用全局静态实例,例如渲染管理器(或Composer)、场景、图形设备(DX)、记录器、输入状态、视口(viewport)、窗口等。全局静态实例/单例有一些替代方法。一种是通过构造函数或构造函数/属性依赖注入(inject)(DI)为每个类提供它需要访问的类的实例,另一种是使用全局服务定位器,例如Struc

c# - 为 .NET 产品支持多个数据库的最佳方式是什么?

我们正在设计一个可以支持多个数据库的产品。我们目前正在做这样的事情,以便我们的代码支持MSSQL和MySQL:namespaceHandlers{publicclassBaseHandler{protectedstringconnectionString;protectedstringproviderName;protectedBaseHandler(){connectionString=ApplicationConstants.DatabaseVariables.GetConnectionString();providerName=ApplicationConstants.Datab