代码改变世界

软件架构设计学习

2009-06-18 15:39  飞逝心情  阅读(357)  评论(0编辑  收藏  举报

本文档为软件设计架构的学习文档,是根据微软文档 Application Architecure Guide 2.0的读书文档得到的,仅用于自己学习微软架构之用。

1 Web应用的层次架构应该考虑的问题

.net 架构分层图

  1. 逻辑上分层
  2. 使用接口实现模式减少层间的耦合
  3. 理解组件之间是如何交互的(包括越过不同的服务器交互或同一服务器不同进程间交互及在同一个进程内的交互)
  4. 减少层间的往复(使用输出缓存,缓存)
  5. 考虑使用caching,(asp.net 包含了输出缓存,部分页缓存,及缓存API)
  6. 考虑使用日志(logging)和监视器(instrumentation)记录应用程序的关键动作(记录层间交互及不正确的活动)
  7. 避免阻碍在长时间运行的任务(考虑使用异步机制执行长时任务的操作)
  8. 考虑对用户进行合法性验证(验证应该在应用程序的不同层之间进行,要对应用程序进行多次验证)
  9. 使用最低权限的用户运行你的网站应用程序(这个很重要)

设计应用程序缓存时应该考虑的因素

•  Avoid caching volatile data. 不要缓存动态数据
•  Use output caching to cache pages that are relatively static. 如果页面是近似静态的,那么使用输出缓存
•  Consider using partial page caching through user controls for static data in your pages. 使用部分页缓存输出页面上的静态部分的数据
•  Pool shared resources that are expensive, such as network connections, instead of caching
them. 对于那些有限的资源,要share 而不是缓存
•  Cache data in a ready-to-use format. 要在数据使用前缓存好,采用ready-use模式使用缓存