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:

  1. 在一个返回action的方法(ChildAction)上使用OutputCache属性
  2. 在父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),

  1. 生成cache manifest,
  2. 在Layout.cshtml中reference manifest, 如<html manifest="site.manifest">
  3. 设置正确的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的更多相关文章

  1. 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 ...

  2. 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 ...

  3. 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 ...

  4. Catalog of Patterns of Enterprise Application Architecture

    Catalog of Patterns of Enterprise Application Architecture Last Significant Update: January 2003 A s ...

  5. Application Architecture Determines Application Performance

     Application Architecture Determines Application Performance Randy Stafford AppliCATion ARCHiTECTuR ...

  6. Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications

    January 2014 Containing twenty-four design patterns and ten related guidance topics, this guide arti ...

  7. Understanding Spring Web Application Architecture: The Classic Way--转载

    原文地址:http://www.petrikainulainen.net/software-development/design/understanding-spring-web-applicatio ...

  8. Chapter 5: Design and implement security

    Configure authentication Authenticating users IIS authentication Anonymous ASP.net impersonation Bas ...

  9. Chapter 2: Design the user experience

    Apply the user interface design for a web application 介绍了Css的常用属性和html5的新element,以及Htmlhelper的简单方法,如 ...

随机推荐

  1. 数据类型int、bigint、smallint 和 tinyint范围

      bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. int ...

  2. rails 常用的验证方法 validates (转)

    Agile Web Development with Rails 17.4 validation validate              在save的时候激活validate_on_create  ...

  3. http 请求详解大全

    HTTP 100 Continue继续 101 Switching Protocols切换协议 200 OK正常 201 Created已创建 202 Accepted已接受 203 Non-Auth ...

  4. form input file 图片上传360IE兼容问题

    <form action="" class="form-box" class="form_box" enctype="mul ...

  5. mac上spacemacs体验小记

    project: blog target: note-of-spacemacs-on-mac.md date: 2016-01-04 status: publish tags: - emacs - s ...

  6. 自定义Toast解决快速点击时重复弹出,排队无止尽

    解决办法:自定义MyToast类: public class MyToast { /** 之前显示的内容 */ private static String oldMsg ; /** Toast对象 * ...

  7. oracle xmltype导入并解析Excel数据 (二)规则说明

    规则表字段说明如下: 其中RULE_FUNC_CUSTOMIZE表示,用户自己写函数,去判断数据是否合法,存储的是函数的名字 此函数的参数只有一个,该列的值,字段类型是Varchar2, 校验失败的话 ...

  8. 2014西安现场赛F题 UVALA 7040

    地址 题意:求在m种颜色中挑选k种颜色,给n个花朵涂色有几种方法. 分析:画图可以发现,基本的公式就是k ×(k-1)^(n-1).但这仅保证了相邻颜色不同,总颜色数不超过k种,并没有保证恰好出现k种 ...

  9. 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 ...

  10. iOS开发 首次启动显示用户引导,第二次启动直接进入App,UIScrollView,UIPageControl,NSUserDefaults

    首先创建一个引导图的控制器类 UserGuideViewController.h和UserGuideViewController.m #import <UIKit/UIKit.h> #im ...