对缓存的思考——提高命中率
开篇编写高效的程序并不只在于算法的精巧,还应该考虑到计算机内部的组织结构,cpu微指令的执行,缓存的组织和工作原理等。好的算法在实际中不见得有高效率,如果完全没有考虑缓存、微指令实现的话。前两篇博文局部性原理浅析介绍了程序的局部性原理,如何写出局部性良好代码。提高程序性能、何为缓存讨论了存储器层次结... ...
浅谈SQL Server中的事务日志(一)----事务日志的物理和逻辑构架
简介 SQL Server中的事务日志无疑是SQL Server中最重要的部分之一。因为SQL SERVER利用事务日志来确保持久性(Durability)和事务回滚(Rollback)。从而还部分确保了事务的ACID属性.在SQL Server崩溃时,DBA还可以通过事务日志将数据恢复到指定的时间... ...
HTTP协议详解
当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大 ...
写自己的ASP.NET MVC框架(上)
写了几篇细说之后,今天打算换换口味,还是来写代码吧。所以,这次博客将以实际的代码来展示在ASP.NET平台上开发自己的框架,我希望也能让您发现这并不是件难事。我在前面的博客【用Asp.net写自己的服务框架】中,发布了一个用ASP.NET写的服务框架,那个框架我目前仍在使用中。近来,由于时常也会有人... ...
NoSQL和MemeryCache的出现意味着传统数据库使用方式的变革吗?
故事的起源 作为软件工程专业出身的程序员,之前所接受的关于数据库的教育都是基于关系型数据库。对key-value based数据库和document-based数据库的都只是仅仅了解而已。 最近公司要做一个类似电商的系统,我来负责数据库的设计和接口的提供。当然,我们使用的数据库也是传统的关系型数据库... ...
客户端与服务器持续同步解析(轮询,comet,WebSocket)
在B/S模型的Web应用中,客户端常常需要保持和服务器的持续更新。这种对及时性要求比较高的应用比如:股票价格的查询,实时的商品价格,自动更新的twitter timeline以及基于浏览器的聊天系统(如GTalk)等等。由于近些年AJAX技术的兴起,也出现了多种实现方式。本文将对这几种方式进行说..... ...
C#综合揭秘——细说多线程(上)
本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发。
其中委托的BeginInvoke方法以及回调函数最为常用。
而 I/O线程可能容易遭到大家的忽略,其实在开发多线程系统,更应该多留意I/O线程的操作。特别是在ASP.NET开发当中... ...
Fiddler 教程
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。 阅读目录 Fiddler的基本介绍 Fiddler的官方网站: www.fiddler2. ...
挨踢项目求生法则-设计篇
一味追求所谓的优雅设计,项目可能会死的很惨。客户购买的是软件而不是你的设计。如果你在客户面前介绍你的设计如何精妙、如何OO、如何依赖注入?那客户只能当你是火星人看了,客户并不会因为你的设计如何精妙而原谅你的推迟交付和增加费用。如果为了节省时间,忽略设计或者粗略设计,项目同样很可能会死得很惨!没有想清... ...
细说 HttpHandler 的映射过程
在ASP.NET编程模型中,一个来自客户端的请求要经过一个称为管线的处理过程。在整个处理请求中,相对于其它对象来说,HttpHandler的处理算得上是整个过程的核心部分。由于HttpHandler的重要地位,我前面已经有二篇博客对它过一些使用上的介绍。【用Asp.net写自己的服务框架】中谈到了它... ...
使用 Task 简化异步编程
本文介绍了常见的 .Net 异步编程模式, 以及如何用 Task 对象包装这些异步编程模式, 并给出了一个使用 Task 对象包装异步操作, 简化代码的例子。 ...
细说 ASP.NET控制HTTP缓存
在上篇博客【细说 ASP.NET Cache 及其高级用法】中,我给大家介绍了ASP.NET Cache,这种服务端使用的缓存API 。在我们开发一个ASP.NET网站的过程中,其实有很多地方都是可以使用缓存的,只是由于ASP.NET是一种基于服务端的开发平台,自然我们也经常在服务端的代码中使用各类... ...
【ASP.Net MVC3 】使用Moq让单元测试变得更简单
Moq是一个针对.Net开发的模拟库,它的目标是让模拟以一种自然的方式与现有单元测试进行集成,使它更加简单、直观,以避免开发人员被迫重写测试或高成本的学习测试框架。 ...
sqlserver数据库大型应用解决方案总结
随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。一、负载均衡技术负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔... ...
玩转git,让git成为个人工作备份利器(即使是电脑小白也推荐学习)
前言不要把这篇文章当做给编程人员的技术文章,即使你对编程一无所知,按照这篇文章的指引一步步学习,仔细模仿,也可以很容易地学会如何去做。更重要的是,这篇文章将让你介绍如何让git成为你的工作日志,成为你的备份工具,成为你的项目管理软件。没错,git让这一切变得如此简单。背景OK,什么是git? Wik... ...
T-SQL查询高级—SQL Server索引中的碎片和填充因子
写在前面:本篇文章需要你对索引和SQL中数据的存储方式有一定了解.标题中高级两个字仅仅是因为本篇文章需要我的T-SQL进阶系列文章的一些内容作为基础. 简介 在SQL Server中,存储数据的最小单位是页,每一页所能容纳的数据为8060字节.而页的组织方式是通过B树结构(表上没有聚集索引则为堆结构... ...
C#综合揭秘——细说事务
事务是在数据层、服务层、业务逻辑层多处地方都会使用到的东西,在本篇文章将会为大家一一细说。在软件系统当中可以看到无论在数据库、Web服务、WCF、文件系统都存在着数据参与到事务运作当中,我们把管理这些数据的工具称为资源管理器RM(Resources Manager)。而事务管理器TM(Transac... ...
MVC3+EF4.1学习系列(十一)----EF4.1常见的问题解决
博客写了10篇了~有很多朋友私信问了一些问题,而且很多问题 大家问的都一样 这里说说这些常见问题的解决办法.如果大家有更好的解决办法~也希望分享出来
问题大概为这几个
一.ef4.1 codeFirst 修改表结构 增加字段等 EF code first需要重新生成库导致数据丢失的问题.... ...
深入理解JavaScript系列(2):揭秘命名函数表达式
前言网上还没用发现有人对命名函数表达式进去重复深入的讨论,正因为如此,网上出现了各种各样的误解,本文将从原理和实践两个方面来探讨JavaScript关于命名函数表达式的优缺点。简单的说,命名函数表达式只有一个用户,那就是在Debug或者Profiler分析的时候来描述函数的名称,也可以使用函数名实现... ...