摘要: 《Pro ASP.NET MVC 3 Framework》简介:作者: Adam Freeman 和 Steven Sanderson出版社: Apress; New平装: 820页语种: 英语ISBN: 1430234040声明:笔记里面按我自己的理解翻译了大部分内容,写这个笔记的目的:为了方便自己查阅,也为园友提供学习的方便。我无意侵犯作者的任何权利,仅仅为了自己学习。也希望路过的朋友不要用于任何商业目的。 第一部分 ASP.NET MVC3介绍《Pro ASP.NET MVC 3 Framework》学习笔记之一 【MVC的历程,优点,HelloWorld】《Pro ASP.NET MV阅读全文
posted @ 2012-02-07 16:30 Gabriel Zhang 阅读(11398) 评论(29) 编辑
摘要: 最近因为工作关系,需要通过HttpWebRequest去请求API,所有就写了个简单的辅助public sealed class HttpRequestHelper { private static string USER_AGENT = "Mozilla/5.0 (Window...阅读全文
posted @ 2014-10-13 20:42 Gabriel Zhang 阅读(58) 评论(0) 编辑
摘要: 1.关于分号javascript里面不强制使用分号来表示一行语句的结束,但是最好能够在写js之前,特别是在原有的js上面新增时,最好前置一个分号。避免这种情况发生:2.JavaScript类型转换3.关于===①如果类型不同则不等 ②null===null或undefined===undefine...阅读全文
posted @ 2014-06-17 20:54 Gabriel Zhang 阅读(134) 评论(1) 编辑
摘要: 系统里面常常调用服务和读写文件里面需要对发生异常,操作失败时进行Retry来尽可能程序的健壮性。最近工作中遇到了,参考了网上的资料,扩展了下。在博客里面备用下://Retry机制 public static class Retry { /// /// 重试零个参数无返回值的方法 /// /// 执行方法方法 /// 重试间隔 /// 重试次数 public static void Execute(Action action, TimeSpan retryInterval, int ...阅读全文
posted @ 2014-02-26 14:45 Gabriel Zhang 阅读(256) 评论(1) 编辑
摘要: 简介:Quartz.net是一个开源的作用调度框架,非常强大,能够通过简单的配置帮助我们定时具体的操作。相对于我们用的线程里面while(true)然后sleep来执行某个操作,应该算的上是高端,大气,上档次了。目前最新版本是2.2,新的版本里面有些方法名发生了变化,从之前的版本用过来的人应该会有体...阅读全文
posted @ 2013-11-01 23:50 Gabriel Zhang 阅读(2464) 评论(17) 编辑
摘要: Cron表达式(在Quartz.net里面会用到)由7段构成:秒 分 时 日 月 星期 年(可选)"-" :表示范围 MON-WED表示星期一到星期三"," :表示列举 MON,WEB表示星期一和星期三"*" :表是“每”,每月,每天,每周,每年等对于星期里面,SUN=1 SAT=6"/" :表示增...阅读全文
posted @ 2013-10-29 18:32 Gabriel Zhang 阅读(412) 评论(0) 编辑
摘要: 之前对xml的操作大都是通过XmlDocument对象来进行,但是这样的情况对于没有并发的是非常合适的,最近遇到了并发读写xml文件的情况。通过文件流来操作能解决大部分的并发情况,对于极端的情况会有问题。 测试方法:开两个线程读写同一个文件。主要是FileStream对象里面的三个参数FileMode,FileAccess,FileShared的枚举值选择。 class Program { private static string path = AppDomain.CurrentDomain.BaseDirectory + "cache.xml"; ...阅读全文
posted @ 2013-10-25 13:07 Gabriel Zhang 阅读(453) 评论(2) 编辑
摘要: 什么Redis? 点击这里最近要开发的一个项目是分布式缓存组件,解决参数缓存高效获取的问题。参数达到了500万级别,刚刚开始了解Redis。做设计的时候考虑到Value使用哪种类型的问题?主要面临的是使用一般的String还是使用Hash。本来直觉以为使用String的效率会高,因为Redis在Memcached的基础上升级了,扩展的Value类型应该是为了方便。没想到在效率上也有了很大的提升。测试的环境是一台Linux物理机,安装了最新版的Redis2.6. 测试数据如下:String类型的数据和Hash类型的数据各100w(前100万为String,后100万为Hash),随机取100次数阅读全文
posted @ 2013-10-10 19:01 Gabriel Zhang 阅读(257) 评论(2) 编辑
摘要: 序:实现一个基于Socket的简易的聊天室,实现的思路如下:程序的结构:多个客户端+一个服务端,客户端都是向服务端发送消息,然后服务端转发给所有的客户端,这样形成一个简单的聊天室功能。实现的细节:服务端启动一个监听套接字。每一个客户端连接到服务端,都是开启了一个线程,线程函数是封装了通信套接字,来实现与客户端的通信。多个客户端连接时产生的通信套接字用一个静态的Dictionary保存。具体的实现可以参考代码及其注释。术语理解:套接字Socket:源于Unix,为了解决传输层网络编程的问题,Unix提供了类似于文件操作的方式来完成网络编程。要实现不同的主机,不同的程序之间进行通信,必须有相应的协阅读全文
posted @ 2013-07-29 09:46 Gabriel Zhang 阅读(4212) 评论(32) 编辑
摘要: 基础知识1.进程:具有独立功能的程序在一个数据集合上一次动态的执行过程。通俗点讲就是“一个正在运行的程序”2.程序:静态的程序以文件的形式保存在磁盘上。3.操作系统的进程管理:每一个正在运行的程序都对应着一个独立的进程,当这些程序装入内存开始执行时,操作系统会为每个进程创建好相关的数据结构。由于操作系统可以同时装入多个程序,为此必须有一种方法来保证这些同时运行的程序不相互影响,不会由于一个程序出现异常而直接影响其他程序,甚至操作系统的正常运行。位于操作系统核心的“进程管理“模块负责管理并行执行的多个程序。4.操心系统的用户模式和核心模式:Windows设计了两种代码运行的环境——用户模式和核心阅读全文
posted @ 2013-07-03 07:03 Gabriel Zhang 阅读(471) 评论(0) 编辑
摘要: 背景:从两张有关联的表查询数据,A表数据量1400万,B表数据量8000万。A与B通过ID逻辑关联,没有实际的外键。B表是后来扩展出来的.问题:根据某个ID查询时超时,运行时跑不出结果。原因:使用一个or条件,条件里面有一个是A.ID=B.ID简单优化:将or条件拆开,使用unionall;将之前使用表变量的部分换成了临时表;对排序的字段加上了索引结果:在50ms内能够查询出结果,这个与之前的超时简直不能相比。感想:感谢DBAmm的帮助,让我有了这样的体验,不实际的处理(哪怕很简单的表关系)千万级的数据量,真不知道SQL语句的性能差异。实际的体验了使用or的性能居然能够差到这个地步,以后尽量避阅读全文
posted @ 2013-06-22 00:10 Gabriel Zhang 阅读(627) 评论(5) 编辑