04 2015 档案
摘要:(此文章同时发表在本人微信公众号“dotNET每日精华文章”) 今天推荐的文章对Azure DocumentDB和MongoDB的进行了比较,也给出了一些使用建议。 我想很多朋友都应该知道Azure,不过估计也有很多人不知道微软还推出了自己的NoSQL数据库产品。当然这个产品仅限以PaaS的方式来在Azure中提供。DocumentDB去年秋天开始预览,这个正式上线(按照Azure的说法是Ge...
阅读全文
摘要:(此文章同时发表在本人微信公众号“dotNET每日精华文章”) 今天推荐的文章比较技术化也比较简单,但是对于一些初学者而言,可能也是容易搞混的概念:就是如何理解DTO、值对象和POCO之间的区别。 所谓DTO就是数据传输对象(Data Transfer Object),POCO就是简单CLR对象(Plain Old CLR Object),概念来源于Java中的POJO;不过值对象(Value...
阅读全文
摘要:(此文章同时发表在本人微信公众号“dotNET每日精华文章”) 上个月微软发布了一个插件,可以让Visual Studio一秒变身最强大的Node.js开发工具。现在源代码移到了GitHub上,还提供了Azure虚拟机镜像方便你尝鲜。 Visual Studio虽然一直被称之为最强大的IDE,但是口碑和使用者也大都局限于微软技术的开发人员。而随着微软对开源和第三方技术的重视,微软也在VS中提供...
阅读全文
摘要:(此文章同时发表在本人微信公众号“dotNET每日精华文章”) Azure Automation是Azure内置的一项自动化运维基础功能,微软为了让大家更快上手使用这项功能,特意推出了一本免费电子书供大家下载阅读。 随着Azure在各国的不断落地和推广,微软也加大了Azure技术的布道工作。最近微软就开始发布一套名为“微软Azure基础(Microsoft Azure Essentials)”...
阅读全文
摘要:(此文章同时发表在本人微信公众号“dotNET每日精华文章”)如果你已经在用Resharper这个编程神器(机器杀手)的话,那么为了进一步提高工作效率熟悉它的一些特殊特性和快捷键那是必须的。Resharper是JetBrains出品的一款Visual Studio插件,它的强大是人所共知的,有了它V...
阅读全文
摘要:今天推荐的其实是一个Github开源项目,不过这个开源项目是专门介绍C# 6的最新特性,并给出了示例代码。 我们知道,微软即将发布Windows 10和Visual Studio 2015,在VS2015中会带有最新版本的C# 6和VB 14。我想大家前期应该已经或多或少的对C# 6的一些新特性有所了解了。 在今天推荐的这个页面(或者说是网站中),Robert MacLean 给出了一系列博文...
阅读全文
摘要:之前谈到“TypeScript的崛起”,今天推荐的文章又再次支持了这一观点——Xamarin Studio也开始支持TypeScript的开发。 一个语言是否能够崛起,很重要的一个方面就是开发工具的支持。Visual Studio的支持自然不在话下,且微软最近也发布了TypeScript 1.4的工具包。而WebStorm之前也支持了TypeScript的开发。 Xamarin Studio对...
阅读全文
摘要:今天推荐的文章其实是微软的一篇官方公告,宣布其即将发布的一个支撑高可用高伸缩云服务的框架——Azure Service Fabric。 前两天,微软Azure平台的CTO Mark Russinovich在Azure的官方博客上发表了一篇公告,宣布微软在上个月发布Azure App Service后即将发布Azure Service Fabric这个框架。首先要注意的一点是,此Fabric非之前...
阅读全文
摘要:今天推荐的是我一直以来都在关注的一个开源的OpenID Connect/OAuth 2.0服务框架——IdentityServer3。其支持完整的OpenID Connect/OAuth 2.0标准,使用它就可以轻易地搭建一个单点登录服务器。 说是一直关注,是因为1年前,要为一个平台搭建一个OAuth 2.0服务器,当时由于IdentityServer3还处于开发阶段,核心还不稳定,扩展功能也不...
阅读全文
摘要:今天推荐的文章会谈到一些让你工作更轻松的开源.NET函数库。 即使业界有时候认为.NET开源社区不太健康,很多开发团队都更多依赖于微软提供的东西来开发。不过最近在.NET世界中还是诞生了一些优秀和有意思的开源函数库。 thomasvm就在他的博文中推荐了一些比较有代表性的开源函数库。这些函数库都是解决一些比较通用的问题,具备良好的文档,并非是一个强制你遵循某种规则和代码结构的框架,可以很好地嵌...
阅读全文
摘要:DevOps是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。在DevOps的整个流程中,使用一些开源工具可以促进开发与运维之间的沟通,有利于项目的管理,甚至可以达到事半功倍的效果。 虽然很早就接触过持续交付和DevOps的概念,不过最近又重新重点关注起来。却发现一个好东西——Richard Kraaijenhagen做了一个...
阅读全文
摘要:控制反转(IoC,Inversion of Control)是由Martin Fowler总结出来的一种设计模式,用来减少代码间的耦合。一般而言,控制反转分为依赖注入(Dependency Injection)和依赖查找(Dependency Lookup)。大家用的更多的是依赖注入。 提供控制反转能力的框架通常也称之为IoC容器。在.NET世界中有各种各样的IoC容器,比较著名的就是来源于微软...
阅读全文
摘要:Azure Mobile Services(移动服务)是微软在Azure平台中提供的一种跨平台的移动应用后端服务,即移动后端即服务。支持.NET和JavaScript(Node.js)写后端代码;支持各种主流的前端平台,包括iOS、Android、Windows、HTML。提供了单点登录,脱机同步,访问内部数据,推送提醒等功能;也能根据需要自动伸缩。从而让开发移动应用后端服务变得非常简单。 虽然...
阅读全文
摘要:今天继续昨天的话题——单元测试,不过是在ASP.NET 5中的单元测试。 在当前的Visual Studio 2015 CTP6中,MSTest是不支持对ASP.NET 5项目进行单元测试的。因而,要对ASP.NET 5进行单元测试(或集成测试),就需要引入其它测试框架,比如XUnit.NET。 引入XUnit.NET很简单,就是添加XUnit.NET的Nuget包(在package.json...
阅读全文
摘要:今天推荐的文章比较技术细节,谈到的是如何在单元测试过程中模拟日期或时间的变化所导致的业务处理逻辑。这个问题,初看起来比较简单,但是解决起来还是相对复杂。 本文的作者Jerrie Pelser最近遇到这样一个问题,需要定期检查用户订阅情况是否到期,并在到期前的一周、3天和1天内给用户发送提醒邮件。理所当然数据访问组件和邮件发送组件可以mock,那么日期和时间要如何处理呢? 作者简单介绍了几种可选...
阅读全文
摘要:今天推荐的是一个系列文章,让读者阅读完成后可以对Azure Blob Storage的开发有一个全面的了解,可谓是从入门到精通。 Azure在最初的版本里面就提供了非结构化数据的存储服务,也即Blob Storage。其是Azure中非常重要和基础的一项服务,支撑着很多其他服务的运行(比如虚拟机等)。前不久Azure出现故障,就是Blob Storage导致的。 Robin Shahan(女程...
阅读全文
摘要:今天推荐的是一本由微软出版社发布的免费电子书,涉及的话题是如何在Visual Studio Online中基于敏捷的思想来管理开源项目。本书的几位作者(自称ALM领域的游侠),给大家分享了在一个敏捷的、透明的、简单的、互信的环境下,管理需求和交付成果的最佳实践。这本书适合那些希望从“狗食”经历和软件...
阅读全文
摘要:今天推荐的是一个系列文章,讲述了如何使用ASP.NET 5来开发AngularJS应用,一共7篇文章。 在Visual Studio 2015中由于优化了项目结构,优化了前端JS框架的引用方式,所以开发AngularJS这样的应用就更加方便了。 这个讲述如何使用ASP.NET 5来开发AngularJS应用的系列文章,一共分为7篇,分别介绍了: 配置Grunt、Uglify和AngularJS。...
阅读全文
摘要:今晚由于要忙于其他事情,就简单的给大家推荐一个第三方组件库。特别注明:这是我义务为这家公司打广告。毕竟我从他们公司收获了很多知识。 Syncfusion是一家微软生态下的第三方组件/控件供应商,算是后起之秀。我最早知晓这家公司,是他们在很早的时候推出过一套免费的WP7组件包。由于他们是以WP7起家的,所以他们控件的Metro或称Windows风格做的比较漂亮。后来,我对其持续关注,是之前为一个Sa...
阅读全文
摘要:今天推荐的这篇文章,讲述了如何实现和使用ASP.NET 5的中间件。 虽然在ASP.NET 5中,微软没有再强调OWIN(Open Web Interface for .NET)及其微软官方的OWIN实现Katana,但是其中涉及到一些原则和设计思想依然被ASP.NET 5以自己的方式所承载下来。比如,解耦服务器和应用程序的关系,应用程序委托,环境状态这些特性都能在ASP.NET 5中找到,且进行...
阅读全文
摘要:今天要推荐的东西不是一篇文章,而是我实际使用的武器之一——用于ASP.NET应用性能诊断的大杀器。我的武器库中的武器之前已经介绍过Hangfire了,接下来我会不断和大家分享我使用的一些函数库和工具。 通常,Web应用开发完成之后,上线之前都会做一些性能测试。那么我们能不能在开发过程中就做一些性能的监控或诊断呢?答案是肯定的。 今天要给大家介绍的工具是“Glimpse”(我称之为惊鸿一瞥)。它不仅...
阅读全文
摘要:今天推举的这篇文章,本意不是要推举文章的内容,而是据此介绍一下Simple.Data这个很有意思的类ORM工具。 现在大家在.NET开发中如果需要进行数据访问,那么基本都会使用一些ORM工具,比如微软提供的Entity Framework(现在是6.x版本,马上要发布7.0版本)或者NHibernate。当然可能有些开发人员会使用一些更轻量级的ORM工具,或者一些诸如SqlHelper的非ORM工...
阅读全文
摘要:我们知道.NET Framework 4.6即将随着Visual Studio 2015一同到来,目前依然是预览版。4.6和4,4.5,4.5.1和4.5.2是兼容的,也即安装4.6后会升级替代他们。而和3.5,2.0和1.1等会并行存在。 今天推荐的文章虽然涉及的话题是“What's new”,但是并非简单的新特性罗列。而是从3个主要方面深入阐述了一些新特性及其带来的影响。 1,.NET 4.6...
阅读全文
摘要:OData(开放数据协议,Open Data Protocol)一直是我喜欢一种的标准(OASIS 标准),它基于RESTful协议提供了一种强大的查询和编辑数据的访问接口。虽然是微软推出的,不过在诞生之初就带有开放标准和开源的基因(最开始微软就开源了OData Client的代码)。等以后有机会,我再详细介绍OData的一些知识。 之前,我所涉及的OData开发经验大都集中在对后端数据库(SQL...
阅读全文
摘要:最近微软发布了一本白皮书,谈到了一些可以和Visual Studio 2015和ASP.NET 5配合使用的JS/前端Web开发工具(比如:函数库、任务执行器、框架等)。 由于现在前端开发的生态系统在快速增长,也变得越来越复杂和庞大。所以,微软特意发布了这么一个白皮书来讲解一些可以集成到VS 2015用于ASP.NET 5开发的前端工具库。这些前端工具库,都能很好的被VS2015所支持,比如提供智...
阅读全文
摘要:Tugberk Ugurlu在其博文《Compiling C# Code Into Memory and Executing It with Roslyn》中给大家介绍了一种使用.NET下一代编译器(或称编译服务)——Roslyn的小技巧。即把C#代码编译到内存中(而非保存到文件中),并执行这些代码。 简单说来,就是先安装Microsoft.CodeAnalysis.CSharp这个Nuget包,...
阅读全文
摘要:模式匹配(Pattern Matching)是F#中非常好用的一种语言特性。估计很多人都希望在C#中能用到这样的特性。 一句话解释一下模式匹配就是:创建一个函数可以接受和处理不同类型的表达式(包括不同参数及类型)。比如你写了一个名为format的函数,可以处理表达式“x∗(1+2)”中的变量、常量、加法和乘法。 Tomas Petricek在他的博文《Pattern matching in a...
阅读全文
摘要:所谓多模型就是在一个数据库中包含两个不同模型,或者换句话说就是两个不同DbContext的数据都放到同一个数据库中。这里的多模型不是指多租户的数据库(有谁知道EF很好处理多租户数据库的方案,可以联系我来分享给大家),也不支持跨模型共享数据。 Julie Lerman在MSDN Magazine上发表了名为《EF6 Code First Migrations for Multiple Models》...
阅读全文
摘要:今天要讨论的话题是TypeScript。之前在微博上转载过一篇《The Rise of TypeScript?》的文章,今天来谈一下我的感想。 很多朋友应该都了解,TypeScript是微软推出的一个开源语言,用于开发大型JS应用程序。其作者是大名鼎鼎的C#之父Anders Hejlsberg。所以从它发布beta之初,我就持续在关注。 最近发生的一件事情——Angular团队打算使用TypeSc...
阅读全文
摘要:今年1月31日,在微软的MVP 2015社区大讲堂上,我给大家分享了一个演讲:在ASP.NET应用中执行后台任务。其中介绍了三种技术的应用:QueueBackgroundWorkItem、Hangfire和Azure WebJobs。当时由于时间关系,对三者都是简要介绍。今天想和大家着重介绍下Hangfire。 Hangfire是一个开源且商业免费使用的工具函数库。可以让你非常容易地在ASP.N...
阅读全文