小编Yaa*_*lis的帖子

适用于Dev Machine的Vista或XP

我即将从工作中获得一台新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.

operating-system windows-xp windows-vista

16
推荐指数
3
解决办法
1600
查看次数

多对多表中的一个或两个主键?

我的数据库中有以下表,它们具有多对多关系,由连接表表示,该连接表具有每个主表的主键的外键:

  • 小部件:WidgetID(PK),标题,价格
  • 用户:UserID(PK),FirstName,LastName

假设每个User-Widget组合都是唯一的.我可以看到两个选项来构建定义数据关系的连接表:

  1. UserWidgets1:UserWidgetID(PK),WidgetID(FK),UserID(FK)
  2. UserWidgets2:WidgetID(PK,FK),UserID(PK,FK)

选项1有一列主键.但是,这似乎是不必要的,因为存储在表中的唯一数据是两个主表之间的关系,并且这种关系本身可以形成唯一键.因此导致选项2,其具有两列主键,但丢失了选项1具有的一列唯一标识符.我还可以选择向第一个表添加两列唯一索引(WidgetID,UserID).

两种性能方面是否有任何真正的区别,或者是否有任何理由偏好一种方法而不是另一种方法来构建UserWidgets多对多表?

database indexing schema data-structures

14
推荐指数
3
解决办法
1万
查看次数

如何鼓励SVN更频繁的提交

我工作的一组开发人员大约半年前从VSS切换到SVN.从CheckOut-CheckIn到Update-Commit的过渡对很多用户来说都很难.现在他们不再被迫在完成文件时检查他们的文件(或者更确切地说,现在没有其他人可以看到他们已经检出文件并告诉他们重新检查以释放锁定文件),它不止一次发生,用户忘记了他们的更改,直到他们完成很久.

虽然大多数用户都很擅长提交他们的更改,但问题非常严重,可能会决定强制用户在编辑之前锁定SVN中的所有文件.我宁愿不看到这种情况发生,但我对如何以另一种方式改善情况感到茫然.所以任何人都可以建议如何做以下任何一种方法:

  1. 跟踪用户已编辑但尚未提交更改的文件
  2. 鼓励用户在完成后更改与提交更改一致
  3. 帮助完成让人们习惯新版本控制范例所需的用户教育

开箱即用的解决方案受到欢迎(即:如果桌面程序在给定的时间间隔内没有提交,则提醒用户提交,自动获取用户提交率的统计信息,并在频率低于某个阈值时发送警告电子邮件等).

svn version-control visual-sourcesafe commit

14
推荐指数
4
解决办法
675
查看次数

带有实体框架5的MVC MiniProfiler模型第一个错误:无法确定提供程序名称

使用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

14
推荐指数
1
解决办法
2031
查看次数

检索MS Access文件中的表列表

如果我可以在C#中打开与MS Access文件的连接,如何检索Access DB中存在的不同表的列表(如果可能,还可以检索与表关联的任何元数据)?

.net c# database ms-access metadata

13
推荐指数
1
解决办法
3万
查看次数

计算列中不同值的最快方法,包括NULL值

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).以下是结果,按最快到最慢的顺序排列

  1. Count/GroupBy(Cheran)
  2. CountDistinct + SubQuery(Ellis)
  3. dense_rank(埃里克森)
  4. 伯爵+马克斯(Andriy)

测试结果(以秒为单位):

   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)

笔记:

  • 有趣的是,两个最快的方法(到目前为止,之间只有很小的差异)都是为每个列提交单独查询的方法(在结果#2的情况下,查询包含一个子查询,所以那里真的是每列提交两个查询).也许是因为通过限制表扫描数量所获得的收益与内存需求方面的性能损失相比较小(只是猜测).
  • 虽然dense_rank方法绝对是最优雅的,但似乎它不能很好地扩展(看到20列的结果,这是迄今为止四种方法中最差的),即使是小规模也无法与表现Count.

感谢您的帮助和建议!

sql t-sql database sql-server asp.net

10
推荐指数
2
解决办法
6103
查看次数

具有MSBuild的Web部署不从TeamCity部署

我正在尝试使用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.与我之前的问题相关)

msbuild teamcity msdeploy webdeploy visual-studio-2012

10
推荐指数
3
解决办法
1万
查看次数

父div中的中心图像元素

如何在父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)

html css image

10
推荐指数
2
解决办法
4万
查看次数

应该为测试和错误修复分配多少时间

每当我必须估计一个项目的时间(或审查其他人的估计)时,就会在alpha版本和生产版本之间分配测试/错误修复的时间.我非常清楚,对于未知大小的问题集,到目前为止对未来的估计并不是成功估算的好方法.然而,由于各种原因,一定程度的小时数总是在一开始就分配给这部分工作.而这个初始估计距离真实的最终值越远,那些参与调试的人就越需要在他们"超过"估计值时采取的悲伤.

所以我的问题是:你在制定这样的估算时看到的最佳策略是什么?整体开发估计的百分比是平的吗?设定小时数(期望它会上升)?别的什么?

还需要考虑的其他事项:如果客户负责测试(而不是内部质量保证),您将如何回答这种情况,并且您必须分配一定的时间来回应他们可能找到或未找到的错误(因此您需要找出错误修复的时间估计但不测试

project-management estimation

8
推荐指数
4
解决办法
1万
查看次数

C#中ToString()的需求是什么?

我在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)

c#

8
推荐指数
2
解决办法
452
查看次数