小编Tom*_*rek的帖子

Active Record和Repository模式之间有什么区别?

在我看来,唯一的区别是Active Record在数据容器类中有CRUD方法,而Repository模式对数据容器和CRUD方法使用单独的类,但我肯定是错的.

Active Record和Repository模式之间有什么区别?我什么时候应该使用哪种模式?

language-agnostic activerecord design-patterns repository-pattern

5
推荐指数
1
解决办法
783
查看次数

自动居中 div 内的图标字体渲染根据浏览器宽度模糊/清晰

我想跳上图标字体火车,但很快就被渲染器推迟了。当图标位于具有百分比宽度或自动居中的 div 内时,该图标可能会对齐到半个像素,从而导致其呈现模糊。

我与 Icomoon 支持人员联系,他向我介绍了一个错误,说它是 Chrome 特定的。( https://bugs.chromium.org/p/chromium/issues/detail?id=426333 ) 不幸的是,我能够在所有主要浏览器中重现该问题。

我得到的建议是避免自动保证金并仅使用浮动左侧,这在当今世界是不可能的。即使我这样做,我仍然会与百分比宽度发生冲突。

有什么办法可以防止出现模糊?我想使用 inline-svgs 是一种选择,对吗?但这有点超出了 Icon Font 的全部目的。或者有一个脚本可以将所有内容四舍五入到整个像素,但这听起来也很极端。

重现问题的步骤

我在 Icomoon 上创建了一组 24px 的图标,下载了带有 demo.html 的图标集。然后我只是到演示的主要包装器,并给它一个固定宽度和边距 0 自动。然后通过调整浏览器宽度,我能够使图标模糊或清晰。

铬合金

模糊: 在此处输入图片说明

酥脆: 在此处输入图片说明

火狐

模糊: 在此处输入图片说明

酥脆: 在此处输入图片说明

歌剧

模糊: 在此处输入图片说明

酥脆: 在此处输入图片说明

边缘

模糊: 在此处输入图片说明

酥脆: 在此处输入图片说明

IE浏览器

模糊: 在此处输入图片说明

酥脆: 在此处输入图片说明

css fonts icons svg cleartype

5
推荐指数
1
解决办法
1687
查看次数

使用 dotMemory 了解 w3wp.exe 中的非托管内存

我有一个 ASP.NET MVC Web 应用程序,它在具有大量可用 RAM 的服务器 (Windows Server 2016) 上的自己的应用程序池(.NET 4.7.1 应用程序、64 位、IIS 10)中运行。在启动应用程序并加载第一个网页后,我查看任务管理器,发现 w3wp.exe 进程使用了​​大量内存:

  • w3wp.exe,853 MB 内存(专用工作集)

考虑到它只是一个网络应用程序,我认为这有点太多了。所以我启动 dotMemory 并附加到该进程。我得到这些结果:

点内存截图

此处,它表示已使用的总内存为 1.1 GB(不仅仅是 853 MB),其中非托管内存为 429.5 MB,其余的是堆。

当我得到它的快照时(如屏幕截图所示),它显示总共 1.08 GB,其中 .NET 为 75.06 MB(其余部分是非托管的)。这些数字似乎并没有相加。一个显示 429.5 非托管内存,另一个显示 1 GB 非托管内存。这是否意味着堆在快照中被计为非托管内存?

所有 dotMemory 让我看到的是 63.73 MB 的 .NET 使用内存,在这里我可以看到我拥有多少个类型的对象。


我很想知道剩下的是什么。我无法查看的另一 GB 内存中有什么?是GC还没发布的东西吗?如果是,为什么在 dotMemory 中运行“强制 GC”不会显着减少它?

另外,所有非托管内存从哪里来?我在网上能找到的只是,如果某些位图或 P/Invoke 内容未正确释放,通常会发生非托管内存泄漏。但我的应用程序池从一开始就有这种用法(因此它不会随着时间的推移而累积泄漏),并且它既不处理位图或图像,也不调用本机 DLL 或使用这样做的第三方库。另一种选择可能是它是 ASP.NET 缓存,但它只使用很少,而且我认为在单页加载后它不会有 400 MB。

我过去观察到,如果 IIS 应用程序池有大量可用的可用内存,那么它们可能会非常贪婪,但这似乎相当过多 - 1 GB 与 60 MB。我不明白那里发生了什么事。

我不认为存在内存泄漏,因为我可以让应用程序池运行数周,并且内存不会显着增加。只是当我认为它不应该使用那么多内存时,它使用了相当多的内存。

您能帮我找到一些学习资源或工具来帮助我调查该问题吗?

asp.net iis memory-management application-pool w3wp

5
推荐指数
1
解决办法
2857
查看次数

使用 Dapper 映射多个复杂类型属性

我有以下 Dapper 查询:

var orderModels = db.Query<OrderModel>(@"
SELECT
    o.[Id],
    o.[CustomerId],

    o.[DeliveryAddress_FirstName],
    o.[DeliveryAddress_LastName],
    o.[DeliveryAddress_Line1],
    o.[DeliveryAddress_Line2],
    o.[DeliveryAddress_City],
    o.[DeliveryAddress_State],
    o.[DeliveryAddress_PostCode],
    o.[DeliveryAddress_Country],

    o.[BillingAddress_FirstName],
    o.[BillingAddress_LastName],
    o.[BillingAddress_Line1],
    o.[BillingAddress_Line2],
    o.[BillingAddress_City],
    o.[BillingAddress_State],
    o.[BillingAddress_PostCode],
    o.[BillingAddress_Country]
FROM
    [Order] o
");
Run Code Online (Sandbox Code Playgroud)

我想将其加载到以下结构的数据模型中:

public class OrderModel
{
    public int Id { get; set; }
    public int CustomerId { get; set; }

    public AddressModel DeliveryAddress { get; set; }
    public AddressModel BillingAddress { get; set; }
}

public class AddressModel
{
    public string FirstName { get; set; }
    public string LastName { get; …
Run Code Online (Sandbox Code Playgroud)

.net c# orm dapper

5
推荐指数
1
解决办法
1290
查看次数

如何模拟多媒体按键(在C中)?

现代键盘具有特殊的多媒体键,例如"暂停/播放"或"打开Web浏览器".是否可以编写一个"按下"这些键的程序?

我更喜欢C中的解决方案,但我也会接受语言无关的解决方案.

c key keypress simulate

4
推荐指数
2
解决办法
4403
查看次数

PHP中函数metaphone()和soundex()的实际用法是什么?

Metaphone和Soundex是用于通过英语发音索引字符串的语音算法.

你曾经使用过标准PHP库中存在的函数metaphone()soundex()吗?

做什么的?这些功能的实际用法是什么?

php indexing metaphone phonetics

4
推荐指数
1
解决办法
2326
查看次数

使用Simple Injector注册通用类型的实例创建者

我在Simple Injector中具有以下配置:

c.Register<IQueryable<Entity1>>(() => c.GetInstance<IDomainQueryFactory>().Query<Entity1>());
c.Register<IQueryable<Entity2>>(() => c.GetInstance<IDomainQueryFactory>().Query<Entity2>());
c.Register<IQueryable<Entity3>>(() => c.GetInstance<IDomainQueryFactory>().Query<Entity3>());
c.Register<IQueryable<Entity4>>(() => c.GetInstance<IDomainQueryFactory>().Query<Entity4>());
...
Run Code Online (Sandbox Code Playgroud)

IDomainQueryFactory工厂负责创建的实例IQueryable<TEntity>。然后,某些类(例如MVC控制器)仅声明对的依赖IQueryable<Entity1>

我想知道是否有某种方法可以通过单个命令编写这些注册。

.net c# asp.net-mvc dependency-injection simple-injector

4
推荐指数
1
解决办法
713
查看次数

Web应用程序中System.Windows.Forms的资源和引用

我在ASP.NET MVC应用程序中使用了一个资源文件,当我分析项目的代码问题时,ReSharper警告我没有找到System.Windows.Forms参考.

我真的应该System.Windows.Forms在我的网络应用程序中引用吗?无论如何,为什么在resx文件中需要它?

当我在XML编辑器中打开resx文件时,我看到它引用了程序集:

<resheader name="reader">
  <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
  <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="..." type="System.Resources.ResXFileRef, System.Windows.Forms">
  <value>...;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
</data>
Run Code Online (Sandbox Code Playgroud)

我真的不喜欢我的Web应用程序链接到任何System.Windows.Forms相关的东西.

这是为什么?有没有更好的方法来管理Web应用程序上的资源然后使用这些resx文件?

c# asp.net resharper resources resx

4
推荐指数
1
解决办法
1632
查看次数

ASP.NET MVC中的一个Web.config而不是每个Views文件夹的多个

我的ASP.NET MVC Web应用程序有5个方面.每个区域都有自己的Views文件夹,其中包含自己的文件夹Web.config.这使得6个配置文件与Web.config应用程序根目录中的main一起.它使管理有点困难.

据我所知,这些配置有两件事(至少默认情况下):

1.)默认情况下,将Razor主机工厂设置为包含选定的命名空间.

2.)Views通过使用a处理请求,阻止直接访问文件夹中的文件HttpNotFoundHandler.

所有这些Web.config文件中的代码对我来说几乎是相同的,在我看来,这似乎不是管理这些配置的好方法.如果我添加更多区域或更细致地组织我的代码,我最终可能只有5个Web.config文件.我为什么需要这么多?还不够吗?

我对以下几点的看法如下:

ad 1.)是否所有这些命名空间都不能在应用程序根Web.config文件中导入一次,或者导入到_ViewStart.cshtml文件中?

广告2.)阻止访问所有文件夹中的所有代码文件,然后使用相反的方法 - 即更改文件夹中的静态文件(如Assets文件夹)来使用它是不是更有意义StaticFileHandler?原则上,对我来说,将允许读取的文件列入白名单StaticFileHandler而不是指定应该处理哪些文件似乎是一种更安全的方法HttpNotFoundHandler.

这可行吗?我错过了什么吗?有没有其他人遇到类似的问题,有太多的Views Web.config文件?

谢谢你的回答.

c# asp.net asp.net-mvc web-config razor

4
推荐指数
1
解决办法
1036
查看次数

如何在没有apache_get_modules()的情况下检测mod_rewrite?

mod_rewrite当函数apache_get_modules()不可用时,是否可以在PHP中检测?

php apache mod-rewrite

3
推荐指数
1
解决办法
3852
查看次数

调用Task.Result时Windows窗体中断

我的代码类似于以下Windows窗体中的代码:

private async Task<string> GetGreetingAsync()
{
    return await Task.Run(() => "Hello");
}

private void button1_Click(object sender, EventArgs e)
{
    var x = GetGreetingAsync().Result;
}
Run Code Online (Sandbox Code Playgroud)

单击该按钮会导致整个Windows窗体冻结并无响应.没有异常被抛出.

即使我没有.Result直接在事件处理程序中使用任务,并且整个async标记的代码在某些类库函数中,它提供了接口async,但问题仍然存在.这种类库的单元测试没有任何问题,但是当我从Windows窗体上的事件处理程序调用它的函数时,它会中断并且不响应.

为什么会这样?我该如何解决?

c# winforms async-await

3
推荐指数
1
解决办法
1047
查看次数