WebForm(ASP开发方式,IIS服务器、WebForm开发基础)
一、B/S和C/S
1、C/S
C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。]
WinForm WPF
2、B/S
B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S架构的系统无须特别安装,只有Web浏览器即可。
ASP.NET - 网站应用程序开发技术
WebForm MVC
二、ASP开发模式
例子1:点菜:客人 - 用户
(1).aspx文件
要土豆丝 - 给IIS发送请求 ,IIS就相当于是服务员
通知厨房 - IIS把用户要想看到的ASPX告知.net Framwork框架
厨房炒菜 - .net框架将ASPX页面中的C#代码执行处理
仓库拿土豆- .net框架到SqlServer 中进行数据处理
喊服务员上菜 - .NET框架将处理好的页面给IIS,IIS返回给用户
(2).hrml文件
要头蒜 - html页面请求,IIS直接可以返回给用户,不需要经过.NET框架处理
<%@ language="C#" %> <%@ Import NameSpace="System.Data.SqlClient" %> <html> <head></head> <body> <table border="1"> <tr> <td>用户名</td> <td>密码</td> <td>昵称</td> <td>性别</td> <td>生日</td> <td>民族</td> </tr> <% SqlConnection conn =new SqlConnection("server=.;database=lianxi;user=sa;pwd=123"); SqlCommand cmd=conn.CreateCommand(); cmd.CommandText="select * from Users"; conn.Open(); SqlDataReader dr=cmd.ExecuteReader(); { %> <tr> <td><%=dr[0].ToString()%></td> <td><%=dr[1].ToString()%></td> <td><%=dr[2].ToString()%></td> <td><%=dr[3].ToString()%></td> <td><%=dr[4].ToString()%></td> <td><%=dr[5].ToString()%></td> </tr> <% } conn.close(); %> table </body> </html>
注:★<% c#代码 %>
★<%= %>等号后面返回一个值
★<%@ %>用于声明语言或者引用命名空间
2、IIS安装
(1).安装:控制面板→程序或功能→打开或关闭windows功能→Internet信息服务(打上勾)→确定
(2).vs:Visual Studio Tools→VS2012 x64/x86 兼容工具命令提示(右键管理员启动)→出现路径后加上aspnet_regiis -
三、Webform
1.启动状态
点击启动运行,但是比较慢,相比较而言在html代码上右键,点击在浏览器中查看比较快,但是当我们需要卡断点时必须点击启动运行
2.事件的委托写法
在它的构造函数中,以button1为例:button1.Click+=然后再按两次 tab键
3.HTTP无状态性
每一次事件提交,都会将页面刷新,刷新就必走Load事件,进而出现重复绑定的情况
每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况
解决办法是写一个if语句,括号内写上IsPostBack == false,用来判断是不是第一次响应,95%的代码都写在里面,但是事件委托不能在写里面
4.数据库连接
与winform几乎没有区别,区别在于Webform的实体类、数据访问类没有命名空间,可以直接在代码中引用。
另外创建的类要放在App_Code文件夹中,一般不需要自己创建,建类时会有提示。
5.Webform的三层开发:
界面层:HTML+CSS+JS
业务逻辑层:C#
数据访问层:ADO.NET
界面上的任何效果和内容都要使用纯CSS和JS来制作样式和特效