切尔斯基

http://liguanglei.name
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年3月11日

摘要: 性能受到系统架构的巨大影响, 而本书并没有涉及在高性能做为一个必需的设计约束时有哪些典型的场景以及可选的架构方案. 本书将内容限定在具体的产品和调优技术上, 或者, 技巧上. 架构决定性能的级别, 需要尽早确定必需的性能级别.书中提议不要把web应用看成单个application, 而是"分布式组件集合". 通常讲性能调优的书, 都是按照应用的不同层来分别讲述, 比如客户端性能, 服务端性能, 数据库调优等. 本书也不例外, 涉及HTML, ASP.Net, IIS, SQL Server等. 但实际上尽管每一层都有自己特定的问题和技巧, 手段却无外乎几类, 比如减少往返, 阅读全文

posted @ 2012-03-11 20:36 chelsea 阅读(885) 评论(1) 推荐(0) 编辑

摘要: IIS 5 IIS (inetinfo.exe) -> ASP.Net ISAPI (aspnet_isapi.dll) -> ASP.Net worker process (aspnet_wp.exe) -> ... IIS 6 经典模式 IIS (inetinfo.exe) -> ASP.Net worker process (w3wp.exe, application pool) -> ASP.Net ISAPI (aspnet_isapi.dll) -> AppDomain -> HttpRuntime.process(new HttpWork 阅读全文

posted @ 2012-03-11 12:15 chelsea 阅读(180) 评论(0) 推荐(0) 编辑

2012年1月30日

摘要: Herb Sutter 曾经有一个观点, 就是一个组件的接口, 不只包括这个组件本身定义的方法, 还包括使用这个组件的客户代码, 比如以这个组件为参数的那些方法. 扩展方法是对Herb Sutter这个观点所做的语法上的支持: 把以这个组件为参数的那些客户代码转变成扩展方法后, 调用时从语法上看起来跟调用这个组件本身定义的方法一模一样了!---------------------现实的分割线------------------------上面只是一厢情愿的历史溯源. 真实的情况是扩展方法是为了 LINQ 而加进来的, 就为了是表达式看起来干净漂亮些: videoList.Where(video 阅读全文

posted @ 2012-01-30 14:45 chelsea 阅读(1479) 评论(0) 推荐(1) 编辑

2011年6月14日

摘要: See also: <<Enterprise REST = Customize, Invent and Standardize Media Types>>MVC和REST是两种不同的世界观. 前者更多的是对行为的建模,后者则更强调数据(状态及状态的变迁). 前者给出的是内部实现方面的指导, 把程序结构分离为Model, View及Controller. 后者提供的则是从外部观察系统的视角: 一组被超媒体诱导的系统变迁. MVC和REST从两种不同的维度来描述世界, 而不是同一纬度上两种相反的观点, 因此基于现存的大量MVC框架来开发符合REST要求的应用是可能的. 但工 阅读全文

posted @ 2011-06-14 21:18 chelsea 阅读(480) 评论(0) 推荐(0) 编辑

2010年7月11日

摘要: IoC避不开的一个问题是如何处理应用程序的模块化, 因为IoC通常针对单个对象提供了良好的支持, 比如依赖管理,生命周期管理,部署时配置甚至运行时配置, 但往往一组内聚的互相协作的对象才构成应用程序基本的构建块. 这组内聚对象间的协作关系是实现细节, 包括单个对象的构造函数和属性也是, 如果把这些暴露出来, 固然可以提高灵活性, 但是以最后的部署阶段的复杂性以及难以维护性为代价的. 以配置文件为例... 阅读全文

posted @ 2010-07-11 22:24 chelsea 阅读(1870) 评论(3) 推荐(1) 编辑

2010年7月6日

摘要: 如何不带来额外的效率损失如何在程序运行出错时记录尽可能多的信息如何方便查找特定条件的错误如何横切的添加通用信息如何不带来额外的效率损失在之前接触的一个大型产品中见过散布着如下代码:if (Log.Level > DEBUG) { logger.write(some_method_to_build_the_log_string());}问为什么不在logger.write()里面判断日志级别,... 阅读全文

posted @ 2010-07-06 23:13 chelsea 阅读(1516) 评论(4) 推荐(0) 编辑

2010年6月28日

摘要: 谁来做Validation何时做Validation如何表达错误如何传递错误如何关联错误到发生错误的对象, 尤其是对象图中非Root对象 这里的Validation指的是对进入到系统中的业务数据的校验(不包括Web应用中页面数据在浏览器端的验证) 谁来做Validation 数据的有效性不是自身所能决定的, 而是使用它的场景(Context)决定的, 因此, 每个Context应该有自己的Val... 阅读全文

posted @ 2010-06-28 22:03 chelsea 阅读(1173) 评论(4) 推荐(0) 编辑

2010年6月20日

摘要: 流行的MVC框架缺省的物理文件组织并不是这样的, Controller, Model, View分别在不同的文件夹里面. ASP.Net MVC提供了VirtualPathProvider以及ViewEngine, 可以让我们把一个Feature的Controller/Model/View统统打包到一个project或者文件夹而运行时依然能够找到对应的 action和view, 这是我们正在利用的特性 阅读全文

posted @ 2010-06-20 23:34 chelsea 阅读(2084) 评论(2) 推荐(0) 编辑

2010年6月16日

摘要: 在.Net/C#项目中采用project(*.csproj)来组织代码比用同一个project不同的文件夹来组织有几个好处: 从客户代码的角度, 我依赖你很少一点东西, 可以就只依赖这点东西(做成单独的project), 不需要依赖其它无关的代码从访问控制, Visibility 的角度, C#的internal关键字是针对物理模块的, 即dll的, 而不是名称空间或文件夹从避免双向依赖的角度, ... 阅读全文

posted @ 2010-06-16 23:39 chelsea 阅读(638) 评论(0) 推荐(0) 编辑

2010年3月15日

摘要: Accept方法几乎千篇一律, 遵循相同的模式. 里面无非就是类型计算, 可以利用C#的泛型支持将之消除 阅读全文

posted @ 2010-03-15 23:29 chelsea 阅读(942) 评论(0) 推荐(0) 编辑