本周的.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); } } 更多关于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扩展工具,它可以在你输入代码的时候可视化的看到你的代码的影响。
|