怎么样在ASPX页面中连接已经写好的样式表文件(.css)?

MScharlie 2005-02-03 11:17:02
谢谢
...全文
297 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
smile9961 2005-03-16
  • 打赏
  • 举报
回复
这样拖一下后,如果在html和“设计”之间切换一次就又不行了,难道每次都这么拖?
whitebo 2005-03-13
  • 打赏
  • 举报
回复
把.CSS文件拖到.ASPX中就可以了
老赵说高考 2005-03-13
  • 打赏
  • 举报
回复
在项目中最好写完整的项目路径
<LINK href="/项目名/public/STYLE.CSS" type="text/css" rel="stylesheet">
webserv2 2005-03-13
  • 打赏
  • 举报
回复
把.CSS文件拖到.ASPX中
hackate 2005-03-13
  • 打赏
  • 举报
回复
有没有把路径嫩错了
adiks 2005-03-13
  • 打赏
  • 举报
回复
ok
heidong2002 2005-03-12
  • 打赏
  • 举报
回复
<meta name="vs_targetSchema" >
<LINK href="../public/STYLE.CSS" type="text/css" rel="stylesheet">


njuzgj 2005-02-17
  • 打赏
  • 举报
回复
<LINK href="../css/mycss.css" type="text/css" rel="stylesheet">
hkongm 2005-02-17
  • 打赏
  • 举报
回复
为什么我这样写没有用阿?
<link href="../public/STYLE.CSS" rel="stylesheet" type="text/css" >

唯一的可能就是路径错
missRainbowAgain 2005-02-17
  • 打赏
  • 举报
回复
顶,我写了也没有用。。。。。
MScharlie 2005-02-03
  • 打赏
  • 举报
回复
为什么我这样写没有用阿?
<link href="../public/STYLE.CSS" rel="stylesheet" type="text/css" >
sykpboy 2005-02-03
  • 打赏
  • 举报
回复
<LINK href="style.css" type="text/css" rel="stylesheet">
add it between "<head>" and "</head>" tags.
jackymi 2005-02-03
  • 打赏
  • 举报
回复
<LINK href="../css/mycss.css" type="text/css" rel="stylesheet">
hedonister 2005-02-03
  • 打赏
  • 举报
回复
<head>
<link rel="stylesheet" href="/csdn.css"/>
</head>
第4章 ASP.NET的网页代码模型及生命周期 从本章开始,就进入了ASP.NET应用程序开发的世界。在了解了C#的结构,以及面向对象的概念后,就可以从面向对象的思想开发ASP.NET应用程序。在ASP.NET,能够使用面向对象的思想和软件开发的一些思想,例如封装、派生、继承以及高级的设计模式等。本章首先介绍ASP.NET最重要的概念---网页代码模型。 4.1 ASP.NET的网页代码模型 在ASP.NET应用程序开发,微软提供了大量的控件,这些控件能够方便用户的开发以及维护。这些控件具有很强的扩展能力,在开发过程无需自己手动编。不仅如此,用户还能够创建自定义控件进行应用程序开发以扩展现有的服务器控件的功能。 4.1.1 创建ASP.NET网站 在ASP.NET,可以创建ASP.NET网站和ASP.NET应用程序,ASP.NET网站的网页元素包含可视元素和页面逻辑元素,并不包含designer.cs文件。而ASP.NET应用程序包含designer.cs文件。创建ASP.NET网站,首先需要创建网站,单击【文件】按钮,在下拉菜单选择【新建网站】选项,单击后会弹出对话框用于ASP.NET网站的创建,如图4-1所示。 图4-1 新建ASP.NET网站 在【位置】选项,旁边的【下拉菜单】可以按照开发的需求来,一般选择文件系统,地址为本机的本地地址。语言为.NET网站使用的语言,如果选择Visual C#,则默认的开发语言为C#,否则为Visual Basic。创建了ASP.NET网站后,系统会自动创建一个代码隐藏页模型页面Default.aspx。ASP.NET网页一般由三部分组成,这三个部分如下所示。 q 可视元素:包括HTML,标记,服务器空间。 q 页面逻辑元素:包括事件处理程序和代码。 q designer.cs页文件:用来为页面的控件做初始化工作,一般只有ASP.NET应用程序(Web Application)才有。 ASP.NET页面包含两种代码模型,一种是单文件页模型,另一种是代码隐藏页模型。这两个模型的功能完全一样,都支持控件的拖拽,以及智能的代码生成。 4.1.2 单文件页模型 单文件页模型的所有代码,包括控件代码、事物处理代码以及HTML代码全都包含在.aspx文件。编程代码在script标签,并使用runat=“server”属性标记。创建一个单文件页模型,在【文件】按钮选择【新建文件】选项,在弹出对话框选择【Web窗体】或在右击当前项目,在下拉菜单选择【添加新建项】选项即可创建一个.aspx页面,如图4-2所示。 图4-2 创建单文件页模型 在创建时,去掉【将代码放在单独的文件】复选框的选择即可创建单文件页模型的ASP.NET文件。创建后文件会自动创建相应的HTML代码以便页面的初始化,示例代码如下所示。 <%@ Page Language=“C#” %> <script runat=“server”> 无标题页
编译并运行,即可看到一个空白的页面被运行了。ASP.NET单文件页模型在创建并生成时,开发人员编的类将编译成程序集,并将该程序集加载到应用程序域,并对该页的类进行实例化后输出到浏览器。可以说,.aspx页面的代码也即将会生成一个类,并包含内部逻辑。在浏览器浏览该页面时,.aspx页面的类实例化并输出到浏览器,反馈给浏览者。ASP.NET单文件页模型运行示例图如图4-3所示。 图4-3 单文件页模型 4.1.3 代码隐藏页模型 代码隐藏页模型与单文件页模型不同的是,代码隐藏页模型将事物处理代码都存放在cs文件,当ASP.NET网页运行的时候,ASP.NET类生成时会先处理cs文件的代码,再处理.aspx页面的代码。这种过程被成为代码分离。 代码分离有一种好处,就是在.aspx页面,开发人员可以将页面直接作为样式来设计,即美工人员也可以设计.aspx页面,而.cs文件由程序员来完成事务处理。同时,将ASP.NET页面样式代码和逻辑处理代码分离能够让维护变得简单,同时代码看上去也非常的优雅。在.aspx页面,代码隐藏页模型的.aspx页面代码基本上和单文件页模型的代码相同,不同的是在script标记的单文件页模型的代码默认被放在了同名的.cs文件,.aspx文件示例代码如下所示。 <%@ Page Language=“C#” AutoEventWireup=“true” CodeFile=“Default.aspx.cs” Inherits=“_Default” %> 无标题页
从上述代码可以看出,在头部声明的时候,单文件页模型只包含Language=“C#”,而代码隐藏页模型包含了CodeFile=“Default.aspx.cs”,说明被分离出去处理事物的代码被定义在Default.aspx.cs,示例代码如下所示。 using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; //使用HtmlControls using System.Web.UI.WebControls; //使用WebControls using System.Web.UI.WebControls.WebParts; //使用WebParts public partial class _Default : System.Web.UI.Page //继承自System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } } 上述代码为Default.apx.cs页面代码。从上述代码可以看出,其格式与类库、编类的格式相同,这也说明了.aspx页面允许使用面向对象的特性,如多态、继承等。但是ASP.NET代码隐藏页模型的运行过程比单文件页模型要复杂,运行示例图如图4-4所示。 图4-4 代码隐藏页模型 上述描述了代码隐藏类模型的页面生成模型。当页面被呈现之前,ASP.NET应用程序会解释并编译相应的cs文件的代码,与此同时,ASP.NET应用程序还会将.aspx页面进行编译并生成.aspx页面对应的类。生成.aspx页面对应的类后会将该类与cs文件的类进行协调生成新的类,该类会通过IIS在用户浏览页面时呈现在用户的浏览器。 4.1.4 创建ASP.NET Web Application ASP.NET网站有一种好处,就是在编译后,编译器将整个网站编译成一个DLL(动态链接库),在更新的时候,只需要更新编译后的DLL(动态链接库)文件即可。但是ASP.NET网站却有一个缺点,编译速度慢,并且类的检查不彻底。 相比之下,ASP.NET Web Application不仅加快了速度,只生成一个程序集,而且可以拆分成多个项目进行管理。创建Application,首先需要新建项目用于开发Web Application,单击菜单栏上的【文件】按钮,在下拉菜单选择【新建项目】选项,在弹出窗口选择【ASP.NET应用程序】选项,如图4-5所示。 图4-5 创建ASP.NET应用程序 在创建了ASP.NET应用程序后,系统同样会默认创建一个Default.aspx页面,不同的是,多出了一个Default.aspx.designer.cs,用来初始化页面控件,一般不需要修改。 4.1.5 ASP.NET网站和ASP.NET应用程序的区别 在ASP.NET,可以创建ASP.NET网站和ASP.NET应用程序,但是ASP.NET网站和ASP.NET应用程序开发过程和编译过程是有区别的。ASP.NET应用程序主要有以下特点: q 可以将ASP.NET应用程序拆分成多个项目以方便开发,管理和维护。 q 可以从项目和源代码管理排除一个文件或项目。 q 支持VSTS的Team Build方便每日构建。 q 可以对编译前后的名称,程序集等进行自定义。 q 对App_GlobalResources 的Resource强类支持。 ASP.NET WebSite编程模型具有以下特点: q 动态编译该页面,而不用编译整个站点。 q 当一部分页面出现错误不会影响到其他的页面或功能。 q 不需要项目文件,可以把一个目录当作一个Web应用来处理。 总体来说,ASP.NET网站适用于较小的网站开发,因为其动态编译的特点,无需整站编译。而ASP.NET应用程序适应大型的网站开发、维护等。 4.2 代码隐藏页模型的解释过程 在ASP.NET的代码隐藏页模型,一个完整的.aspx页面包含两个页面,分别是以.aspx和.cs文件为后缀的文件,这两个文件在形成了整个Web窗体。在编译的过程都被编译成由项目生成的动态链接库(.DLL),同时,.aspx页面同样也会编译。但是与.cs页面编译过程不同的是,当浏览者第一次浏览到.aspx页面时,ASP.NET自动生成该页的.NET类文件,并将其编译成另一个.DLL文件。 当浏览者再一次浏览该页面的时候,生成的.DLL就会在服务器上运行,并响应用户在该页面上的请求或响应,ASP.NET应用程序的解释过程图如4-6所示。 图4-6 代码隐藏页模型页面的执行过程 在客户端浏览器访问该页面时,浏览器会给IIS发送请求消息,IIS则会开始执行ASP.NET编译过程,如果不存在编译过后的DLL文件,则加载编译的类并创建对象。当创建对象完成,生成创建对象后的代码并生成一个ASPX页面代码,该页面代码反馈给IIS,IIS再反馈成HTML页面的形式给客户端。 4.3 代码隐藏页模型的事件驱动处理 在传统的ASP开发ASP的事件都是按照网页的顺序来处理的,一般情况下,ASP页面的事件都是从上到下处理事件,可以说ASP的开发是一个线性的处理模型。在用户的浏览操作,每一次用户的操作都会导致页面重新被发送到服务器。因此,重复的操作必然导致客户端和服务器的往返过程,服务器必须重新创建页面,当创建页面后,服务器再按照原来的从上到下的顺序进行事件处理。 在ASP.NET,通过使用模拟事件驱动模型的行为代替了ASP的线性处理模型。ASP.NET页框架模型隐式的为用户建立了事件和事件处理程序的关联。ASP.NET让用户可以为从浏览器传递的事件在服务器代码设置相应的处理程序。假设某个用户正在浏览网站并与页面之间产生了某种交互,用户的操作就会引发事件,事件通过HTTP被传输到服务器。在服务器ASP.NET框架解释信息,并触发事件与之对应的处理程序。该程序可以是.aspx页面的处理程序,也可以是开发者自定义的类库,或者COM组件等。事件驱动处理如图4-7所示。 图4-7 页面框架的事件驱动处理模型 上图则说明了当一个浏览者通过浏览器触发ASPX页面时,浏览器、服务器和服务器返回页的过程。 4.4 ASP.NET客户端状态 Web开发不像软件开发,Web应用实际上是没有状态的,这就说明Web应用程序不自动指示序列的请求是否来自相同的浏览器或客户端,也无法判断浏览器是否一直在浏览一个页面或者一个站点,也无法判断用户执行了哪个操作并统计用户的喜好。 4.4.1 视图状态 从上面的章节可以知道,当服务器每次的往返过程,都将销毁页面并重新创建新的页面。如果一个页面的信息超出了页面的生命周期,那么这个页面的相关信息就不存在了。如果注销了页面的信息,那么用户的一些信息可能就不存在了。 在ASP.NET,网页包含视图状态来保存用户的信息,视图状态在页面发回到自身时,跨页过程存储和用户自己的页面的特定值,视图状态的优点如下所示。 q 不需要任何服务器资源。 q 在默认情况下,对控件启用状态的数据进行维护,不会被破坏。 q 视图状态的值经过哈希运算和压缩保护,安全性更高。 视图状态同样有一些缺点,缺点如下所示。 q 视图状态会影响性能,如果页面存储较大较多的值,则性能会有较大的影响。 q 在手机,移动终端上,可能无法保存视图状态使用的值。 q 视图状态虽然安全性较高,但是还是有风险,如果直接查看页面代码,可以看到相应代码。 4.4.2 控件状态 ASP.NET还提供了控件状态属性作为在服务器往返过程存储自定义控件的数据的方法。在页面控件,如果有多个自定义控件使用多个不同的控件来显示不同的数据结构,为了让这些页面控件能够在在页面上协调的工作,则需要使用控件状态来保护控件,同时,控件状态是不能被关闭的。同样,控件状态也有它的优点,优点如下所示。 q 与视图状态相同的是,不需要任何服务器资源。 q 控件状态是不能被关闭的,提供了控件管理的更加可靠的方法。 q 控件状态具有通用性。 4.4.3 隐藏域 在ASP,通常使用隐藏域保存页面的信息。在ASP.NET,同样具有隐藏域来保存页面的信息,作为维护页面状态的一种形式,但是隐藏域的安全性并不高,最好不要在隐藏域保存过多的信息。隐藏域具有以下优点。 q 不需要任何服务器资源。 q 支持广泛,任何客户端都支持隐藏域。 q 实现简单,隐藏域属于HTML控件,无需像服务器控件那样有需要编程知识。 而隐藏域具有一些不足,如下所示。 q 具有较高的安全隐患。 q 存储结构简单。 q 同样,如果存储了较多的较大的值,则会导致性能问题。 q 如果隐藏域过多,则在某些客户端被禁止。 q 隐藏域将数据存储在服务器上,而不存储在客户端。 注意:如果开发页面的隐藏域过多,这些隐藏域被存储在服务器。当客户端浏览页面的时候,会有一些防火墙扫描页面,以保证操作系统的安全,如果页面的隐藏域过多,那么这些防火墙可能会禁止页面的某些功能。 4.4.4 Cookie Cookie在客户端用户保存网站的少量的用户信息,服务器可以通过编程的方法获取用户信息,Cookie信息和页面请求通常一起发送到服务器,服务器对客户端传递过来的Cookie信息做处理。通常Cookie保存用户的登录状态、用户名等基本信息等等,在后面的章节会详细介绍使用ASP.NET操作Cookies。 4.4.5 客户端状态维护 虽然使用某些客户端状态并不使用服务器资源,但是这些状态都具有潜在的安全隐患,如Cookie。非法用户可以使用Cookie欺骗来攻击网站进行用户信息的获取,不过使用客户端状态能够使用客户端的资源从而提高服务器性能。使用客户端状态,虽然有安全隐患,但是具有良好的编程能力,以及基本的安全知识,能够较好的解决安全问题,同时也能够提高服务器性能。下面小结了一些客户端状态的优缺点。 q 视图状态:推荐当存储少量挥发到自身的页面的信息时使用。 q 控件状态:不需要任何服务器资源,控件状态是不能被关闭的,提供了控件管理的更加可靠和更通用的方法。 q 隐藏域:实现简单,但是在应用程序会造成一些安全隐患。 q Cookie:实现简单,同样也能够简单的获取用户的信息,但是Cookie有大小的限制,不适宜存储大量的代码。 4.5 ASP.NET页面生命周期 ASP.NET页面运行时,也同类的对象一样,有自己的生命周期。ASP.NET页面运行时,ASP.NET页面将经历一个生命周期,在生命周期内,该页面将执行一系列的步骤,包括控件的初始化,控件的实例化,还原状态和维护状态等,以及通过IIS反馈给用户呈现成HTML。 ASP.NET页面生命周期是ASP.NET非常重要的概念,了解ASP.NET页面的生命周期,就能够在合适的生命周期内编代码,执行事务。同样,熟练掌握ASP.NET页面的生命周期,可以开发高效的自定义控件。ASP.NET生命周期通常情况下需要经历几个阶段,这几个阶段如下所示。 q 页请求:页请求发生在页生命周期开始之前。当用户请求一个页面ASP.NET将确定是否需要分析或者编译该页面,或者是否可以在不运行页的情况下直接请求缓存响应客户端。 q 开始:发生了请求后,页面就进入了开始阶段。在该阶段,页面将确定请求是发回请求还是新的客户端请求,并设置IsPostBack属性。 q 初始化:在页面开始后,进入了初始化阶段。初始化期间,页面可以使用服务器控件,并为每个服务器控件进行初始化。 q 加载:页面加载控件。 q 验证:调用所有的验证程序控件的Vailidate方法,来设置各个验证程序控件和页的属性。 q 回发事件:如果是回发请求,则调用所有事件处理的程序。 q 呈现:在呈现期间,视图状态被保存并呈现到页。 q 卸载:完全呈现页面后,将页面发送到客户端并准备丢弃时,将调用卸载。 4.6 ASP.NET生命周期的事件 在页面周期的每个阶段,页面将引发可运行用户代码进行处理事件。对于控件产生的事件,通过声明的方式执行代码,并将事件处理程序绑定到事件。不仅如此,事件还支持自动事件连接,最常用的就是Page_Load事件了,除了Page_Load事件以外,还有Page_Init等其他事件,本节将会介绍此类事件。 4.6.1 页面加载事件(Page_PreInit) 每当页面被发送到服务器时,页面就会重新被加载,启动Page_PreInit事件,执行Page_PreInit事件代码块。当需要对页面的控件进行初始化时,则需要使用此类事件,示例代码如下所示。 protected void Page_PreInit(object sender, EventArgs e) //Page_PreInit事件 { Label1.Text = “OK”; //标签赋值 } 在上述代码,当触发了Page_PreInit事件时,就会执行该事件的代码,上述代码将Lable1的初始文本值设置为“OK”。Page_PreInit事件能够让用户在页面处理,能够让服务器加载时只执行一次而当网页被返回给客户端时不被执行。在Page_PreInit可以使用IsPostBack来实现,当网页第一次加载时IsPostBack属性为false,当页面再次被加载时,IsPostBack属性将会被设置为true。IsPostBack属性的使用能够影响到应用程序的性能。 4.6.2 页面加载事件(Page_Init) Page_Init事件与Page_PreInit事件基本相同,区别在于Page_Init并不能保证完全加载各个控件。虽然在Page_Init事件,依旧可以访问页面的各个空间,但是当页面回送时,Page_Init依然执行所有的代码并且不能通过IsPostBack来执行某些代码,示例代码如下所示。 protected void Page_Init(object sender, EventArgs e) //Page_Init事件 { if (!IsPostBack) //判断是否第一次加载 { Label1.Text = “OK”; //将成功信息赋值给标签 } else { Label1.Text = “IsPostBack”; //将回传的值赋值给标签 } } 4.6.3 页面载入事件(Page_Load) 大多数初学者会认为Page_Load事件是当页面第一次访问触发的事件,其实不然,在ASP.NET页生命周期内,Page_Load远远不是第一次触发的事件,通常情况下,ASP.NET事件顺序如下所示。 q 1. Page_Init()。 q 2. Load ViewState。 q 3. Load Postback data。 q 4. Page_Load()。 q 5. Handle control events。 q 6. Page_PreRender()。 q 7. Page_Render()。 q 8. Unload event。 q 9. Dispose method called。 Page_Load事件是在网页加载的时候一定会被执行的事件。在Page_Load事件,一般都需要使用IsPostBack来判断用户是否进行了操作,因为IsPostBack指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问,示例代码如下所示。 protected void Page_Load(object sender, EventArgs e) //Page_Load事件 { if (!IsPostBack) { Label1.Text = “OK”; //第一次执行的代码块 } else { Label1.Text = “IsPostBack”; //如果用户提交表单等 } } 上述代码使用了Page_Load事件,在页面被创建时,系统会自动在代码隐藏页模型的页面增加此方法。当用户执行了操作,页面响应了客户端回发,则IsPostBack为true,于是执行else的操作。 4.6.4 页面卸载事件(Page_Unload) 在页面被执行完毕后,可以通过Page_Unload事件用来执行页面卸载时的清除工作,当页面被卸载时,执行此事件。以下情况会触发Page_Unload事件。 q 页面被关闭。 q 数据库连接被关闭。 q 对象被关闭。 q 完成日志记录或者其他的程序请求。 4.6.5 页面指令 页面指令用来通知编译器在编译页面时做出的特殊处理。当编译器处理ASP.NET应用程序时,可以通过这些特殊指令要求编译器做特殊处理,例如缓存、使用命名空间等。当需要执行页面指令时,通常的做法是将页面指令包括在文件的头部,示例代码如下所示。 <%@ Page Language=“C#” AutoEventWireup=“true” CodeBehind=“Default.aspx.cs” Inherits=“MyWeb._Default” %> 上述代码,就使用了@Page页面指令来定义ASP.NET页面分析器和编译器使用的特定页的属性。当代码隐藏页模型的页面被创建时,系统会自动增加@Page页面指令。 ASP.NET页面支持多个页面指令,常用的页面指令如下所示。 q @ Page:定义ASP.NET页分析器和编译器使用的页特定(.aspx文件)属性,可以编为<%@ Page attribute=“value” [attribute=“value”…]%>。 q @ Control:定义ASP.NET页分析器和编译器使用的用户控件(.ascx文件)特定的属性。该指令只能为用户控件配置。可以编为<%@ Control attribute=“value” [attribute=“value”…]%>。 q @ Import:将命名空间显示导入到页,使所导入的命名空间的所有类和接口可用户该页。导入的命名空间可以是.NET Framework类库或用户定义的命名空间的一部分。可以编为<%@ Import namespace=“value” %>。 q @ Implements:提示当前页或用户控件实现制定的.NET Framework接口。可以编为<%@ Implements interface=“ValidInterfaceName” %>。 q @ Reference:以声明的方式指示,应该根据在其声明此指令的页对另一个用户控件或页源文件进行动态编译和链接。可以编为<%@ Reference page | control=“pathtofile” %>。 q @ Output Cache:以声明的方式空间ASP.NET页或页包含的用户控件的输出缓存策略。可以编为<%@ Output Cache Duration=“#ofseconds” Location=“Any | Client | Downstream | Server | None” Shared=“True |False” VaryByControl=“controlname” VaryByCustom=“browser | customstring” VaryByHeader=“headers” VaryByParam=“parametername” %> q @ Assembly:在编译过程将程序集链接到当前页,以使程序集的所有类和接口都可用在该页上。可以编为<%@ Assembly Name=“assemblyname” %>或<%@ Assembly Src=“pathname” %>的方式。 q @ Register:将别名与命名空间以及类名关联起来,以便在自定义服务器控件语法使用简明的表示法。可以编为<%@ Register tagprefix=“ tagprefix” Namespace=“namepace” Assembly=“assembly” %>或<%@ Register tagprefix=“ tagprefix” Tagname=“tagname” Src=“pathname” %>的方式。 4.7 ASP.NET网站文件类型 在ASP.NET包含诸多的文件类型,这些类型的文件ASP.NET支持和管理,而除了这些文件以外,其他的文件都由IIS托管。使用VS2008能够创建大部分可以使用ASP.NET托管运行的程序。同时,使用应用程序映射可以将文件类型映射到应用程序。当需要伪静态时,很可能需要将.html后缀托管到IIS的应用扩展,因为默认情况下ASP.NET不会处理HTML的操作。 技巧:现在的网站构架,生成静态是一种降低网站压力的一种很好的解决方案。在某些情况下,服务器可能需要伪静态支持,就是将.aspx页面后缀显式成.html后缀,让搜索引擎能够更好的搜录。 1.ASP.NET管理的文件类型 ASP.NET管理的文件类型能够在ASP.NET应用程序ASP.NET应用程序的不同模块进行访问和调用,这些文件可能是用户能够直接访问的,也有可能是用户无法直接访问的。ASP.NET管理的文件类型如表4-1所示。 表4-1 ASP.NET管理的文件类型 文件类型 保存位置 描述 .asax 根目录。 Global.asax 文件。包含 HttpApplication 对象的派生代码,用于重新展示 Application 对象。 .ascx 根目录或子目录。 可重用的自定义 Web 控件。 .ashx 根目录或子目录。 处理器文件。包含实现 IHttpHandler 接口的代码,用于处理输入请求。 .asmx 根目录或子目录。 XML Web Services 文件。包含由 SOAP 提供给其他 Web 应用的类对象和功能。 .aspx 根目录或子目录。 ASP.NET Web 窗体。包含 Web 控件和其他业务逻辑。 .axd 根目录。 跟踪视图文件。通常是 Trace.axd。 .browser App_Browsers 目录。 浏览器定义文件。用于识别客户端浏览器的可用特征。 .cd 根目录或子目录。 类图文件。 .compile Bin 目录。 定位于适当汇编集的预编译文件。可执行文件(.aspx,.ascx,.master,theme)预编译后放在 Bin 目录。 .config 根目录或子目录。 Web.config 配置文件。包含用于配置 ASP.NET 若干特征的 XML 元素集。 .cs,.jsl,vb App_Code 目录。有些是 ASP.NET 的代码分离文件,位于与 Web 页面相同的目录。 运行时被编译的类对象源代码。类对象可以是 HTTP 模块,HTTP 处理器,或 ASP.NET 页面的代码分离文件。 .csproj,vbproj,vjsproj Visual Studio 工程目录。 Visual Studio 客户工程文件。 .disco,.vsdisco App_WebReferences 目录。 XML Web Services Discovery 文件。用于定位可用 Web Services。 .dsdgm,dsprototype 根目录或子目录。 分布式服务图表(DSD)文件。可添加到 Visual Studio 方案,为反向引擎提供消耗 Web Services 时的交互性图表。 .dll Bin 目录。 已编译类库文件。作为替代,可将类对象源代码保存到 App_Code 目录。 .licx,.webinfo 根目录或子目录。 许可协议文件。许可协议有助于保护控件开发者的知识产权,并对控件用户的使用权进行验证。 .master 根目录或子目录。 模板文件定义 Web 页面的统一布局,并在其他页面得到引用。 .mdb,.ldb App_Data 目录。 Access 数据库文件。 .mdf App_Data 目录。 SQLServer 数据库文件。 .msgx,.svc 根目录或子目录。 Indigo Messaging Framework(MFx)服务文件。 .rem 根目录或子目录。 远程处理器文件。 .resources App_GlobalResources 或 App_LocalResources 目录。 资源文件。包含图像,本地化文本,或其他数据的资源引用串。 .resx App_GlobalResources 或 App_LocalResources 目录。 资源文件。包含图像,本地化文本,或其他数据的资源引用串。 .sdm,.sdmDocument 根目录或子目录。 系统定义模型(SDM)文件。 .sitemap 根目录。 网站地图文件。包含网站的结构。ASP.NET 通过默认的网站地图提供者,简化导航控件对网站地图文件的使用。 .skin App_Themes 目录。 皮肤定义文件。用于确定显示格式。 .sln Visual Web Developer 工程目录。 Visual Web Developer 工程的项目文件。 .soap 根目录或子目录。 SOAP 扩展文件。 注意:ASP.NET 管理的文件类型映射到 IIS 的 Aspnet_isapi.dll。 2.IIS 管理的文件类型 在ASP.NET应用程序,有些动态的文件asp文件就不被ASP.NET应用程序框架管理,这些文件由IIS进行管理,由IIS管理的文件类型如表4-2所示。 表4-2 IIS管理的文件类型 文件类型 保存位置 描述 .asa 根目录。 Global.asa 文件。包含 ASP 会话对象或应用程序对象生命周期的各种事件处理。 .asp 根目录或子目录. ASP Web 页面。包含 @ 指令和使用 ASP 内建对象的脚本代码。 .cdx App_Data 目录. Visual FoxPro 的混合索引文件。 .cer 根目录或子目录。 证明文件。用于对网站的授权。 .idc 根目录或子目录。 Internet Database Connector(IDC)文件。被映射到 httpodbc.dll。 注意:由于无法为数据库连接提供足够的安全性,IDC 将不再被继续使用。IIS 6.0 是最后一个支持 IDC 的版本。 .shtm,.shtml,.stm 根目录或子目录。 包含文件。被映射到 ssinc.dll。 注意:IIS管理的文件类型被映射到IIS的asp.dll 3.静态文件类型 IIS仅提供已注册MIME类型的静态文件服务,注册信息保存在Mime Map IIS元数据库。如果某种文件类型已经映射到指定应用程序,在不需要作为静态文件的情况之下,无需再在MIME类型列表进行包含。默认的静态文件类型如表4-3所示。 表4-3 静态文件类型 文件类型 保存位置 描述 .css 根目录或子目录,以及 App_Themes 目录。 样式表文件。用于确定 HTML 元素的显示格式。 .htm,.html 根目录或子目录。 静态网页文件。由 HTML 代码编。 注意:虽然ASP.NET的代码页面也能够手动添加到MIME类型列表,但是这样操作浏览者就能够看到页面源代码,从而暴露ASP.NET页面源代码,相对于服务器而言是非常不安全的。 4.8 小结 本章介绍了ASP.NET页面生命周期,以及ASP.NET页面的几种模型。ASP.NET页面生命周期是ASP.NET非常重要的概念,熟练掌握ASP.NET生命周期能对ASP.NET开发,自定义控件开发起到促进作用。本章还介绍了: q 代码隐藏页模型的解释过程。 q 代码隐藏页模型的事件驱动处理。 q ASP.NET网页的客户端状态。 q ASP.NET页面生命周期。 q ASP.NET生命周期的事件。 q ASP.NET 网站文件类型。 上面的章节都分开的讲解了ASP.NET运行的一些基本机制,在了解了这些基本运行机制后,就能够在.NET框架下做ASP.NET开发了。虽然这些都是基本概念,但是在今后的开发,会起到非常重要的作用。
一、源码特点 企业费用管理系统,有权限分配,登陆验证,新增角色,发布公告等   二、功能介绍 1、js的兼容性有个地方不行(比如模块排序,那个时候也是雏鸟一只,了一小撮,现在用jq应该好处理的吧,ie里面没问题,大家发挥吧) 2、里面的菜单和对应菜单下面的目录项可以根据需求自己添加的,有对应模块 3、可以根据自己设定的角色添加对应的访问页面 4、有些操作涉及到按钮权限,对于这种思路,我粗粗的了2个自定义控件,里面模块有demo使用细看即可,根据这个思路后面完善应该不难的哈。 5、关于分页新手也是很热乎这方面的,里面有2种分页样式,一个是这个后台框架本身设计配套,还有一个是我从淘宝客的后台偷下来的(用着蛮贴切的),样式表css文件夹下的custompagebar.css;逻辑代码都好了,自行绑定数据调用吧。   三、菜单功能 1、会员管理:添加会员;会员列表;配送地址管理;新增配送地址 2、页面管理:页面列表;添加文件 3、菜单管理:菜单列表;添加菜单 4、角色管理:角色列表;新增角色 5、系统用户:系统用户列表;新增系统用户 6、系统参数:参数列表;新增配置参数 7、新增会员;新增产品;发布公告等   四、注意事项 1、开发环境为Visual Studio 2010,数据库为SQLServer2008R2,使用.net 4.0开发。 2、管理员登陆名密码均为:51aspx 3、附加数据库连接字符串配置文件在web.config 4、DB_51aspx文件是数据库文件,附加即可      相关阅读 同类推荐:企业网站源码
国际学术期刊Science/AAAS和英特尔在全球首次联袂推出第一季《架构师成长计划》以来,吸引了无数架构师踊跃参与,获得业内广泛赞誉。为持续助力架构师把握数智机遇,构建未来,第二季《架构师成长计划》全新升级,强势归来!业内顶尖架构师大咖齐聚,为架构师群体量身打造系统成长课程,带来涵盖云游戏、云原生、联邦学习、生信大数据、算力网络、云网融合等多个热门话题的前沿技术及案例实践。第一期:超视频时代 音视频架构建设与演进复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=298&tc=yxq0921l2d&frm=csdn_2第二期:转化医学研究背景下的高性能计算平台复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=311&tc=pzw21rx59o&frm=csdn_2第三期:联邦学习的研究与应用实践复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=315&tc=0e8trfvt8i&frm=csdn_2第四期:用架构思维为云原生做减法复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=316&tc=i2kgf55ggn&frm=csdn_2第五期:网络智能化技术与演进复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=322&tc=ckhvmonqvb&frm=CSDN_2第六期:异构计算 数据心“芯”变革复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=325&tc=mzppx1h6ri&frm=csdn_2第七期:筑算力,话东西复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=327&tc=gwb7n8x79n&frm=csdn_2第八期:AI驱动的生命科学创新范式之变复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=328&tc=zircyqwy9u&frm=csdn_2第九期:软硬一体实现数据库性能优化复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=348&tc=4a46kfrb0o&frm=csdn_2第十期:AI规模化应用时代的深度学习平台构建复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=349&tc=fm9a1mrumb&frm=csdn_2
不定项选择题(共14题,单选或多选): 一、一个HTML文档必须包含三个元素,它们是head、html和( )。 A.scriptB.bodyC.titleD.link 二、下面哪段javascript能弹出一个提示框?( ) A.document.alert(test) B.window.alert(test) C.document.alert('test ') D.window.alert('test ') 三、当鼠标放在一个链接上的css样式应该( )伪类来定义。 A.a:visitedB.a:linkC.a:hoverD.a:active 四、关于ASP.NET的代码隐藏文件的描述正确的是( )。 A.Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名 B.web窗体也是类 C.项目所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件 D.以上都不正确 五、下列ASP.NET语句( )正确地创建了一个与SQL Server数据库的连接。 A.SqlConnection con1 = new Connection(“Data Source = localhost; Trusted_Connection =Yes; Initial Catalog = myDB”); B.SqlConnection con1 = new SqlConnection(“Data Source = localhost; Trusted_Connection =Yes; Initial Catalog = myDB”); C.SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Trusted_Connection =Yes; Initial Catalog = myDB”); D.SqlConnection con1 = new SqlConnection(Data Source = localhost; Trusted_Connection =Yes; Initial Catalog = myDB); 六、执行一次无返回值的数据删除,必须用到下面哪些对象? ( ) A.SqlConnectionB.SqlDataAdapterC.SqlCommandD.SqlDataReader 七、在ADO.NET,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是( ) A.insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B.ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C.Select操作的Sql语句只能由ExecuteReader()方法来执行; D.ExecuteReader()方法返回一个DataReder对象; 八、ASP.NET有多种维护状态的技术,以下哪种是保存在客户端的?( ) A.VIEWSTATEB.SESSIONC.APPLICATIOND.数据CACHE 九、Cookies的默认生命周期有多长? ( ) A.20分钟B.30分钟C. 一天D.随浏览器的关闭而失效 十、int[][] myArray=new int[3][]{ new int[3]{ 5, 6, 2 }, new int[5]{ 6, 9, 7, 8, 3 }, new int[2]{ 3, 2 }}; myArray[2][2]的值是( ) A.9B.2C.6D.越界 十一、要为做了输出缓存的页面实现即时判断用户IP来路,可在以下哪种事件实现? ( ) A.Page.InitB.HttpApplication.BeginRequest C.Page.LoadD.以上都不是 十二、下面哪个SQL语句完全正确( ) A.Select count(*) from (select top 10 * from table order by bb) tb group by cc B.update set bb = bb + 1 from table C.Select count(*) from (select distinct * from table) tb group by cc D.delete * from table 十三、为了实现a.aspx的URL重,下面哪个正则表达式替换可以实现?( ) A. Regex.Replace(sUrl, @“/(\d+).aspx”, “a.aspx?ID=$0”, RegexOptions.IgnoreCase) B. Regex.Replace(sUrl, @“/(\d+).aspx”, “/a.aspx?ID=$0”, RegexOptions.IgnoreCase) C. Regex.Replace(sUrl, @“/(\d+).aspx”, “a.aspx?ID=$1”, RegexOptions.IgnoreCase) D. Regex.Replace(sUrl, @“/(\d+).aspx”, “/a.aspx?ID=$1”, RegexOptions.IgnoreCase) 十四、下面javascript代码的输出结果是( ) var aa = new Array(1, 2, 4, 5, 3, 6); var c = 0; for (var i = 0; i < aa.length; ++i){ c += aa.pop(); } document.write(c); 提示:Array.pop()函数将数组内最后一个元素移除并返回该元素 A.7 B.14 C.21 D.以上皆不正确 填空题(共4题): 一、C#判断整型变量k是否偶数的语句: 二、有这样的枚举定义:public enum TrainType{ 空调, 快速, 新型, 卧铺 },为实现它的按位组合,你会分别赋予它们什么值?请用逗号按顺序分隔开 三、C#为了防止非本程序集的代码访问,可以用什么关键字修饰类或者类成员? 四、为了将table表内bb(datetime类型)字段的数据按年月降序输出,对应的SQL语句为 选择题答案: 1.B,2.D,3.C,4.BC,5.B,6.AC,7.C,8.A,9.D,10.D,11.B,12.AC,13.D,14.B 填空题答案: 1.(k & 1) == 0 或 k % 2 == 0 2.1,2,4,8(答案不定,看情况) 3.internal 4.select * from table order by year(bb) desc, month(bb) desc 1.new有几种用法 第一种:new Class(); 第二种:覆盖方法 public new XXXX(){} 第三种:new 约束指定泛型类声明的任何类型参数都必须有公共的无参数构造函数。 2.如何把一个array复制到arrayList里 foreach( object o in array )arrayList.Add(o); 3.datagrid.datasouse可以连接什么数据源 [dataset,datatable,dataview] dataset,datatable,dataview , IList 4.概述反射和序列化 反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型。然后,可以调用类型的方法或访问其字段和属性 序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。 5.概述o/r mapping 的原理 利用反射,配置 将类于数据库表映射 6.类成员有( )种可访问形式 可访问形式?不懂。 可访问性:public ,protected ,private,internal 7.用sealed修饰的类有什么特点 sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。 密封类不能同时为抽象类。 sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。 8.列举ADO.NET的五个主要对象,并简单描述 connection,command,dataReader,trans,dataset ... 9.执行下面代码后: String strTemp ="abcdefg 某某某"; Int i System.Text.Encoding.Default.GetBytes(strTemp).Length; Int j = strTemp.Length; 问:i=(14 ) ;j=(11 ) i=(14 ) ;j=(11 ) 文两个字节 10.C#,string str = null 与 string str ="",请尽量用文字说明区别。(要点:说明详细的内存空间分配) string str ="" 分配空间 11.详述.NET里class和struct的异同! class:放在 ? struct放在? struct值传递 类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。 12.概述.NET里对 remoting 和 webservice 两项技术的理解和实际的应用。 远程逻辑调用,remoing接口只能用在.net 13.什么是code-behind技术 aspx and cs 14.概述三层结构体系 web/business/dataaccess 15.asp.net如何实现MVC模式,举例说明! web/business/dataaccess ---------------------------------------------------------------------------------------------------------- 1.面向对象的思想主要包括什么? 答:这个题范围太广,不知道说什么. 2.什么是ASP.net的用户控件 答:用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已方法调整. 3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释? 答:装箱就是把值类型转成引用类型,从MS IL角度看好像是boxing,没记错的话是把值从堆栈转到堆.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行时,其它的不清楚. 4.列举一下你所了解的XML技术及其应用 答:XML可是好东西,保存配置,站与站之间的交流,WEB SERVICE都要用它. 5.值类型和引用类型的区别?出C#的样例代码。 答:结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的,这个不用多了吧. 6.ADO.net常用的对象有哪些?分别描述一下。 答:connection command sqladapter dataset datatable dataview等等.不完了. 7.如何理解委托? 答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法. msdn2005是这样解释的: 委托具有以下特点: 委托类似于 C++ 函数指针,但它是类型安全的。 委托允许将方法作为参数进行传递。 委托可用于定义回调方法。 委托可以链接在一起;例如,可以对一个事件调用多个方法。 方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。 C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。 8.C#的接口和类有什么异同。 答:这个异同可多了,要说清楚还真不容易. 9.。net数据库需要用到哪些类?他们的作用 答:这个类自已可以的啊,你是指基类吗?那configuration,sqlconnection,sqlcommand等都要用到. 10.UDP连接和TCP连接的异同。 答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结. 11.ASP.net的身份验证方式有哪些?分别是什么原理? 答:form认证,windows集成认证等,原理不清楚. 12.进程和线程分别怎么理解? 答:进程是老子,线程是儿子,没有老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生儿子. 13.什么是code-Behind技术。 答:代码分离,这是个明智的东西,像ASP这样混成一堆很不爽.或者可以理解成HTML代码在前台,C#代码在后台.当然前台也有脚本,类的调用等,其实在一起也是可以的. 14.活动目录的作用。 答:这个不明白.请明白的补充一下. 15..netXML的类都归属于哪些命名空间? 答:System.Xml 我自已的就不一定了,嘿嘿. 16.解释一下UDDI、WSDL的意义及其作用。 答:什么东西? 17.什么是SOAP,有哪些应用。 答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息,具体请看:http://playist.blogchina.com/2521621.html 18.如何部署一个ASP.net页面。 答:随便啦,想直接上传就直接上传,想打包成EXE就打包,看个人喜好. 19.如何理解.net的垃圾回收机制。 答:GC?对象创建了总要清除啊,不然内存哪够用?
目录 第一篇 .NET基础 第 1 章认识 ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET 历史与展望 1.1.2 ASP.NET 与ASP 1.1.3 ASP.NET 开发工具 1.1.4 ASP.NET 客户端 1.1.5 ASP.NET 3.5 新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET 应用程序需框架 1.2.1 什么是.NET 应用程序框架 1.2.2 公共语言运行时(CLR) 1.2.3 .NET Framework 类库 1.3 安装Visual Studio 2008 1.3.1 安装Visual Studio 2008 1.3.2 主窗口 1.3.3 文档窗口 1.3.4 工具箱 1.3.5 解决方案管理器 1.3.6 属性窗口 1.3.7 错误列表窗口 1.4 安装SQL Server 2005 1.5 ASP.NET 应用程序基础 1.5.1 创建ASP.NET 应用程序 1.5.2 运行ASP.NET 应用程序 1.5.3 编译ASP.NET 应用程序 1.6 小结 第 2 章 C# 3.0 程序设计基础 2.1 C#程序 2.1.1 C#程序的结构 第一篇窗口与界面编程 7 2.1.2 C# IDE 的代码设置 2.2 变量 2.2.1 定义 2.2.2 值类型 2.2.3 引用类型 2.3 变量规则 2.3.1 命名规则和命名习惯 2.3.2 声明并初始化变量 2.3.3 数组 2.3.4 声明并初始化字符串 2.3.5 操作字符串 2.3.6 创建和使用常量 2.3.7 创建并使用枚举 2.3.8 类型转换 2.4 编表达式 2.4.1 表达式和运算符 2.4.2 运算符的优先级 2.5 使用条件语句 2.5.1 if 语句的使用方法 2.5.2 switch 选择语句的使用 2.6 使用循环语句 2.6.1 for 循环语句 2.6.2 while 循环语句 2.6.3 do while 循环语句 2.6.4 foreach 循环语句 2.7 异常处理语句 2.7.1 throw 异常语句 2.7.2 try-catch 异常语句 2.7.3 try-finally 异常语句 2.7.4 try-catch-finally 异常语句 2.8 小结 第 3 章面向对象设计基础 3.1 什么是面向对象 3.1.1 传统的面向过程 3.1.2 面向对象的概念 8 第一篇 窗口与界面编程 3.1.3 面向组件的概念 3.2 面向对象的C#实现 3.2.1 定义 3.2.2 创建一个类和其方法 3.2.3 类成员 3.2.4 构造函数和析构函数 3.3 对象的生命周期 3.3.1 类成员的访问 3.3.2 类的类型 3.3.3 .NET 的垃圾回收机制 3.4 使用命名空间 3.4.1 为什么要用命名空间 3.4.2 创建命名空间 3.4.3 分层设计使用命名空间 3.5 类的方法 3.5.1 编方法 3.5.2 给方法传递参数 3.5.3 通过引用来传递参数 3.5.4 方法的重载 3.6 封装 3.6.1 为什么要封装 3.6.2 类的设计 3.7 属性 3.7.1 语法 3.7.2 只读/只属性 3.8 继承 3.8.1 继承的基本概念 3.8.2 创建派生类 3.8.3 对象的创建 3.8.4 使用抽象类 3.8.5 使用密封类 3.9 多态 3.9.1 抽象方法 3.9.2 覆盖 3.9.3 虚方法的抽象类 3.9.4 抽象属性 第一篇窗口与界面编程 9 3.10 委托和事件 3.10.1 委托 3.10.2 声明事件 3.10.3 引发事件 3.10.4 订阅事件 3.10.5 委托和事件 3.11 类命名 3.11.1 命名空间的命名 3.11.2 类的命名原则 3.11.3 接口的命名原则 3.11.4 属性的命名原则 3.11.5 枚举的命名原则 3.11.6 只读字段的命名原则 3.11.7 参数名 3.11.8 委托命名原则 3.12 小议设计模式 3.12.1 什么是设计模式 3.12.2 为什么要使用设计模式 3.12.3 改装现有类 3.13 小结 第 4 章 ASP.NET 的网页代码模型及生命周期 4.1 ASP.NET 的网页代码模型 4.1.1 创建ASP.NET 网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET 网站和ASP.NET 应用程序的区别 4.2 代码隐藏页模型的解释过程 4.3 代码隐藏页模型的事件驱动处理 4.4 ASP.NET 客户端状态 4.4.1 视图状态 4.4.2 控件状态 4.4.3 隐藏域 4.4.4 Cookie 4.4.5 客户端状态维护 10 第一篇 窗口与界面编程 4.5 ASP.NET 页面生命周期 4.6 ASP.NET 生命周期的事件 4.6.1 页面加载事件(Page_PreInit) 4.6.2 页面加载事件(Page_Init) 4.6.3 页面载入事件(Page_Load) 4.6.4 页面卸载事件(Page_Unload) 4.6.5 页面指令 4.7 ASP.NET 网站文件类型 4.8 小结 第二篇 ASP.NET窗体控件 第 5 章 Web 窗体的基本控件 5.1 控件的属性 5.2 简单控件 5.2.1 标签控件(Label) 5.2.2 超链接控件(HyperLink) 5.2.3 图像控件(Image) 5.3 文本框控件(TextBox) 5.3.1 文本框控件的属性 5.3.2 文本框控件的使用 5.4 按钮控件(Button,LinkButton,ImageButton) 5.4.1 按钮控件的通用属性 5.4.2 Click 单击事件 5.4.3 Command 命令事件 5.5 单选控件和单选组控件(RadioButton 和RadioButtonList) 5.5.1 单选控件(RadioButton) 5.5.2 单选组控件(RadioButtonList) 5.6 复选框控件和复选组控件(CheckBox 和CheckBoxList) 5.6.1 复选框控件(CheckBox) 5.6.2 复选组控件(CheckBoxList) 5.7 列表控件(DropDownList,ListBox 和BulletedList) 5.7.1 DropDownList 列表控件 5.7.2 ListBox 列表控件 5.7.3 BulletedList 列表控件 第一篇窗口与界面编程 11 5.8 面板控件(Panel) 5.9 占位控件(PlaceHolder) 5.10 日历控件(Calendar) 5.10.1 日历控件的样式 5.10.2 日历控件的事件 5.11 广告控件(AdRotator) 5.12 文件上传控件(FileUpload) 5.13 视图控件(MultiView 和View) 5.14 表控件(Table) 5.15 向导控件(Wizard) 5.15.1 向导控件的样式 5.15.2 导航控件的事件 5.16 XML 控件 5.17 验证控件 5.17.1 表单验证控件(RequiredFieldValidator) 5.17.2 比较验证控件(CompareValidator) 5.17.3 范围验证控件(RangeValidator) 5.17.4 正则验证控件(RegularExpressionValidator) 5.17.5 自定义逻辑验证控件(CustomValidator) 5.17.6 验证组控件(ValidationSummary) 5.18 导航控件 5.19 其他控件 5.19.1 隐藏输入框控件(HiddenField) 5.19.2 图片热点控件(ImageMap) 5.19.3 静态标签控件(Lieral) 5.19.4 动态缓存更新控件(Substitution) 5.20 小结 第 6 章 Web 窗体的高级控件 6.1 登录控件 6.1.1 登录控件(Login) 6.1.2 登录名称控件(LoginName) 6.1.3 登录视图控件(LoginView) 6.1.4 登录状态控件(LoginStatus) 6.1.5 密码恢复控件(PasswordRecovery) 6.1.6 密码更改控件(ChangePassword) 12 第一篇 窗口与界面编程 6.1.7 生成用户控件(CreateUserWizard) 6.2 网站管理工具 6.2.1 启动管理工具 6.2.2 用户管理 6.2.3 用户角色 6.2.4 访问规则管理 2.6.5 应用程序配置 6.3 使用登录控件 6.3.1 生成用户控件(CreateUserWizard) 6.3.2 密码更改控件(ChangePassword) 6.4 小结 第三篇 数据操作篇 第 7 章数据库与 ADO.NET 基础 7.1 数据库基础 7.1.1 结构化查询语言 7.1.2 表和视图 7.1.3 存储过程和触发器 7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库关系图 7.3 ADO.NET 连接SQL 数据库 7.3.1 ADO.NET 基础 7.3.2 连接SQL 数据库 7.3.3 ADO.NET 过程 7.4 ADO 与ADO.NET 7.4.1 ADO 概述 7.4.2 ADO.NET 与ADO 第一篇窗口与界面编程 13 7.5 ADO.NET 常用对象 7.6 Connection 连接对象 7.6.1 连接SQL 数据库 7.6.2 连接Access 数据库 7.6.3 打开和关闭连接 7.7 DataAdapter 适配器对象 7.8 Command 执行对象 7.8.1 ExecuteNonQuery 方法 7.8.2 ExecuteNonQuery 执行存储过程 7.8.3 ExecuteScalar 方法 7.9 DataSet 数据集对象 7.9.1 DataSet 数据集基本对象 7.9.2 DataTable 数据表对象 7.9.3 DataRow 数据行对象 7.9.4 DataView 数据视图对象 7.10 DataReader 数据访问对象 7.10.1 DataReader 对象概述 7.10.2 DataReader 读取数据库 7.10.3 异常处理 7.11 连接池概述 7.12 参数化查询 7.13 小结 第 8 章 Web 窗体的数据控件 8.1 数据源控件 8.1.1 SQL 数据源控件(SqlDataSource) 8.1.2 Access 数据源控件(AccessDataSource) 8.1.3 目标数据源控件(ObjectDataSource) 8.1.4 LINQ 数据源控件(LinqDataSource) 8.1.5 Xml 数据源控件(XmlDataSource) 8.1.6 站点导航控件(SiteMapDataSource) 8.2 重复列表控件(Repeater) 8.3 数据列表控件(DataList) 8.4 数据列表控件(GridView) 8.5 数据绑定控件(FormView) 8.6 数据绑定控件(DetailsView) 14 第一篇 窗口与界面编程 8.7 数据绑定控件(ListView) 8.8 数据绑定控件(DataPager) 8.9 小结 第 9 章 ASP.NET 操作数据库 9.1 使用ADO.NET 操作数据库 9.1.1 使用ExecuteReader()操作数据库 9.1.2 使用ExecuteNonQuery()操作数据库 9.1.3 使用ExecuteScalar()操作数据库 9.1.4 使用ExecuteXmlReader()操作数据库 9.2 ASP.NET 创建和插入记录 9.2.1 SQL INSERT 数据插入语句 9.2.2 使用Command 对象更新记录 9.2.3 使用DataSet 数据集插入记录 9.3 ASP.NET 更新数据库 9.3.1 SQL UPDATE 数据更新语句 9.3.2 使用Command 对象更新记录 9.3.3 使用DataSet 数据集更新记录 9.4 ASP.NET 删除数据 9.4.1 SQL DELETE 数据删除语句 9.4.2 使用Command 对象删除记录 9.4.3 使用DataSet 数据集删除记录 9.5 使用存储过程 9.5.1 存储过程的优点 9.5.2 创建存储过程 9.5.3 调用存储过程 9.6 ASP.NET 数据库操作实例 9.6.1 制作用户界面(UI) 9.6.2 使用GridView 显示、删除、修改数据 9.6.3 使用DataList 显示数据 9.6.4 DataList 分页实现 9.6.5 使用SQLHelper 操作数据库 9.7 小结 第 10 章访问其他数据源 10.1 使用ODBC .NET Data Provider 第一篇窗口与界面编程 15 10.1.1 ODBC .NET Data Provider 简介 10.1.2 建立连接 10.2 使用OLE DB.NET Data Provider 10.2.1 OLE DB.NET Data Provider 简介 10.2.2 建立连接 10.3 访问MySql 10.3.1 MySql 简介 10.3.2 建立连接 10.4 访问Excel 10.4.1 Excel 简介 10.4.2 建立连接 10.5 访问txt 10.5.1 使用ODBE.NET Data Provider 连接txt 10.5.2 使用OLE DB .NET Data Provider 连接txt 10.5.3 使用System.IO 命名空间 10.6 访问SQLite 10.6.1 SQLite 简介 10.6.2 SQLite 连接方法 10.7 小结 第四篇 ASP.NET网络编程 第 11 章用户控件和自定义控件 11.1 用户控件 11.1.1 什么是用户控件 11.1.2 编一个简单的控件 11.1.3 将Web 窗体转换成用户控件 11.2 自定义控件 11.2.1 实现自定义控件 11.2.2 复合自定义控件 11.3 用户控件和自定义控件的异同 11.4 用户控件示例 11.4.1 ASP.NET 登录控件 11.4.2 ASP.NET 登录控件的开发 11.4.3 ASP.NET 登录控件的使用 16 第一篇 窗口与界面编程 11.5 自定义控件实例 11.5.1 ASP.NET 分页控件 11.5.2 ASP.NET 分页控件的使用 11.6 小结 第 12 章 ASP.NET 的皮肤、主题和母版页 12.1 皮肤和主题 12.1.1 CSS 简介 12.1.2 CSS 基础 12.1.3 CSS 常用属性 12.1.4 将CSS 应用在控件上 12.1.5 主题和皮肤 12.1.6 页面主题和全局主题 12.1.7 应用和禁用主题 12.1.8 用编程的方法控制主题 12.2 母版页 12.2.1 母版页基础 12.2.2 内容窗体 12.2.3 母版页的运行方法 12.2.4 嵌套母版页 12.3 Microsoft Expression 2 12.3.1 Microsoft Expression 2 简介 12.3.2 安装Microsoft Expression 2 12.4 使用Microsoft Expression Web 2 制作页面 12.4.1 创建ASPX 页面 12.4.2 创建CSS 层叠样式表 12.4.3 创建框架集 12.5 小结 第 13 章 ASP.NET 内置对象,应用程序配置和缓存 13.1 ASP.NET 内置对象 13.1.1 Request 传递请求对象 13.1.2 Response 请求响应对象 13.1.3 Application 状态对象 13.1.4 Session 状态对象 13.1.5 Server 服务对象 第一篇窗口与界面编程 17 13.1.6 Cookie 状态对象 13.1.7 Cache 缓存对象 13.1.8 Global.asax 配置 13.2 ASP.NET 应用程序配置 13.2.1 ASP.NET 应用程序配置 13.2.2 Web.config 配置文件 13.2.3 ASP.NET 基本配置节 13.3 ASP.NET 缓存功能 13.3.1 缓存概述 13.3.2 页面输出缓存 13.3.3 页面部分缓存 13.3.4 应用程序数据缓存 13.3.5 检索应用程序数据缓存对象 13.4 小结 第 14 章 ASP.NET XML 和Web Service 14.1 XML 简介 14.2 读XML 14.2.1 XML 与HTML 14.2.2 创建XML 文档 14.2.3 XML 控件 14.2.4 XML 文件读取类(XmlTextReader) 14.2.5 XML 文件类(XmlTextWriter) 14.2.6 XML 文本文档类(XmlDocument) 14.3 XML 串行化 14.3.1 XmlSerializer 串行化类 14.3.2 基本串行化 14.4 XML 样式表XSL 14.4.1 XSL 简介 14.4.2 使用XSLT 14.5 Web 服务(Web Service) 14.5.1 什么是Web 服务 14.5.2 Web 服务体系结构 14.5.3 Web 服务协议栈 14.6 简单Web Service 示例 14.7 自定义Web Service 18 第一篇 窗口与界面编程 14.7.1 创建自定义的Web Service 14.7.2 使用自定义的Web Service 14.8 小结 第五篇 ASP.NET 3.5 高级编程 第 15 章图形图像编程 15.1 图形图像基础 15.1.1 图像布局 15.1.2 GDI+简介 15.1.3 绘制线条示例 15.1.4 .NET Framework 绘图类 15.2 图形编程 15.2.1 Graphics 类 15.2.2 绘制基本图形 15.2.3 图形绘制实例 15.3 绘制文字特效 15.3.1 投影特效 15.3.2 倒影特效 15.3.3 旋转特效 15.4 绘制图片 15.4.1 载入图像文件 15.4.2 GDI+输出图像 15.5 图像特效处理 15.5.1 底片效果 15.5.2 浮雕效果 15.6 小结 第 16 章 ASP.NET 3.5 和AJAX 16.1 AJAX 基础 16.1.1 什么是AJAX 16.1.2 ASP.NET AJAX 入门 16.1.3 ASP.NET 2.0 AJAX 16.1.4 ASP.NET 3.5 AJAX 第一篇窗口与界面编程 19 16.1.5 AJAX 简单示例 16.2 ASP.NET 3.5AJAX 控件 16.2.1 脚本管理控件(ScriptManger) 16.2.2 脚本管理控件(ScriptMangerProxy) 16.2.3 时间控件(Timer) 16.2.4 更新区域控件(UpdatePanel) 16.2.5 更新进度控件(UpdateProgress) 16.3 AJAX 编程 16.3.1 自定义异常处理 16.3.2 使用母版页的UpdatePanel 16.3.3 母版页刷新内容窗体 16.4 小结 第 17 章 ASP.NET MVC 基础 17.1 了解MVC 17.1.1 MVC 和Web Form 17.1.2 ASP.NET MVC 的运行结构 17.2 ASP.NET MVC 基础 17.2.1 安装ASP.NET MVC 17.2.2 新建一个MVC 应用程序 17.2.3 ASP.NET MVC 应用程序的结构 17.2.4 运行ASP.NET MVC 应用程序 17.3 ASP.NET MVC 原理 17.3.1 ASP.NET MVC 运行流程 17.3.2 ASP.NET MVC 工作原理 17.4 ASP.NET MVC 开发 17.4.1 创建ASP.NET MVC 页面 17.4.2 ASP.NET MVC 数据呈现(ViewData) 17.4.3 ASP.NET MVC 跨页数据呈现(TempData) 17.4.4 ASP.NET MVC 页面重定向 17.4.5 ASP.NET MVC URL 路由(URLRouting) 17.4.6 ASP.NET MVC 控件辅助工具(Helper) 17.4.7 ASP.NET MVC 表单传值 17.5 小结 第 18 章 WCF 开发基础 20 第一篇 窗口与界面编程 18.1 了解WCF 18.1.1 什么是WCF 18.1.2 为什么需要WCF 18.2 WCF 基础 18.2.1 服务 18.2.2 地址 18.2.3 契约 18.3 WCF 应用 18.3.1 创建WCF 应用 18.3.2 创建WCF 方法 18.4 WCF 消息传递 18.4.1 消息传递 18.4.2 消息操作 18.5 使用WCF 服务 18.5.1 在客户端添加WCF 服务 18.5.2 在客户端使用WCF 服务 18.6 小结 第 19 章 WPF 开发基础 19.1 了解WPF 19.1.1 什么是WPF 19.2 WPF 的应用范围 19.2 WPF 和Microsoft Expression 19.2.1 使用Microsoft Expression Blend 设计WPF 19.2.2 WPF 控件样式 19.2.3 浅谈XAML 19.2.4 WPF 控件层次 19.3 WPF 应用程序开发 19.3.1 WPF 动画事件 19.3.2 WPF 时间轴 19.3.3 WPF 事件处理 19.4 WPF 系统开发 19.4.1 WPF 系统需求 19.4.2 WPF 界面开发 19.4.3 WPF 动画制作 19.4.4 WPF 事件编 第一篇窗口与界面编程 21 19.5 小结 第六篇 ASP.NET 3.5 与LINQ 第20 章 ASP.NET 3.5 与LINQ 20.1 什么是LINQ 20.1.1 LINQ 起源 20.1.2 LINQ 构架 20.1.3 LINQ 与Visual Studio 2008 新特性 20.2 LINQ 与Web 应用程序 20.2.1 创建使用LINQ 的Web 应用程序 20.2.2 基本的LINQ 数据查询 20.2.3 IEnumerable 和IEnumerable接口 20.2.4 IQueryProvider 和IQueryable接口 20.2.5 LINQ 相关的命名空间 20.3 Lambda 表达式 20.3.1 匿名方法 20.3.2 Lambda 表达式基础 20.3.3 Lambda 表达式格式 20.3.4 Lambda 表达式树 20.3.5 访问Lambda 表达式树 20.4 小结 第 21 章使用 LINQ 查询 21.1 LINQ 查询概述 21.1.1 准备数据源 21.1.2 使用LINQ 21.1.3 执行LINQ 查询 21.2 LINQ 查询语法概述 21.3 基本子句 21.3.1 from 查询子句 21.3.2 where 条件子句 21.3.3 select 选择子句 21.3.4 group 分组子句 21.3.5 orderby 排序子句 22 第一篇 窗口与界面编程 21.3.6 into 连接子句 21.3.7 join 连接子句 21.3.8 let 临时表达式子句 21.4 LINQ 查询操作 21.4.1 LINQ 查询概述 21.4.2 投影操作 21.4.3 筛选操作 21.4.4 排序操作 21.4.5 聚合操作 21.5 使用LINQ 查询和操作数据库 21.5.1 简单查询 21.5.2 建立连接 21.5.3 插入数据 21.5.4 修改数据 21.5.5 删除数据 21.6 LINQ 与MVC 21.6.1 创建ASP.NET MVC 应用程序 21.6.2 创建LINQ to SQL 21.6.3 数据查询 21.7 小结 第七篇 ASP.NET 3.5 模块开发 第 22 章注册模块设计 22.1 学习要点 22.2 系统设计 22.2.1 模块功能描述 22.2.2 模块流程分析 22.3 数据库设计 22.3.1 数据库的分析和设计 22.3.2 数据表的创建 22.4 界面设计 22.4.1 基本界面 22.4.2 创建CSS 22.5 代码实现 第一篇窗口与界面编程 23 22.5.1 验证控制 22.5.2 过滤输入信息 22.5.3 插入注册信息 22.5.4 管理员页面 22.6 实例演示 22.7 小结 第 23 章登录模块设计 23.1 学习要点 23.2 系统设计 23.2.1 模块功能描述 22.2.2 模块流程分析 23.3 数据库设计 23.3.1 数据库设计分析 23.3.2 数据库表的创建 23.4 界面设计 23.4.1 基本界面 23.4.2 创建CSS 23.4.3 发送密码页面 23.5 代码实现 23.5.1 登录代码实现 23.5.2 邮件发送页面 23.5.3 根据不同的用户显示不同的内容 23.6 实例演示 23.7 小结 第 24 章广告模块设计 24.1 学习要点 24.2 系统设计 24.2.1 模块功能描述 24.2.2 模块流程分析 24.3 数据库设计 24.3.1 数据库设计分析 24.3.2 数据库表的创建 24.4 界面设计 24.4.1 发布广告界面 24 第一篇 窗口与界面编程 24.4.2 发布广告页数据源配置 24.4.3 修改广告界面 24.4.4 管理广告界面 24.4.5 分类管理界面 24.5 代码实现 24.5.1 广告添加功能 24.5.2 广告修改功能 24.5.3 自定义控件的实现 24.6 实例演示 24.7 小结 第 25 章新闻模块设计 25.1 学习要点 25.2 系统设计 25.2.1 模块功能描述 25.2.2 模块流程分析 25.3 数据库设计 23.3.1 数据库设计 25.3.2 数据表的创建 25.4 界面设计 25.4.1 登录界面 25.4.2 后台框架集 25.4.3 新闻发布页面 25.4.4 新闻修改页面 25.4.5 新闻管理页面 25.4.6 新闻分类管理页面 25.5 代码实现 25.5.1 导航菜单配置 25.5.2 身份验证页面 25.5.3 新闻发布页面 25.5.4 静态生成功能 25.5.5 新闻显示页面 25.5.6 静态模板编 25.6 实例演示 25.7 小结 第 26 章投票模块设计 第一篇窗口与界面编程 25 26.1 学习要点 26.2 系统设计 26.2.1 模块功能描述 26.2.2 模块流程分析 26.3 数据库设计 26.3.1 数据库设计 26.3.2 数据表的创建 26.4 界面设计 26.4.1 后台框架集 26.4.2 投票管理页面 26.4.3 投票发布页面 26.4.4 投票修改页面 26.4.5 投票删除页面 26.5 代码实现 26.5.1 添加投票代码实现 26.5.2 修改投票代码实现 26.5.3 删除投票代码实现 26.5.4 显示投票代码实现 26.5.5 用户投票代码实现 26.6 实例演示 26.7 小结 第 27 章聊天模块设计 27.1 学习要点 27.2 系统设计 27.2.1 模块功能描述 27.2.2 模块流程分析 27.3 界面设计 27.3.1 登录界面设计 27.3.2 登录界面CSS 27.3.3 聊天室显示界面 27.3.4 聊天室界面CSS 27.4 代码实现 27.4.1 登录代码实现 27.4.2 多人聊天代码实现 27.4.3 单人聊天代码实现 26 第一篇 窗口与界面编程 27.4.4 聊天记录保存实现 27.5 实例演示 27.6 小结 第六篇 ASP.NET 3.5 应用实例 第 28 章制作一个 ASP.NET 留言本 28.1 系统设计 28.1.1 需求分析 28.1.2 系统功能设计 28.1.3 模块功能划分 28.2 数据库设计 28.2.1 数据库的分析和设计 28.2.2 数据表的创建 28.2.3 数据表关系图 28.3 系统公用模块的创建 28.3.1 创建CSS 28.3.2 使用SQLHepler 28.3.3 配置Web.config 28.4 系统界面和代码实现 28.4.1 留言板用户控件 28.4.2 管理员登录实现 28.4.3 用户注册登录实现 28.4.4 用户登录实现 28.4.5 留言本界面布局 28.4.6 留言功能实现 28.4.7 回复功能实现 28.4.8 删除功能的实现 28.4.9 用户索引实现 28.5 用户体验优化 28.5.1 AJAX 留言实现 28.5.2 AJAX 数据重绑定 28.5.3 系统导航实现 28.5.4 侧边栏界面优化 28.6 用户功能实现 第一篇窗口与界面编程 27 28.6.1 用户信息界面 28.6.2 用户信息修改实现 28.6.3 用户信息删除实现 28.6.4 用户注销 28.7 实例演示 28.7.1 准备数据源 28.7.2 基本实例演示 28.7.3 用户功能演示 28.8 小结 第 29 章制作一个 ASP.NET 校友录系统 第 29 章制作一个ASP.NET 校友录系统 29.1 系统设计 29.1.1 需求分析 29.1.2 系统功能设计 29.1.3 模块功能划分 29.2 数据库设计 29.2.1 数据库分析和设计 29.2.2 数据表的创建 29.3 数据表关系图 29.4 系统公用模块的创建 29.4.1 使用Fckeditor 29.4.2 使用SQLHelper 29.4.3 配置Web.config 29.5 系统界面和代码实现 29.5.1 用户注册实现 29.5.2 用户登录实现 29.5.3 校友录页面规划 29.5.4 自定义控件实现 29.5.5 校友录页面实现 29.5.6 日志发布实现 29.5.7 日志修改实现 29.5.8 管理员日志删除 29.5.9 日志显示页面 29.5.10 用户索引页面 29.5.11 管理员用户删除 28 第一篇 窗口与界面编程 29.6 用户体验优化 29.6.1 超链接样式优化 29.6.2 默认首页优化 29.6.3 导航栏编 29.6.4 AJAX 留言优化 29.6.5 优化留言表情 29.7 高级功能实现 29.7.1 后台管理页面实现 29.7.2 日志管理实现 29.7.3 日志修改和删除实现 29.7.4 评论删除实现 29.7.5 板报功能实现 29.7.6 用户修改和删除实现 29.7.7 用户权限管理 29.7.8 权限及注销实现 29.8 实例演示 29.8.1 准备数据源 29.8.2 基本实例演示 29.8.3 管理后台演示 29.9 小结

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧