本周的.NET ­— 1/19/2016

[原文发表地址]The week in .NET – 1/19/2016

[原文发表时间]January 20, 2016

.NET 话题:

我们上周邀请Jonathan Chambers 讲解了统一性,本周我们将会邀请Don Syme 谈论F#。

#1:NATS 客户端

微服务和物联网都需要分布式架构,这种架构对于大量的端点之间的通信是快速和可靠的。

NATS 是比较流行的基于云端的高性能消息系统,并且对于这种需求表现得很优秀。

NATS 客户端可以每秒发布超过3百万条消息(这只是在开发者的一台笔记本电脑的虚拟机中)

以下代码演示了如何在消息总线中发送一个主题为“foo”的简单对象:

using (var cnx = new ConnectionFactory().CreateEncodedConnection())

{

cnx.Publish("foo", new Company

{

Name = "Apcera",

Address = "140 New Montgomery St."

});

}

view raw NatsPublish.cs hosted with ❤ by GitHub

其他参与者可以异步订阅同一主题并处理对象:

using (var cnx = new ConnectionFactory().CreateEncodedConnection())

{

using (cnx.SubscribeAsync(

"foo",

(sender, args) => {

var company = (Company)args.ReceivedObject;

Console.WriteLine($"Name: {company.Name}, Address: {company.Address}");

}))

{

System.Console.WriteLine("Waiting for a message...");

Thread.Sleep(5000);

}

}

view raw

更多关于NATS客户端的资料请参考:NATS In Microsoft .NET.

#2 :语言表达式

正则表达式很难去书写,阅读和调试:

他们是简明并且权威的领域特定语言。

语言表达式是一种程序库,它使用更易于表达的语法使得书写正则表达式成为可能。

var verbEx = new VerbalExpressions()

.StartOfLine()

.Then("http")

.Maybe("s")

.Then("://")

.Maybe("www.")

.AnythingBut(" ")

.EndOfLine();

Assert.IsTrue(verbEx.Test("https://www.microsoft.com"));

view raw VerbalExpressions.cs hosted with ❤ by GitHub

你依旧在使用和运行正则表达式,但是你的代码更易读了。

VS 插件: Alive

Alive是一款非常酷的Visual Studio扩展工具,它可以在你输入代码的时候可视化的看到你的代码的影响。

image

用户群:迈阿密 .NET

Cecil Philip 于1月21日周四下午6:30在迈阿密.NET用户群谈论了依赖注入框架Autofac.晚上第二讲将会由Camilio Sanchez 讲解API集成。

.NET

ASP.NET

F#

查阅F# Weekly获取更多关于F#交流的内容。

以上是本周的全部内容。

为每周 .NET做贡献:

一如既往,如果没有大家的交流贡献,每周邮件就不会存在了,因此,我想感谢所有提供链接或者提示的人。你们也可以参加。你是否写了一篇很好的博客,或者只是读到了一篇?你是否希望其他人都了解一些很令人惊喜的贡献或者有用的程序库?我们希望能收到你的邮件并且使用它们:

每周邮件 (含未来的邮件) 也包含我在 ASP.NET’s community spotlight, F# weekly, ASP.NET Weekly, Dirk Strauss’ The Daily Six Pack, Chris Alcock’s The Morning Brew 上首次读到的消息。