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的简单方法,如 ...
随机推荐
- 数据类型int、bigint、smallint 和 tinyint范围
bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. int ...
- rails 常用的验证方法 validates (转)
Agile Web Development with Rails 17.4 validation validate 在save的时候激活validate_on_create ...
- http 请求详解大全
HTTP 100 Continue继续 101 Switching Protocols切换协议 200 OK正常 201 Created已创建 202 Accepted已接受 203 Non-Auth ...
- form input file 图片上传360IE兼容问题
<form action="" class="form-box" class="form_box" enctype="mul ...
- mac上spacemacs体验小记
project: blog target: note-of-spacemacs-on-mac.md date: 2016-01-04 status: publish tags: - emacs - s ...
- 自定义Toast解决快速点击时重复弹出,排队无止尽
解决办法:自定义MyToast类: public class MyToast { /** 之前显示的内容 */ private static String oldMsg ; /** Toast对象 * ...
- oracle xmltype导入并解析Excel数据 (二)规则说明
规则表字段说明如下: 其中RULE_FUNC_CUSTOMIZE表示,用户自己写函数,去判断数据是否合法,存储的是函数的名字 此函数的参数只有一个,该列的值,字段类型是Varchar2, 校验失败的话 ...
- 2014西安现场赛F题 UVALA 7040
地址 题意:求在m种颜色中挑选k种颜色,给n个花朵涂色有几种方法. 分析:画图可以发现,基本的公式就是k ×(k-1)^(n-1).但这仅保证了相邻颜色不同,总颜色数不超过k种,并没有保证恰好出现k种 ...
- Win10(win7) 安装vs2015(2012)出现ASP.NET 4.0/4.5 尚未在 Web 服务器上注册 下载这个补丁安装就可以了
url:https://www.microsoft.com/zh-cn/download/details.aspx?id=44907&a03ffa40-ca8b-4f73-0358-c191d ...
- iOS开发 首次启动显示用户引导,第二次启动直接进入App,UIScrollView,UIPageControl,NSUserDefaults
首先创建一个引导图的控制器类 UserGuideViewController.h和UserGuideViewController.m #import <UIKit/UIKit.h> #im ...