• .net技术想到哪说到哪


    1. .net概述

    (1) 宽支持面,可开发控制台程序、WinForm、WebForm、Web Services、Windows Services、Mobile Application所有的应用程序。
    (2) 绝佳的版本控制机制,完全摆脱DLL Hell。
    (3) 提供代码安全性
    (4) 高性能
    (5) 组件互操作性
    公共语言运行库(CLR)提供内存管理、线程管理、远程处理、代码执行、代码安全验证、编译等核心服务,非托管应用程序(如IIS,SQL Server,IE)可以作为运行库宿主将CLR加载到进程,并在该进程内创建应用程序域,把.net程序集加载进应用程序域,来执行.net托管代码,从而创建一个可以同时利用托管和非托管功能的软件环境。通用类型系统CTS确保了不同语言编写的组件的自描述性和互理解性,再加上CLS就能确保互操作性。垃圾自动回收机制解决了内存泄露,严格的运行时检查确保不会有无效内存引用。即时编译机制避免了解释执行环境的性能问题。

    2. Asp.net概述

    asp.net是.net framework的一个组成部分,是一个统一的Web开发模型,由Web Server(IIS)承载,其本身也有一些宿主的功能,开发人员能自己编写http handler和http module来处理应用程序事件。Asp.net编译器可以把页和控件等编译成一个程序集,来处理用户请求。Asp.net能识别发请求的浏览器类型,并响应出对应的适当的HTML。有主题和外观来控制网站的整体外观和感觉。母版页控制页面布局。Asp.net始终用特定的Windows标识(NETWORK SERVICE或ASPNET)运行,因此可用ACL来设置权限,还可配置Asp.net进程标识和模拟。

    3. Assembly & GAC概述

    程序集Assembly是布署、版本控制、重用、激活范围、安全权限的基本单元。不加强名称的程序集不受版本控制检查,只能被所在目录的程序集引用,而有强名称的可以放在GAC来实现组件共享。程序集清单可用MSIL反汇编程序(Ildasm.exe)查看。一个程序集由程序集清单、类型元数据、代码、资源构成,可能全部在一个文件里,也可能分为多个模块文件。强名称(程序集名称、版本号、区域信息、公钥、数字签名)是使用私钥,通过程序集文件生成的,保证了程序集的名称唯一性,和生成后未被篡改过,还有程序集的版本出自创建该程序集的同一个发行者。

    4. 垃圾自动回收概述

    垃圾自动回收机制解决了内存泄露问题,它由垃圾回收器在合适的时间(如内存被耗尽、CPU空闲、代码显式调用时)执行。

    (1)一个类如果实现了Finallize方法,则在创建该类型的对象时,会有一个指向该对象的指针放入Finallization队列。

    (2)当垃圾回收器回收内存时,对于找到的每个要被回收的对象,在Finallization队列中查找是否有指针指向它,如果没有就直接回收,如果有就把指针指向Freachable队列。

    (3)当Freachable队列非空时,就激活某特殊线程逐一执行每个对象的Finallize方法,然后删除指针,它们将在下一次垃圾回收时回收。

    (4)按一定算法整理内存,在保证效率的情况下,使其尽量连续。

    5. http请求处理过程

    ASP.NET 是 Web 服务器下的 ISAPI 扩展。IIS根据文件扩展名来选择一个ISAPI来处理请求。ASP.NET 应用程序的生命开始于浏览器向IIS发送第一个请求。

    1. ApplicationManager类创建一个应用程序域,并创建HostingEnvironment类的一个实例,如果应用程序包含App_Code等顶级项,则编译之。

    2. 为每个请求创建核心对象HttpContext。

    3. 如果是首次访问,则创建HttpApplication对象,该对象对后续请求可重用。然后调用它的Init方法。在创建其实例时,同时会创建在Web.config里定义的HttpModule,也会调用它们的Init方法。

    4. 依次触发HttpApplication的各种事件,
    (1)验证请求
    (2)UrlMapping
    (3)BeginRequest
    (4)Athentication
    (5)Athorization
    (6)Cathe
    (7)根据文件扩展名,在Web.config里选择并编译IHttpHandler
    (8)RequestState
    (9)ProcessRequest
    (10)Filter
    (11)EndRequest
    可以在Global.asax文件里用命名约定Application_Event来绑定这些事件到处理程序。

    6. 页面生命周期概述

    (1)开始请求时,判断是否需要编译和重新生成页面,如果有缓存,则不必如此,直接输出即可。

    (2)开始阶段,估计是构造函数阶段,设置Request, Response, UICultrue, IsPostBack属性。

    (3)PreInit,创建控件,设置MasterPage,Theme。此时不要设置控件属性,因为会被Init覆盖。

    (4)Init,初始化控件属性。

    (5)Load,读取和更新控件属性

    (6)事件处理

    (7)PreRender

    (8)UnLoad,此时不要Response.Write,因为不管用了。可以做关闭文件和数据库连接,日志记录或特定于请求的操作。

    7. URL重定向(http://msdn.microsoft.com/zh-cn/library/ms972974.aspx

    HttpContext.RewritePath方法是URL重定向的核心方法。URL重定向可由HttpModule、HttpHandler或UrlMappings配置节来实现。需要有正则表达式、http请求处理过程方面的知识。需要解决回发和可删节的问题。URL重定向的目的是使URL更短,能看出站点结构,和可删节。

    8. 换肤技术

    重写Page.OnPreInit方法,设置MasterPage和Theme属性。

    9. 多语言技术

    10. 控件开发技术

  • 相关阅读:
    第八章 多线程编程
    Linked List Cycle II
    Swap Nodes in Pairs
    Container With Most Water
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock II
    Linked List Cycle
    4Sum
    3Sum
    Integer to Roman
  • 原文地址:https://www.cnblogs.com/bighuiwolf/p/1773934.html
Copyright © 2020-2023  润新知