Fork me on GitHub
摘要: 希望对Windows上的.NET开发人员顺利跨入Linux 的Mono平台开发提供帮助。对于Linux平台上的Mono开发人员也有借鉴意义。平时工作中我主要使用的RedHat系的CentOS,整理的dotNET跨平台研究的相关文档,主要针对的Linux 发行版是CentOS 6和 7,主要是在CentOS平台上进行dotNET跨平台开发的相关文档。将整理的文档放在Github: https://github.com/geffzhang/opendotnet 希望大家能够一起来完善这方面的文档。阅读全文
posted @ 2015-07-27 05:42 张善友 阅读(2314) 评论(9) 编辑
摘要: 写下本文纪念下10年的历程和微软MVP的攻略手册,希望能为想成为MVP的你提供指引。阅读全文
posted @ 2015-05-18 06:30 张善友 阅读(7726) 评论(50) 编辑
摘要: 一则新闻《软件服务提供商Xamarin融资1200万美元》,更详细的内容可以看Xamarin的官方博客Xamarin raises $12M to help you make better apps faster →。这篇新闻里告诉了我们目前Mono的用户规模“使用Xamarin软件的应用开发者已经超过15万,其中付费用户约为7500名。在Xamarin的客户中,还包括一些知名的企业,如美国国家仪器(National Instruments)和数字音乐订阅服务商Rdio等”。一直关注和研究Mono项目,今天把平常自己写的和园子里同学写的Mono的相关文章整理了一下,发现从2011年开始已经有非常的多人开始在项目中使用Mono,这里列一下这么多年来的园子里的相关博客内容和大家分享阅读全文
posted @ 2012-07-28 11:08 张善友 阅读(27088) 评论(72) 编辑
摘要: 不可变集合,顾名思义就是说集合是不可被修改的。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。为什么要用immutable对象?immutable对象有以下的优点:对不可靠的客户代码库来说,它使用安全,可以在未受信任的类库中安全的使用这些对象线程安全的:immutable对象在多线程...阅读全文
posted @ 2015-09-05 09:22 张善友 阅读(257) 评论(0) 编辑
摘要: 超时机制和断路器能够很好的保护我们的服务,不受依赖服务不可用的影响太大,具体可以参看文章《 使用熔断器设计模式保护软件》。然而具体实现这两个模式还是有一定的复杂度的,所幸 Netflix 开源的 Hystrix框架 帮我们大大简化了超时机制和断路器的实现,Hystrix:供分布式系统使用,提供延迟和容错功能,隔离远程系统、访问和第三方程序库的访问点,防止级联失败,保证复杂的分布系统在面临不可避免的失败时,仍能有其弹性。在Codeplex上有一个.NET的移植版本https://hystrixnet.codeplex.com/。阅读全文
posted @ 2015-08-24 06:15 张善友 阅读(548) 评论(1) 编辑
摘要: 微软已经发布 Windows Server 2016 和 System Center 2016 第三个技术预览版,已经提供下载。Windows Server 2016 技术预览版第三版也是首个包括了容器技术的支持的版本,也提供了 Nano Server 和数据中心增强的功能。Windows Serv...阅读全文
posted @ 2015-08-20 21:37 张善友 阅读(295) 评论(0) 编辑
摘要: Akka.NET 是Java/Scala 流行框架Akka的一个 .NET 开源移植。可用于构建高并发,分布式和容错事件驱动的应用在 .NET 和 Mono 平台之上。Akka.NET 经过一年多的努力,发布 1.0 正式版,最新版本是1.0.4 ,具体参见 https://github.com/akkadotnet/akka.net/releases !Akka.NET 1.0 已经支持Mono...阅读全文
posted @ 2015-08-16 07:47 张善友 阅读(497) 评论(3) 编辑
摘要: YAML 官方网站称 YAML 是"一种所有编程语言可用的友好的数据序列化标准"。YAML Ain't Markup Language,和GNU一样,YAML是一个递归着说"不"的名字。不同的是,GNU对UNIX说不,YAML说不的对象是XML。YAML不是XML。 为什么不是XML呢?因为:YAM...阅读全文
posted @ 2015-08-15 22:30 张善友 阅读(641) 评论(1) 编辑
摘要: 随着大数据时代的到来,分布式是解决大数据问题的一个主要手段,随着越来越多的分布式的服务,如何在分布式的系统中对这些服务做协调变成了一个很棘手的问题。今天我们就来看看如何使用C# ,利用开源对分布式服务做协调。在对分布式的应用做协调的时候,主要会碰到以下的应用场景:业务发现(service disco...阅读全文
posted @ 2015-08-09 11:35 张善友 阅读(1095) 评论(4) 编辑
摘要: Windows 更新清理工具是一款效果非常显著的Windows7、Windows8操作系统清理优化工具!经常安装系统的朋友相比有所体会,刚刚安装完成的Win7、Win8其实占的空间并不大,去掉页面文件和休眠文件后,真正的系统只几个G而已,但如果你给系统升级了补丁后,你会发现系统所需要占用的空间直线上升!轻松突破10G的门槛!加上休眠文件和页面文件,本来预留给系统的30G空间马上变得也不富裕了。 ...阅读全文
posted @ 2015-08-08 15:31 张善友 阅读(402) 评论(1) 编辑
摘要: 熔断器模式在内部采用状态机的形式,使得对这些可能会导致请求失败的远程服务进行了包装,当远程服务发生异常时,可以立即对进来的请求返回错误响应,并告知系统管理员,将错误控制在局部范围内,从而提高系统的稳定性和可靠性。阅读全文
posted @ 2015-08-03 06:21 张善友 阅读(1150) 评论(4) 编辑
摘要: Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更"一站式",内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)...阅读全文
posted @ 2015-08-02 09:22 张善友 阅读(308) 评论(0) 编辑
摘要: 希望对Windows上的.NET开发人员顺利跨入Linux 的Mono平台开发提供帮助。对于Linux平台上的Mono开发人员也有借鉴意义。平时工作中我主要使用的RedHat系的CentOS,整理的dotNET跨平台研究的相关文档,主要针对的Linux 发行版是CentOS 6和 7,主要是在CentOS平台上进行dotNET跨平台开发的相关文档。将整理的文档放在Github: https://github.com/geffzhang/opendotnet 希望大家能够一起来完善这方面的文档。阅读全文
posted @ 2015-07-27 05:42 张善友 阅读(2314) 评论(9) 编辑
摘要: 安装之前先要看看自己的系统支不支持,具体的可以看:https://www.visualstudio.com/en-us/visual-studio-2015-system-requirements-vs.aspx,直接到微软官方网站进行下载:https://www.visualstudio.com/...阅读全文
posted @ 2015-07-23 22:57 张善友 阅读(875) 评论(2) 编辑
摘要: Disque是Redis之父Salvatore Sanfilippo新开源的一个分布式内存消息代理。它适应于"Redis作为作业队列"的场景,但采用了一种专用、独立、可扩展且具有容错功能的设计,兼具Redis的简洁和高性能,并且用C语言实现为一个非阻塞网络服务器。 Redis的作者Salvatore Sanfilippo(网名Antirez)发表的一篇博客文章,介绍了自己几个月以来在晚上和周末开发...阅读全文
posted @ 2015-07-23 21:36 张善友 阅读(476) 评论(3) 编辑
摘要: Windows 10 RTM正式版要7月29日发布,微软的另一个重磅软件Visual Studio 2015已经率先发布,今天如期放出了正式版本。Visual Studio 2015包括许多新功能和更新,如通用Windows应用开发工具、面向iOS、Android、Windows的跨平台移动开发工具(包括Xamarin、Apache Cordova、Unity)、可移植C++库、适用于Androi...阅读全文
posted @ 2015-07-21 06:03 张善友 阅读(13061) 评论(43) 编辑
摘要: 早上在微博上看到郭安定老师的微博,我在微博上也改了下发了一条,萌生写这篇文章。 已故的中国社会学家费孝通认为文化应包含三个层次:第一个层次是生产、生活的工具,国家社会用什么样的器物、工具来生产、生活。比如中国人用筷子、西方人用刀叉、印度人用手抓,所用的器物不一样。这当然也包括国家打仗时用什么,用洋枪大炮、还是用大刀长矛?这是器物层次;第二是组织层次,按照费先生的定义,包括这个社会里面怎么把人...阅读全文
posted @ 2015-07-12 11:14 张善友 阅读(1852) 评论(7) 编辑
摘要: 在Visual Studio 2015 RTM和Windows 10正式发布之前,微软把开源.NET升级到了beta5,带来了一些增强和改变。和Visual Studio 2015 RC一起安装的ASP.NET 5运行时是beta4,前几天微软发布了这个运行时的beta5版本。整个升级包括如下几个方...阅读全文
posted @ 2015-07-07 20:48 张善友 阅读(528) 评论(0) 编辑
摘要: ASP.NET 5 在项目结构上做了很大的改变,我们以前熟悉的目录结构与项目文件内容都不太一样了,本篇文章带大家了解 ASP.NET 5 到底跟以前有哪些不一样的地方。我们先用 Visual Studio 2015 建立一个全新的 ASP.NET 5 网站项目,打开VS2015,创建Web项目,.n...阅读全文
posted @ 2015-06-21 07:27 张善友 阅读(1667) 评论(3) 编辑
摘要: ASP.NET 5 引入了一个新型的运行时,让我们可以现场交付模式组合式构建应用程序,而不依赖于宿主机上的.NET框架。这种新模式为我们提供了命令行工具(DNVM、DNX、DNU)用于管理我们的.net 版本,依赖的库和运行环境,我们可以不需要Visual Studio,只需要一个文本编辑器和命令行...阅读全文
posted @ 2015-06-19 23:32 张善友 阅读(1361) 评论(3) 编辑
摘要: TinyFox 是一款支持OWIN标准的WEB应用的高性能的HTTP服务器,是Jexus Web Server的"姊妹篇"。TinyFox本身的功能是html服务器,所有的WEB应用,通过加载含有一个OwinMain方法的"应用程序适配器"或"插件"实现,TinyFox与应用程序之间的数据交流格式是...阅读全文
posted @ 2015-06-13 19:29 张善友 阅读(2957) 评论(23) 编辑
摘要: 微软北京时间2015.5.20 在其 .NET Foundation GitHub 开源项目页中开放了 WCF 分布式服务框架的代码。WCF突然之间成为一个热门话题,在各大网站上都有不同的报道:dotnetfoundation.org、news.ycombinator.com、infoq.com。在 Hacker News 上,这则消息一度成为头条,然而内容下的评论大多偏向负面。很多开发者都抱怨现...阅读全文
posted @ 2015-05-21 21:39 张善友 阅读(1443) 评论(2) 编辑
摘要: 写下本文纪念下10年的历程和微软MVP的攻略手册,希望能为想成为MVP的你提供指引。阅读全文
posted @ 2015-05-18 06:30 张善友 阅读(7726) 评论(50) 编辑
摘要: 概述在这篇文章中我们将讨论如何在CentOS 7操作系统,安装 jexus、 mono 和 配置 jexus,因此它将能够在这种环境中运行一个asp.net mvc 4 应用。这篇文章是描述如何在 Linux/Unix 环境中使用Mono运行. NET的应用程序的一部分。安装Mono 4首先你需要有...阅读全文
posted @ 2015-05-17 16:40 张善友 阅读(2185) 评论(10) 编辑
摘要: ASP.NET Web API 2.1内建支持XML、Json、Bson、form-urlencoded的MiME type,今天重点介绍下Bson。BSON是由10gen开发的一个数据格式,目前主要用于MongoDB中,是MongoDB的数据存储格式。BSON基于JSON格式,选择JSON进行改造...阅读全文
posted @ 2015-05-16 21:53 张善友 阅读(1064) 评论(0) 编辑
摘要: 近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版采纳了 systemd。本文简要介绍了这三种 init 系统的使用和原理,每个 Linux 系统管理员和系...阅读全文
posted @ 2015-05-16 17:26 张善友 阅读(414) 评论(0) 编辑
摘要: JustDecompile是Telerik公司推出一个免费的.net反编译工具,支持插件,与Visual Studio 集成,能够创建Visual Studio project文件。JustDecompile与Reflector相比的话,个人更喜欢JustDecompile,因为他免费,而且对于一些...阅读全文
posted @ 2015-05-09 20:42 张善友 阅读(2101) 评论(7) 编辑
摘要: ReactJS通常也被称为"React",是一个刚刚在这场游戏中登场的新手。它由Facebook创建,并在2013年首次发布。Facebook认为React在处理SPA问题上可以成为Angular的替代品,因此如果你认为Angular和React这两种框架是竞争对手,那你的理解就对了。不过,与Ang...阅读全文
posted @ 2015-05-03 08:18 张善友 阅读(3503) 评论(10) 编辑
摘要: Mono 4.0 已经发布,二进制包已经准备好,具体的发布说明参见:http://www.mono-project.com/docs/about-mono/releases/4.0.0/. 今天在Mac上更新了Mono 4 和Xamarin Studio 5.9。Mono 4.0 已经完整支持ASP.NET MVC 5了。之前的Mono 3.12.1 版本可以支持ASP.NET MVC 2-4,如果是要在Mono上运行ASP.NET MVC 5,建议使用Mono 4.0.1版本。阅读全文
posted @ 2015-05-02 08:51 张善友 阅读(2095) 评论(8) 编辑
摘要: 在 One ASP.NET 的架构图中,微软将 WebAPI 和 SignalR 归类到 Services 类型与 MVC、Web Forms 同列为一等公民,未来的 ASP.NET 5 尽管还在beta阶段,由它的架构图中可以发现原来就非常相似的 MVC 与 WebAPI 统一合并到 MVC 的大框架中了,而 SignalR 在未来依然在 Services 扮演着重要的角色。 SignalR ...阅读全文
posted @ 2015-03-27 13:50 张善友 阅读(1880) 评论(2) 编辑
摘要: 在dotnetconf 2015会宣布了4.12-14 在波特兰召开 .NET Fringe http://dotnetfringe.org/ ,中文社区很少有相关的介绍,本文向大家介绍下这个.NET社区的重大事件,今年春节以来,我本着建设.NET 社区的想法开始运营微信公众号opendotnet,...阅读全文
posted @ 2015-03-22 08:48 张善友 阅读(2152) 评论(10) 编辑
摘要: 今天,微软召开了“.Net 社区虚拟大会”(dotnetConf),包括微软的 Scott Hanselman 和 Xamarin 的 Miguel De Icaza 在内的知名人士,都将在 Channel 9 的直播上与大家见面。这次大会已经结束,大家可以通过在线视频继续观看,今年的dotnetc...阅读全文
posted @ 2015-03-20 13:49 张善友 阅读(965) 评论(3) 编辑
摘要: 去年 11 月的时候,微软开源了 .NET CoreFX,然后是今年 2 月份的 .NET CoreCLR。自那时以来,已经有大约 3500 人在 GitHub 上进行了提交,而且贡献者的人数还在持续增长——他们不仅来自社区、还来自微软内部。今天,微软召开了“.Net 社区虚拟大会”(dotnetConf),包括微软的 Scott Hanselman 和 Xamarin 的 Miguel De ...阅读全文
posted @ 2015-03-19 13:33 张善友 阅读(2606) 评论(10) 编辑
摘要: Mono团队支持的最低版本的Mono是2.4,属于即将退役的Ubuntu 10.04 LTS版本。可以看出Mono的产品生命周期管理和微软一样的规范, 有规范的产品生命周期管理是客户放心使用你的产品的保证,表明Mono产品开始进入成熟期了。阅读全文
posted @ 2015-03-14 08:53 张善友 阅读(1137) 评论(0) 编辑
摘要: 在国外.NET社区有一个很火的话题是Packet(https://fsprojects.github.io/Paket/index.html ),它本质上是Nuget 之外的另一种方式管理.NET项目阅读全文
posted @ 2015-03-01 07:45 张善友 阅读(2058) 评论(3) 编辑
摘要: GRPC基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。阅读全文
posted @ 2015-02-27 21:36 张善友 阅读(2669) 评论(6) 编辑
摘要: 微软发布ASP.NET 5 支持在Windows、Mac和Linux上构建程序,Visual Studio 2015 CTP6(社区预览版)现已发布了。感兴趣的朋友们可以登录官网下载【http://www.visualstudio.com/downloads/visual-studio-2015-c...阅读全文
posted @ 2015-02-25 18:09 张善友 阅读(3058) 评论(1) 编辑
摘要: 经常碰到有同学对.NET跨平台存在各种疑惑和误解,原因是什么呢?当然我是知道.NET的跨平台不是问题,而且微软2014年的努力可圈可点,而且还有很多人对.NET的前景感到困惑。春节期间突然明白了,这就是皮裤原理呀,微信红包的火爆让我想起很有必要运营一个微信公众号:dotNET跨平台的话题,让开源圈了...阅读全文
posted @ 2015-02-24 11:13 张善友 阅读(4535) 评论(24) 编辑
摘要: 介绍NSQ是一个实时的分布式消息平台。它的设计目标是为在多台计算机上运行的松散服务提供一个现代化的基础设施骨架。这篇文章介绍了 基于go语言的NSQ的内部架构,它能够为高吞吐量的网络服务器带来 性能的优化,稳定性和鲁棒性。可以说, 如果不是因为我们在bitly使用go语言,NSQ就不会存在。这里既会...阅读全文
posted @ 2015-02-19 17:05 张善友 阅读(828) 评论(0) 编辑
摘要: Orleans是微软推出的类似Scala Akka的Actor模型,Orleans是一个建立在.NET之上的,设计的目标是为了方便程序员开发需要大规模扩展的云服务, 可用于实现DDD+EventSourcing/CQRS系统。传统的三层体系结构包括无状态的前端,无状态的中间层和存储层在可伸缩性方面是...阅读全文
posted @ 2015-02-17 22:30 张善友 阅读(912) 评论(0) 编辑
摘要: 随着微软的.NET开源的推进,现在在.NET的实现上有了三个.NET Framework,Mono和.NET Core。经常被问起Mono的稳定性怎么样,后续Mono的前景如何,要回答这个问题就需要搞清楚这三个.NET 实现之间的关系和将来如何演进。到目前为止(2015.2.17),微软在Windo...阅读全文
posted @ 2015-02-17 12:54 张善友 阅读(2198) 评论(2) 编辑
摘要: Microsoft开源了Bond,一个跨平台的模式化数据处理框架。Bond支持跨语言的序列化/反序列化,支持强大的泛型机制能够对数据进行有效地处理。该框架在Microsoft公司内部的高扩展服务中得到了广泛的应用。阅读全文
posted @ 2015-02-14 12:30 张善友 阅读(1104) 评论(0) 编辑
摘要: 在早期的计算机领域,限流技术(time limiting)被用作控制网络接口收发通信数据的速率。 可以用来优化性能,减少延迟和提高带宽等。 现在在互联网领域,也借鉴了这个概念, 用来为服务控制请求的速率, 如果双十一的限流, 12306的抢票等。 即使在细粒度的软件架构中,也有类似的概念。 两种常用...阅读全文
posted @ 2015-02-08 21:53 张善友 阅读(1281) 评论(1) 编辑