ASP.NET的优势
1.代码后置功能:将web页面与逻辑代码分开,
前台代码保存在.aspx页面中,后台代码保存到.aspx.cs文件中
2.编译后再执行:编译是将代码翻译为机器语言
在ASP.NET中首先编译成微软的中间语言,再由编译器进一步编译成机器语言,编译完成后的代码再次运行不需要重新编译了,直接使用,大大的提高了程序的性能
3.方便断点调试,由于web服务器不受IDE限制,微软的IIS就有了先天的优势
IIS它是微软公司提供基础运行microsoft windows的互联网基本服务,开发的一种Web服务器软件,可以在Windows Server系统上运行。IIS提供了一种在网络上发布和管理Web应用程序的方式
ASP.NET 文件扩展名
-
经典 ASP 文件的文件扩展名为 .asp
-
ASP.NET 文件的文件扩展名为 .aspx
-
Razor C# 语法的 ASP.NET 文件的文件扩展名为 .cshtml
-
Razor VB 语法的 ASP.NET 文件的文件扩展名为 .vbhtml
什么是 Razor ?
-
Razor 是一种将基于服务器的代码添加到网页中的标记语法
-
Razor 具有传统 ASP.NET 标记的功能,但更容易使用并且更容易学习
-
Razor 是一种服务器端标记语法,与 ASP 和 PHP 很像
-
Razor 支持 C# 和 Visual Basic 编程语言
主要的 Razor C# 语法规则
-
Razor 代码块包含在 @{ ... } 中
-
内联表达式(变量和函数)以 @ 开头
-
代码语句用分号结束
-
变量使用 var 关键字声明
-
字符串用引号括起来
-
C# 代码区分大小写
-
C# 文件的扩展名是 .cshtml
<!-- Single statement block -->@{ var myMessage = "Hello World"; } <!-- Inline expression or variable --> <p>The value of myMessage is: @myMessage</p> <!-- Multi-statement block -->@{ var greeting = "Welcome to our site!"; var weekDay = DateTime.Now.DayOfWeek; var greetingMessage = greeting + " Today is: " + weekDay; }<p>The greeting is: @greetingMessage</p>
Layout Page(布局页)
布局页中使用 @RenderBody() 方法嵌入内容页,除此之外,它与一个正常的网页没有什么差别
防止文件被浏览
在 ASP.NET 中,文件的名称以下划线开头,可以防止这些文件在网上被浏览。
如果您不想让您的内容块或者布局页被您的用户看到,可以重命名这些文件:
_header.cshtm
_footer.cshtml
_Layout.cshtml
隐藏敏感信息
在 ASP.NET 中,隐藏敏感信息(数据库密码、电子邮件密码等等)最通用的方法是将这些信息保存在一个名为"_AppStart"的单独的文件中。
_AppStart.cshtml
@{WebMail.SmtpServer = "mailserver.example.com"; WebMail.EnableSsl = true;WebMail.UserName = "username@example.com"; WebMail.Password = "your-password";WebMail.From = "your-name-here@example.com"; }
URL 和路径
网站/,文件\
URL 是用来访问网站中的文件: http://www.runoob.com/html/html-tutorial.html
URL 对应于服务器上的物理文件:C:\MyWebSites\runoob\html\html-tutorial.html
虚拟路径是物理路径的一种简写表示。如果您使用虚拟路径,当您更改域名或者将您的网页移到其他服务器上时,您可以不用更新路径。
URL | |
---|---|
服务器名称 | RUNOOB |
虚拟路径 | /html/html-tutorial.html |
物理路径 | C:\MyWebSites\runoob\html\html-tutorial.html |
磁盘驱动器的根目录如下书写 C: ,但是网站的根目录是 / (斜线)。
Web 文件夹的虚拟路径通常是与物理文件夹不相同。
在您的代码中,根据您的编码需要决定使用物理路径和和虚拟路径。
ASP.NET 文件夹路径有 3 种工具:~ 运算符、Server.MapPath 方法 和 Href 方法。
~ 运算符
使用 ~ 运算符,在编程代码中规定虚拟路径。
如果您使用 ~ 运算符,在您的站点迁移到其他不同的文件夹或者位置时,您可以不用更改您的任何代码:
var myImagesFolder = "~/images"; var myStyleSheet = "~/styles/StyleSheet.css";
Server.MapPath 方法
Server.MapPath 方法将虚拟路径(/index.html)转换成服务器能理解的物理路径(C:\Documents\MyWebSites\Demo\default.html)。
当您需要打开服务器上的数据文件时,您可以使用这个方法(只有提供完整的物理路径才能访问数据文件):
var pathName = "~/dataFile.txt"; var fileName = Server.MapPath(pathName);
Href 方法
Href 方法将代码中的使用的路径转换成浏览器可以理解的路径(浏览器无法理解 ~ 运算符)。
您可以使用 Href 方法创建资源(比如图像文件 和 CSS 文件)的路径。
一般会在 HTML 中的 <a>、<img> 和 <link> 元素中使用此方法:
ASP.NET Web Pages - 全局页面
在 Web 启动之前:_AppStart
大多数的服务器端代码是写在个人网页里边。例如,如果网页中包含输入表单,那么这个网页通常包含用来读取表单数据的服务器端代码。
然而,您可以通过在您的站点根目录下创建一个名为 _AppStart 的页面,这样在站点启动之前可以先启动代码执行。如果存在此页面,ASP.NET 会在站点中其它页面被请求时,优先运行这个页面。
_AppStart 的典型用途是启动代码和初始化全局数值(比如计数器和全局名称)。
注释 1:AppStart 的文件扩展名与您的网页一致,比如:AppStart.cshtml。
注释 2:_AppStart 有下划线前缀。因此,这些文件不可以直接浏览。
在每一个页面之前:_PageStart
就像 _AppStart 在您的站点启动之前就运行一样,您可以编写在每个文件夹中的任何页面之前运行的代码。
对于您网站中的每个文件夹,您可以添加一个名为 _PageStart 的文件。
_PageStart 的典型用途是为一个文件夹中的所有页面设置布局页面,或者在运行某个页面之前检查用户是否已经登录。
它是如何工作的?
下图显示了它是如何工作的:
当接收到一个请求时,ASP.NET 会首先检查 _AppStart 是否存在。 如果 _AppStart 存在且这是站点接收到的第一个请求,则运行 _AppStart。
然后 ASP.NET 检查 _PageStart 是否存在。如果 _PageStart 存在,则在其它被请求的页面运行之前先运行 _PageStart。
您可以在 _PageStart 中调用 RunPage() 来指定被请求页面的运行位置。否则,默认情况下,被请求页面是在 _PageStart 运行之后才被运行。
MVC 框架的映射方式有所不同。MVC 将 URL 映射到方法。这些方法在类中被称为"控制器"。
控制器负责处理进入的请求,处理输入,保存数据,并把响应发送回客户端。
Winform和WPF最大的区别
布局方式
首先谈下布局方式,一般来说,界面布局的方式有两种,一种是拖控件,另一种是通过布局控件来实现,
而Winform主要是以拖控件的方式为主,配合布局控件做整体布局,
而WPF则恰恰相反,虽然也可以拖控件,但是很少这么做(没winfrom拖的那么爽也是一个原因吧),主要是通过编写XAML代码来实现。
驱动方式
再来说下驱动方式,Winform是基于事件驱动,WPF是基于数据驱动,以操作一个按钮,执行一个查询操作为例Winform是在按钮的点击事件里,写好查询代码,然后将结果展示在数据控件里,
而WPF则是通过按钮绑定一个动作方法,在方法里查询得到数据(Items),数据控件则绑定好数据源
(如 ItemsSource="{Binding Items}"),方法只要查到了数据,控件数据就能显示了,这样做的目的就是尽量减少前后端的耦合。
属性差异
最后说一个最近发现的,控件的属性差异都是存在的,
比如,winfrom的textbox有属性:
AutoCompleteSource 获取或设置一个值,该值指定用于自动完成的完整字符串的源。
AutoCompleteMode 获取或设置控制自动完成如何作用于TextBox的选项
而WPF却没有,其他控件可能也有这情况
HTTP协议
超文本传输协议,是网络模型的应用层(和用户打交道)
长连接:每次请求,响应完成后都会断开,影响效率,长连接会保持一段时间再关闭
TCP协议
在通讯中选会按http协议组织一次,再按照TCP协议传输(网络,网线传输),再转换为http协议
get和post请求区别
http协议内容分为,请求头,请求体,请求头分为:请求行,实体头,头部结束标签
get只有请求头
post有请求头,请求体