小编Sco*_*ner的帖子

TFS当前Sprint URL

是否有我可以为我的团队的TFS Current Sprint任务板添加书签的URL ?我们有2周的冲刺,因此URL每2周更改一次.

默认URL的格式为:

http://[Server]/tfs/[Project]/[Team]/_backlogs/TaskBoard/[SprintName]#_a=people
Run Code Online (Sandbox Code Playgroud)

[SprintName]URL 的一部分会更改每个sprint,因此它不提供稳定的URL.我想知道是否有一些版本的URL总是指向当前的sprint,即:

http://[Server]/tfs/[Project]/[Team]/_backlogs/TaskBoard/CURRENT#_a=people
Run Code Online (Sandbox Code Playgroud)

tfs azure-devops

39
推荐指数
1
解决办法
4779
查看次数

AngularJS来自不同模块的访问服务

'use strict';

var trkiApp = angular.module('trkiApp', [ 
  'trkiApp.tStatus', 
  'trkiApp.feed'
]);



var tStatus = angular.module('trkiApp.tStatus', [])
    .factory('Status', ['$q']);

var feed = angular.module('trkiApp.feed', []);
Run Code Online (Sandbox Code Playgroud)

现在我不明白我怎么可能访问在另一个模块上定义的服务状态?

'use strict';

feed
    .controller('FeedController', ['$scope','$http','Status']);
Run Code Online (Sandbox Code Playgroud)

我不应该对吗?但不知怎的,我......或者这是一个正确的行为?

angularjs

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

C#编译器如何在发布版本中删除Debug.Assert?

我最近经历了一些代码,并考虑是否需要小心处理Debug.Assert语句中的表达式,例如昂贵的操作或带有副作用的表达式.但是,看起来编译器在完全删除Assert语句和内部表达式方面非常聪明.

例如,以下内容仅在调试版本上打印:

static void Main(string[] args)
{
    Debug.Assert(SideEffect());
}
private static bool SideEffect()
{
    Console.WriteLine("Side effect!");
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这会抱怨o在发布版本初始化之前使用它:

static void Main(string[] args)
{
    object o;
    Debug.Assert(Initialize(out o));
    o.ToString();
}
private static bool Initialize(out object o)
{
    o = new object();
    return true;
}
Run Code Online (Sandbox Code Playgroud)

它甚至可以表达这样的表达(在两种情况下打印"After"):

static void Main(string[] args)
{
    if (false) Debug.Assert(true);
    Console.WriteLine("After");
}
Run Code Online (Sandbox Code Playgroud)

我对编译器的智能程度以及Debug.Assert删除时正确检测案例的能力感到有些惊讶.所以,它让我好奇..

  • 该陈述究竟是如何删除的?必须在删除语句之前构建表达式树,才能正确执行上述if语句.
  • System.Diagnostics.Debug这里的类是特殊的,还是可以用类似的处理来构建自己的方法?
  • 有没有办法在这里"欺骗"预处理器?更好的是,在现实世界的代码中可能会遇到哪些情况可能会出现问题?

c# debugging assert

24
推荐指数
2
解决办法
5871
查看次数

IFormattable的参考实施

IFormattable有一个很好的参考实现吗?我打算IFormatProvider为我的对象至少有一个自定义,我想确保传递给不同的可能参数集的连线正确IFormattable.ToString(string, IFormatProvider).

到目前为止我所拥有的:

public class MyDataClass : IFormattable
{
    /// <seealso cref="IFormattable.ToString(string, IFormatProvider)"/>
    public string ToString(string format, IFormatProvider formatProvider)
    {
        ICustomFormatter formatter = (ICustomFormatter)formatProvider.GetFormat(typeof(ICustomFormatter));
        return formatter.Format(format, this, formatProvider);
    }
}
Run Code Online (Sandbox Code Playgroud)

但似乎应该涵盖其他潜在的情况,即:

  1. 如果formatProvider为null,我应该回归this.ToString()吗?
  2. 如果formatProvider.GetFormat(typeof(ICustomFormatter))返回null,是否应该抛出一个特殊的异常?

欢迎任何博客文章/代码示例/ MSDN参考.

.net c# iformattable

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

单元测试WCF合同是否匹配sync/async?

无论服务如何实现,WCF都可以轻松地同步或异步调用服务.为了适应客户端使用ChannelFactory,服务甚至可以定义单独的同步/异步合同接口.例如:

public interface IFooService
{
    int Bar();
}

[ServiceContract(Name = "IFooService")]
public interface IAsyncFooService
{
    Task<int> BarAsync();
}
Run Code Online (Sandbox Code Playgroud)

这允许客户端引用合同版本,并且WCF自动转换实际的API调用.

提供两个合同版本的一个缺点是它们必须保持同步.如果您忘记更新一个,客户端可能会在运行时收到合同不匹配异常.

是否有一种简单的方法来对接口进行单元测试,以确保它们与WCF元数据视角相匹配?

.net c# wcf unit-testing asynchronous

9
推荐指数
1
解决办法
546
查看次数

在.gitconfig中指定Windows路径的语法是什么?

我正在尝试使用include.path此处描述配置,但我似乎无法在Windows上找到正确的路径语法.

我目前的.gitconfig:

[include]
    path = 'D:\Scott\Shared\config\common.gitconfig'
Run Code Online (Sandbox Code Playgroud)

但是git抱怨道: fatal: bad config file line 2 in C:\Users\Scott/.gitconfig

什么是逃避Windows路径的正确方法?注意:我使用的是Powershell的git而不是git bash.

windows git powershell path

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

C#中的私有值标记枚举

我在C#中创建了一个标志枚举,类似于以下内容:

    [Flags]
    public enum DriversLicenseFlags
    {
        None = 0,

        Suspended = 1 << 1,
        Revoked   = 1 << 2,

        Restored  = 1 << 3,
        SuspendedAndRestored = Suspended | Restored,
        RevokedAndRestored   = Revoked   | Restored,
    }
Run Code Online (Sandbox Code Playgroud)

关于我的意图的一些注意事项:

  • Suspended并且Revoked是可以但不一定导致恢复的独特状态.
  • Restored应该只有在用户已经SuspendedRevoked(或两者都有)的情况下才有可能.重要的是要具体跟踪哪个事件是恢复的前兆.
  • 许可证可以是SuspendedRevoked(和Restored)

另外,我试图坚持在MSDN的Designing Flags Enumerations中提出的建议.特别是:

  • 考虑为常用的标志组合提供特殊的枚举值.
    • SuspendedAndRestored并且RevokedAndRestored两者都很常见.
  • 当某些值组合无效时,请避免创建标志枚举.
    • 这是我的问题,因为Restored除非至少有一个是无效的Suspended,并Revoked设置.

理想情况下,我希望Restored在内部使用的枚举中存在一个值,但只能通过某些有效组合公开设置.不幸的是,internal它不是枚举值的有效修饰符.

我想过几个选择,但每个似乎都有缺点:

  1. 保留Restored作为公共值,请注意注释中的限制,并对公共API上的无效组合进行前置条件检查. …

c# enums flags design-patterns

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

何时使用DebuggerDisplayAttribute

DebuggerDisplayAttribute有哪些最佳实践?是什么指导您决定何时以及如何将属性应用于您的代码?例如..

  1. 您是否发现DebuggerDisplayAttribute某些类型的对象(即自定义数据结构)而不是其他对象更有用?
  2. 您是在公共类型,内部类型还是两者上定义它?
  3. 您通常会将其添加到初始实现中,还是等待测试人员/用户请求它?
  4. 何时更好地定义DebuggerDisplayAttribute以及何时覆盖更有意义.ToString()
  5. 您是否有关于在属性中公开了多少数据的指南,或者要包含的计算量限制?
  6. 是否应用任何继承规则,以使其更适合应用于基类?
  7. 在决定何时或如何使用它时还有什么需要考虑的吗?

.net c# debugging visual-studio debuggerdisplay

5
推荐指数
2
解决办法
1344
查看次数

实体框架查询未命中过滤索引WHERE BIT字段= 0

我注意到Entity Framework使用负布尔过滤器转换LINQ查询,这样生成的查询计划就不会使用过滤索引.例如,查询:

context.Foo.Count(f => !f.IsActive)
Run Code Online (Sandbox Code Playgroud)

生成SQL语句:

SELECT 
    [GroupBy1].[A1] AS [C1]
    FROM ( SELECT 
        COUNT(1) AS [A1]
        FROM [dbo].[Foos] AS [Extent1]
        WHERE [Extent1].[IsActive] <> cast(1 as bit)
    )  AS [GroupBy1]
Run Code Online (Sandbox Code Playgroud)

请注意该WHERE子句使用[IsActive] <> cast(1 as bit),而不是更直观[IsActive] = 0.使用筛选索引时,这会成为问题.上述查询的计划不会使用以下索引:

CREATE INDEX IX_Foo_IsActive ON Foos (IsActive) WHERE (IsActive = 0)
Run Code Online (Sandbox Code Playgroud)

我怀疑EF以这种方式生成查询的原因与DB null语义有关,但即使使用不可空的位字段也会发生这种情况.我已经验证用EF的语法(IsActive <> 1)编写过滤的索引可以解决问题,但是这会破坏使用更常见语法的任何非EF查询.

有更好的解决方法吗?

这里有完整的示例程序:http://dotnetfiddle.net/3kZugt.上面使用的实体类型是:

public class Foo
{
    public int Id { get; set; }
    public bool IsActive { get; …
Run Code Online (Sandbox Code Playgroud)

c# sql t-sql linq-to-entities entity-framework

5
推荐指数
1
解决办法
1262
查看次数

CheckStyle IDEA 使用抑制文件进行自定义检查

我有一个带有自定义检查的 Maven 存储库,我希望所有其他 Maven 存储库都依赖它。我想禁止检查我的一个存储库中某些生成的代码。有两种方法可以设置抑制文件:

  1. 在自定义检查存储库中有抑制文件,然后在自定义检查样式 xml 中指定 SuppressionFilter:

    <module name="SuppressionFilter">
       <property name="file" value="${samedir}/checkstyle_suppressions.xml"
       default="src/main/resources/checkstyle_suppressions.xml"/>
    </module>
    
    Run Code Online (Sandbox Code Playgroud)

然后在我想要运行自定义 checkstyle 的 repo 的 pom.xml 文件的 Maven 插件部分:

    <suppressionsLocation>checkstyle_suppressions.xml</suppressionsLocation>
    <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
Run Code Online (Sandbox Code Playgroud)
  1. 不要将 SuppressionFilter 部分放在自定义 checkstyle xml 中。对于要检查的存储库具有相同的 pom.xml 设置。抑制文件可以放置在要检查的存储库本地。

这两种方法都适用于命令行“mvn clean validate”。但两者都不适用于 Intellij 的 CheckStyle IDEA 插件。Intellij 插件抱怨找不到上述第一种方法的抑制文件。

如果他们不需要的话,我不想强​​迫每个仓库都有一个抑制文件。我想知道是否有一种方法可以使 CheckStyle IDEA 的抑制工作,而不必拥有同一抑制文件的多个副本(自定义检查存储库中 1 个,本地存储库中 1 个)。

谢谢!

checkstyle intellij-plugin

5
推荐指数
1
解决办法
6860
查看次数

TEXTIO.使用模式{}从GCS读取多个文件

我尝试使用以下内容

TextIO.Read.from("gs://xyz.abc/xxx_{2017-06-06,2017-06-06}.csv")
Run Code Online (Sandbox Code Playgroud)

我得到的那种模式不起作用

java.lang.IllegalStateException: Unable to find any files matching StaticValueProvider{value=gs://xyz.abc/xxx_{2017-06-06,2017-06-06}.csv}
Run Code Online (Sandbox Code Playgroud)

即使这两个文件确实存在.我尝试使用类似表达式的本地文件

TextIO.Read.from("somefolder/xxx_{2017-06-06,2017-06-06}.csv")
Run Code Online (Sandbox Code Playgroud)

这确实很好用.

我原以为GCS中的文件会有各种各样的支持,但不是.这是为什么?在那里完成我正在寻找的东西?

glob google-cloud-storage google-cloud-dataflow apache-beam

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

公开的Google Cloud发布/订阅主题?

我想玩转Google Cloud Pub / Sub并在Dataflow中处理消息。我可以使用Pub / Sub中的任何公共数据供稿来入门吗?

在数据流字计数示例中,输入是从文件中读取云存储gs://dataflow-samples/shakespeare/kinglear.txt。似乎dataflow-samples所有项目都可以访问,这对入门非常方便。Pub / Sub有类似的东西吗?

google-cloud-platform google-cloud-pubsub

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

从 Go 应用程序的数据流模板创建作业

我正在尝试通过 Go 应用程序从现有模板启动数据流作业。

到目前为止,我已经引入google.golang.org/api/dataflow/v1b3并创建了一个CreateJobFromTemplateRequest包含工作信息的文件。

现在,我如何使用 Compute Engine 中的内置服务帐号凭据执行该请求?

go google-cloud-dataflow

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