小编Ben*_*ter的帖子

我是否通过为WYSIWYG工具设计ASP.NET组件来浪费我的时间

几天前,我读了一个问题,询问有多少开发人员手工编写HTML/XHTML代码,而不是依赖于WYSIWYG工具 - /sf/ask/28423671/ -使用所见即所得的编辑器,或手代码,其

我倾向于设计ASP.NET服务器控件,而不是用于我的代码中的用户控件.我这样做,以便我可以通过拖放到WYSIWYG重用它们,只需设置几个相关的属性.在设计组件时,这会花费额外的时间,但在我在大型应用程序中使用它们时会大大简化.

在阅读了大多数开发人员似乎手工编写代码而不是使用WYSIWYG之后,它让我想知道:我是否浪费时间以这种方式开发组件?

编辑:澄清 - 大多数情况下,最初的意图是这些控件是我自己使用的.但是,有很多场合它可能对我的团队其他成员有用,或者可能对公众有用.然而,像大多数事情一样,我倾向于看到相对较少的额外工作提供的巨大潜在额外价值,无论实现额外价值的可能性如何.

c# vb.net asp.net wysiwyg

7
推荐指数
1
解决办法
573
查看次数

MOQ 4.0:'Moq.Mock`1'的类型初始值设定项引发了异常

我得到了例外

'Moq.Mock`1'的类型初始值设定项引发了异常.

使用Moq 4.0我已经在几个论坛上查看过,他们提到使用Moq-NoCastle版本.我在Moq文件夹中尝试了这个和版本.两者都有相同的结果.

我有一个包含2个项目的解决方案,一个用于我的界面,一个用于我的测试.我的主项目有2个文件:

IMyInterface.cs:

using System;

namespace Prototype
{
    public interface IMyInterface
    {
        int Value { get; set; }
        void ProcessValue();
        int GetValue();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的program.cs文件只包含项目生成的默认代码.

我的测试项目有一个单独的文件用于我的虚拟测试 - TestProgram.cs

using System;
using NUnit.Framework;
using Moq;

namespace Prototype.UnitTests
{
    [TestFixture]
    public class TestProgram
    {
        Mock<IMyInterface> mock;

        [TestFixtureSetUp]
        void TestSetup()
        {
            mock = new Mock<IMyInterface>();
            mock.Setup(x => x.GetValue()).Returns(2);
        }

        [Test]
        public void RunTest()
        {
            IMyInterface obj = mock.Object; /* This line fails */
            int val = obj.GetValue();
            Assert.True(val == 2); …
Run Code Online (Sandbox Code Playgroud)

nunit moq mocking

7
推荐指数
2
解决办法
7938
查看次数

如何使用跨越多个服务器链接的程序的事务?

我正在尝试测试我们的某个供应商向我们提供访问其产品数据库的提议,并且它涉及跨越多个服务器的查询和事务.我以前从来没有直接在数据库上做过这件事,坦率地说,我很无能为力,所以我试图模仿一个证据,证明这至少在概念上是有效的.

我有两个SQL Server 2005服务器.让我们为了论证的缘故,将它们称为Server1和Server2 [掌握你的掌声],每个都包含一个虚拟数据库.Server1上的虚拟数据库称为Source,而Server2上的虚拟数据库称为Destination,只是为了简单起见.每个数据库分别拥有一个名为Input和Output的表,因此结构的准解释如下:

  • Server1.Source.dbo.Input
  • Server2.Destination.dbo.Output

我在Server2上有一个名为WriteDataToOutput的存储过程,它接收一个Varchar参数并将其内容写入输出表.

现在诡计开始了:

  1. 我想在Server1.Source上创建一个存储过程,它调用Server2上定义的WriteDataToOutput存储过程,这看似简单的步骤.
  2. 我希望此调用是事务的一部分,以便如果调用它的过程失败,则回滚整个事务.

在这里,我努力学习如何做.谁能指出我正确的方向?我在同一台服务器上的两个不同的数据库上试过这个,它运行得很好,让我觉得它可以在不同的服务器上工作,问题是,我该如何做这样的事情?我从哪里开始?

t-sql transactions sql-server-2005

6
推荐指数
2
解决办法
1468
查看次数

.NET是否有办法将空字符串解析为String.Empty?

我有一个单行方法将空字符串解析为string.Empty,我认为这可能是一个有用的扩展方法 - 但我找不到一个有用的方法来实现它.

我可以看到它有用的唯一方法是作为字符串类的静态方法,因为很明显它不能归因于实例,因为实例为null,这会导致编译器错误.[编辑:编译错误是由于未初始化的变量,我误解了]

我想将它添加到帮助程序类中,但这只会从可发现性角度增加不必要的复杂性.

所以这个问题分为两部分我想:

  1. .NET框架是否有内置的方法将null字符串解析为string.Empty,这是我在过程中遗漏的常识?
  2. 如果没有 - 有没有人知道将此方法添加为字符串类的静态扩展的方法?

提前干杯

编辑:

好吧,我想我应该更清楚一点 - 我已经很清楚空煤化了,而且我正在一个地方使用它,我已经检查了十几个字符串来计算哈希码.

正如你可以想象的那样,紧跟在一起的12行代码都包含了null的运算语法,这是一个眼睛,所以我将null的运算操作移到了一个方法上,让眼睛更方便.然而,这是完美的,它将是字符串对象的完美扩展:

int hashcode =
FirstValue.ResolveNull().GetHashCode() ^
SecondValue.ResolveNull().GetHashCode() ^
...
Run Code Online (Sandbox Code Playgroud)

超过十几行比阅读更容易:

int hashcode =
(FirstValue ?? String.Empty).GetHashCode() ^
(SecondValue ?? String.Empty).GetHashCode() ^
...
Run Code Online (Sandbox Code Playgroud)

当我没有显式地将我的字符串值声明为null但依赖于隐式时,我遇到了编译器问题:

 string s;
Run Code Online (Sandbox Code Playgroud)

但是,如果您明确定义:

string s = null;
Run Code Online (Sandbox Code Playgroud)

你可以很轻松地打电话:

s.ResolveNull();
Run Code Online (Sandbox Code Playgroud)

谢谢大家的意见.

.net c#

6
推荐指数
2
解决办法
845
查看次数

如何将跟踪侦听器附加到正在运行的进程?

我不确定这是否有可能以我想象的方式进行,所以我希望有人可以帮助我解决这个问题.

我想将一个TraceListener注入到一个正在运行的进程中 - 有点像.我实际上并不关心如何附加到进程,但最终目标是侦听正在运行的进程的跟踪输出并将其转储到控制台窗口.

我可以附加到这个过程好了,我可以写一个TraceListener好吧......我在哪里解开是有点中间.如果能做到这一点,任何人都有任何线索?如果是这样,你能不能给我一个正确的方向,因为我在这里看不到森林的树木.

也许我试图以错误的方式解决这个问题?

.net c# debugging remote-debugging

6
推荐指数
1
解决办法
3765
查看次数

我怎么知道分支是否已经在SVN/Mercurial/Git中合并?

是否有任何方法可以轻松解密(即一目了然)分支是否先前已与另一个分支或主干合并?我能够弄清楚的最近的是查看提交注释并显示合并的提交注释.这样做的缺点似乎是,除非您知道从哪个分支导入提交注释,否则无法解密哪些分支已经合并.

编辑:Mercurial或Git是否比SVN更直观?

svn git mercurial user-interface

6
推荐指数
5
解决办法
3903
查看次数

Func <>可以递归调用吗?

昨天正在玩一个代码高尔夫问题来建造一个去年出现的圣诞树,我把一个快速的递归算法拼凑起来完成这项工作:

static string f(int n, int r)
{
    return "\n".PadLeft(2 * r, '*').PadLeft(n + r)
        + (r < n ? f(n, ++r) : "*".PadLeft(n));
}
Run Code Online (Sandbox Code Playgroud)

我想知道我是否可以用Func做同样的事情:

Func<int,int,string> f = (n, r) => {
    return "\n".PadLeft(2 * r, '*').PadLeft(n + r) 
        + (r < n ? f(n, ++r) : "*".PadLeft(n));
};
Run Code Online (Sandbox Code Playgroud)

除了递归部分不能识别对f的调用实际上是对自身的调用之外,这完成这项工作.这将使我得出结论,Func 不能递归地调用自己 - 但我想知道我是否得出了错误的结论,或者是否可以做到但需要采用不同的方法.

有任何想法吗?

.net c# recursion

6
推荐指数
2
解决办法
1006
查看次数

如何加入“最新”记录?

我在 SQL Server 2000 数据库中有两个表,通过父子关系连接起来。在子数据库中,唯一键由父 ID 和日期戳组成。

我需要对这些表进行联接,以便仅联接每个子项的最新条目。

谁能给我任何提示我该如何解决这个问题?

sql t-sql sql-server-2000

6
推荐指数
2
解决办法
3498
查看次数

如何针对同一个数据库运行我的应用程序的多个版本?

Backround:我的生产环境中运行了多个版本的应用程序.根据使用的用户帐户,用户可以访问不同版本的软件.

环境:目前SQL Server 2005,即将迁移到SQL Server 2008,ASP.Net

问题:每个版本的软件可能会也可能不会使用与数据库中的数据交互的不同版本的存储过程.当前更改版本时,无论谁更改版本都会创建新副本并在末尾附加增量版本号.在这一点上,我们有一些存储过程的许多版本,只有一个版本的其他版本,没有人确定哪个版本的应用程序指向哪个版本的存储过程 - 这是一个烂摊子.

我正在寻找一种解决方案,它可以将应用程序的任何给定版本的存储过程整齐地打包,以用作新版本的基础.这意味着应用程序的新版本可以指向新的proc集合,可以将其重写或修改为最终用户的内容,而不会影响当前可用于生产的其他应用程序版本.

我最初考虑过模式,但问题的一部分是procs与其他procs和用户定义的函数紧密耦合,所以当复制到另一个模式时,我们新来映射并替换所有这些不理想的链接.

看来这是一个应该已经解决的问题,但我不知道我在寻找什么是可行的解决方案.

有没有人有任何想法?

sql sql-server sql-server-2005 sql-server-2008-r2

6
推荐指数
1
解决办法
762
查看次数

如何阻止 Jenkins 在第 80 列截断/换行

我有一个在 Jenkins 构建中执行的 Powershell 构建步骤,控制台将输出包装在第 80 列(这似乎是默认值)。有没有办法防止这种列换行,并让 Jenkins 使用更适合我们期望的输出的列宽度?

powershell jenkins

6
推荐指数
1
解决办法
2222
查看次数