Questions tagged «c#»

C#是Microsoft与.NET平台并行创建的一种多范式,托管的,垃圾回收的面向对象编程语言。

1
如何改善应用程序的内存使用率?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我正在编写一个C#应用程序,并且可以看到随着应用程序运行时间的增加,内存使用量也在增加。 有什么工具或技术可以监视我的应用程序的内存使用,识别内存泄漏并总体上改善我的应用程序的内存使用?
10 c#  memory-usage 

3
ASP.NET WebForms应用程序的最佳体系结构
我已经为客户端编写了一个ASP.NET WebForms门户。该项目是经过改进的,而不是从一开始就进行了适当的计划和组织。因此,所有代码都在同一项目中混在一起,没有任何层次。客户端现在对功能很满意,因此我想重构代码,以便对发布项目充满信心。由于似乎有许多不同的方法来设计体系结构,所以我想对最好的方法提出一些意见。 功能性 门户允许管理员配置HTML模板。其他关联的“合作伙伴”将可以通过向其网站添加IFrame代码来显示这些模板。在这些模板中,客户可以注册和购买产品。已经使用WCF实现了API,该API允许外部公司也可以与系统连接。管理员部分允许管理员配置各种功能并查看每个合作伙伴的报告。系统将发票和电子邮件通知发送给客户。 当前架构 它当前正在使用EF4读取/写入数据库。EF对象直接在aspx文件中使用。在我编写站点时,这促进了快速开发,但是像这样将它与UI紧密耦合在一起可能使它保持不可接受。特定的业务逻辑已添加到EF对象的部分类中。 问题 重构的目标是使站点可扩展,易于维护和安全。 哪种架构最适合此?请说明每层中应该包含的内容,是否应使用DTO的/ POCO / Active Record模式等。 是否有一种健壮的方法来自动生成DTO / BO,以便尽管有额外的层,也可以轻松实现将来的任何增强功能? 将项目从WebForms转换为MVC是否有益?

4
使用拖放UI管理列表项排序顺序的最佳方法是什么?
我有一个学生列表,应该以表格形式显示在网页上。 这些项目与SortOrder信息一起存储在DB中。 在网页上,用户可以通过将项目拖放到所需的排序顺序来重新排列列表顺序,类似于此文章。 以下是我的测试页的屏幕截图。 在上面的示例中,每行都附加了排序顺序信息。当我将John Doe(学生ID 10)放到“学生ID 1”行上方时,列表顺序现在应该是:2、10、1、8、11。 存储和更新“排序顺序”信息的乐观(较少的资源消耗)方式是什么? 我目前唯一的想法是,对于列表的排序顺序中的每个更改,每个对象的SortOrder值都应更新,我认为这非常浪费资源。 仅供参考:我的表格中最多可能有25行。
10 c#  sorting 

9
为什么变量需要类型?
所以我们写: Customer c = new Customer(); 为什么设计不像我们这样写: c = new Customer(); c.CreditLimit = 1000; 编译器可以计算出指向客户的c点,并允许在c上调用客户的成员。 我知道我们可能要写: IPerson c = new Customer(); IPerson e = new Employee(); 以便能够写出: public string GetName(IPerson object) { return object.Name } string name = GetName(c); // or GetName(e); 但是,如果我们写道: c = new Customer(); e = new …

6
如何验证/证明编程语言的正交性?
我知道正交性的概念,但是从编程语言的角度来看,有没有一种方法可以验证/证明它呢? 例如在C#中,可以使用public或static进行方法签名。您可以使用其中之一,也可以使用两者,并且它们不会互相干扰,因此它们彼此正交,对吗? 我的问题是,我该如何处理其余功能,尤其是互不相关的功能? 所有功能都必须共存/堆叠在一起吗? 是否有100%正交的编程语言?

3
寻找分布式锁定模式
我需要为C#中的分布式系统提出一个自定义的递归对象锁定机制\模式。本质上,我有一个多节点系统。每个节点对n个状态段具有独占写入权限。至少一个其他节点上的只读也可以使用相同的状态。一些写入/更新必须在所有节点上都是原子的,而其他更新最终将通过后台复制过程,队列等变得一致。 对于原子更新,我正在寻找一种模式或示例,这些模式或示例可以有效地使我将对象标记为写锁定,然后可以分发,提交,回滚等。由于系统具有高级别的并发性,因此我假设我需要能够堆叠锁,这些锁要么超时,要么在释放锁之后展开。 事务或消息传递不是这个问题的重点,但是我已经为一些额外的上下文提供了它们。话虽如此,请随意阐明您认为需要的消息。 尽管我对实现全新产品不愿接受任何新想法,但是这是我所设想的模糊示例 thing.AquireLock(LockLevel.Write); //Do work thing.ReleaseLock(); 我在考虑使用扩展方法,可能看起来像这样 public static void AquireLock(this IThing instance, TupleLockLevel lockLevel) { //TODO: Add aquisition wait, retry, recursion count, timeout support, etc... //TODO: Disallow read lock requests if the 'thing' is already write locked //TODO: Throw exception when aquisition fails instance.Lock = lockLevel; } …

2
node.js和c#的用例
我做了很多ASP.NET工作(C#,MVC),但其中大多数是典型的Web开发。我使用CRUD存储库进行Restful体系结构。我的大多数客户在他们的应用程序中没有很多高级要求。 我现在正在研究node.js及其对性能的影响(我沉迷于速度),但是我并没有那么深入地研究它。 我想知道 node.js可以现实地替换我在C#和ASP.NET MVC中的典型Web开发(不重写现有应用程序,而是在开发新应用程序时) 通过向现有体系结构添加一些异步优势,node.js可以补充ASP.NET MVC应用程序。 是否有针对C#和node.js的用例? 编辑 我喜欢ASP.NET MVC,并且对它的发展感到非常兴奋。只是想看看是否有特殊的用例会支持node.js

3
准备好以开发人员的身份进行代码审查了吗?
我在这里寻找一些想法。 我阅读了这篇文章,《如何进行代码审查和代码审查》有什么好处?这些信息非常有用,但是我仍然需要在下面的问题上更加清楚。 我的问题是 作为目标开发人员,您能否建议开发人员在审查其代码之前可以采用的一些最佳做法。 目前,我练习以下方法 PPT逻辑流程 详细评论。 问题:即使我已经实施了上述做法,但它们对审核没有帮助。我面临的问题是,当引用某些逻辑时,我一直在寻找实现和流程,并且在过程中浪费了太多时间,并且引起了人们的注意。 我认为很多开发人员也会经历我正在经历的事情。
10 c#  code-reviews 

4
Web开发人员.NET或Java的学习途径
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我想知道Windows托管了多少个现实世界的Web应用程序服务器? 我将学习C#和ASP.NET,并希望将自己从嵌入式开发人员转换为Web应用程序开发人员。 我的朋友告诉我,基于Linux的服务器要比Windows服务器更多。他还提到Java技能栈在Web应用程序领域比.NET有用得多。 我对Java和C#的体验很难理解。我是一位经验丰富的C ++开发人员。 有人可以给我一些建议吗? 非常感谢
10 c#  java  .net 

2
命令处理程序和DDD
我有一个ASP.NET MVC应用程序,该应用程序使用查询服务来获取数据,并使用命令服务来发送命令。我的问题是关于命令部分的。 如果有请求进入,则命令服务将使用命令调度程序,该命令调度程序会将命令路由到其指定的命令处理程序。该命令处理程序首先验证命令,如果一切都可以接受,它将执行命令。 具体示例:AddCommentToArticleCommandHandler接收一个AddCommentToArticleCommand,该命令具有ArticleId,CommentText和EmailAddress。 第一; 必须进行验证,例如:-检查文章是否存在-检查文章是否未关闭-检查注释文本是否在20到500个字符之间,以及是否填写了电子邮件地址-检查电子邮件地址是否具有正确的格式。 我想知道将验证放在哪里? 1 /在命令处理程序本身中。但是,它不能在其他命令处理程序中重用。 2 /在域实体中。但是,由于域实体不了解存储库或服务,因此它无法执行所需的验证(无法检查文章是否存在)。但是另一方面,如果实体不包含逻辑,则它将变成一个简单的数据容器,不遵循DDD原理。 3 /命令处理程序使用验证器,以便可以在其他命令处理程序中重用验证。 4 /其他机制? 我正在寻找此特定示例的责任链,以及哪些对象(实体,存储库,...)在其中起作用。 从命令处理程序到存储库,您是否有实现此想法的想法?

3
C#中的私有静态方法会伤害任何东西吗?
我为某个验证创建了私有验证方法,该验证方法在我的课程中多次发生(出于各种原因,我无法存储经过验证的数据)。现在,ReSharper建议将该功能设为静态。由于静态方法的已知问题,我有点不愿意这样做。这将是一个私有的静态方法。我的问题是,私有静态方法是否会引起类似公共静态方法的耦合和测试问题?这是不好的做法吗?我猜不会,但是我不确定这里是否有陷阱。

7
原型和生产级解决方案之间有什么区别?
这个问题纯粹是为了学习和加强我的技术理解。我知道没有完美的解决方案,这个问题可能永远也不会结束,但是我认为对于每个架构师来说,了解演示和实际项目之间的区别非常重要。 过去,我在.Net中创建了许多演示解决方案。我现在已被分配给架构师并实现生产级别的Web解决方案,所以我想问-在一个很高的水平上,将演示转换为生产级别的解决方案需要什么。据我了解,这将需要(除了在功能上实现客户的要求以外): 每种方法进行单元测试 确保实现约100%的代码覆盖率 记录所有异常和可能的切入点-AOP可能记录 使用接口设计模式,进行依赖项注入,可能使用诸如spring.net之类的框架 使用性能计数器和分析器进行检测 应用适当的安全性-即Windows身份验证(如果这是客户端所要求的)。 每种方法的交易管理 在新部署解决方案之前备份Web应用程序文件 还有什么? 我的问题与技术方面而不是功能/文档更多相关,因为否则我们将走另一条路:-) 谢谢。

6
使用TDD启动新项目
我正在研究TDD,我读到它还可以帮助您定义应用程序的设计,对吗? 因此,我决定开始创建一个新项目,以帮助我更好地理解它。 我想创建一个简单的用户注册系统,询问其名称,电子邮件地址,国家(从列表中选择一个)和电话号码。 所以问题是... 我在VS 2010中创建了一个新的解决方案,添加了一个新的Test项目,但我只是不知道编写什么测试! 由于它将帮助我定义设计,因此我可以在此处编写哪些测试? 谢谢你的帮助!
10 c#  .net  tdd 

2
哪些GOF设计模式已作为C#中的一流语言功能实现?
(由于“太宽泛”和“不是一个真正的问题”,这个问题在Stack Overflow上已经关闭,也许在这里更合适?) 受到这个问题的启发。我们知道事件是Observer模式的语言级实现。是否在C#中将其他设计模式实现为语言功能?我想保留此问题特定于C#,因为有许多其他语言实现的设计模式,并且我想保持专注。 我不是在BCL中寻找模式实现(例如,许多WCF类中的装饰器或中的Factory Method WebClient),而是语言级别的模式。 到目前为止,我知道观察者(event)和迭代器(foreach结合了许多BCL类和接口)。我可能还缺少其他明显的东西。

11
如何使用Microsoft堆栈过渡到工作?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我毕业于大学,获得计算机科学学位(BSc),并在此过程中完成了一些C,C ++,Java,Python和Oracle。我上大学时曾做过一些自由职业,毕业后就从事了一份全职工作,现在我已经从事了一年的全职工作。 PHP并不是我真正想做的,而且我认为,如果我走这条路的时间越长,它就会限制我的机会。它不是我每天都喜欢使用的语言,我想在一个规模较大的组织中工作,在这个组织中PHP似乎没有太多用处。 我想继续从事Web开发,Microsoft堆栈似乎有很多工作:C#,SQL Server和ASP.NET MVC。但是除了半个学期在Visual Studio中编写通用C ++外,我还没有Microsoft技术方面的经验。 我从哪里开始过渡到在Microsoft商店中找到工作?我应该关注哪些特定的证书,或者我应该参加的大学课程?雇主或招聘者在寻找什么? 除了在业余时间创建宠物项目外,我还能做什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.