我即将从工作中获得一台新PC,它将包括将Vista Business作为操作系统或降级到XP Pro的选项.除了一点点测试之外,我从来没有使用过Vista,但总的来说,我听过很多关于Vista的糟糕报道.在性能方面,我认为硬件不会成为问题(Intel Core Duo T9300,4GB RAM,256MB NVIDIA).考虑到它的历史,当我有机会继续使用XP时,我只是对使用Vista作为我的主开发系统感到不安.
那么有没有人在你的开发机器上有Vista和XP作为操作系统的经验?如果你可以选择一个而不是另一个,你会选择哪一个?我将需要使用Visual Studio 2003/2005/2008,SQL Server 2005,虚拟机,Office,以及许多多任务和多标签Web浏览.
(注意:我对抨击微软不感兴趣.如果你没有使用Vista,但刚刚听到了关于它的坏事,那么你和我有同样的经验,你可能不应该回答这个问题).
编辑:当我从工作中得到这台电脑时,我更喜欢使用提供的操作系统之一:32位XP PRO或32位Vista.
我的数据库中有以下表,它们具有多对多关系,由连接表表示,该连接表具有每个主表的主键的外键:
假设每个User-Widget组合都是唯一的.我可以看到两个选项来构建定义数据关系的连接表:
选项1有一列主键.但是,这似乎是不必要的,因为存储在表中的唯一数据是两个主表之间的关系,并且这种关系本身可以形成唯一键.因此导致选项2,其具有两列主键,但丢失了选项1具有的一列唯一标识符.我还可以选择向第一个表添加两列唯一索引(WidgetID,UserID).
两种性能方面是否有任何真正的区别,或者是否有任何理由偏好一种方法而不是另一种方法来构建UserWidgets多对多表?
我工作的一组开发人员大约半年前从VSS切换到SVN.从CheckOut-CheckIn到Update-Commit的过渡对很多用户来说都很难.现在他们不再被迫在完成文件时检查他们的文件(或者更确切地说,现在没有其他人可以看到他们已经检出文件并告诉他们重新检查以释放锁定文件),它不止一次发生,用户忘记了他们的更改,直到他们完成很久.
虽然大多数用户都很擅长提交他们的更改,但问题非常严重,可能会决定强制用户在编辑之前锁定SVN中的所有文件.我宁愿不看到这种情况发生,但我对如何以另一种方式改善情况感到茫然.所以任何人都可以建议如何做以下任何一种方法:
开箱即用的解决方案受到欢迎(即:如果桌面程序在给定的时间间隔内没有提交,则提醒用户提交,自动获取用户提交率的统计信息,并在频率低于某个阈值时发送警告电子邮件等).
使用Entity Framework 5,MiniProfiler 2.为MiniProfiler.EF安装Nuget.
按如下方式创建连接
var conn = new EFProfiledDbConnection(DbConnections.GetSqlConnection(), MiniProfiler.Current);
return new MyDbContext(conn, true);
Run Code Online (Sandbox Code Playgroud)
尝试使用DbContext检索数据时,将返回以下错误:
Unable to determine the provider name for connection of type
'StackExchange.Profiling.Data.EFProfiledDbConnection'.`
Run Code Online (Sandbox Code Playgroud)
我尝试将以下内容添加到web.config:
<system.data>
<DbProviderFactories>
<remove invariant="StackExchange.Profiling.Data.ProfiledDbProviderFactory" />
<add name="StackExchange.Profiling.Data.ProfiledDbProviderFactory"
invariant="StackExchange.Profiling.Data.ProfiledDbProviderFactory"
description="StackExchange.Profiling.Data.ProfiledDbProviderFactory"
type="StackExchange.Profiling.Data.ProfiledDbProviderFactory, MiniProfiler, Version=2.0.2.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
这没有用.我也尝试过使用MiniProfiler.EntityFramework中不同的EFProviderFactories,但是无法使用它们.
如果我尝试运行MiniProfilerEF.Initialize();的App_Start,然后我在尝试访问数据库时,出现以下错误:
如果在Code First模式下使用,使用T4模板为Database First和Model First开发生成的代码可能无法正常工作.要继续使用Database First或Model First,请确保在执行应用程序的配置文件中指定了Entity Framework连接字符串.要使用从Database First或Model First生成的这些类,使用Code First添加任何其他配置,使用属性或DbModelBuilder API,然后删除引发此异常的代码.
卸下DbProviderFactories从web.config部分,并运行MiniProfilerEF.Initialize_EF42();在App_Start在原来的错误.
正如MiniProfiler页面所说的那样,MiniProfilerEF.Initialize()首先只是代码,这似乎不是一种可行的方式.
其他搜索没有给我任何其他的尝试,除了在Web.Config中添加部分.有关如何进行的任何建议?目标是能够使用由Mvc MiniProfiler分析的Model First DbContext.
entity-framework mvc-mini-profiler asp.net-mvc-4 entity-framework-5
如果我可以在C#中打开与MS Access文件的连接,如何检索Access DB中存在的不同表的列表(如果可能,还可以检索与表关联的任何元数据)?
Transact-Sql Count Distinct操作计算列中的所有非空值.我需要计算一组表中每列的不同值的数量,包括空值(所以如果列中有空值,结果应该是(Select Count(Distinct COLNAME) From TABLE) + 1.
这将在DB中每个表的每一列上重复.包括数百个表,其中一些表有超过1M行.因为这需要在每一列上完成,所以为每列添加索引不是一个好选择.
这将作为ASP.net站点的一部分完成,因此与代码逻辑的集成也可以(即:这不必作为一个查询的一部分完成,但如果可以以良好的性能完成,那么甚至更好).
最有效的方法是什么?
我从一个很好的代表性表格中给出的答案中测试了不同的方法.该表有320万条记录,数十列(少数有索引,大多数没有).一列有320万个唯一值.其他列的范围从所有Null(一个值)到最多40K唯一值.对于每种方法,我进行了四次测试(每次尝试多次,平均结果):一次20列,一次5列,1列有很多值(3.2M),1列有少量值( 167).以下是结果,按最快到最慢的顺序排列
测试结果(以秒为单位):
Method 20_Columns 5_Columns 1_Column (Large) 1_Column (Small)
1) Count/GroupBy 10.8 4.8 2.8 0.14
2) CountDistinct 12.4 4.8 3 0.7
3) dense_rank 226 30 6 4.33
4) Count+Max 98.5 44 16 12.5
Run Code Online (Sandbox Code Playgroud)
笔记:
Count.感谢您的帮助和建议!
我正在尝试使用MSDeploy使用TeamCity将MVC项目部署到服务器.当我在powershell中的计算机上执行此操作时,使用以下命令:
msbuild.exe .\mvc.csproj /p:PublishProfile=DevServer /p:VisualStudioVersion=11.0
/p:DeployOnBuild=True /p:Password=MyPassword /p:AllowUntrustedCertificate=true
Run Code Online (Sandbox Code Playgroud)
它构建项目并将其部署到服务器(DevServer发布配置文件中定义的信息).输出MSDeployPublish结尾显示了一个部分,其中我看到了文本Starting Web deployment task from source...,然后是行,告诉我哪些文件已更新,等等.
当我在TeamCity上使用MSBuild Build步骤在同一个文件上使用相同的参数(来自同一个工作目录)运行它时,它会构建项目但不会发布它.相反,它具有构建过程(CoreCompile,_CopyFilesMarkedCopyLocal,GetCopyToOutputDirectoryItems,CopyFilesToOutputDirectory)的常规输出,但实际上并没有发布任何内容.
我需要对TeamCity中的设置进行哪些更改才能使其以与从我的计算机上使用MSBuild一样的方式发布部署?
(TeamCity 7.1,MSBuild 4.0,WebDeploy 3.0,Visual Studio 12,IIS 7.与我之前的问题相关)
如何在父div中设置图像元素的中心?我想这样做,以便图像的中间始终在他父母的中心.此外,我希望图像始终具有100%的高度(注意:我不想拉伸图像宽度).
请看这里的例子:http://jsfiddle.net/Ex5ax/5/
<div class="box">
<img src='featured.jpg' />
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.box { height: 100%; width: 450px; border: 2px solid red; background: green; overflow: hidden; }
.box img { height: 100%; width: auto; text-align: center; }
Run Code Online (Sandbox Code Playgroud) 每当我必须估计一个项目的时间(或审查其他人的估计)时,就会在alpha版本和生产版本之间分配测试/错误修复的时间.我非常清楚,对于未知大小的问题集,到目前为止对未来的估计并不是成功估算的好方法.然而,由于各种原因,一定程度的小时数总是在一开始就分配给这部分工作.而这个初始估计距离真实的最终值越远,那些参与调试的人就越需要在他们"超过"估计值时采取的悲伤.
所以我的问题是:你在制定这样的估算时看到的最佳策略是什么?整体开发估计的百分比是平的吗?设定小时数(期望它会上升)?别的什么?
还需要考虑的其他事项:如果客户负责测试(而不是内部质量保证),您将如何回答这种情况,并且您必须分配一定的时间来回应他们可能找到或未找到的错误(因此您需要找出错误修复的时间估计但不测试
我在c sharp中使用下面的代码.但是两个WriteLine语句都给出了相同的结果25.那么在c sharp中转换Tostring需要什么?有什么特别的目的吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace sample
{
class Program
{
static void Main(string[] args)
{
int value = 25;
Console.WriteLine(value.ToString());
Console.WriteLine(value);
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)