草庐IT

c# - 请推荐.NET ORM进行N层开发

关闭。这个问题不满足StackOverflowguidelines.它目前不接受答案。想改善这个问题吗?更新问题,使其成为on-topic对于堆栈溢出。8年前关闭。Improvethisquestion我需要为N层应用程序仔细选择.NETORM。这意味着,我将拥有公开数据的服务器(WCF服务)和显示数据的客户端。ORM应该顺利支持所有相关的序列化问题——对象或对象集合,或者任何必须跨越进程边界的东西。理想情况下,在多进程环境中的用法应该与在单进程中相同。标准是:db模式映射到对象的灵活性(首选)易用性免费、开源(首选)必须适合N层(多进程多域应用)业绩与VisualStudio集成的工

c# - SqlCommand 还是 SqlDataAdapter?

我正在创建一个类似于小型收银应用程序的应用程序,用于记录客户、员工、服务、销售和约会。我正在使用Windows窗体,并且在该DataGrids中。我已经创建了将用于该应用程序的数据库。我想知道我是否应该改用SqlCommand-SqlDataReader或SqlDataAdapter-DataSet。哪种方法更好? 最佳答案 这在很大程度上取决于您想要的操作类型。以下是我的建议。如果您想更快地读取数据,请使用SQLDataReader,但这是您需要采取的操作成本在那之后也读过。打开连接读取数据关闭连接。如果您忘记关闭,则会影响性能。

c# - 如何将扩展的 WinForms 控件放在工具箱上

我计划通过以下方式向TextBox添加功能:publicclassTextBoxExt:TextBox{protectedoverridevoidOnKeyPress(KeyPressEventArgse){base.OnKeyPress(e);}}问题是我们如何使用这个TextBoxExt?有没有办法把这个类放到工具箱上,这样我们就可以把它拖放到窗体上?如果没有,使用TextBoxExt的最佳方式是什么? 最佳答案 使用TextBoxExt构建您的项目,确保它编译正常。在你想要TextBoxExt的窗体上,打开工具箱,右击并选择“

c# - 事件目录 : Retrieve User information

我有一个Web应用程序正在使用我们的ActiveDirectory针对Windows身份验证运行。我有一个新要求,需要从ActiveDirectory条目中提取一些个人信息。访问此信息的最简单方法是什么? 最佳答案 直接通过DirectoryEntry访问用户似乎是最直接的方法。以下是我从我的第一个AD相关项目中学到的一些与AD相关的花絮:在URI中,以小写形式写入LDAP。否则你会得到一个神秘的错误。我在这个令人沮丧的问题上花了一天多的时间......要清除单值属性,请将其设置为空字符串,而不是null。Null会导致异常。要清除

c# - 从 Dictionary<Key, Item> 中移除元素

我有一个字典,其中的项目是(例如):“A”,4“乙”,44“再见”,56“C”,99“D”,46"6672",0我有一个列表:“一个”“C”“D”我想从我的字典中删除所有键不在我的列表中的元素,最后我的字典将是:“A”,4“C”,99“D”,46我该怎么办? 最佳答案 构造新的Dictionary以包含列表中的元素更简单:ListkeysToInclude=newList{"A","B","C"};varnewDict=myDictionary.Where(kvp=>keysToInclude.Contains(kvp.Key)).

c# - 使用 Linq To SQL 加盐和散列密码

我需要对一些密码进行加盐和哈希处理,以便我可以将它们安全地存储在数据库中。关于如何最好地使用LinqToSQL执行此操作,您有什么建议或想法吗? 最佳答案 在这种情况下,LINQtoSQL没有太多相关性。您可以使用任何您想要的机制,因为您不会在SQL中进行散列和加盐。保存密码的步骤如下:以明文形式接收密码以及用户ID。生成(并记住)盐。将盐与密码文本结合起来,例如放在它前面或附加它。使用哈希函数对结果文本进行哈希处理将用户ID、哈希和盐存储在您的数据库中。验证密码的步骤如下:以明文形式接收密码以及用户ID。从数据库中为提供的用户ID

c# - UWP 应用程序在启动时自动启动

一切都在标题中,我目前正在寻找一种方法来启动我的UWP应用程序自动在Windows启动时仅使用UWP框架,机器上没有文件操作。该应用程序必须能够在应用商店中共享并在Windows启动时打开。这是一个可行的事情吗?如果是怎么办?谢谢! 最佳答案 @hsmiths编写了自动启动应用程序的简单解决方案,我想逐步总结一下。打开文件资源管理器在地址栏中,复制并粘贴shell:AppsFolder右键单击该应用,然后单击创建快捷方式。消息框要求在桌面上创建快捷方式。单击是。在文件资源管理器地址栏中,复制并粘贴shell:startup转到桌面并

c# - 为什么二进制序列化比 xml 序列化更快?

为什么二进制序列化被认为比xml序列化更快? 最佳答案 考虑序列化double例如:二进制序列化:从内存地址向流写入8字节二进制反序列化:读取相同的8个字节xml序列化:写入标记、转换为文本、写入结束标记-几乎是I/O的三倍和1000倍的CPU利用率xml反序列化:标签读取/验证、读取字符串并将其解析为数字、结束标签的读取/验证。I/O开销略多,CPU开销多一些 关于c#-为什么二进制序列化比xml序列化更快?,我们在StackOverflow上找到一个类似的问题:

c# - 返回 LINQ 结果时何时调用 ToList 的经验法则

我正在寻找在IEnumerables上调用ToList/ToArray/MemoizeAll(Rx)的经验法则,而不是在返回时返回查询本身IEnumerable的东西。我经常发现最好只返回查询并让调用者决定是否需要列表,但有时由于linq的懒惰特性,它可能会回来咬你一口。我想收集指南,例如:CallToListif:youcreatenewobjects(eg.inaselect)youhavesideeffectsinyourqueryOtherwise,returnthequery 最佳答案 首先,您永远不应该在查询中产生副作用

c# - 我应该避免使用依赖注入(inject)和 IoC 吗?

在我的中型项目中,我为存储库、服务等使用了静态类,它实际上工作得很好,即使大多数程序员的期望相反。我的代码库非常紧凑、干净且易于理解。现在我尝试重写所有内容并使用IoC(控制反转),但我非常失望。我必须在每个类、Controller等中手动初始化许多依赖项,为接口(interface)添加更多项目等等。我真的没有看到我的项目有任何好处,而且似乎它造成的问题多于解决的问题。我在IoC/DI中发现了以下缺点:更大的代码量馄饨代码而不是意大利面条代码性能较慢,即使我要调用的方法只有一个依赖项,也需要在构造函数中初始化所有依赖项不使用IDE时更难理解一些错误被推送到运行时添加额外的依赖(DI框