zoukankan      html  css  js  c++  java
  • .NET框架,ASP.NET 基础学习

    .NET框架   英文名(.NET Framework) 同样是微软出的一个开发平台.关于.NET的定义可以参照微软的官方说法:

    For developers, the .NET Framework provides a comprehensive and consistent programming model for building applications that have visually stunning user experiences and seamless and secure communication.  

    我简单的翻译下: .NET框架给开发者提供了一个综合、稳定的编程模型,这个模型可以用来建立一个极好的可视化用户体验、无缝并且通讯安全的应用程序。

    .NET框架是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支援多种语(C#、VB.NET、C++、Python等)的开发。 (来自维基百科‘.NET框架’关键词)。

    类似于JAVA的跨平台开发概念,这两个平台似乎是竞争对手吧~

    截止到2012/2/11,.NET官网给出的最新版本是.NET 4

    这里有一个关于各个版本的栈图,可以看到版本结构。(图片来自维基百科英文页面‘.NET Framework’关键词)

    .NET的初级组成是CIL和CLR,关于它们的运作图如下:

    (图片来自维基百科)

    图片中可以看到,CLI其实是.NET的一个软件开发和运行的枢纽性平台。

    他的功能包括异常处理,垃圾回收,安全保障以及互操作(interoperability)等。

    通过这个平台,.NET 框架可以实现支持多语言。

    CLI的实现依赖于通用语言运行CLR(Common Language Runtime)。

    CLR其实是.NET框架的运行引擎,.NET程序的运行必须在CLR的监管之下,以保证程序在内存管理、安全性和异常处理中的性能和行为。
























    .NET的特色:

    • 互操作性(Interoperability),就是说可以在不同的系统下运行。
    • CLR引擎(Common Language Runtime Engine),参照上面对CLR的表述。
    • 独立的语言(Language Independence),支持.NET的语言中任意两种语言之间type 和object instances的交换。
    • 基类库 (Base Class Library),框架类库的一部分,可以被支持.NET框架的所有语言所使用,包含了许多通用功能,如文件读写,图像渲染等。
    • 简单调度(Simplified Deployment)
    • 安全(Security)
    • 可移植(Portability)

    .NET的语言:

    由微软开发的.NET语言:

    C#     /     Visual Basic .NET      /    C++/CLI     /     JScript .NET     /     J#(已停止使用)   /     F#    /     Microsoft Small Basic

    第三方使用.NET的语言:

    Ada  / APL  /  Boo   /  COBOL  /    Component Pascal     /    Delphi 8 and Delphi 2005  /    Eiffel    /  Forth   /   FORTRAN  /   IKVM,Java/  IronPython  /   Lexico  /   Lisp  /   Mercury  /   Mondrian /  Nemerle   /   Oberon  /   Perl   /   Python /   PHP  /   RPG  /   Ruby  /   Smalltalk  /   Tcl

     什么是ASP.NET

    ASP.NET是内含于.NET框架中,专门用来发展Web应用程式的一组类别库集。 它是其实是一个平台,支持.NET中的多种语言。

    ASP.NET由ASP发展而来,由于它的前身ASP在使用中慢慢浮现出来的缺点,微软的团队经过xxxx的考虑,把ASP移植到CLR平台,命名改过多次,发布时为ASP+,后来又更名为ASP.NET。

    ASP.NET 的运行架构分为几个阶段:

    web服务器的信息流动阶段,我们借用下图表示: 

    (这一段是从维基百科复制的,因为我实在懒得写了,看图就挺清楚地。)

    当Web 服务器接收到 HTTP 请求时,HTTP 聆听程式 (HTTP Listener) 会将请求转交给 URL 指定的网站应用程式的工作流程 (IIS Worker Process).

    ASP.NET 的工作流程处理器(aspnet_isapi.dll,若是 IIS 5.0 时则是 aspnet_wp.exe)会解析 URL,并启动位于 System.Web.Hosting 命名空间中的 ISAPIRuntime(视版本)物件,接收 HTTP 请求,并呼叫 HttpRuntime,执行 HttpRuntime.ProcessRequest().

    在 ProcessRequest() 中使用 HttpApplicationFactory 创建新的 HttpApplication(或是指定的 IHttpHandler 处理器),再分派给 Page 中的 ProcessRequest() 或是 IHttpHandler 的 ProcessRequest() 方法.

    执行之后,再传回到 ISAPIRuntime,以及 aspnet_isapi.dll,最后交由 HTTP Listener 回传给用户端,因为执行程序有如管线般顺畅的执行,因此称为 HTTP Pipeline Mode















    ASP.NET状态管理: 在ASP.NET 网页中的讯息分派、处理。(略了,想看的话上维基吧,我个人觉得作为写代码的。。这个了解就好。)

    ASP.NET应用程序由web server掌控,通过HTTP状态协议访问。ASP.NET中提供了多种状态管理函数。

    用户端状态管理为ViewState以及Cookies,伺服端状态管理则是SessionApplication物件。它们的差异点在于:

    • ViewState 是加密的资料流,和 HTML 一起输出到用户端。
    • Cookies 是加密(也可不加密)的小型资料,和 HTML 不同,它可以快取在用户端浏览器中。
    • Session 是服务器端的状态保存机制,每个用户端均有独立的空间(以浏览器执行个体来赋与唯一的SessionID值)。
    • Application 是服务器端的状态保存机制,但应用程式所有的用户端共用同一份状态资料。

    ASP.NET部件:

    ASP.NET 是开发 Web 应用程式的基础架构 (framework),除了内部的运作方法外,对外也有许多的开发支援,这样可以给工程师更多的选择方案。

    基础部件包括

    • 网页:ASP.NET 最基础的底层为网页 (Page),网页由 System.Web.UI.Page 类提供支持。

     ASP.NET 网页在微软的官方名称中,称为 Web FormASP.NET Page 所要提供的功能就需要类似 Windows Forms 的表单,每个 Web Form 都要有一个 <form runat="server"></form> 区块,所有的 ASP.NET 服务器控件都要放在这个区域中,这样才可以让 ViewState 等服务器控制能够顺畅的运作。

    • 控件:ASP.NET 的内建控件分为两种:HTML控件和Web控件。除此之外,ASP.NET 也提供了可以自定义的控件架构。
    • 脚本:ASP.NET 的 Web 控件有时会包装一些用户端脚本 (client-side scripting),在控件被绘制时输出到用户端,这些脚本多数被包装在 DLL 的资源档中,并由 ScriptResource.axd 处理例程来输出。
    • 基本物件:Application、Request、Response、Session、Server

    导览部件:(是在 ASP.NET 2.0 中才出现的功能)

    • 选单 (Menu):提供内建的鼠标侦测方式,实作阶层式的选单功能。
    • 网站地图 (Sitemap):提供可层次化目前浏览位置的功能,可支援由 Web.sitemap 中的资料,或是来自数据库或 XML 资料档中的资料来源。
    • 树状查看 (TreeView):提供阶层化的资料浏览,类似于资源管理器的接口。

    另外两种是应用程式服务和延展性支援。

    哎,我觉得。。说的多了也记不住,了解这些也就差不多了,咱就是写个小代码,弄清楚网路干什么呢。。╮(╯▽╰)╭

  • 相关阅读:
    Leetcode Spiral Matrix
    Leetcode Sqrt(x)
    Leetcode Pow(x,n)
    Leetcode Rotate Image
    Leetcode Multiply Strings
    Leetcode Length of Last Word
    Topcoder SRM 626 DIV2 SumOfPower
    Topcoder SRM 626 DIV2 FixedDiceGameDiv2
    Leetcode Largest Rectangle in Histogram
    Leetcode Set Matrix Zeroes
  • 原文地址:https://www.cnblogs.com/jiaozihardworking/p/2346793.html
Copyright © 2011-2022 走看看