我想编写一个新的REST样式API并查看ServiceStack并且非常喜欢它.但是,我已经看到Microsoft已经发布了ASP.Net Web API项目,作为新MVC 4 beta的一部分.有没有人看过新的Web API项目?你能给出每个系统的优缺点吗?
有谁知道,如果有任何计划发展以g ++语言支持(GCC)为新的C++ AMP标准,该标准被释放最近被微软作为一个开放的规范?我看到有人已在他们的论坛上询问英特尔支持.但是我没有看到GCC的任何东西.
ConnectionFactory factory = new ConnectionFactory {HostName = "localhost"};
using (IConnection connection = factory.CreateConnection())
using (IModel channel = connection.CreateModel())
{
channel.QueueDeclare("hello", false, false, false, null);
for (int i = 0; i < 100000; i++)
{
MemoryStream stream = new MemoryStream();
var user = new User
{
Id = i
};
Serializer.Serialize(stream, user);
channel.BasicPublish("", "hello", null, stream.ToArray());
}
}
Run Code Online (Sandbox Code Playgroud)
我有上面的代码,我对线程安全感到好奇.
我不确定,但我想ConnectionFactory是线程安全的.但后来我不确定IConnection线程是否安全?我应该为每个请求创建连接吗?或者说是一个持久的连接?那怎么样IChannel?
另外,我应该将连接存储为ThreadLocal吗?或者我应该为每个请求创建一个连接?
我有一个方法
public Task<Task> DoSomeWorkOnARemoteMachine()
Run Code Online (Sandbox Code Playgroud)
这非常具有描述性,通过以下方式在远程计算机上执行某些工作:
我使用的原因Task<Task>是因为第一个Task<>是排队消息; 当在Task远程机器上完成工作时(即,当收到来自代理的消息时),内部完成.远程代理在执行工作期间捕获的任何异常都将与完成消息一起传递,并在内部Task完成时重新抛出.
要调用此方法,我使用:
await await DoSomeWorkOnARemoteMachine();
Run Code Online (Sandbox Code Playgroud)
等待消息排队等待执行作业,以及完成作业并接收任何异常.但是,如果我对是否在远程代理上完成作业不感兴趣,我可以将其称为如下:
await DoSomeWorkOnARemoteMachine();
Run Code Online (Sandbox Code Playgroud)
这不是await内心的Task.但是,内部Task(从远程代理接收消息,并重新抛出异常)仍然会在某个时刻执行.我觉得这有点浪费,我不想在没有await结果时执行它.
因此我的问题是:是否有可能Task"知道"它是否被await编辑而不是执行,如果不是,或执行一些其他代码路径(例如空Task体).
我确实意识到我可以实现的替代方案,例如传递"fire and forget"标志,或者为"fire and forget"添加重载.如果我可以在没有客户端API更改的情况下实现它,那将是很棒的
涉及实现这种远程工作执行的其他项目的答案也会很棒!
我正在使用Visual Studio将WebJob部署到Azure,但项目的构建输出文件夹中的子目录都没有复制到Azure(根据查看FTP文件夹并且由于应用程序未正确执行).有没有办法让部署复制所有文件和文件夹?
更多信息:子目录来自引用的项目,文件确实设置了"始终复制".它们确实出现在WebJob项目的输出构建目录中
更新: 所以似乎在某些时候这是固定的,现在按预期工作
队列长篇介绍......
我有一个定义的资源
http://my-awesome-product.com/api/widgets/3
Run Code Online (Sandbox Code Playgroud)
它表示一个3的小部件id.在Web API中,我将定义一个控制器来为该资源提供服务,如下所示:
public class WidgetsController : ApiController
{
public Widget Get(int id)
{
return new Widget(...);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,Widget该类可能非常大,并且希望将带宽从数据库保存到Web服务器,并且从Web服务器到客户端,我创建了几个DTO类,其中包含有限数量的整体字段Widget.例如:
public class WidgetSummary
{
public int Id { get; set; }
public string Code { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
}
public class FullWidgetForEditing
{
public int Id { get; set; }
public string Code { get; set; }
public …Run Code Online (Sandbox Code Playgroud) 运行 Docker 容器时,我想设置容器的网络,以便容器只能在主机正在侦听的 (TCP) 端口上与主机进行通信。我不希望容器能够访问互联网、同一主机上运行的其他容器或主机所连接的网络。如果我运行带有 VMWare 之类的虚拟机,我会选择“仅主机”网络选项,该选项会在来宾虚拟机和具有上述属性的主机之间创建专用网络。
我研究过使用 Docker,--net=none但我不知道该朝哪个方向配置网络来实现我的目标。TAP/TUN 似乎是可行的方法,但我希望得到一些指导
我想将具有关联货币的数字格式化为特定于语言环境的字符串。该标准.ToString("C", CultureInfo.CreateSpecificCulture("xxx"))产生错误的输出,因为它使用区域设置的货币而不是值实际代表的货币。
我正在寻找一种方法来做 JQuery Globalize 所做的事情,但是在 C# 中(见这里,下面的相关表)
语言环境
-----------------------------------------
3 个字母的货币代码 | en (英语) | de (德语) | zh(中文)
--------------- | ------------ | ----------- | ------------
美元 | 1.00 美元 | 1,00 美元 | 1.00 美元
欧元 | €1.00 | 1,00 欧元 | 1.00 欧元
人民币 | ¥1.00 | 1,00 元人民币 | ? 1.00
日元 | ¥1 | 1 ¥ | 日元 1
英镑 | 1.00 英镑 | 1,00 英镑 | 1.00 英镑
巴西雷亚尔 1.00 … c# ×4
async-await ×1
asynchronous ×1
azure ×1
c++ ×1
c++-amp ×1
docker ×1
rabbitmq ×1
servicestack ×1