我的客户想要最终用户可配置的规则引擎.目前他们正在考虑BizTalk.他们应该考虑其他任何替代方案吗?
我有包含数十亿行的数据库。我创建了一个函数,该函数从用户数量的参数中接收数据,并通过这些参数削减DB。对于小型DB(30000行),这对我来说效果很好,但是当我尝试在大型DB上使用此功能时,我得到了TIMEOUTEXCEPTION from SQLSERVER。
这是我的代码:
public static IQueryable<LogViewer.EF.InternetEF.Log> ExecuteInternetGetLogsQuery(FilterCriteria p_Criteria, ref GridView p_Datagrid)
{
IQueryable<LogViewer.EF.InternetEF.Log> internetQuery = null;
using (InternetDBConnectionString context = new InternetDBConnectionString())
{
internetQuery = context.Logs;
if ((p_Criteria.DateTo != null && p_Criteria.DateFrom != null))
{
internetQuery = internetQuery.Where(c => c.Timestamp >= p_Criteria.DateFrom && c.Timestamp < p_Criteria.DateTo);
}
else if (p_Criteria.DateFrom != null && p_Criteria.DateFrom > DateTime.MinValue)
{
internetQuery = internetQuery.Where(c => c.Timestamp >= p_Criteria.DateFrom);
}
else if (p_Criteria.DateTo != null && p_Criteria.DateTo > DateTime.MinValue)
{
internetQuery = …Run Code Online (Sandbox Code Playgroud) 为了减小从SSRS和ReportViewer控件导出的PDF文件的大小,PDF大小的主要贡献者之一是完整和子集字体嵌入。
最终,我们决定仅使用Arial和Times New Roman字体的变体(大小,粗体,斜体等)对报告进行标准化-幸运的是,我们的大多数报告都是按电子表格收费的公司,并且不需要美观。
在创建PDF时,这些字体似乎被ReportViewer / SSRS替换为14种PDF “标准允许字体”之一(因为无论如何大多数Windows机器上通常都没有安装标准字体)。
所以我的问题是,ReportViewer上的PDF渲染器在替换字体而不是在PDF中嵌入字体时到底使用什么规则?
基于此站点,并且经过反复试验,似乎确实进行了以下替换(从RDL到PDF,列表不完整):
我以为替换是因为字体嵌入合法性而被迫执行,但是Times New Roman和Arial都是“可编辑的”,据我所知,限制最少。
在Global作为应用程序的替代方案中AutoEventWireups,似乎事件是针对大多数底层Application事件(BeginRequest, AuthorizeRequest, Error等)公开的,以及一组异步方法AddOnBeginRequestAsync等等.但是,我找不到等效的事件ApplicationStart!
所以我的问题是,无论如何都要订阅该AutoEventWireup方法Application_(On)Start被挂钩的"相同"事件?
public class Global : HttpApplication
{
public Global()
{
// I can do this ...
base.BeginRequest += new EventHandler(Global_BeginRequest);
// Or even AddOnBeginRequestAsync();
// But how can I do this?
base.ApplicationStart += new EventHandler(GlobalApplication_Start);
}
protected void Global_BeginRequest(object sender, EventArgs e)
{
// ...
}
protected void Global_ApplicationStart(object sender, EventArgs e)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
(出于兴趣...有没有办法关闭AutoEventWireupsGlobal.asax?使用AutoEventWireup ="false"属性似乎只适用于aspx页面)
编辑 - …
我在显示排行榜配置文件的网站上使用Piety插件.每个配置文件包含应用Piety的不同数量的元素,并且我发现$(document).ready在所有这些元素加载之前触发.
到目前为止,我的解决方案是将Piety从中$(document).ready移到$(window).load- 这对于大多数配置文件都很有用.然而,排行榜顶端的人员拥有非常大的轮廓,这将创造一个等待,然后$(window).load开始并完成所有的虔诚元素.
我想知道是否会出现任何性能问题如果我在加载时单独调用每个饼,而不是等待$(window).load并让jQuery一次性完成所有操作.
就像是..
从:
$(window).load(function(){
$("span.pie").peity("pie", { ... })
});
Run Code Online (Sandbox Code Playgroud)
至:
function loadPie(id){
$("#"+id).peity("pie", { ... })
}
Run Code Online (Sandbox Code Playgroud)
..然后在每个元素之后加载.
我正在尝试改进当前系统的错误处理,以产生更有意义的错误消息。我有一个“根”存储过程,该存储过程对其他嵌套存储过程进行了多次调用。
在根sp中,XACT_ABORT将其设置为,ON但在嵌套过程中,XACT_ABORT将其设置为OFF。我想从较低级别的过程中捕获特定的错误,而不是获取根过程的错误。
我经常看到错误, uncommittable transaction is detected at the end of the batch, the transaction is being rolled back.
将这些“混合”环境与XACT_ABORTs?
另外,如果您对高级错误处理有任何建议,将不胜感激。我想我想使用它,sp_executesql这样我就可以传递参数来获取错误输出,而不必修改所有存储过程并用于RAISERROR调用父过程的CATCH块。
我是MOQ的新手,我在这里阅读了快速入门.我使用的是MOQ v4.2.1402.2112.我正在尝试创建一个单元测试来更新人物对象.该UpdatePerson方法返回更新的人物对象.有人能告诉我如何纠正这个问题吗?
我收到此错误:
Moq.MockException was unhandled by user code
HResult=-2146233088
Message=Error updating Person object
Expected invocation on the mock once, but was 0 times: svc => svc.UpdatePerson(.expected)
Configured setups: svc => svc.UpdatePerson(It.IsAny<Person>()), Times.Never
No invocations performed.
Source=Moq
IsVerificationError=true
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
[TestMethod]
public void UpdatePersonTest()
{
var expected = new Person()
{
PersonId = new Guid("some guid value"),
FirstName = "dev",
LastName = "test update",
UserName = "dev@test.com",
Password = "password",
Salt = "6519",
Status = (int)StatusTypes.Active
}; …Run Code Online (Sandbox Code Playgroud) 场景:我正在调试一些存储过程,并遇到了断点。
现在,我想执行一些查询,以便进一步调试问题。 我怎么做?
我尝试从新的查询窗口执行查询,但是似乎调试经验已锁定所有表。
即时窗口似乎也遇到了同样的问题。
保证每个应用程序域只运行一次静态构造函数.在创建第一个实例或引用任何静态成员之前自动调用它.CLR如何保证这一点?
假设有两个线程访问一个同时具有静态构造函数的类.这两个线程都是第一次.如下:
class SomeType
{
Static SomeType()
{
Console.Write("hello");
}
}
Run Code Online (Sandbox Code Playgroud)
因此,由于同时性,CLR如何保证控制台只写一次?使用锁或其他东西?
我知道Func<>s不能通过var关键字直接隐式输入,尽管我希望我可以执行以下谓词赋值:
Func<Something, bool> filter = (someBooleanExpressionHere)
? x => x.SomeProp < 5
: x => x.SomeProp >= 5;
Run Code Online (Sandbox Code Playgroud)
但是,我得到了错误 cannot resolve the symbol, 'SomeProp'
目前,我已经采取了更加繁琐的if branch任务,这似乎并不优雅.
Func<Something, bool> filter;
if (someBooleanExpressionHere)
{
filter = x => x.SomeProp < 5;
}
else
{
filter = x => x.SomeProp >= 5;
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么,或者我是否需要坚持使用if-branch作业?
c# ×4
sql-server ×2
asp.net ×1
biztalk ×1
constructor ×1
filesize ×1
func ×1
global-asax ×1
jquery ×1
lambda ×1
moq ×1
pdf ×1
reportviewer ×1
rule-engine ×1
static ×1
t-sql ×1
unit-testing ×1
xact-abort ×1