在我看来,唯一的区别是Active Record在数据容器类中有CRUD方法,而Repository模式对数据容器和CRUD方法使用单独的类,但我肯定是错的.
Active Record和Repository模式之间有什么区别?我什么时候应该使用哪种模式?
language-agnostic activerecord design-patterns repository-pattern
我想跳上图标字体火车,但很快就被渲染器推迟了。当图标位于具有百分比宽度或自动居中的 div 内时,该图标可能会对齐到半个像素,从而导致其呈现模糊。
我与 Icomoon 支持人员联系,他向我介绍了一个错误,说它是 Chrome 特定的。( https://bugs.chromium.org/p/chromium/issues/detail?id=426333 ) 不幸的是,我能够在所有主要浏览器中重现该问题。
我得到的建议是避免自动保证金并仅使用浮动左侧,这在当今世界是不可能的。即使我这样做,我仍然会与百分比宽度发生冲突。
题
有什么办法可以防止出现模糊?我想使用 inline-svgs 是一种选择,对吗?但这有点超出了 Icon Font 的全部目的。或者有一个脚本可以将所有内容四舍五入到整个像素,但这听起来也很极端。
重现问题的步骤
我在 Icomoon 上创建了一组 24px 的图标,下载了带有 demo.html 的图标集。然后我只是到演示的主要包装器,并给它一个固定宽度和边距 0 自动。然后通过调整浏览器宽度,我能够使图标模糊或清晰。
铬合金
火狐
歌剧
边缘
IE浏览器
我有一个 ASP.NET MVC Web 应用程序,它在具有大量可用 RAM 的服务器 (Windows Server 2016) 上的自己的应用程序池(.NET 4.7.1 应用程序、64 位、IIS 10)中运行。在启动应用程序并加载第一个网页后,我查看任务管理器,发现 w3wp.exe 进程使用了大量内存:
考虑到它只是一个网络应用程序,我认为这有点太多了。所以我启动 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。我不明白那里发生了什么事。
我不认为存在内存泄漏,因为我可以让应用程序池运行数周,并且内存不会显着增加。只是当我认为它不应该使用那么多内存时,它使用了相当多的内存。
您能帮我找到一些学习资源或工具来帮助我调查该问题吗?
我有以下 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) 现代键盘具有特殊的多媒体键,例如"暂停/播放"或"打开Web浏览器".是否可以编写一个"按下"这些键的程序?
我更喜欢C中的解决方案,但我也会接受语言无关的解决方案.
我在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>。
我想知道是否有某种方法可以通过单个命令编写这些注册。
我在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文件?
我的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文件?
谢谢你的回答.
mod_rewrite当函数apache_get_modules()不可用时,是否可以在PHP中检测?
我的代码类似于以下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# ×5
asp.net ×3
.net ×2
asp.net-mvc ×2
php ×2
activerecord ×1
apache ×1
async-await ×1
c ×1
cleartype ×1
css ×1
dapper ×1
fonts ×1
icons ×1
iis ×1
indexing ×1
key ×1
keypress ×1
metaphone ×1
mod-rewrite ×1
orm ×1
phonetics ×1
razor ×1
resharper ×1
resources ×1
resx ×1
simulate ×1
svg ×1
w3wp ×1
web-config ×1
winforms ×1