我正在考虑实现在生产服务器上配置代码并想要一些最佳实践建议的想法.显然,这是一个坏主意,配置文件,因为增加的开销的所有请求,所以我一直在寻找到一些技术,会随机调用每个请求的探查.每10,000个请求中有1个配置文件.
我知道有一种方法可以实现与Facebook的这样一个任务XHProf的探查,但使用的XDebug希望的是类似的解决方案.
所以我的问题是(假设xdebug是分析器):
对此事的任何其他见解将非常感激.
我有一个非常简单的工厂,需要一个枚举作为它的一个参数,以确定应创建的对象的类型,并正在创建的所有对象的共有的其他参数.
当我为工厂添加更多类型来创建我的对象时,构造函数的参数开始变化,例如:
public class someFactory {
public someFactory() {
}
public SomeObject newObject(Type type, Object data) {
return this.newObject(type, data, "");
}
public SomeObject newObject(Type type, Object data, Object stringOrObject) {
SomeObject someObject = null;
if (type != null) {
switch(type) {
case CREATE:
someObject = new CreateObject(data);
break;
case DELETE:
someObject = new DeleteObject(data, (String)stringOrObject);
break;
case EDIT:
someObject = new EditObject(data, (Object)stringOrObject);
break;
default:
break;
}
}
return someObject;
}
}
Run Code Online (Sandbox Code Playgroud)
我是不是应该使用工厂,只是使用正确的参数实例化不同的类型,或者可以以某种方式改进上述内容以使其更灵活?
它不能调用LoadLibrary或LoadLibraryEx函数(或调用这些函数的函数),因为这可能会在DLL加载顺序中创建依赖循环.这可能导致在系统执行其初始化代码之前使用DLL.
我试图LoadLibrary
从DllMain 打来电话,什么也没发生.
我看到的唯一问题是加载的DLL将在我的DllMain执行的其余部分之前使用我的DLL中的函数.
为什么我不能在DllMain中调用LoadLibrary?
好吧,我意识到我不能在DllMain中调用LoadLibrary只是因为我必须像其他信徒一样相信 MSDN(我在那里看到了一些错误的东西,但我也应该忘记它们).
并且因为在较新版本的Windows中可能会发生某些事情(尽管过去十年没有任何变化).
但是,任何人都可以显示一个代码,它会重现在LoadLibrary
DllMain中调用时发生的事情吗?在任何现有的Windows操作系统?
不只是在另一个内部调用一个单例初始化函数,而是LoadLibrary
在DllMain中?
我在Mac OS X上运行Snow Leopard下的GCC 4.2.1.我想用它来编译15年前我写的一些旧的C/C++ DOS游戏,以便我可以在DosBox下运行它们.要做到这一点,他们显然需要以DOS可执行格式编译,有人能告诉我如何使用GCC这样做吗?
谢谢!
(在VS 2008中)我有一个usercontrol,它位于设计视图的属性列表中,但是我看不到实际的控件,并且它会产生一些错误.当我无法选择它时,如何将其删除?
考虑一个具有选择菜单的网页,该菜单包含与菜单的onchange事件相关联的JavaScript事件处理程序,该事件在被触发时使用新的查询字符串重新加载页面(使用菜单中选择的值).
问题:当用户点击"返回"按钮时,页面DOM将从缓存中恢复,但不会退出选择菜单的状态.
受影响的浏览器: Firefox和Safari(使用后退/前向缓存)
示例:
<script language="javascript" type="text/javascript">
function reloadPage() {
var menu = document.getElementById("select1");
var val = menu.options[menu.selectedIndex].value;
window.location.href = 'test.html?select1=' + val;
}
</script>
<form action="#" method="get" name="form1">
<select name="select1" id="select1" onChange="reloadPage();">
<option value="A" selected>Option A</option>
<option value="B">Option B</option>
<option value="C">Option C</option>
<option value="D">Option D</option>
</select>
</form>
Run Code Online (Sandbox Code Playgroud)
查看此页面并注意到选项A已被选中.然后选择一个不同的选项(比如选项C) - 重新加载页面(带有查询字符串,?select1 = C).然后点击后退按钮 - 选择菜单继续显示选项C.
问题:有谁知道为什么选择菜单没有恢复以及如何解决这个问题?我过去曾使用JavaScript强制页面上的表单字段与查询字符串匹配,但是这种方法存在问题(例如,FF和Safari通常不会在加载页面时执行窗口的onload事件缓存)这对我来说似乎是一个黑客攻击.
有什么建议?
更新:我刚刚想到可能发生的事情如下:
所以我认为这不是浏览器没有恢复选择菜单状态的问题,这是一个时间问题.
有没有办法使用两个表连接多个行行,其中值在ORACLE中用逗号分隔?
例:
IdN Name
---------
1 A
2 B
3 C
Run Code Online (Sandbox Code Playgroud)
IdC Car
------------
1 Ferrari
1 BMW
2 SEAT
2 FIAT
3 FORD
Run Code Online (Sandbox Code Playgroud)
结果如下:
A Ferrari,BMW
B SEAT,FIAT
C FORD
Run Code Online (Sandbox Code Playgroud)
我想知道是否有这样的事情:
SELECT NAME,CAR
FROM TABLE1, TABLE2
where TABLE1.IdN=TABLE2.IdC
Run Code Online (Sandbox Code Playgroud)
这返回类似于:
法拉利
宝马
B座椅
B菲亚特
福特
有一种简单的方法可以用逗号分隔值"连接"到一行吗?
我的公司正在研究ASP.NET和Prism.我们想知道我们可以在两个选项之间获得多少代码重用.
正如我所看到的,Prism有这些"部分":
在我看这个时,唯一必须与Silverlight/WPF一起使用的部分是Regions.
shell可能有点棘手,但我认为它可以在ASP.NET应用程序中完成.我也认为模块(非区域提供模块)也应该可行.使用IEventAggregator和Unity应该很容易.
我唯一的问题是我在ASP.NET编程方面并不是很有经验,所以我不确定我的假设.我会喜欢一些熟悉Prism和ASP.NET的人反馈,然后再讨论这个问题(在我的公司).
基本上,我想制作将运行Web服务和业务逻辑的Prism模块.然后,我想要使用这些模块并在ASP.NET应用程序和WPF/Silverlight Prism模块(通过区域)中重新使用它们.
我是否通过尝试合并这两个系统来绘制一段艰难的旅程?
我一直在探索在单元测试中使用模拟对象,并且一直在尝试使用.NET的Moq框架.我在尝试测试从数据库返回域对象的服务层方法时遇到了一些问题.
这是我的设置:
[SetUp]
public void DoSetupTasks()
{
mockDao = new Mock<IHibernateDao>();
_hibernateService = new HibernateService(mockDao.Object);
mockDomainObject = new Mock<DomainBase>();
dmBase = new DomainBase()
{
Id = 5
};
}
Run Code Online (Sandbox Code Playgroud)
这是我遇到问题的单元测试.该方法FindById()
根据给定的ID和Type返回DomainBase对象.
[Test]
public void TestFindById()
{
mockDomainObject.Setup(dmb => dmb.Id.Equals(It.IsAny<long>())).Returns(true);
mockDao.Setup(dao => dao.FindById(
It.IsAny<long>(),
It.IsAny<Type>()
)).Returns(mockDomainObject.Object);
_hibernateService.FindById(dmb.Id, typeof(DomainBase));
mockDomainObject.VerifySet(dmb => dmb.Id = dmBase.Id);
}
Run Code Online (Sandbox Code Playgroud)
当我运行单元测试时,它会抛出以下异常:
Exception: Invalid setup on a non-virtual (overridable in VB) member: dmb => dmb.Id.Equals(It.IsAny<Int64>())
我承认,我对这个框架非常不熟悉.我一直在尝试关注它的一些教程,但我还没有弄明白.
//CHECK IF WE SHOULD SHOW THE PASSWORD HINT OR NOT
Setting passwordhints;
using (var db = new dbDataContext())
{
passwordhints = (from c in db.Settings
where c.Name == "ShowPasswordHints" && c.ID == _ID
select c).FirstOrDefault();
}
if (passwordhints != null)
//NOTE: .Value IS A STRING
ViewData["ShowPasswordHints"] = passwordhints.Value;
else
ViewData["ShowPasswordHints"] = "False";
//END PASSWORD HINTS CHECK
Run Code Online (Sandbox Code Playgroud)
是在控制器中,当我到达页面本身时我输出
<%=ViewData["ShowPasswordHints"]%>
进入标题标签,我可以在那里看到它说"真"(没有引号,我还用括号括起来检查空格,没有空格,它实际上只是真)
但是,当我这样做
<%if(ViewData["ShowPasswordHints"] == "True") {%> SHOW THIS <%}%>
Run Code Online (Sandbox Code Playgroud)
显示这从未出现过,到底是什么?
更新:但是,如果ViewData设置如此......它工作......嗯?
if (accountRepository.isLDAPEnabled(_ID))
ViewData["LDAP"] = "True";
else
ViewData["LDAP"] = "False";
Run Code Online (Sandbox Code Playgroud)
视图... …