小编Nei*_*ell的帖子

如何使用C#裁剪图像?

如何编写将在C#中裁剪图像的应用程序?

c# image-processing

234
推荐指数
6
解决办法
24万
查看次数

使用RDBMS作为事件源存储

如果我使用RDBMS(例如SQL Server)来存储事件源数据,架构可能是什么样的?

我从抽象的意义上看到了一些变化,但没有具体的.

例如,假设有一个"产品"实体,对该产品的更改可以采用以下形式:价格,成本和描述.我很困惑我是否:

  1. 有一个"ProductEvent"表,其中包含产品的所有字段,其中每个更改表示该表中的新记录,以及"适当的人员,内容,地点,原因,时间和方式".当成本,价格或描述发生变化时,会添加一个全新行来表示产品.
  2. 将产品成本,价格和描述存储在使用外键关系连接到Product表的单独表中.当发生对这些属性的更改时,请根据需要使用WWWWWH写入新行.
  3. 在"ProductEvent"表中存储WWWWWH以及表示事件的序列化对象,这意味着必须在我的应用程序代码中加载,反序列化并重新播放事件本身,以便为给定产品重新构建应用程序状态.

特别是我担心上面的选项2.极端情况下,产品表几乎是每个表一个表,在这里加载给定产品的应用程序状态需要从每个产品事件表加载该产品的所有事件.这桌爆炸对我来说有点不对劲.

我确信"这取决于",虽然没有单一的"正确答案",但我试图了解可接受的内容,以及完全不可接受的内容.我也知道NoSQL可以在这里提供帮助,其中事件可以存储在聚合根目录中,这意味着只有一个请求数据库来获取事件来重建对象,但是我们没有使用NoSQL数据库.那一刻,所以我在寻找替代品.

cqrs event-sourcing

107
推荐指数
2
解决办法
3万
查看次数

ASP.NET MVC中的用户身份验证和授权

ASP.NET MVC中用户授权/身份验证的最佳方法是什么?

我看到有两种方法:

  • 使用内置的ASP.NET授权系统.
  • 使用具有我自己的用户,权限,用户组表等的自定义系统.

我更喜欢第二个选项,因为User是我的域模型的一部分(我对ASP.NET内置的东西没有经验),但我真的很想听听人们在这个领域做过什么.

.net authentication asp.net-mvc authorization

60
推荐指数
4
解决办法
3万
查看次数

你什么时候使用StringBuilder.AppendLine/string.Format vs. StringBuilder.AppendFormat?

最近出现了一个关于使用String.Format()的问题.我的部分答案包括使用StringBuilder.AppendLine(string.Format(...))的建议.Jon Skeet认为这是一个不好的例子,并建议使用AppendLine和AppendFormat的组合.

在我看来,我从来没有真正适应使用这些方法的"首选"方法.我想我可能会开始使用类似下面的东西,但我很想知道其他人使用什么作为"最佳实践":

sbuilder.AppendFormat("{0} line", "First").AppendLine();
sbuilder.AppendFormat("{0} line", "Second").AppendLine();

// as opposed to:

sbuilder.AppendLine( String.Format( "{0} line", "First"));
sbuilder.AppendLine( String.Format( "{0} line", "Second"));
Run Code Online (Sandbox Code Playgroud)

.net c# formatting stringbuilder

57
推荐指数
3
解决办法
3万
查看次数

查看nuget包依赖层次结构

有没有办法,无论是文本还是图形,来查看nuget包之间依赖关系的层次结构?

c# nuget

57
推荐指数
9
解决办法
2万
查看次数

C#5异步/等待 - 是*并发*?

我一直在考虑C#5中新的异步内容,并提出了一个特别的问题.

我知道await关键字是一个简洁的编译器技巧/语法糖来实现连续传递,其中方法的其余部分被分解为Task对象并排队以按顺序运行,但是控制返回到调用方法.

我的问题是,我听说目前这一切都在一个线程上.这是否意味着这种异步内容实际上只是将连续代码转换为Task对象然后Application.DoEvents()在每个任务完成之后调用,然后再开始下一个任务?

或者我错过了什么?(问题的这一部分是修辞 - 我完全清楚我错过了什么 :))

c# continuations async-await

57
推荐指数
2
解决办法
9075
查看次数

DataAnnotations:递归验证整个对象图

我有一个带有DataAnnotation属性的对象图,其中对象的某些属性是本身具有验证属性的类,依此类推.

在以下场景中:

public class Employee
{
    [Required]
    public string Name { get; set; }

    [Required]
    public Address Address { get; set; }
}

public class Address
{
    [Required]
    public string Line1 { get; set; }

    public string Line2 { get; set; }

    [Required]
    public string Town { get; set; }

    [Required]
    public string PostalCode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试来验证EmployeeAddress与没有价值PostalCode,那么我想(和期望)例外,但我得到没有.我是这样做的:

var employee = new Employee
{
    Name = "Neil Barnwell",
    Address = new Address …
Run Code Online (Sandbox Code Playgroud)

.net c# validation recursion data-annotations

52
推荐指数
2
解决办法
2万
查看次数

Control.Select()和Control.Focus()之间有什么区别?

在WinForms中,为了将焦点设置为特定的控件,我似乎总是在调用Control.Select() Control.Focus()使其工作.

有什么区别,这是正确的方法吗?

.net user-interface behavior winforms

48
推荐指数
3
解决办法
2万
查看次数

除工作副本根以外的路径上的SVN Mergeinfo属性

我有一个SVN存储库,我有一个trunk和一个分支.

我打算定期将主干合并到分支中,但是,当我这样做时,除了实际的文件内容更改外,我还会看到许多属性状态更改.

在进一步调查中,属性更改是mergeinfo属性.我不希望这样,因为我们总是从顶级根级别进行分支和合并.

我使用了svn propdel命令并从分支WC中删除了所有mergeinfo属性(然后在根目录中恢复了更改),然后问题就消失了.

所以问题是,我的分支是如何在子目录级别获取所有这些mergeinfo更改的?

svn tortoisesvn merge branch

45
推荐指数
2
解决办法
1万
查看次数

SQL WHERE子句将值与尾随空格匹配

在SQL Server 2008中,我有一个名为Zone列的表ZoneReference varchar(50) not null作为主键.

如果我运行以下查询:

select '"' + ZoneReference + '"' as QuotedZoneReference
from Zone
where ZoneReference = 'WF11XU'
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

"WF11XU "
Run Code Online (Sandbox Code Playgroud)

请注意尾随空格.

这怎么可能?如果该行的尾随空间确实存在,那么我希望返回结果,所以我假设它是SQL Server Management Studio奇怪显示的其他东西.

在C#中,代码调用zoneReference.Trim()将其删除,表明它是某种空白字符.

有人可以帮忙吗?

c# sql database sql-server sql-server-2008

44
推荐指数
2
解决办法
2万
查看次数