asp.net 订阅
ASP.NET又称为ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。 [1-2]  ASP.NET具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。在代码撰写方面特色是将页面逻辑和业务逻辑分开,它分离程序代码与显示的内容,让丰富多彩的网页更容易撰写。同时使程序代码看起来更洁净、更简单。 [2-3] 展开全文
ASP.NET又称为ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。 [1-2]  ASP.NET具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。在代码撰写方面特色是将页面逻辑和业务逻辑分开,它分离程序代码与显示的内容,让丰富多彩的网页更容易撰写。同时使程序代码看起来更洁净、更简单。 [2-3]
信息
技术名称
ASP.NET
外文名
ASP.NET
名称简称
.NET
研发公司
微软(Microsoft)
技术全称
Active Server Page .NET
asp.net发展历程
1996年,ASP 1.0(Active Server Pages)版本出现了,它引起了Web开发的新革命,降低了动态网页开发的难度。以前开发动态网页需要编写大量繁杂的C代码,编程效率非常低下,而且需要Web网页开发者掌握非常高的编程技巧。而ASP使用简单的脚本语言,能够将代码直接嵌入HTML,使设计Web页面变得更简单。虽然ASP非常简单,但却能够实现非常强大的功能,这一切得益于其组件。特别是ADO组件,使得在网页中访问数据库易如反掌。这一切推动了动态网页的快速发展与建设,同时使ASP得到迅速流行。1998年,微软公司发布了ASP 2.0,它是作为Windows NT 4 Option Pack的一部分提供的。ASP 2.0与ASP 1.0的主要区别是外部的组件可以初始化,使所有的组件都有了独立的内存空间,并且可以进行事务处理。内置的Microsoft Transaction Server(MTS)使制作组件变得更容易。2000年6月,微软公司宣布了自己的.NET框架。.NET框架的基本思想是:把原有的重点从连接到互联网的单一网站或设备转移到计算机、设备和服务群组上,而将互联网本身作为新一代操作系统的基础。这样,用户将能够控制信息的传送方式、时间和内容,从而得到更多的服务。2001年,ASP.NET浮出水面。它最初的名字为ASP+,后来改为ASP.NET。ASP.NET是微软公司开发的一种建立在.NET之上的Web运行环境,它不是ASP的简单升级,而是新一代的Active Server Pages。ASP.NET是微软公司新体系结构Microsoft.NET的一部分,其中全新的技术架构使编程变得更加简单。借助于ASP.NET,可以创造出内容丰富的、动态的、个性化的Web站点。ASP.NET简单易学、功能强大、应用灵活、扩展性好,可以使用任何.NET兼容语言。 [4-5]  2002年微软发布.NET正式版本.NET Framework 1.0,其中的ASP版本就是ASP.NET 1.0,在此以前发布了两个.NET测试版本Betal和Beta2。2003年微软发布了.NET Frameworrk 1.1正式版,其中ASP版本就是ASP.NET 1.1。2005年微软发布.NET Framework 2.0正式版本,也就是ASP.NET 2.0。 [6] 
收起全文
精华内容
参与话题
问答
  • ASP.NET项目大概构造 最近,因为期末作业,于是写了一个ASP.NET项目,很简单,写了几天,感觉还行,于是分享一下。 .NET框架使用的语言有很多,而我的ASP.NET项目用的是C#。实话说,我这是第一次用C#写,感觉和...

    ASP.NET项目大概构造

    最近,因为期末作业,于是写了一个ASP.NET项目,不是很难,用vs2017写的(vs还可以的,挺好用的,特别是前端的路径选择真的是好啊!!!),写了几天,感觉还行,于是分享一下。
    vs2017安装使用:
    https://blog.csdn.net/qq_36556893/article/details/79430133
    .NET框架使用的语言有很多,而我的ASP.NET项目用的是C#。实话说,我这是第一次用C#写,感觉和java差不多。那我现在就简单说一下我的ASP.NET项目如何写的:
    我的页面构造(不好看,有点混乱,现在有点后悔-。-):
    在这里插入图片描述
    在这里插入图片描述

    前端:

    1.页面:和html有点不同:

      <tr>
                            <td style="text-align:center;" class="form-text">
                                用户名:
                            </td>
                            <td class="form-input">
                                <asp:TextBox ID="tbUSerName" runat="server">
                                </asp:TextBox>
                              <asp:RequiredFieldValidator ID="rfvName" runat="server" ControlToValidate="tbUserName" ErrorMessage="用户名不能为空"></asp:RequiredFieldValidator> 
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align:center;" class="form-text">
                                密&nbsp;&nbsp;&nbsp;码:
                            </td>
                             <td>
                                <asp:TextBox ID="tbPassword" runat="server" TextMode="Password">
                                </asp:TextBox>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="tbPassword" ErrorMessage="密码不能为空"></asp:RequiredFieldValidator> 
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2" style="text-align:center;">
                                <asp:Button ID="btLogin" runat="server" OnClick="btLogin_Click" Text="登录" />
                            </td>
                        </tr>
    

    显示效果如下:

    2.css样式:和html差不多,没大有区别

    引入css样式:

    <link rel="stylesheet" href="../css/addcss.css" />
    

    后台:因为我用的是web窗体,所以会自动生成后台:

    在这里插入图片描述
    页面加载时想调用这个方法:Page_Load
    点击事件按钮调用的方法:btLogin_Click(object sender,EventArgs e):可以自动生成

    1.跳转:

     Response.Redirect("FirstPage.aspx");
    

    2.前端弹窗:像js的alert(“”)

     this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('登陆成功!')</script>");
      return;
    

    3.获取前端页面的值:

    第一种方法:
    前端id.属性

    string strName = tbUSerName.Text;
     string strPwd = tbPassword.Text.Trim();
    

    第二种方法:
    Request[id]

    //下面的包括了单选框,复选框,下拉框,input等
    string id = Guid.NewGuid().ToString("N");//生成uuid:只能用ndbpx
                string name = Request["name"];
                string age = Request["age"];
                // string sex1 = sex.SelectedValue;
                string sex = Request["sex"];
                string phone = Request["phone"];
                string grade = Request["grade"];
                string hobbies = "";
                foreach(ListItem item in hobby.Items)
                {
                    if (item.Selected)
                    {
                        hobbies += item.Value + ",";
                    }
                }
                if (name == "" || age == "" || sex == "" || phone == "" || grade == "" || hobbies == "")
                {
                    this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('信息填写不完整!')</script>");
                    return;
                }
                string remarks = Request["remarks"] == null ? "" : Request["remarks"];
    

    4.生成UUID:

    string id = Guid.NewGuid().ToString("N");//生成uuid:注意:只能用ndbpx,自行百度
    

    c#生成UUID的方法:https://blog.csdn.net/csj1314520/article/details/53033447

    5.项页面输出内容,使页面显示后台传出的数据

    前台:

    <asp:Label ID="lblMsg" runat="server" Text="" Class="selectd"></asp:Label>
    

    后台:

    lblMsg.Text = "请重新选择";
    

    6.页面之间通信:

    a->b
    a页面后台代码发送:

     Session["id"] = str[0];
                    Session["name"] = str[1];
                    Session["age"] = str[2];
                    Session["sex"] = str[3];
                    Session["phone"] = str[4];
                    Session["grade"] = str[5];
                    Session["hobby"] = str[6];
                    Session["remarks"] = str[7];
                    Response.Redirect("update.aspx");
    

    b页面后台代码接收:

    id = (string)Session["id"];
                name.Text = (string)Session["name"];
                phone.Text = (string)Session["phone"];
                sex.Text = (string)Session["sex"];
                age.Text = (string)Session["age"];
                string grade1 = (string)Session["grade"];
                ListItem item1 = grade.Items.FindByValue(grade1);
                if (item1 != null)
                {
                    item1.Selected = true;
                }
                char c = ',';
                string[] str = ((string)Session["hobby"]).Split(c);
                foreach (string val in str)
                {
                    ListItem item = hobby.Items.FindByValue(val);
                    if (item != null)
                    {
                        item.Selected = true;
                    }
                }
                  remarks.Text = (string)Session["remarks"];
    

    7.连接数据库:ADO.NET操作数据库

    sqlserver数据库下载:
    https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=community&rel=15
    安装教程:https://blog.csdn.net/xyy410874116/article/details/26349465
    修改代码里的MySqlCon,这一步用来连接到数据库,至关重要。

    在“服务器资源管理”处选中数据库,然后可以在“属性”窗口找到“连接字符串”,复制其内容,赋给MySqlCon。比如我修改后是:
    Data Source=MS-20180307VTBY\SQLEXPRESS;Initial Catalog=member;Integrated Security=True
    在这里插入图片描述

    完成这些操作后,就可以在form里写代码来修改数据库了。

    8.与数据库的操作:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data.SqlClient;
    using System.Data;
    namespace WebApplication1.ado
    {
        public class Member
        {
            private string MySqlCon = "Data Source=MS-20180307VTBY\\SQLEXPRESS;Initial Catalog=member;Integrated Security=True";    //在vs中的数据库的详细信息中查找复制
    
            //其实是相当于提供一个可以传参的函数,到时候写一个sql语句,存在string里,传给这个函数,就会自动执行。
            public DataTable ExecuteQuery(string sqlStr)      //用于查询;DataTable
            {
                SqlConnection con = new SqlConnection(@MySqlCon);
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sqlStr;
                DataTable dt = new DataTable();
                SqlDataAdapter msda;
                msda = new SqlDataAdapter(cmd);
                msda.Fill(dt);
                con.Close();
                return dt;      //返回查询出的数据表
            }
            public Boolean ExecuteQuery1(string sqlStr)      //用于查询;Boolean
            {
                SqlConnection con = new SqlConnection(@MySqlCon);
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sqlStr;
                SqlDataReader dr = cmd.ExecuteReader();
                Boolean b = false;
                if (dr.HasRows)
                {
                    b = true;
                }
                else
                {
                    b = false;
                }
                con.Close();
                return b; //返回boolean表示是否查询出数据
            }
            public string[] ExecuteQuery2(string sqlStr)      //用于查询;string[]
            {
                SqlConnection con = new SqlConnection(@MySqlCon);
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sqlStr;
                SqlDataReader dr = cmd.ExecuteReader();
                string[] str = new string[8];
                if (dr.HasRows)
                {
                    dr.Read();
                    dr["sex"].ToString();
                    for(int i = 0; i <= 7; i++)
                    {
                        str[i] = (dr.GetString(i)==null|| dr.GetString(i).Length==0)?"": dr.GetString(i);
                    }
                }
                else
                {
                    
                }
                con.Close();
                return str; 
            }
            public int ExecuteUpdate(string sqlStr)      //用于增删改;
            {
                SqlConnection con = new SqlConnection(@MySqlCon);
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sqlStr;
                int iud = 0;
                iud = cmd.ExecuteNonQuery();
                con.Close();
                return iud;    //返回受影响的行数
            }
    
        }
    }
    

    如:
    查询:

    string str = "<table border='1' width='100%'><tr>";
                Member member = new Member();
                string sql = "select * from member";
                DataTable table = member.ExecuteQuery(sql);
                //输出表的列名
                for(int i = 0; i < table.Columns.Count; i++)
                {
                    str = str + "<th colspan=\"2\" style=\"text - align: center; \">" + table.Columns[i].ColumnName + "</th>";
                }
                str = str + "</tr>";
                //输出表的数据
                for(int i = 0; i < table.Rows.Count; i++)
                {
                    DataRow row = table.Rows[i];
                    str = str + "<tr>";
                    for(int j = 0; j < table.Columns.Count; j++)
                    {
                        str = str + "<td colspan=\"2\" style=\"text - align: center; \">" + row[j]+"</td>";
                    }
                    str = str + "</tr>";
                }
                str = str + "</table>";
                lblMsg.Text = str;
    

    详解在:https://blog.csdn.net/kiss__soul/article/details/80316788
    *

    问题解决:

    可能会出现一些问题,如:WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
    其实就是缺少路径或者运行空间
    详解:https://blog.csdn.net/ayang1986/article/details/45042909
    好了,暂时就先这些吧,其实这asp.net和java的某些框架差不多,如果看不懂的话,我还有完整项目(包括数据库文件,是sqlServer数据库)在“我的资源”里,可以下载,直接能运行,里面注解很清晰。

    项目下载:

    https://download.csdn.net/download/weixin_43075298/10890259

    展开全文
  • ASP.NET WEB网站简单入门(简单Demo ->发布)

    万次阅读 多人点赞 2018-07-01 14:50:21
    简单分几个阶段 一、简单代码实现 1.新建工程 2.打开设计器(查看设计器),托出一个label ,写上Hello 3.点击调试,即可看到网页效果 4.重新生成后,发布到指定路径下 5.弹出网站发布设置面板,点击&...

    简单分几个阶段

    一、简单代码实现

    1.新建工程
    这里写图片描述

    2.打开设计器(查看设计器),托出一个label ,写上Hello
    这里写图片描述

    3.点击调试,即可看到网页效果
    这里写图片描述

    4.重新生成后,发布到指定路径下
    这里写图片描述

    5.弹出网站发布设置面板,点击<新建..>,创建新的发布配置文件:
    这里写图片描述

    6.输入你自己定义的配置文件名:
    这里写图片描述
    7.点击下一步:在发布方法中选“文件系统”,这样我们可以发布到自己指定的本机文件上。
    这里写图片描述
    8.选择自己指定的文件夹:通过点击下图中右上角红色箭头处创建新的文件夹,自定义命名(我的就写WebSite)。点击打开,进入下一步
    这里写图片描述
    9.在配置中,要选择“Release”——发布模式(Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序)
    这里写图片描述
    10.点击发布即可以发布你指定的文件夹中,这里,我发布的是E盘下的WebSite文件夹中。
    这里写图片描述

    二、IIS简单安装

    1.打开“控制面板”—>选择“程序”。
    这里写图片描述
    2.在弹出对话框中选择“启用或关闭Windows功能”。
    这里写图片描述
    3.在弹出对话框中,选择“Internet Information Services”(如果初学者,建议全部选择,对于老手,按需选择),点击“确定”。
    这里写图片描述
    4.运用程序更改结束后,选择“立即重新启动”。系统重新启动后,则IIS配置结束。
    5.测试:打开网页输入:http://localhost
    这里写图片描述

    三、IIS发布网站

    1.通过》控制面板》管理工具》启动 ‘Internet信息服务(IIS)管理器’ 进入IIS界面。
    右键单击网站》添加网站
    这里写图片描述

    2.下面图中,左边红色方框内输入自定义的网站名称(请尽量用英文,这里我就写MyPhotoSite),右边红色箭头处需要点击 ‘选择(E)…’ 进行更改。
    这里写图片描述
    3.大家可以点开下拉列表框根据自己的网站版本进行选择(一般请选择 不带有Classic的)。这里我选择的是选择DefaultAppPool,
    这里写图片描述
    4.点击下拉列表选择 “自己当前的IP地址”,这里使用默认地址,localhost
    这里写图片描述
    5.点击确定:这时我们的网站就还差一步就发布好了,点击网站MyPhotosSite,再点击下图红色箭头处 切换到 “内容视图”。
    这里写图片描述
    6.最后一步:注册IIS服务器。命令:aspnet_regiis -i(请复制),先在程序菜单》VS2013里面》Visual Studio Tools》VS2013开发人员命令提示。右键单击 “VS2013开发人员命令提示”。以管理员身份运行。(如果不是以管理员身份运行,将会提示“权限不足”错误)
    这里写图片描述
    这里写图片描述
    7.运行后,右键粘贴 aspnet_regiis -i 按回车。
    这里写图片描述
    8.发布成功,输入地址测试一下
    这里写图片描述

    展开全文
  • Asp.net学生信息管理系统源码

    千次下载 热门讨论 2007-09-12 06:28:06
    Asp.net学生信息管理系统源码(绝对开源!包含完整的CS文件和数据库文件) <br> 该系统是一个集成多功能的信息管理系统,有教师资料管理、学生管理、班级管理、专业管理、课程管理、成绩管理和院系管理功能模块。...
  • ASP.NET WEB介绍

    千次阅读 多人点赞 2019-03-22 14:30:13
    我的ASP.NET 第一讲 ASP.NET 入门 ASP.NET 是动态 网络 语言。那么运行 在服务器中,在这里我们始终离不开浏览器的角色,因此在学习网页开发先了解浏览器: 浏览器的介绍 一.五大浏览器:* 1.浏览器有哪些? ...

    我的ASP.NET 第一讲 ASP.NET 入门
    ASP.NET 是动态 网络 语言。那么运行 在服务器中,在这里我们始终离不开浏览器的角色,因此在学习网页开发先了解浏览器:
    浏览器的介绍
    一.五大浏览器:*
    1.浏览器有哪些?

    							 **Internet Explorer (IE), Trident内核:
    							 FireFox(火狐),  Gecko内核:
    							 Chrome(谷歌)  WebKit内核 和 Blink内核
    							 Opera(欧朋)Presto内核  和 Blink内核
    							 Safari(苹果) WebKit内核 和 Blink内核 13年后的**
    						
    				浏览器的核心就是内核:可大概译为"渲染引擎",不过我们一般习惯将之称为"浏览器内核"
    

    1.2 浏览器内核

    				1.Trident内核:代表产品IE,又称为IE内核。是微软开发的一种排版引擎。使用Trident渲染引擎的浏览器有:IE,遨游,世界之窗浏览器,腾讯TT等等。
    				2.Gecko内核:代表产品Mozilla FirefoxGecko是一套开源的,C++编写的排版引擎。使用它最著名的浏览器有Firefox,Netscape6至9。
    				3.WebKit内核:代表产品有Safari,主要用于Mac OS系统。使用它的浏览器是Safari和谷歌浏览器Chrome。
    				4.Presto内核:代表产品OperaPresto是由Opera Software开发的浏览器排版引擎,它是世界公认最快的渲染速度的引擎。在13年之后,Opera宣布加入谷歌阵营,弃用了。
    				5.Blink内核:由Google和Opera Software开发的浏览器排版引擎,2013年4月发布。现在Chrome和Opera内核是Blink。
    

    ·浏览器介绍完了后,我们就该清楚让同学们清楚,什么是WEB,其实WEB概念很抽象接下来我们来讲述一下吧:
    二. WEB 是什么?

    01.概念:Web它是一种基于 超文本 和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。

    											001.超文本:HTML
    											002.HTTP:通讯协议
    											003.动态交互:比如每天网站信息都时时更新
    											004.跨平台:可以在不同的操作系统上运行
    														00001.平台:平台就是操作系统
    														00002.当下的操作系统:
    																			Windows
    																			Linux
    																			Unix
    																			苹果MAC OS
    																			我们国家的深度
    														
    							是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,
    							其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构, 是运行在互联网上的一种分布式系统。
    

    2.WEB的发展史程

    						Web1.0:开始于1994年,其主要特征是
    							大量使用静态的 HTML 网页来发布信息,
    							只解决了人对信息搜索、聚合的需求,
    							而没有解决人与人之间沟通、互动和参与的需求,
    							所以Web2.0应运而生。
    							传统的门户网站如新浪、搜狐、网易等是Web1.0的代表;
    
    					 Web2.0:始于2004,
    							更加注重交互性,可读可写,
    							体现出的方面是各种微博、相册,用户参与性更强。
    							博客中国、校内网、Facebook、YouTube等是Web2.0的代表;
    							
    					Web3.0:Web3.0是Intnet发展的必然趋势,是Web2.0的进一步发展和延伸。Web3.0在Web 2.0的基础上,
    							将杂乱的微内容进行最小单位的继续拆分,
    							同时进行词义标准化、结构化,实现微信息之间的互动和微内容间基于语义的链接;
    							提供更个性化、精准化搜索等人工智能服务、数据的自由整合与有效聚合、
    							适合多种终端平台等特点。
    							iGoogle、阔地网络等是Web3.0的代表。
    					
    

    3.Web资源包括静态、动态两种:

    								静态web资源:
    									指静态HTML页面的集合,页面中浏览的    数据始终是不变,
    									如早期的静态网站, Web页面中的内容无法动态更新,无法实现和用户的交互。
    									
    								动态web资源:
    									指web页面中浏览的数据是由服务器程序产生的,
    									动态WEB具有交互性,WEB的页面的内容可以动态更新。
    	002. 
    B/S:browser/server  浏览器/服务器模式
    		举例:京东商城
    C/S:client/server      客户端/浏览器模式
    
    
    两者的比较:  
    

    三、什么是CS和BS结构?

    		  1.C/S又称Client/Server或客户/服务器模式。
    						服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。
    						客户端需要安装专用的客户端软件。
    
    		2.B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,
    					服务器安装Oracle、Sybase、Informix或SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。
    					
    		3.局域网和广域网
    				 Client/Server是建立在局域网的基础上的。
    							一个学校 、工厂、一个部门、一个机关
    				 Browser/Server是建立在广域网的基础上的.
    						 跨越物理范围比较大,几公里 几十公里 、几千公里、几大洲等等
    	 
    
    		4.硬件环境不同:
    					C/S 一般建立在专用的网络上, 小范围里的网络环境, 
    								局域网之间再通过专门服务器提供连接和数据交换服务.
    					B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行
    
    		5.对安全要求不同
    					C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强.一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.
    					B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群.
    
    		6.对程序架构不同
    				C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
    				B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 
    				从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.
    
    		7.软件重用不同
    				C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.
    				B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子
    
    		8.系统维护不同
    		系统维护是软件生存周期中,开销大, -------重要
    					C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级.升级难. 可能是再做一个全新的系统
    					B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.
    
    		9.处理问题不同
    				C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统。
    				B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小
    
    		二、CS和BS结构各自的优、缺点
    		1.C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。
    				缺点主要有以下几个:
    								只适用于局域网。       而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。
    								客户端需要安装专用的客户端软件。首先涉及到安装的工作量,
    								其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。
    								特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。
    								系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。
    								对客户端的操作系统一般也会有限制。可能适应于Win98, 但不能用于Win2000或WindowsXP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。
    
    		2.B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。
    							只要有一台能上网的电脑就能使用,客户端零维护。
    							系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。
    							甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。
    							
    				
    		3、动态网页技术
    							1,"交互性"即网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋.
    							2,"自动更新"即无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量.
    							3,"因时因人而变",即当不同的时间,不同的人访问同一网址时会产生不同的页面。
    

    四、URL(Uniform Resource Locator)

    1.统一资源定位符,

    		用于完整地描述Internet上网页和其他资源的地址的一种标识方法。
    

    2.示例:
    http://www.baidu.com:8080/course/java.html

    		    	  协议http
    
    			www   万维网服务
    
    			baidu.com   服务器域名
    
    			8080 端口 门牌号
    
    			Course  服务器的子目录
    
    			  Java.html   具体的文件
    				
    		总结的规律:组成:协议+服务器地址(端口)+具体资源路径
    
    Web应用需要安装web服务器,然后再在Web服务器中部署相应的web资源,供用户使用浏览器访问:
    

    五、常用Web服务器:

    				IIS:Windows产品自带的一种免费的Web服务器,安装配置简单,主要解析的是ASP程序代码。
    	
    				Apache:免费开源的Web服务器软件,它以跨平台、高效和稳定而闻名,是最流行的Web服务器端软件之一。
    	
    				Tomcat 服务器:Apache开源项目中的一个子项目,是一个小型、轻量级的支持JSP和Servlet 技术的Web应用服务器。
    	
    				Nginx :Nginx 服务器是一个高性能的 Web 和反向代理服务器。
    	
    				Nginx 在激烈的 Web 服务器竞争中依旧保持良好的发展势头,一度成为 Web 服务器市场的后起之秀。
    	
    				其它商业化的专业服务器:
    							WebSphere,IBM公司的产品。
    							WebLogic ,BEA公司的产品。
    

    六 、讲完HTTP协议

    (1)HTTP简介

    		1.HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
    		
    		2.HTTP协议作为TCP/IP模型中应用层的协议也不例外。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图:
    		![在这里插入图片描述](https://img-blog.csdnimg.cn/2019032213525230.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L015TG92ZUxpeWFuZw==,size_16,color_FFFFFF,t_70)
    		3.HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
    		
    		4.HTTP默认的端口号为80,HTTPS的端口号为443。
    		
    		5.浏览网页是HTTP的主要应用,但是这并不代表HTTP就只能应用于网页的浏览。HTTP是一种协议,只要通信的双方都遵守这个协议,HTTP就能有用武之地。比如咱们常用的QQ,迅雷这些软件,都会使用HTTP协议(还包括其他的协议)。
    

    (2).HTTP特点

    1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
    
    2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
    
    3、HTTP 0.9和1.0使用非持续连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。HTTP 1.1使用持续连接:不必为每个web对象创建一个新的连接,一个连接可以传送多个对象,采用这种方式可以节省传输时间。
    
    4、无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
    
    5、支持B/S及C/S模式。
    

    (3)HTTP的工作流程

    一次HTTP操作称为一个事务,其工作过程可分为四步:
    1.首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
    2.建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
    3.服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
    4.客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
      如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。
    

    (4).HTTP之请求消息Request

    					客户端发送一个HTTP请求到服务器的请求消息包括以下格式:
    					请求行、请求头部、空行和请求数据四个部分组成。
    			(1)Get请求例子
    			![在这里插入图片描述](https://img-blog.csdnimg.cn/20190322140029531.jpg)
    			第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.
    			GET说明请求类型为GET,[/562f25980001b1b106000338.jpg]为要访问的资源,该行的最后一部分说明使用的是HTTP1.1版本。
    			
    			第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息
    			从第二行起为请求头部,HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等
    			
    			第三部分:空行,请求头部后面的空行是必须的
    			即使第四部分的请求数据为空,也必须有空行。
    			
    			第四部分:请求数据也叫主体,可以添加任意的其他数据。
    			这个例子的请求数据为空。
    

    (5)、POST请求例子

    		![在这里插入图片描述](https://img-blog.csdnimg.cn/20190322140359586.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L015TG92ZUxpeWFuZw==,size_16,color_FFFFFF,t_70)
    		第一部分:请求行,第一行明了是post请求,以及http1.1版本。
    		第二部分:请求头部,第二行至第六行。
    		第三部分:空行,第七行的空行。
    		第四部分:请求数据,第八行。
    

    五.HTTP之响应消息Response

    	一般情况下,服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。
    	
    	HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
    	![在这里插入图片描述](https://img-blog.csdnimg.cn/20190322140601761.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L015TG92ZUxpeWFuZw==,size_16,color_FFFFFF,t_70)
    	第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。
    	第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)
    	
    	第二部分:消息报头,用来说明客户端要使用的一些附加信息
    	第二行和第三行和第四行为消息报头,
    	Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是ISO-8859-1
    	
    	第三部分:空行,消息报头后面的空行是必须的
    	第四部分:响应正文,服务器返回给客户端的文本信息。
    	空行后面的html部分为响应正文。
    

    (6).HTTP之状态码

    		状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:
    		1xx:指示信息--表示请求已接收,继续处理
    		2xx:成功--表示请求已被成功接收、理解、接受
    		3xx:重定向--要完成请求必须进行更进一步的操作
    		4xx:客户端错误--请求有语法错误或请求无法实现
    		5xx:服务器端错误--服务器未能实现合法的请求
    
    	常见状态码:
    	![在这里插入图片描述](https://img-blog.csdnimg.cn/20190322140826919.jpg)
    

    (7).HTTP请求方法

    	根据HTTP标准,HTTP请求可以使用多种请求方法。
    	HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
    	HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
    	![在这里插入图片描述](https://img-blog.csdnimg.cn/20190322141001849.jpg)
    

    (8).HTTP工作原理
    HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
    以下是 HTTP 请求/响应的步骤:

    1、客户端连接到Web服务器
    一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.oakcms.cn。
    2、发送HTTP请求
    通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
    3、服务器接受请求并返回HTTP响应
    Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。
    4、释放连接TCP连接
    若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
    5、客户端浏览器解析HTML内容
    客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。
    

    (9).GET和POST的区别

         1、GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.
         2、GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
         3、GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。
         4、GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.
    

    项目案例1:
    在这里插入图片描述
    在Form表单,我们的内容,其次的话第一行是ASP.NET类似,界面是ch1.aspx窗体,ch1.aspx.cs是逻辑代码,那么里面的结构如下:在这里插入图片描述
    案列2:业内传值:
    在这里插入图片描述
    在这里插入图片描述
    案例3模拟登陆

    在这里插入图片描述
    在这里插入图片描述
    谢谢观赏!

    展开全文
  • 本套课程将对基于ASP.NET在线超市进销存系统【成品】的代码部分进行讲解。 该系统能够实现超市商品管理、库存管理、进货管理、损耗管理、销售管理等功能。 系统基于Visual Studio 和SQL Server进行开发,主要...
  • 知识点:理解 ASP.NET 的概念和优势、会创建 ASP.NET Web Form 程序、理解 ASP.NET Web Form 程序的执行阶段、会使用代码内嵌和代码后置两种方式进行编码。 1、网站开发基础了解 1.1 网站开发各环节组成 1.2 ...

    知识点:理解 ASP.NET 的概念和优势、 会创建 ASP.NET Web Form 程序、 理解 ASP.NET Web Form 程序的执行阶段、 会使用代码内嵌和代码后置两种方式进行编码。

     

    1、网站开发基础了解

    1.1   网站开发各环节组成

    1.2    开发网站需要的知识结构

    (1)网站开发前台页面技术

    • 页面设计:HTML、DIV+CSS
    • 页面特效:JavaScript、jQuery

    (2)OOP编程核心公共技能

    • C#基础语法与程序逻辑
    • 面向对象编程基础
    • SQL Server数据库开发基础
    • ADO.NET数据访问技术

    (3)网站开发后台专门技术

    • ASP.NET开发基础
    • 基于WebForm开发企业网站
    • MVC框架学习
    • EF框架学习
    • 基于MVC+EF开发企业网站

     

    2、 ASP.NET概述

            通过学习 HTML+CSS我们会制造静态页面了。静态页面的最大的优点是速度快,可以跨平台,跨服务器。在早期网站建设大多都是静态页面制作的,静态页面的网址是以.HTM、HTML 等为后缀的,在这种静态网站上也可以由动态效果,像滚动字幕,GIF 格式的动画,或是FLASH,这些视觉上的动态效果并不就是动态页面,他们是截然不同的概念。所谓动态网页,就是说该网页文件不仅具有 HTML 标记,而且含有服务器端的脚本程序代码, 实现操作数据库、实现交互等功能。动态网页能根据不同的时间,不同的来访者显示不同的内容,而且动态网站更新方便,一般在后台直接更新的,并不需要人工手动修改代码。

            制造动态页面的主要技术有 ASP.NET、JSP 、 PHP 等,本课程主要讲解 ASP.NET 技术。本章,我们初步认识ASP.NET,了解它的概念和优势,掌握 ASP.NET Web Form 的编码方式等内容。

    2.1   ASP.NET的概念

            开发 Web 程序的主要技术有 ASP.NET、JSP 和 PHP。其中 ASP.NET 是微软公司整个.NET Frame Work 的一部分,使用它可创建动态交互的 Web 页面。其中,ASP 的全称是 Active Server Pages(动态服务器页面),是一种使嵌入在网页中的服务器脚本可由服务器执行的技术。

            ASP.NET、.NET Frame Work 及对应的集成开发环境 Visual Studio 一直以来都在不断地更新,这些更新包括.NET 框架类库的不断扩充、不断纳入新的语言特性等。.NET Frame Work 2.0 的出现标志着.NET Frame Work 真正走向成熟,同时也说明了 ASP.NET 技术的成熟与稳定。为了 支持 ASP.NET 的开发,Visual Studio 也在不断地升级版本。

    2.2   ASP.NET的优势

            作为微软公司.NET Frame Work 的一部分,ASP.NET 技术延续了 Microsoft 的一贯优势,即开发效率高、强大的 IDE(Integrated Development Environment, 集成开发环境)设计工具的 支持。除了这些,ASP.NET 还具备以下优势。

    1)与浏览器无关

            无论使用何种版本的浏览器访问 ASP.NET 应用程序,呈现的结果都一致。ASP.NET 遵循 W3C标准化组织推荐的 XHTML 标准生成页面的代码,而 XHTML 标准被目前所有主流浏览器支持。

    2)编译后执行,运行效率高

            代码编译是指将代码“翻译”成机器语言。ASP.NET 先把代码编译为微软中间语言,然后由即时编译器进一步编译成机器语言。编译好的代码再次运行时不需要重新编译,极大地提高了Web 应用程序的运行效率。

    3)易于部署

            将必要的文件复制到 Web 服务器上,ASP.NET 应用程序即可以部署到该服务器上。不需要重新启动服务器,甚至替换运行的编译代码时,也不需要重新启动 Web 服务器。

    4)丰富的可用资源

            ASP.NET 可利用整个.NET 平台的资源,包括.NET 框架类库和数据访问解决方案等。ASP.NET本身提供了大量的控件,包括与传统 HTML 代码对应的 HTML 控件和重新封装的 Web 控件。

    5)支持多层开发

            ASP.NET 支持多层开发,从而改变原来 Web 项目开发代码混乱,难以管理的状况,使得 Web 项目开发逻辑更清晰,管理维护更方便。

    6)逻辑代码和设计代码分离

            ASP.NET 将逻辑代码放于单独的文件中,将 Web 界面元素和程序逻辑分开显示,这样可以是代码结构更加清晰,方便维护和阅读。

     

    3、创建第一个ASP.NET程序 

    3.1  ASP.NET WebForm的概念

            ASP.NET  WebForm 是微软的开发团队为开发者设计的一个在可视化设计器中拖放控件、编写代码响应事件的快速开发环境。在 WebForm 中,微软将 ASP.NET 的开发模型与 WinForm 统一起来,提供了类似于 WinForm 的控件、事件驱动模型,使 ASP.NET 应用程序的开发体验与 Win Form应用程序高度一致。

            在.NET Frame Work 3.5 SP1 发布前,ASP.NET  WebForm 一直是微软官方提供的唯一的 ASP.NET开发框架。在.NET Frame Work 3.5 SP1 中,微软提供了另一种 ASP.NET 的开发框架即 ASP.NET MVC。

    3.2  创建WebForm应用程序

            开发 ASP.NET Web Form 程序的一般过程:创建解决方案(.sln)  →  添加网站 →  添加 Web →  窗体 →  编写代码 →  调试运行。

            创建 ASP.NET Web Form 程序,实现当用户点击按钮,页面输出“Hello World”的功能。实 现步骤如下所述。

    步骤 1:打开 Visual Studio 2017,点击菜单栏【文件】——【新建项目】, 在弹出的【新建项目】窗口中,在左侧展开“其他项目类型”列表,在列表中选择“Visual Studio 解决方案”。在窗口顶端的.NET 框架版本下拉列表中选择“.NET Framework4.5”,输入解决方案名称和位置后, 单击【确定】按钮。

    步骤 2:在“解决方案资源管理器”窗口中,右击“解决方案”,在快捷菜单中选择“添加”  →  “新建项目”,如图所示。

    步骤 3:弹出【添加新项目】窗口,在窗口的左侧选择开发语言是“Visual C#”,在窗口的 右侧选择“ASP.NET Web应用程序(.NET 应用程序)”,最后给您的Web站点起个名字,这个案例里,我们起的是“HelloWeb”,并浏览选择 Web 站点的保存位置后,最后单击【确定】按钮

    在弹出的【新建ASP.NET Web应用程序 - HelloWeb】窗口中,点击选择【空】,然后再单击【确定】按钮

    在解决方案中添加了名称为“HelloWeb”的站点后,解决方案资源管理器中的目录结构如图所示。Web.config 是 XML 文件,用于网站的配置。

    步骤 4在解决方案里,右击“HelloWeb”的网站,在快捷菜单中选择“添加” →  “Web窗体”。

    此时会弹出一个【指定项名称】,默认名称WebForm1,单击【确定】按钮。

    此时,会自动生成一个WebForm1.aspx文件,并在VS程序中打开,“WebForm1.aspx”即为创建的第一个 Web 页面。

    步骤 5:在“WebForm1.aspx”页面,进行html代码编写,这里只简单的写了title标签设置网页标题,并在body里输出一句话“Hello World”。

    步骤 6:启动运行调试,点击菜单栏【启动】

    在浏览器中查看网页效果。

     

    3.3   快速创建WebForm应用程序

            将上面的步骤简化。

    第一步:打开VS后,在菜单栏单击【文件】——【新建项目】,在弹出的【新建项目】窗口中,依次选择左侧的Visual C#,中间部分的.NET 框架版本下拉列表中选择“.NET Framework4.5”,程序选择“ASP.NET Web应用程序(.NET 应用程序)”,给自己的项目起个名字,浏览好项目存放的位置,可以选择新创建一个解决方案,最后单击【确定】按钮。

    在弹出的【新建ASP.NET Web应用程序 - HelloWeb】窗口中,点击选择【空】,然后再单击【确定】按钮。

    第二步:在解决方案里,右击“HelloWorld”的网站,在快捷菜单中选择“添加” →  “Web窗体”。

    此时会弹出一个【指定项名称】,默认名称WebForm1,可以根据需要自行修改项名称,这里修改为“index”,单击【确定】按钮。

    第三步:在解决方案里,右击“index.aspx”,在快捷菜单中选择“查看设计器”。

    第四步:在设计器界面,从工具箱里依次拖入Label控件和Button控件,并在属性面板修改他们的ID属性、Visible属性、Text属性。(注意:如果VS界面没有找到工具箱、属性面板,可以在菜单栏视图里找到他们)

    第五步:在设计器界面,双击【确定】按钮,进入代码文件,在按钮的Click事件中编写代码:

            protected void BtnSure_Click(object sender, EventArgs e)
            {
                lblInfo.Visible = true;
                lblInfo.Text = "hello world!";
            }

    第六步:启动运行调试,点击菜单栏【启动】

     

    总结:ASP.NET WebForm 的应用程序与大一所学的 WinForm 的应用程序类似,都使用了控件+事件驱动模型,这正是使用 ASP.NET WebForm 技术编写 Web 程序的优秀之处。

     

    4、 ASP.NET 程序的运行机制

    4.1   ASP.NET 程序的执行阶段

    ASP.NET 是一个 Web 开发模型,能创建动态可交互的 Web 页面。ASP.NET 程序的执行方式一般分为以下几个阶段:

    (1) 使用动态 Web 开发技术,如 ASP.NET,编写 Web 应用程序,即动态页面,并部署到 Web服务器端;

    (2) 客户端通过浏览器请求该动态页面;

    (3) Web 服务器定位该 Web 应用程序;

    (4) Web 服务器根据客户端的请求,对 Web 应用程序进行编译或解释,并生成 html 流。将生成的 html 以流的形式返回给客户端;

    (5) 客户端浏览器解释 html 流,并显示为 Web 页面。

    网站的运行原理:

     

           当请求发送至 Web 服务器并被其接收后,服务器会判断请求文件的类型

    • 如果是静态文件, 如 htmljpggif txt 等,服务器会自行根据目录找到文件并发送给客户端。
    • 如果是动态文件, 如 aspx,服务器会通过 aspnet_isapi.dll 将请求转交给ASP.NET 运行时环境进行处理。

             ASP.NET 会先检查代码是否已经被编译。如果没有,则将代码编译成 MSILMicrosoft Intermediate Language, 微软中间语言),然后由 JIT((Just-in-time:即时)编译器进一步编译成机器语言执行。其中,JIT 并非一次完全编译,而是调用哪部分代码就编译哪部分,这样用户等待时间更短。同时,编译好的代码再次请求运行时不需要重新编译,极大提高了 Web 应用程序的性能。这种先将代码编译成中间语言,执行时再编译成机器语言的过程称为二次编译。

     

    4.2   ASP.NET 的服务器

             ASP.NET 程序需要使用 Web 服务器作为发布平台,ASP.NET 使用 IIS 作为 Web 服务器。 IIS(Internet Information Service,Internet 信息服务)是微软开发的 Web 服务器,它基于 Windows 操作系统,操作方便,功能强大。

             实际上,我们在开发阶段并不用配置 IIS,我们只需要像 WinForms 开发那样编码,然后单击运行就可以了。微软在 Visual Studio 中内置了一个轻量级的 Web 服务器,运行应用程序时,将会默认启动它,并在状态栏中出现图标,右击该图标,在弹出的快捷菜单中选择“显示 所有应用程序”选项,可以查看当前正在运行的站点信息,如图所示。

     

    4.3   ASP.NET WebForm的事件驱动模型

             ASP.NET WebForm 和 WinForm 一样,都使用了控件+事件驱动模型。但 ASP.NET WebForm 实现的本质完全不同。在 ASP.NET WebForm 中由用户操作引发的事件中,触发事件的操作在客户端,处理有可能在服务器端。在实际应用中,客户端和服务器端往往是不同的机器;而在 WinForm 中,事件的触发和处理都在执行程序的机器上进行。

             在 ASP.NET WebForm 中,用户操作触发一个事件有可能会产生一次新的 HTTP 请求。如果产生新的请求,那么服务器端在对请求应答时,对用户触发的事件进行处理,将处理结果生成新的页面传递给浏览器,浏览器自动刷新,重新加载整个新的页面,我们把这个过程称为回发(postback)。

    示例练习:WebForm 和 WinForm实现对比

    第一步:在已有的项目中,新添加一个Web窗口,并在设计器界面,拖放一个Button控件,同时修改ID属性为“btnAdd”。再拖放一个Label控件,修改其ID属性为“lblInfo”。

    第二步:双击【Button】按钮,进入Click事件代码编写

            int i = 0;
            protected void btnAdd_Click(object sender, EventArgs e)
            {
                i++;
                lblInfo.Text = "累计到:" + i;
            }

    第三步:启动运行程序,在页面,单击【Button】按钮,观察累计变化。

    第四步:在当前解决方案中,新添加一个窗体项目

    第五步:在窗体界面,添加两个控件Button和Label控件

    第六步:双击Button控件,进入代码编写模式

            int i = 0;
            private void button1_Click(object sender, EventArgs e)
            {
                i++;
                label1.Text = "累计到:" + i;
            }

    第七步:在解决方案资源管理器里,右键单击“WindowsFormsApp1”,在弹出的快捷菜单项里单击【设为启动项】

    第八步:启动运行,预览,在窗体界面,单击【Button】按钮,观察累计变化。

    案例思考:在 WinForm 和 WebForm 两种程序中,输入同样的代码,为什么执行的结果不一样?

     

     

    5、 ASP.NET WebForm 的编码方式

               ASP.NET 有两种编码方式:代码内嵌和代码后置。

     

    5.1   代码内嵌

            把所有的代码都写在.aspx 文件中,不需要.cs 文件,然后把 c#代码写在<% %>或者<script language=”c#” runat=”server”></script>之间。

    示例练习:使用代码内嵌的方式在页面上显示 1 到 100 之间的和。

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
    
    <!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>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <script language="c#" runat="server">
                    int sum = 0;
              </script>
              <%for (int i = 1; i <= 100; i++)
                    {
                          sum += i;
                    }
                %>
            <h2>1到100之间的和是:<span style="color:red"><%=sum %></span></h2>
            </div>
        </form>
    </body>
    </html>

    页面执行效果:(注意:初次编译时,速度会比较慢)

    代码分析:<%=sum %>是<%Response.Write(sum)%>的简化,表示在页面输出变量 sum,Response 是 ASP.NET 的系统对象,会在下一章学习。

     

    5.2   代码后置

            代码后置是微软的一项技术,是编写 ASP.NET 常用的编码方式。具体方式见本章节的第一个示例,在该示例中,页面文件.aspx 和代码文件.cs 两个文件关联构成一个页面。一般情况下,.aspx 的源文件中没有 c#代码,只有控件和 HTMl 代码,而在.cs 文件中编写相关的服务器端代码,这种将控件和布局与代码进行分离的技术称为代码后置。代码后置的好处就是代码和页面内容分离,使代码更清晰。

    示例练习:使用后置代码的方式,在页面上输出 1 到 100 之间的和。

    操作步骤:在上一个示例中,在项目方案资源管理器中,新添加一个Web窗体,并双击打开他对应的.cs文件,

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication1
    {
        public partial class WebForm2 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                int sum = 0;
                for(int i =1; i<=100; i++)
                {
                    sum += i;
                }
                Response.Write("<h2>1到100之间的和是:<span style='color: red'>"+sum+"</span></h2>");
            }
        }
    }

    代码分析:代码中“Page_Load”方法是在加载页面时触发执行的,即由 Page 对象的 Load 事件触发执行,Page 对象是 ASP.NET 的系统对象,会在下一章学习。

            运行某个页面时,可以在解决方案资源管理器中右键单击页面,在弹出的快捷菜单中选择“在浏览器中查看”;也可以右键单击需要作为起始页的文件,在弹出的快捷菜单中选择“设为起始页”,按“F5”键运行网站。

     

     

     

     

     

    ===========这里是结束分割线==============

     

    展开全文
  • asp.net发布网站的详细步骤

    万次阅读 多人点赞 2017-11-07 16:00:46
    1、用VS2013打开解决方案。   2、选中解决方案,点击鼠标“右键”—>从弹出...3、待第2步“清理解决方案”结束后,选中“解决方案”—>点击鼠标“右键”—>在弹出对话框中,选择“重新生成解决方案”。...
  • 关于ASP.NET和.NET的区别和联系

    千次阅读 2017-11-27 10:42:08
    关于ASP.NET和.NET的区别和联系 对于一个新手,往往会被这些名字给搞蒙了,对不起(笨小孩我也被搞蒙过,见笑啦),这归根结底还是怪自己对知识掌握和了解的不够,废话不多,直接到主题。 ASP.NET和.NET的...
  • asp.net mvc 通过api来实现websocket通信

    千次阅读 2017-08-25 10:19:08
    asp.net mvc 通过api来实现websocket通信如果要按照本实例来实现websocket通信,那么必须确认iis是8.0版本及以上,因为低版本好像不支持这种实现方式。 创建API控制器MessageSendController; 在控制器下创建GET方法...
  • 从零开始学ASP.NET(基础篇)

    千次阅读 2004-11-04 10:56:00
    原作者:蓝鲸出处:5D多媒体学ASPNET与ASP有区别,这种区别不是语言上的,而是思路上的区别。ASP是纯面向过程的,而ASPNET是完全面向对向的。这种区别使我们在编程的结构设计上要与ASP有很大的不同。废话少说了,...
  • #region 使用NewtonsoftJson替换掉默认的json序列化组件 .AddNewtonsoftJson(options => { ////修改属性名称的序列化方式,首字母小写 //options.SerializerSettings.ContractResolver = new ...
  • ASP.NET管理系统

    千次下载 热门讨论 2013-01-29 17:08:28
    一个简单的asp.net管理系统,有权限分配,控制到按钮级别.采用vs2008开发,数据库附加即可。
  • ASP.NET通用权限管理系统源代码(含文档、数据库)

    千次下载 热门讨论 2013-08-27 11:30:49
    ASP.NET通用权限管理系统源代码(含文档、数据库) 1.菜单导航管理 2.操作按钮 3.角色管理 4.部门管理 5.用户管理(用户权限) 6.用户组管理(设置成员,用户组权限) 7.系统配置(动态配置系统参数) 8.附加属性...
  • ASP.NET

    热门讨论 2018-01-17 14:01:32
    一、ASP.NET ASP.NET 是一个开发框架,用于通过 HTML、CSS、JavaScript 以及服务器脚本来构建网页和网站。ASP.NET 支持三种开发模式: Web Pages 最简单的 ASP.NET 模型。类似 PHP 和 ASP。 内置了用于数据库、...
  • ASP.NET 网站模板

    千次下载 热门讨论 2010-02-09 01:08:28
    此项目为 美观、功能全面、含网站后台的asp.net网站模板, 是一款面向企业ASP.NET 网站模板。 软件介绍: 系统是基于.Net平台开发的免费商城系统。功能强大,操作方便,设置简便。无需任何设置,上传到支持asp.net...
  • asp.net经典聊天室

    2010-12-17 11:34:40
    asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典聊天室asp.net经典...
  • Asp.Net

    千次阅读 2012-11-09 09:45:21
    asp.net 求助编辑百科名片 ASP 是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术。 指 Active Server Pages(动态服务器页面) ,运行于 IIS 之中的程序 。 ...
  • Asp.net夜话之一:asp.net介绍

    万次阅读 热门讨论 2008-09-12 08:36:00
    题外话:去年至今年以来,陆续写过一些原创的文章了,很多是...之所以把这个系列叫做《asp.net夜话》,是有一些原因的,某不厌酒喜茶,酒越喝越糊涂,茶喝多了也仍然能保持清醒。白天很忙,所以每天回到家之后我会沏一
  • 最新的Pro ASP.NET Web API HTTP Web Services in ASP.NET; 英文高清pdf; 2013年新书,学习ASP.NET Web API 现阶段最权威的一本专业教材; 前置技能:C#(掌握) , MVC(掌握或了解) ,数据库(掌握),HTML(掌握)...
  • ASP.NET Core: 全新的ASP.NET !

    万次阅读 2016-07-08 19:56:12
    ASP.NET Core 1.0 是一个开源跨平台的开发框架,用于构建基于云的现代 Web 应用 。它是从底层开始重新构建来提供性能优良的Web应用开发框架,可以部署在云上或者本地服务器上。另外,它使得 ASP.NET 应用更加精简和...

空空如也

1 2 3 4 5 ... 20
收藏数 621,355
精华内容 248,542
关键字:

asp.net