• 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:

    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。

    --------------------------- 知道的更多,不知道的也更多 ---------------------------
  • 相关阅读:
    Java Web前后端分离的思考与实践
    JDBC剖析篇(1):java中的Class.forName()
    UVa1471
    Uva11572
    Uva11134
    Uva10755
    Floyd判圈法
    Java泛型-通配符的上限和下限问题
    Codeforces 384E-线段树+dfs序
    codeforcesRound378C-dfs+树状数组
  • 原文地址:https://www.cnblogs.com/mryux/p/4728424.html
Copyright © 2020-2023  润新知