摘要:
代码契约(Code Contract):它并不是语言本身的新功能,而是一些额外的工具,帮助人们控制代码边界。代码契约之于C#,就相当于诗词歌赋之于语言。 --- C# in Depth一,概述 1.1 未引入“代码契约(特指MS代码契约)”之前的状态---“契约” • 契约:20世纪80年代,Bertand Meyer在设计Eiffel语言时就将其作为重要的部分。已有大量的计算机科学研究开始探究正式的规范说明和验证,它允许在编译时检查程序的正确性,不过契约的作用还不止于此。 •契约编程的核心理念是将API的需求和承诺与实现相分离。 •契约约定比文档约定方式更“同步”一些。 ... 阅读全文
posted @ 2013-06-18 17:59
HackerVirus
阅读(855)
评论(0)
推荐(0)
摘要:
T-SQL 临时表、表变量、UNION这次看一下临时表,表变量和Union命令方面是否可以被优化呢?阅读导航一、临时表和表变量二、本次的另一个重头戏UNION命令一、临时表和表变量很多数据库开发者使用临时表和表变量将代码分解成小块代码来简化复杂的逻辑。但是使用这个的后果就是可能带来性能的损害1.对I/O子系统的影响(存储区域网络SAN或逻辑存储),这是由于增加了页和页I/O闩锁等待,这样等待被认为是最差的等待,这也可能会增加临时数据库的密集竞争进而导致高分配请求,最后可能出现全局分配映射页(GAM)、共享全局映射页(SGAM)或可用空间(PFS)瘫痪。全局分配映射页(Global Alloca 阅读全文
posted @ 2013-06-18 17:58
HackerVirus
阅读(277)
评论(0)
推荐(0)
摘要:
(BST&AVL&红黑树简单介绍)前言: 节主要是给出BST,AVL和红黑树的C++代码,方便自己以后的查阅,其代码依旧是data structures and algorithm analysis in c++ (second edition)一书的作者所给,关于这3中二叉树在前面的博文算法设计和数据结构学习_4(《数据结构和问题求解》part4笔记)中已经有所介绍。这里不会去详细介绍它们的实现和规则,一是因为这方面的介绍性资料超非常多,另外这3种树的难点都在插入和删除部分,其规则本身并不多,但是要用文字和图形解释其实还蛮耗时的。所以,我们在看教程时,主要是要抓住这几种树的思 阅读全文
posted @ 2013-06-18 17:56
HackerVirus
阅读(463)
评论(0)
推荐(0)
摘要:
一步步实现自己的框架系列(四):页面与页面服务的创建 上一篇已经把我们的基础通信做好了,接下来就开始创建页面与页面服务,首先来看下我们页面与页面服务的接口定义,一目清晰了然。页面接口的定义: public interface IPage { string InstanceId { get; } bool IsPageServiceCreated { get; } ICoreClient CoreClient { get; } /// <summary> /// 初始化页面 /// </summary>... 阅读全文
posted @ 2013-06-18 17:54
HackerVirus
阅读(289)
评论(0)
推荐(0)
摘要:
MSBuild入门MSBuild是什么?MSBuild全称(Microsoft Build Engine),是用来生成.NET程序的平台。您可能不知道它,但是如果您在使用VS做开发,那么一定时时刻刻在使用它。因为是它在背后为你管理生成你的项目文件。当新建一个项目时,注意下项目文件夹中的*.*proj文件就是为MSBuild提供的,这是个文本文件,基于XML格式,里面包含有项目所包含的文件,生成配置,输出配置等信息。当把一个文件或者图片等添加到项目中,就会在这里添加一个描述,反之则删除一个描述信息;在项目属性页所做的配置也会在这里存储。为何去了解MSBuild想去了解这个源于以前学WPF时的疑惑 阅读全文
posted @ 2013-06-18 16:00
HackerVirus
阅读(2161)
评论(0)
推荐(0)
摘要:
Linux并发模型Linux并发模型 目前可以实现并发程序的方法有Apache模型(Process Per Connection,简称PPC),TPC(Thread PerConnection)模型,以及select模型和poll模型、Epoll模型。各种模型优缺点 Apache模型和TPC模型是最容易理解的,Apache模型在并发上是通过多进程实现的,而TPC模型是通过多线程实现的,但是这种方式在大量进程/线程切换时会造成大量的开销。 select模型是通过一种轮询机制来实现的。需要注意:Socket数量限制:该模式可操作的Socket数由FD_SETSIZE决定,内核默认32*32=... 阅读全文
posted @ 2013-06-18 10:27
HackerVirus
阅读(250)
评论(0)
推荐(0)
摘要:
实现控制器翻转与依赖注入Spring.netIOC:Invasion of Control,控制器翻转,名字由英文翻译过来就是这个意思了,其实用通俗的话来说就是:将创建对象的职责交给控制器来做,这个控制器就是spring了DI:依赖注入,通俗点说就是给IOC反射出来的对象的属性赋默认值Spring.net的好处:将层与层之间完全的解耦,也就是说,在我的ui层完全不需要通过new的方式或者工厂的方式来获得一个对象了,只需要配置下xml文件就可以实现给对象赋值了、Spring.net配置步骤首先需要的是引用一些程序集,程序集在这个目录下Spring.Net\Spring.NET-2.0.0-M1\ 阅读全文
posted @ 2013-06-18 10:26
HackerVirus
阅读(520)
评论(0)
推荐(0)
摘要:
构建一个真实的应用电子商务SportsStore(十)我们现在还需要为管理员提供一个途径,使他能方便的管理网站的商品目录,这也是所有网站都需要的功能,常用到了几乎所有开发人员都要开发这种功能的地步,为了简化这种重复开发、又没有技术含量的工作,VS的设计和开发者们也试图通过MVC框架来自动生成这些功能,帮助开发人员,这也是我们开发这个管理后台的主要目的---学习如何通过MVC生成一个具有CRUD功能的管理模块。创建CRUD Controller我们将会创建一个新的controller去处理administration功能.右击SportsStore.WebUI工程的Controllers文件夹并 阅读全文
posted @ 2013-06-18 10:20
HackerVirus
阅读(233)
评论(0)
推荐(0)
摘要:
jQuery.fn.attr与jQuery.fn.propjQuery.fn.attr、jQuery.fn.prop的区别假设页面有下面这么个标签,$('#ddd').attr('nick')、$('#ddd').prop('nick')分别会取得什么值?<div id="test" nick="casper" class="dddd"></div>没什么关子好卖,答案如下:$('#test').attr('nick' 阅读全文
posted @ 2013-06-18 10:17
HackerVirus
阅读(296)
评论(0)
推荐(0)
摘要:
用Pomelo 搭建一个简易的推送平台前言实际上,个人感觉,pomelo 目前提供的两个默认sioconnector和hybridconnector使用的协议并不适合用于做手机推送平台,在pomelo的一份公开ppt里面,有提到过, 网易的消息推送平台是基于pomelo开发的 (一个frontend 支持30w 长连接,消耗了3g 内存,如果我没记错数据应该是这样),不过,这里用的前端(frontend)实现的是基于MQTT协议,我估计这个基于MQTT协议实现的frontend,基本不可能开源出来.这里只是说,默认提供的frontend不适合用于构建大型的推送平台(c10m规模的),一般而言( 阅读全文
posted @ 2013-06-18 10:13
HackerVirus
阅读(360)
评论(0)
推荐(0)
浙公网安备 33010602011771号