Chapter 1: Design the application architecture
1.1 Plan the application layers
提到了repository pattern,SoC(Separation of Concern),
进而提及MVC,Action/Action results,Route/Routing (IHttpHandler, MvcHandler, IControllerFactory),Asynchronous Controllers,Views (Strongly-typed views, View-specific model, partial view, Master page),Razor/WebForms view Engine
1.2 Design a distributed application
REST service vs ASP.NET Web Services (ASMX) vs WCF Web API
通过HttpService调用REST API,(为什么不是HttpClient?)
Hybrid application - Azure server + local app server/local db server via Azure AppFabric
3种Session管理模式:InProc(default)/OutProc(StateServer or SQLServer)
1.3 Deign and implement the Windows Azure role life cycle
startup tasks management by AppCmd
1.4 Configure state management
asp.net使用ViewState来管理state信息。
asp.net mvc使用以下方式保存state信息:
- Cache - memory pool on server, shared across users
- Session - stored on server, unique for each user
- Cookie - stored on client, passed with each HTTP request to the server
- QueryString - passed as part of the URL string
- Context.Items - part of HttpContext and lasts only the lifetime of that request
- Profile - stored in db and maintains information across sessions
cookie
- 4k限制
- support feature such as Remember Me.
Html5 Web Storage
- browser compatible
1.5 Design a cache strategy
使用OutputCache属性来控制cache的范围,Location的值:Any(default)/Client/Downstream/Server/ServerAndClient/None。
Donut caching support via Substitution api of asp.net
Donut hole caching:
- 在一个返回action的方法(ChildAction)上使用OutputCache属性
- 在父View中使用@Html.Action("ChildAction")
如果在Controller上使用OutputCache属性,那么所有支持GET request的方法都具有这个属性,其他的方法不受影响。
分布式Caching要用到AppFabric,(.net版的redis应该也支持吧!)
使用System.Runtime.Caching.dll的默认实现ObjectCache/MemoryCache,来实现data caching。
Html5支持Application Cache API(AppCache),
- 生成cache manifest,
- 在Layout.cshtml中reference manifest, 如<html manifest="site.manifest">
- 设置正确的MIME-type,Response.ContentType="text/cache-manifest"。
Http caching。
1.6 Design and implement a WebSocket strategy
通过hand shake建立WebSocket连接,server端通过HttpContext.Current.AcceptWebSocketRequests(Func<AspNetWebSocketContext, Task>)完成GET到WebSocket的upgrade。
由于WebSocket不含http头信息,因此可能无法穿过firewall。
1.7 Design HTTP modules and handlers
http module和http handler的区别
熟悉asp.net mvc的default modules和handlers。
Chapter 1: Design the application architecture的更多相关文章
- JavaScript Application Architecture On The Road To 2015
JavaScript Application Architecture On The Road To 2015 I once told someone I was an architect. It’s ...
- What is Web Application Architecture? How It Works, Trends, Best Practices and More
At Stackify, we understand the amount of effort that goes into creating great applications. That’s w ...
- Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications 云设计模式:云应用的规范架构指导
1.Cache-aside Pattern 缓存模式 Load data on demand into a cache from a data store. This pattern can impr ...
- Catalog of Patterns of Enterprise Application Architecture
Catalog of Patterns of Enterprise Application Architecture Last Significant Update: January 2003 A s ...
- Application Architecture Determines Application Performance
 Application Architecture Determines Application Performance Randy Stafford AppliCATion ARCHiTECTuR ...
- Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications
January 2014 Containing twenty-four design patterns and ten related guidance topics, this guide arti ...
- Understanding Spring Web Application Architecture: The Classic Way--转载
原文地址:http://www.petrikainulainen.net/software-development/design/understanding-spring-web-applicatio ...
- Chapter 5: Design and implement security
Configure authentication Authenticating users IIS authentication Anonymous ASP.net impersonation Bas ...
- Chapter 2: Design the user experience
Apply the user interface design for a web application 介绍了Css的常用属性和html5的新element,以及Htmlhelper的简单方法,如 ...
随机推荐
- local认证
文件路径 用途 示例 备注 #gedit /usr/local/etc/raddb/sites-available/default #gedit /usr/local/etc/raddb/sites- ...
- CenOS 6.5下安装docker(转)
2014-12-15 10:23 blessed24 To be Done的博客 字号:T | T 最近在自己的centos上搭建了一个Docker,顺便将一些常用操作记录下. AD:51CTO网+ ...
- Jquery实现select左右栏的添加移除
首先是效果展示, 兼容火狐,IE6+,谷歌没测试有
- c/c++面试题(8)memcopy/memmove/atoi/itoa
1.memcpy函数的原型: void* memcpy(void* dest,cosnt void* src,size_t n); 返回值:返回dest; 功能:从源内存地址src拷贝n个字节到des ...
- dedecms购物车商品添加删除数量改变方式变成ajax
简单的做了一下修改,模板用的它默认的模板,感觉之前全是表单提交很不爽用的 修改的相关文件:/plus/posttocar.php, /plus/car.php,/templets/plus/car.h ...
- ScorllView中嵌套listView与Viewpager的焦点问题处理
解决进入该页面直接显示中的listview而不是从页面最顶端开始显示在setAdapter后调用listview的smoothScrollTo(0,20); 解决listview只能显示一条 需要重写 ...
- SIT_服务器系统整合测试总结
从2012年到2015年我的3年服务器测试,感觉一下子时间就已经飞逝而过,一直希望做个前三年的工作总结,现在用我那笨拙的笔触记录下自己的三年服务器测试生活! ***2012-2013 SE 这一年基本 ...
- 学习NSRulerView
NSRulerMarker 有个imageOrigin是描述Marker中image的位置的: 在horizontal的ruler中,imageOrigin的x坐标是跟marker的location进 ...
- sql的列的说明
<#@ template debug="true" hostspecific="true" language="C#" #> & ...
- em 和 px相互转换
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...