我们刚刚启动并运行TFS 2010.我们将把我们的源代码迁移到TFS,但我对如何组织代码有疑问.
TFS 2010有一个新的项目集合概念,因此我决定组织内的不同团队将获得他们自己的团队.我的团队开发了许多不同的Web应用程序,我们有几个共享组件.我们还使用了一些第三方组件(例如telerik).
显然,每个Web应用程序都是它自己的项目,但我在哪里放置共享组件?每个组件是否应该包含单独的构建和工作项目的自己的项目?
是否有针对TFS 2010的最佳实践或推荐方法?
我需要找到一种方法来做一个INSERT INTO table A但是其中一个值是来自表B上的查找,允许我说明.
我有以下两个表:
表A:
A1: String
A2: Integer value coming from table B
A3: More Data
Run Code Online (Sandbox Code Playgroud)
表B:
B1: String
B2: Integer Value
Run Code Online (Sandbox Code Playgroud)
A的示例行:{"Value",101,MoreData} B的示例行:{"English",101}
现在,我知道我需要将以下内容插入到A {"Value2","English",MoreData}中,但显然这是行不通的,因为它期望第二列中的Integer不是"English",所以我需要首先在表B中进行查找.
像这样的东西:
INSERT INTO tableA (A1, A2, A3)
VALUES ("Value2", SELECT B2 FROM tableB where B1="English", MoreData);
Run Code Online (Sandbox Code Playgroud)
显然这不起作用......
有什么建议?
<iframe name="asdf" id="asdf" onload="change_height(this)" src="asdf.jsp" width="250" scrolling="no" frameborder="0"></iframe>
function change_height(iframe) {
if (document.all) {
// IE.
ieheight = iframe.document.body.scrollHeight;
iframe.style.height = ieheight;
} else {
// Firefox.
ffheight= iframe.contentDocument.body.offsetHeight;
iframe.style.height = ffheight+ 'px';
}
}
Run Code Online (Sandbox Code Playgroud)
在IE7中运行时,ieheight是实际高度的两倍; 尚未在IE6上测试过.如果我使用scrollHeight或offsetHeight,它的值是相同的.
它是Firefox中正确的高度.
在我通过划分IE值/ 2来修补此问题之前,有什么方法可以做到这一点?
我需要用Python模仿C的预处理器功能.
如果我想运行调试版本,我在C中使用如下
#ifdef DEBUG
printf(...)
#endif
Run Code Online (Sandbox Code Playgroud)
我只是使用-DDEBUG或类似的方法来启动或关闭它.
我可以在Python/Ruby中使用什么方法?我的意思是,我应该怎么做才能控制python/ruby脚本的行为,以便我可以更改影响项目中所有脚本文件的变量?
如何使用Server.Transfer()当前显示的同一页面执行重定向?
我希望在提交后获得A格式.
我可以使用哪些其他/更好的方法来实现相同的目标?
将我的项目FakeItEasy的VCS 从SVN 更改为Google Code上的Mercurial时,我有点过于渴望(我很有趣).我所做的只是检查SVN的最新版本,然后将结帐作为新Mercurial仓库的第一个修订版.这显然会导致所有历史遗失.
后来当我对Mercurial采取了更好的习惯时,我意识到有一个"转换扩展"这样的东西允许你将SVN仓库转换为Mercurial仓库.现在我要做的是转换旧的SVN仓库,然后将当前存在的Mercurial仓库中的所有变更集导入到此转换后的仓库中,除了第一次提交到Mercurial.
我已经将SVN回购转换为当地的Mercurial回购,但现在是我被困的时候.我以为我能够使用转换扩展来将当前的Mercurial存储库转换为已转换的存储库并且使用拼接映射删除第一次提交,但我似乎无法使其工作.
我也尝试过使用不带拼接映射的转换来从当前的Mercurial repo到转换后的版本中获取所有更改集,并将当前第二个版本的rebase从旧SVN存储库中的最后一次提交但是我无法获得那要么工作.
为了使这个更清楚,我可以说我有这两个存储库:
A: revA1-revA2
B: revB1-revB2-revB3 (Where revB1 is actually a copy of revA2)
Run Code Online (Sandbox Code Playgroud)
现在我想将这两个组合到包含以下内容的新存储库中:
C: revA1-revA2-revB2-revB3
Run Code Online (Sandbox Code Playgroud) 我目前正在学习如何使用Python optparse模块.我正在尝试以下示例脚本,但args变量为空.我尝试使用Python 2.5和2.6,但无济于事.
import optparse
def main():
p = optparse.OptionParser()
p.add_option('--person', '-p', action='store', dest='person', default='Me')
options, args = p.parse_args()
print '\n[Debug]: Print options:', options
print '\n[Debug]: Print args:', args
print
if len(args) != 1:
p.print_help()
else:
print 'Hello %s' % options.person
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
输出:
>C:\Scripts\example>hello.py -p Kelvin
[Debug]: Print options: {'person': 'Kelvin'}
[Debug]: Print args: []
Usage: hello.py [options]
Run Code Online (Sandbox Code Playgroud)
选项:-h, - help显示此帮助消息并退出-p PERSON, - person = PERSON
我没有手机,但Google App Engine需要短信才能验证该帐户.还有其他方法可以完成注册吗?
我很惊讶他们没有使用Gmail帐户来执行此操作.
编辑:谷歌为我创建了一个,问题解决了.
我创建了一个工厂和一组规范来创建和验证聚合根.目前我对工厂进行了一些测试,这些测试称工厂的产品规格,但我想知道这是否足够.从设计的角度来看,将工厂与其产品的规格相结合可能会更好,因为它们密切相关.
如果聚合根产品的规范用于验证而不是用于创建,那么从工厂内部调用它是否有意义?
或者单位测试是否足够好?
validation domain-driven-design aggregate specification-pattern factory-pattern
我正在使用Tablerow + TextView为博客文章及其回复制作一个简单的视图.在每个TableRow中我都放了一个TextView.现在我有两个问题:
比屏幕长的文本不会自动换行为多行.是TableRow的设计吗?我已经设置了tr_content.setSingleLine(false);[更新]这已经解决,我想我应该在textView中将Fill_parent更改为Wrap_content.tr_author_time.setLayoutParams(new LayoutParams(
LayoutParams.**WRAP_CONTENT**,
LayoutParams.WRAP_CONTENT));
表格不会像ListView一样滚动.我的行数大于屏幕大小.我希望该表可以向下滚动以便像ListView一样查看.那可能吗?
这是我的代码:
TableLayout tl = (TableLayout) findViewById(R.id.article_content_table);
TextView tr_title = new TextView(this);
TextView tr_author_time = new TextView(this);
TextView tr_content = new TextView(this);
TableRow tr = new TableRow(this);
for(int i = 0; i < BlogPost.size(); i++){
try{
// add the author, time
tr = new TableRow(this);
/////////////////add author+time row
BlogPost article = mBlogPost.get(i);
tr_author_time = new TextView(this);
tr_author_time.setText(article.author+"("+
article.post_time+")");
tr_author_time.setTextColor(getResources().getColor(R.color.black));
tr_author_time.setGravity(0x03);
tr_author_time.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
tr.addView(tr_author_time);
tl.addView(tr,new TableLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
////////////////////// …Run Code Online (Sandbox Code Playgroud) python ×2
aggregate ×1
android ×1
asp.net ×1
c# ×1
iframe ×1
insert-into ×1
javascript ×1
mercurial ×1
optparse ×1
preprocessor ×1
redirect ×1
ruby ×1
sms ×1
sql ×1
svn ×1
tablelayout ×1
tablerow ×1
textview ×1
tfs2010 ×1
validation ×1