小编How*_*amp的帖子

是否有我可以用于我正在构建的应用程序的现有数据层?

我正在编写一个.NET应用程序,从头开始实现数据层的想法对我来说很蠢.(数据层我指的是与数据库对话的代码,而不是将数据库访问抽象为域对象的层[有时称为数据访问层,可与数据层互换使用].)

我想找到一个现有的通用数据层实现,它提供标准的crud功能,错误处理,连接管理 - 工作.我将只与SQL Server交谈.

如果库是在C#或VB.NET中,对我来说并不重要,我不在乎它是LINQ还是ADO.NET.只要它有效.

**我想强调一点,我不是在寻找数据访问技术或机制(例如LINQ,ORM工具等),而是寻找现有的库.)

.net c# sql-server data-access data-access-layer

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

node.js可以用作在Web应用程序中运行任意服务器端Javascript的框架吗?

node.js可以用作运行服务器端Javascript的通用框架,专门用于Web应用程序,完全与它的非阻塞和异步路由I/O功能无关吗?具体来说,我想知道我是否可以在(web)服务器上运行任意Javascript而不使用其他node.js功能.

javascript serverside-javascript node.js

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

在将策略定义与执行分离时,了解Polly策略的语义

对于Polly,我想将我的策略定义和该策略的执行分为两个不同的语句,如:

// Policy definition
var policy = Policy
   .HandleResult<IRestResponse>(predicate)
   .Retry(2);

// Policy execution
policy.ExecuteAndCapture(() =>
{
    DoSomethingAndReturnAnIRestResponse();
};
Run Code Online (Sandbox Code Playgroud)

我想这样做,所以我可以更好地重用我的重试策略,例如用于依赖注入.

我试图了解在以这种方式拆分策略和执行时是否有任何考虑因素,例如,如果存在任何可能未policy从策略定义执行到执行的"状态"(缺少更好的术语).

沿着这些思路,我注意到当我ExecuteAndCapture()以上述方式使用Polly时,某些属性(与捕获最终异常/结果相关ExecuteAndCapture()policy属性)没有显示在对象上.根据文档(此处此处),完成以下政策后:

var policy = Policy
   .HandleResult<IRestResponse>(predicate)
   .Retry(2)
   .ExecuteAndCapture(() =>
    {
       DoSomethingAndReturnAnIRestResponse();
    });
Run Code Online (Sandbox Code Playgroud)

......你应该回来:

PolicyResult.Outcome
PolicyResult.FinalException
PolicyResult.ExceptionType
PolicyResult.Result
Run Code Online (Sandbox Code Playgroud)

这确实正在发生,然后ExecuteAndCapture()与政策定义在同一声明中.但是,在将策略定义与执行分离时,这些属性不可用.我天真地认为他们会出现在现有policy物体上,但他们没有:

在此输入图像描述

看来我需要创建一个新的变量赋值才能访问这些属性:

带有结果的新政策变量

有什么顾虑吗?

.net c# polly

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

无法在 Azure 应用服务上生成日志 NLog 内部日志文件

我在 Azure 应用服务上运行网站和 webjobs,我想启用 NLog 内部调试来解决一些日志记录问题。在我的 NLog 配置代码中,我这样做:

InternalLogger.LogLevel = LogLevel.Trace;
InternalLogger.LogFile = "nlog.txt";
Run Code Online (Sandbox Code Playgroud)

在开发过程中本地运行时,nlog.txt显示在应用程序二进制目录 ( bin) 中。在 Azure 上它不显示。假设可能是文件系统权限问题,我将代码更改为:

InternalLogger.LogLevel = LogLevel.Trace;
InternalLogger.LogFile = @"d:\logfiles\nlog.txt";
Run Code Online (Sandbox Code Playgroud)

Azure 应用服务保证d:\logfiles\目录可写。然而还是没有nlog.txt文件。

想法?

c# logging nlog azure azure-app-service-envrmnt

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

Build和Release定义如何在Visual Studio Team Services(VSTS)中相互联系?

使用我的Azure网站上的“连续交付”刀片:

Azure连续交付

我在VSTS中设置了构建和发布定义。

VSTS中的构建定义

VSTS中的版本定义

源代码控制正确触发了构建,然后在此之后运行发行版。一切都很好。

我不了解Build和Release定义是如何连接的。我看不到任何一个指向另一个的属性。它们如何链接?

第2部分让我感到困惑的是,当我查看Build定义中的Tasks时

VSTS构建定义中的任务

没有Deploy任务-这对我来说确实有意义,因为该Deploy任务显示在Release定义中(似乎合乎逻辑):

在发布定义中部署任务

但是,我看到在Build定义方面,我也可以直接添加Deploy任务。

在构建定义中部署任务

将Deploy任务作为Build定义的一部分而不是Release定义的一部分是什么意思?

continuous-integration azure continuous-deployment azure-devops

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

NLog - 如何以编程方式获取调用者类名称和方法?

我正在使用这个扩展NLog的https://github.com/NLog/NLog/tree/master/examples/ExtendingLoggers/LoggerWrapper方法,以便我可以为我的事件添加自定义属性.所以我的代码看起来像这样:

    public void WriteMessage(string eventID, string message)
    {
        LogEventInfo logEvent = new LogEventInfo(LogLevel.Info, _logger.Name, message);

        logEvent.Properties["EventID"] = eventID;

        _logger.Log(typeof(MyLogger), logEvent);
    }
Run Code Online (Sandbox Code Playgroud)

WriteMessage方法中,我尝试获取调用者类和方法名称,如下所示:

logEvent.CallerClassName;
logEvent.CallerMemberName;
Run Code Online (Sandbox Code Playgroud)

但两者都返回null.

我怎样才能获得价值?

.net c# logging nlog

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

SQL - 如何选择具有相同ID的多行的第一行(或任何唯一行)?

假设我的查询结果如下:

ID    NAME    Phone
----  ----    -----
1     Bob     111-111-1111
1     Bob     222-222-2222
1     Bob     333-333-3333
2     Stan    555-555-5555
3     Mike    888-888-8888
3     Mike    777-777-7777
Run Code Online (Sandbox Code Playgroud)

我想只返回每个ID值的单行实例.对我来说无关紧要的是我得到的多行中的哪一行 - 集合中的第一行是好的.

所以可能的结果是:

ID    NAME    Phone
----  ----    -----
1     Bob     111-111-1111
2     Stan    555-555-5555
3     Mike    888-888-8888
Run Code Online (Sandbox Code Playgroud)

sql ms-access greatest-n-per-group

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

ASP.NET Web API 不返回自定义错误信息

我有一个 ASP.NET Web API 2 操作方法:

[System.Web.Http.HttpPost]
public HttpResponseMessage Create(HttpRequestMessage req)
{
   //...

   if (success)
      return Request.CreateResponse(HttpStatusCode.Created);

   return CreateErrorResponse(HttpStatusCode.BadRequest, "you done bad");
}
Run Code Online (Sandbox Code Playgroud)

直到我做了“某事”,一旦出错,它就会返回 http 400,并带有自定义错误文本“you did bad”。这就是预期的结果。

它不再返回自定义文本;它只是返回标准的“错误请求”。一直在试图了解是什么改变导致了这种情况的发生。

所以我尝试:

var response = new { message = "you done bad" };
return Request.CreateResponse(HttpStatusCode.BadRequest, response);
Run Code Online (Sandbox Code Playgroud)

相同的结果。

然后我创建了一个新的、干净的 Web API 项目,并得到了我期望的结果。

我是如何破坏我的项目的?

asp.net asp.net-mvc asp.net-web-api asp.net-web-api2

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

为什么Apple不能使私有API无法访问?

如果Apple不希望开发人员在iPhone SDK中使用私有API,为什么他们不会使用与C#的"内部"关键字相当的Objective-C来标记类和/或方法?如果API分布在多个二进制文件中,Apple可以将它们重构为专用的私有API二进制文件,以使它们更容易.

iphone ipod-touch iphone-privateapi

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