在Visual Studio 2008中,如果您有一个Web项目,则可以使用菜单Build - > Publish Web.
我可以通过命令行使用msbuild获得相同的结果吗?
在这篇博文中找到答案:如何使用MSBuild发布网站.
更详细地说:使用MSBuild部署visual studio 2005 Web应用程序.
我不确定这种做法实际上是什么,所以也许有人可以编辑标题以更准确地反映我的问题.
假设我们有一个存储不同类型对象的站点.每种类型的对象都有自己的数据库(书籍数据库和各种信息及其表格,CD数据库及其表格信息等).但是,所有对象都有关键字,关键字应该在所有对象中保持一致,而不管类型如何.使用具有几个表的新数据库来存储关键字,但是每个对象数据库负责将对象ID映射到关键字.
这是一个好习惯吗?
问题:Java中的异常处理实际上是否很慢?
传统观念以及许多谷歌搜索结果表明,不应将特殊逻辑用于Java中的正常程序流程.通常有两个原因,
和
这个问题是关于#1.
例如,这个页面将Java异常处理描述为"非常慢",并将缓慢与异常消息字符串的创建联系起来 - "然后将此字符串用于创建抛出的异常对象.这并不快." Java中的有效异常处理这篇文章说"其原因在于异常处理的对象创建方面,从而使异常本身变得缓慢".另一个原因是堆栈跟踪生成减慢了它的速度.
我的测试(使用Java 1.6.0_07,Java HotSpot 10.0,在32位Linux上)表明异常处理并不比常规代码慢.我尝试在循环中运行一个执行一些代码的方法.在方法结束时,我使用布尔值来指示是返回还是抛出.这样实际处理是一样的.我尝试以不同的顺序运行方法并平均我的测试时间,认为它可能是JVM升温.在我的所有测试中,投掷至少与返回一样快,如果不是更快(最多快3.1%).我对我的测试错误的可能性持开放态度,但我没有看到代码示例,测试比较或过去一两年中显示Java中的异常处理的结果慢.
让我沿着这条路走下去的是我需要使用的API,它将异常作为正常控制逻辑的一部分.我想在他们的使用中纠正它们,但现在我可能无法做到.相反,我是否必须赞美他们的前瞻性思维?
在即时编译中的高效Java异常处理文章中,作者建议单独存在异常处理程序,即使没有抛出异常,也足以阻止JIT编译器正确优化代码,从而减慢它的速度.我还没有测试过这个理论.
问候.我现在一直在研究Literate Programming,我确实喜欢它背后的想法:你基本上写了一些关于你的代码的文章并写下了尽可能多的设计决策,代码可能围绕模块,内部工作原理由设计决策,潜在扩展产生的模块,假设和结论,所有这些都可以使用tex以一种很好的方式写下来.当然,第一点:它是文档.它必须保持最新,但这不应该那么糟糕,因为你的改变应该有理由,你可以写下来.
但是,文学编程如何在更大程度上扩展?总体而言,文学编程仍然只是文本.当然,非常人类可读的文本,但仍然是文本,因此,很难遵循大型系统.例如,我重新编写了我的编译器的大部分内容以使用>>和一些魔法来将编译步骤链接在一起,因为一些"x.register_follower(y); y.register_follower(z); y.register_follower(a); ... "变得非常笨拙,并将其改为x >> y >> z >> a使它变得更好,尽管这也是它的突破点.
那么,Literate Programming如何扩展到更大的系统?有人试图这样做吗?
我的想法是使用LP来指定使用事件流相互通信的组件,并使用graphviz的子集将所有这些组合在一起.这将是LP的一个相当自然的扩展,因为您可以从网络中提取文档 - 数据流图 - 并且也可以从中生成代码.你怎么看呢?
- Tetha.
虽然看着微的优化问题,我问昨天(这里),我发现了一些奇怪的事情:一个or用Java语句运行稍微比boolean数组中查找一个布尔值更快.
在我的测试中,运行以下算法的long值从0到10亿,alg1大约快2%.(我已经改变了算法测试的顺序,我得到了相同的结果).我的问题是:为什么alg1更快? 我原本期望alg2稍快一些,因为它使用查找表,而alg1必须执行4次比较,3次或75%的输入操作.
private final static boolean alg1(long n)
{
int h = (int)(n & 0xF);
if(h == 0 || h == 1 || h == 4 || h == 9)
{
long tst = (long)Math.sqrt(n);
return tst*tst == n;
}
return false;
}
private final static boolean[] lookup = new boolean[16];
static
{
lookup[0] = lookup[1] = lookup[4] = lookup[9] = true;
}
private final static boolean alg2(long n)
{ …Run Code Online (Sandbox Code Playgroud) 我在C#中使用WinForm应用程序,在文本框中键入内容后我想按Enter键但文本框仍然有焦点(闪烁光标仍在文本框中),我该如何实现?
我希望方程的结果四舍五入到最接近的整数.例如
137 * (3/4) = 103
Run Code Online (Sandbox Code Playgroud)
请考虑以下错误代码.
int width1 = 4;
int height1 = 3;
int width2 = 137;
int height2 = width2 * (height1 / width1);
Run Code Online (Sandbox Code Playgroud)
在C#中执行"整数"数学的正确方法是什么?
我真的必须这样做:
int height2 = (int)Math.Round(
(float)width2 * ((float)height1 / (float)width1)
);
Run Code Online (Sandbox Code Playgroud) 有没有一种简单的方法来追逐SQL Server 2005+中的表/存储过程/函数依赖项?我继承了一个包含大量表的巨型应用程序,甚至还有更多存储过程和函数,这些程序和函数很长并且相互关联.
在一天结束时有没有办法建立一个依赖树?理想情况下,我正在寻找的是两个方向:
对于表/程序 - 什么依赖于它?:显示最终引用它的所有存储过程(理想情况下在树视图中,以便子过程嵌套到调用它们的较大过程)
对于程序 - IT依赖什么?:显示给定程序在运行时(或可能)触摸的所有程序和表格.
看起来这个工具不应该那么难,并且通常对数据库维护非常有用.有人知道这样的事吗?如果这不存在,为什么不呢?
Management Studio中的内置功能很不错,但信息似乎根本不完整.
假设我有一个List对象和该列表的迭代器.
现在我对列表进行排序 java.util.Collections.sort()
我知道,这个问题可以通过改变程序设计来克服,例如克隆列表,但我特别想知道Java的"官方"行为.
我一直在阅读Subversion 1.5的分支/合并,使用优秀的免费版本控制和Subversion一书.我想我了解如何使用Subversion命令行客户端来执行我最常需要的操作,它们是:
使用Trunk中的更改更新分支
从分支的工作目录运行:
svn merge http://svn.myurl.com/proj/trunk
将分支合并到主干
从trunk的工作目录运行:
svn merge --reintegrate http://svn.myurl.com/proj/branches/mybranch
但是,我们使用TortoiseSVN 1.5作为Subversion的接口.我想知道如何最好地使用TortoiseSVN执行这些操作.新对话框在主菜单上提供三个不同的选项.
根据我的收集,TortoiseSVN总是使用以下语法执行svn.
svn merge [--dry-run] --force From_URL @ revN To_URL @ revM PATH
此外,重新集成分支通常会失败并显示一条消息,指出某些目标尚未合并,因此无法继续,因此我不得不使用选项#3.
我的问题是:
编辑
通过"干运行"测试我发现命令行是Subversion操作
svn merge http://svn.myurl.com/proj/trunk
类似于TortoiseSVN中的选项#1(合并一系列修订版),只要我将修订范围留空.
java ×3
c# ×2
branch ×1
collections ×1
command-line ×1
concurrency ×1
database ×1
math ×1
merge ×1
methodology ×1
optimization ×1
performance ×1
rounding ×1
sql-server ×1
svn ×1
tortoisesvn ×1
winforms ×1