asp.net的简介和基础知识

一,大致介绍

ASP,全称Active Server Pages(动态服务器页面)

可以理ASP.NET为一个框架,一个使用HTML、CSS、JavaScript和服务器脚本创建网页和网站的框架。
 

ASP.NET支持三种开发模式:

  WebPages(单页面模式)、MVC(model-view-control)、WebForms(事件驱动模式)
 

ASP.NET相对ASP的优点

支持强类型语言,如C#、VB
编译页可改进执行速度
内置方法Trace可以帮助调试页
提供声明性服务器控件
通过继承机制支持代码
ASP代码与HTML设计与文本分离
无需注册组件
还可以理解

ASP.NET为一种脚本语言。

具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。在代码撰写方面特色是将页面逻辑和业务逻辑分开,它分离程序代码与显示的内容,让丰富多彩的网页更容易撰写。同时使程序代码看起来更洁净、更简单。

它的工作原理是:客户端通过浏览器请求(Request)页面时,服务器端首先由页面分析器(Parser)对被请求的页面进行分析;再将通过分析的页面内容传递给编译器(Compiler);经过编译器编译的页面内容被传输给组装缓存,同时,一些需要较高资源代价的元素可以创建一次后存入内润(Memory);将组装缓存和内存中的内容有机结合后形成一个完整页面,完整页面最后被送往输出缓存(Output Cache)。输出缓存中的内容将作为客户端的页面请求结果被送回浏览器。当同一页面被第二次请求时,服务器端将跳过所有的中间环节,直接从输出缓存中送出页面请求结果。

常用的两个对象:

  Response对象:将http信息封装后,从asp.net的服务器端响应到用户浏览的网页上,以供用户浏览。

  Request对象:让服务器取得客户端浏览器的一些数据。

分析:

ASP与

ASP.NET是Microsoft公司在Web应用程序开发上的两项重要技术。 

ASP与

ASP.NET区别如下:

(1)开发语言不同:ASP的开发语言仅局限于使用non-type脚本语言,给客户端脚本添加代码和给页面添加ASP代码的方法是一样的。
 

ASP.NET的开发语言更为广泛,可以使用符合.NET Framework规范的任何一种功能完善的strongly-type编程语言(比如Visual Basic、C#)。

(2)运行机制不同:ASP是解释型的编程框架,因没有事先编译,而是一边解释一边执行,故而页面的执行效率相对比较低。

ASP.NET是编译型的编程框架,服务器上运行的是已经编译好的代码,因此可以利用早期绑定来实时编译,进而提高执行效率。

(3)运行环境不同:ASP的运行环境是Windows操作系统及IIS。

ASP.NET的运行环境除了Windows操作系统及IIS,还需要安装.NET Framework。

(4)开发方式不同:ASP将用户界面层和应用程序逻辑层的代码混合写在一起,因此在维护和重用方面比较困难。

ASP.NET将用户界面层和应用程序逻辑层的代码分离开,程序的复用性和维护性都得到了提高。

(5)诞生的时间不同:1996年11月,Microsfot公司推出了ASP(Active Server Pages)技术。2002年01月,Microsfot公司推出了ASP.NET技术。

 总结:

ASP与

ASP.NET虽然都是微软公司的两项Web技术,但由于它们诞生的时间与背景不同,所以它们之间的区别相对比较大,主要区别在开发语言、运行机制、运行环境、开发方式等方面的不同。

ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft .NET Framework中一套用于生成Web应用程序和Web服务的技术。

ASP.NET页在服务器上执行,并生成发送到桌面或浏览器的标记(如 HTML、XML或者WML)。可以使用任何.NET兼容语言(比如Visual Basic、C#)编写Web服务文件中的服务器端(而不是客户端)逻辑。

ASP.NET页使用一种由事件驱动的、已编译的编程模型,这种模型可以提高性能并支持将用户界面层同应用程序逻辑层相隔离。

注意:Web应用程序和Web服务可调用公共语言运行库的任意功能,例如类型安全、继承、语言互操作、版本控制和集成安全性等。

 

ASP.NET技术有几个显著的特性,既:

 1、强大性和适应性 因为

ASP.NET是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在支持.NET Framework所有平台上。

ASP.NET同时也是language-independent语言独立化的,所以,可以选择一种最适合自己的语言来编写应用程序,或者可以用多种语言来写应用程序,这样的多种程序语言协同工作的能力可以保护基于COM+开发的程序,并能够完整的移植向

ASP.NET。

2、简单性和易学性 .NET Framework封装了大量的类库,使

ASP.NET完成一些常见的任务如表单的提交、客户端的身份验证、分布系统,并可以使网站配置变得非常简单。

3、高效可管理性 

ASP.NET使用一种字符基础的、分级的配置系统,使服务器环境和应用程序的设置更加简单。

ASP.NET已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,可以很大的提高运行速度。即使现在的

ASP.NET应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高运行效能。

 总结:

 

ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft .NET Framework中一套用于生成Web应用程序和Web服务的技术,利用公共语言运行时(Common Language Runtime)在服务器后端为用户提供建立强大的企业级Web应用服务的编程框架

 

今天,Scott Hanselman在其博客上宣布《ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0》,

ASP.NET 5已经被判死刑,Scott在其中也解释了改名的根本原因:之前称之为“

ASP.NET 5”确实让人感觉这是

ASP.NET 4.6的升级版,比其功能更加强大,未来会替代

ASP.NET 4.6。其实不是的,因为“

ASP.NET 5”是另起炉灶开发,和 

ASP.NET 4.6是并行独立的关系。

所在现在的名字变动如下:
 

ASP.NET 5 –> 

ASP.NET Core 1.0
.NET Core 5 –> .NET Core 1.0
Entity Framework 7 –> Entity Framework Core 1.0
这样的重命名可以让人(特别是.NET 圈子之外的人)马上了解到这个技术栈是微软在Web开发领域的一个“重新出发”,他们之间的关系以及和之前技术的关系如下图所示:

为了达成跨平台目标,微软开发工具部门在发布了 .NET 4.5 和 

ASP.NET 4.5 之后花了相当长的时间来构架下一代网站开发技术。在这个超过两年的漫长过程中,以下几个目标逐渐清晰,这次改名让这几个目标更加明白的展现在你的面前:

采用新思路来重新设计框架基础。这方面向 node.js 学习不少。
采用全新技术,主要是 Roslyn。
脱离 .NET Framework 的束缚实现跨平台

还有一些与

ASP.NET相关的技术和工具,包括但不限于:

Azure:微软的云服务平台,可以用来部署和管理

ASP.NET应用程序。
Visual Studio:微软的集成开发环境(IDE),提供了对

ASP.NET开发的全面支持。
Kudu:它是

ASP.NET应用服务的一部分,提供了一个托管的、开源的、可扩展的构建、部署和运行环境。
Docker:可以用来创建和部署

ASP.NET应用程序的容器。
SQL Server:虽然不是

ASP.NET专有的,但它是一个广泛使用的数据库系统,常与

ASP.NET应用程序一起使用。
Webpack或Gulp:这些是前端工具,用于打包和优化前端资源,如JavaScript和CSS。
Blazor:这是一个使用C#和HTML作为编程模型的Web应用程序框架,可以在浏览器中运行或作为基于WebAssembly的客户端运行。
以上都是与

ASP.NET相关的技术和工具,根据项目的需求和规模,可以选择适合的技术和工具来开发高效的

ASP.NET应用程序。

与ASP.NET一起使用的前端工具包括但不限于:

Bower:是一个包管理器,用于安装运行环境的前端包。
NPM:也是一个包管理器,主要用于安装开发环境的包。
Grunt和Gulp:都是JS任务执行器,可以自动对脚本进行压缩、对TypeScript编译、对代码质量进行分析、对CSS进行预处理等。
Less和Sass:都是CSS预处理工具库,它们可以使CSS更易于组织和维护。
Font Awesome:是一个用于Web的图标字体库。
TypeScript:是一种JavaScript的超集,添加了静态类型系统以及其他功能。
以上都是可以与

ASP.NET一起使用的前端工具,可以根据项目需求选择适合的工具来提高开发效率。

二,基本思路和框架

首先需要创建一个三层架构,分别使用

创建 Web 应用
Visual Studio
Visual Studio Code
Visual Studio for Mac
启动 Visual Studio 并选择“创建新项目”。
在“创建新项目”对话框中,选择“

ASP.NET Core Web 应用(模型-视图-控制器)”>“下一步”。
在“配置新项目”对话框中,为“项目名称”输入 MvcMovie。 务必要将项目命名为“MvcMovie”。 复制代码时,大小写需要匹配每个 namespace。
选择“下一页”。
在“其他信息”对话框中:
选择“.NET 8.0 (长期支持)”。
验证是否未选中“不使用顶级语句”。
选择创建。
Additional info dialog

有关详细信息(包括创建项目的替代方法),请参阅在 Visual Studio 中创建新项目。

Visual Studio 为创建的 MVC 项目使用默认项目模板。 创建的项目:

是一个有效的应用。
是一个基本的入门项目。
运行应用
Visual Studio
Visual Studio Code
Visual Studio for Mac
选择 Ctrl+F5 以在不使用调试程序的情况下运行应用。

如果尚未将项目配置为使用 SSL,Visual Studio 显示以下对话:



如果信任 IIS Express SSL 证书,请选择“是”。

将显示以下对话框:



如果你同意信任开发证书,请选择“是”。

有关信任 Firefox 浏览器的信息,请参阅 Firefox SEC_ERROR_INADEQUATE_KEY_USAGE 证书错误。

Visual Studio 运行应用并打开默认浏览器。

地址栏显示 localhost:<port#>,而不是显示 

example.com。 本地计算机的标准主机名为 localhost。 当 Visual Studio 创建 Web 项目时,对 Web 服务器使用的是随机端口。
 

ASP.NET的基本思路和框架主要包括以下几个部分:

请求处理流程:当用户访问一个

ASP.NET应用程序时,请求会经过以下处理流程:

客户端(如浏览器)发送HTTP请求到Web服务器。
Web服务器接收到请求后,会使用HTTP模块来处理请求。
如果请求是静态资源(如HTML、CSS、JavaScript文件等),Web服务器会直接返回这些资源。如果请求是动态内容(如Web Forms页面或MVC控制器),Web服务器会调用相应的处理程序来生成动态内容。
处理程序会执行相应的业务逻辑,并从数据库或其他数据源获取数据。
处理程序将数据绑定到视图或返回JSON数据给客户端。
客户端接收到响应后,会显示相应的页面或使用返回的JSON数据。

ASP.NET Web Forms:这是

ASP.NET的经典开发模型,它使用HTML表单和服务器控件来构建用户界面。开发者可以在服务器控件中定义事件和处理程序,以响应用户的交互操作。
 

ASP.NET MVC:这是另一种开发模型,它基于MVC架构模式。在MVC中,视图负责呈现用户界面,控制器负责处理用户交互和业务逻辑,模型则包含应用程序的数据和业务规则。
 

ASP.NET Web API:这是一个用于创建RESTful Web服务的框架。它允许开发者创建可从任何地方调用的HTTP服务,并支持JSON或XML格式的数据传输。

Entity Framework:这是一个对象关系映射器(ORM),它简化了数据库操作和对象模型的交互。开发者可以使用C#或

VB.NET代码来定义数据模型、查询数据库和管理数据。

Razor 视图引擎:这是

ASP.NET MVC和

ASP.NET Core MVC使用的视图引擎,它允许在HTML页面中嵌入C#或

VB.NET代码,以动态生成页面内容。
 

ASP.NET Core:这是一个跨平台的Web应用程序框架,它与.NET Core平台一起使用。

ASP.NET Core对之前的

ASP.NET版本进行了改进和重构,具有更小的体积、更高的性能和更好的扩展性。

以上是

ASP.NET的基本思路和框架的简要概述,具体实现方式可能会根据项目需求和所选技术而有所不同。

添加新项目右键  添加 新建项

如图

选择Web窗体

可在设计里面快速设计

源代码为

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="main.master.cs" Inherits="helloasp.main" %>

<!DOCTYPE html>

<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <h1>母版页相同部分</h1>
            <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

            </asp:ContentPlaceHolder>
            <h2>这是下面的内容</h2>

            <asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server">
                <h5>我想乱放</h5>
            </asp:ContentPlaceHolder>
        </div>
    </form>
</body>
</html>

还可以设计一个简单的登录页面

效果如图

代码为

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>登录</title>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js">
    </script>
</head>
<body>
    <!--<h1>Hello world!</h1>-->
    <div>
        <div>
            <span>用户名:</span><input type="text" name="username" id="username"/>
        </div>
        <div>
            <span>密码:</span><input type="text" name="pwd" id="pwd"/>
        </div>
        <div>
            <span><input type="button" id="loginbtn" value="登录" /></span>
            <span><input type="button" value="取消" /></span>
        </div>
    </div>
    <div class="outerdiv">
        <div class="innerdiv">
        </div> 
    </div>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="defaul.aspx.cs" Inherits="helloasp.defaul" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="js/vue.js"></script>
</head>
<body>
    <form id="form1" runat="server">
        <div id="app">
            <br />
            <br />
            <br />
            <asp:Label ID="Label1" runat="server" Text="用户名:"></asp:Label>
            <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
            <br />
            <br />
            <asp:Label ID="Label2" runat="server" Text="密    码:"></asp:Label>
            <asp:TextBox ID="txtPwd" runat="server"></asp:TextBox>
            <asp:CheckBox ID="CheckBox1" runat="server" Text="是否记住密码" />
            <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="登录" />
            <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Button" />
            <br />
            <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <br />
            <input type="button" value="缓存测试" οnclick="getcookieinfo()"/>
            <%
                /*HttpCookie hc = Response.Cookies["userInfo"];
                Response.Write(hc.Values["name"]);*/

                string machinename=Server.MachineName;
                string w = Server.MapPath(".");
                int timeout = Server.ScriptTimeout;

                string ss = Server.HtmlEncode("<h1>这是编码</h1>");
                Response.Write(ss);
                ss=Server.HtmlDecode(ss);
                Response.Write(ss);

            %>
            <%=machinename %>
            <%=w %>
            <%=timeout %>
            <% Response.Write(Server.UrlDecode("http %3A%2F%2Fwww%2Emicrosoft%2Ecom")); %>
        </div>
    </form>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值