七、用户界面
Resize:可以由用户自己调整div的大小,有horizontal(水平)vertical(垂直)或者both(同时),或者同时调整。如果再加上max-width或min-width的话还可以防止破坏布局。
八、选择器
CSS3增加了更多的CSS选择器,可以实现更简单但是更强大的功能,比如:nth-child()等。
Attribute selectors:在属性中可以加入通配符,包括^,$,* [att^=val]:表示开始字符是val的att属性 [att$=val]:表示结束字符是val的att属性 [att*=val]:表示包含至少有一个val的att属性 其它模块:
media queries:感觉叫媒体选择比较合适,可以为网页中不同的对象设置不同的浏览设备。比如可以为某一块分别设置屏幕浏览样式和手机浏览样式,以前则只能设置整个网页。
multi-column layout:多列布局,让文字以多列显示,包括column-width、column-count、column-gap三个值
column-width:指定每列宽度 column-count:指定列数
column-gap:指定每列之间的间距 column-rule-color:控制列间的颜色 column-rule-style:控制列间的样式 column-rule-width:控制列间的宽度 column-space-distribution:平均分配列间距
九、影响
CSS3将完全向后兼容,所以没有必要修改现在的设计来让它们继续运作。网络浏览器也还将继续支持CSS2。CSS3主要的影响是将可以使用新的可用的选择器和属性,这些会允许实现新的设计效果(譬如动态和渐变),而且可以很简单的设计出现在的设计效果(比如说使用分栏)。
第三节ASP.NET介绍
-8-
本系统采用ASP.NET开发技术进行开发。ASP.NET不仅仅是ASP的一个新版本,更是Web应用程序编程方面的一个全新的概念和方法。ASP.NET中的新功能并不是对ASP的改进,设计它的初衷是为用户入境提供最佳的应用程序架构。它相比于ASP有着以下几个方面的优点:
① 多语言。
ASP曾在脚本引擎方面受到了限制,特别是VBScript和JScript。而ASP.NET则支持多种语言,默认情况下为Visual Basic.NET、C#和Jscript.NET,另外还支持一些第三方语言。
② 服务器处理。
ASP在服务器处理上不管页面的内容是纯HTML还是ASP生成的HTML,它都是按照实现,形成所谓页面顺序显示的。因此逻辑代码依赖于它在页面中的位置,并且无法将HTML控件作为目标,除非将它们作为流的一部分进行显示。而ASP.NET就解决了这个问题,方法是为控件引入一个声明的基于服务器的模型,因为控件在服务器上有,可以在服务器上编程,也可以是客户端驱动的事件。
③ Web Form控件。
将现有的HTML控件转换为服务器端的控件是比较容易的,但是也存在一些不方便,例如比较难于区分HTML控件和服务器端的控件。于是Microsoft公司就创建了一组专门的服务器控件,它们都用前缀标识。
HTML 控件 (HTML Control)。直接在 HTML 标记中加上 runat=\,即可对应到 ASP.NET 指定的 HTML 服务器控件类,像是: HtmlAnchor:表示 HTML 的 Web 控件 (Web Control):由ASP.NET 提供,比 HTML 控件提供更多的功能,但操作与设置会比 HTML 控件要复杂许多,像是: LinkButton:一种外型为链接 HtmlButton:表示 HTML 的 。 HtmlImage:表示 HTML 的 。 HtmlGenericControl:表示没有对应到服务器控件的对象,都会被对应到这个类。 Web 控件 (Web Control):由ASP.NET 提供,比 HTML 控件提供更多的功能,但操作与设置会比 HTML 控件要复杂许多,像是: LinkButton:一种外型为链接 (除了内置的控件之外,ASP.NET也提供了可以自定义的控件架构,并且支持两种控件开发方法。
用户控件 (User Control)。以 .ascx 为扩展名,可以让开发人员用最轻松的方式来开发控件,优点是开发速度很快,但缺点是无法转散布,且无法加入参考。 自定义控件 (Custom Control),可转散布型的控件,是经过编译后的代码 (DLL),可单独转散布,并且可在其他的项目加入参考引用,自定义控件有三种开发模式: 基础控件 (General Control):由 System.Web.UI.Control 类继承而来,或是由现有的 Web 控件继承而来,像是由 Button 控件继承。 复合控件 (Composite Control):由 System.Web.UI.WebControls.CompositeControl 继承而来,可以用复合的方式来开发控件。 样板控件 (Template Control):可以在控件中使用样板 Template),并套用数据到样板中,支持数据绑定的表达式。
④ 代码与内容分离。
一个网站的设计与开发往往由不同的人来实现的,而ASP中就是存在着这样一个问题,
-9-
代码(ASP脚本)和内容(HTML)混合在一起。这样就使得同时进行设计和开发变得很困难。而ASP.NET则采用了代码内联和后台编码两种方法实现了代码与内容的分离。
⑤ 可管理性。
ASP.NET使用一种字符基础的,分级的配置系统,虚拟服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为\的哲学观念使ASP.NET的基于应用的开发更加具体和快捷。一个ASP.NET的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须的文件,不需要系统的重新启动,一切就是这么简单。多处理器环境的可靠性ASP.NET已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。即使你现在的ASP.NET应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP却做不到这一点。自定义性和可扩展性ASP.NET设计时考虑了让网站开发人员可以在自己的代码中自己定义\的模块。这与原来的包含关系不同,ASP.NET可以加入自己定义的任何组件。网站程序的开发从来没有这么简单过。安全性基于Windows认证技术和每应用程序配置,你可以确保你的原程序是绝对安全的。ASP.NET的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有 ASP 应用程序中逐渐添加ASP.NET功能,随时增强 ASP 应用程序的功能。ASP.NET是一个已编译的、基于 .NET 的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与 .NET 兼容的语言(包括Visual Basic .NET、C# 和 JScript .NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 ASP.NET可以无缝地与 WYSIWYG HTML编辑器和其他编程工具(包括Microsoft Visual Studio .NET)一起工作。这不仅使得 Web 开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 Web 页的 GUI 和完全集成的调试支持。 当创建ASP.NET应用程序时,开发人员可以使用 Web窗体或 XML Web Services,或以他们认为合适的任何方式进行组合。每个功能都能得到同一结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义. 如果你从来没有开发过网站程序,那么这不适合你,你应该至少掌握一些HTML语言和简单的Web开发术语(不过我相信如果有兴趣的话是可以很快的掌握的)。你不需要先前的ASP开发经验(当然有经验更好),但是你必须了解交互式Web程序开发的概念,包含窗体,脚本,和数据接口的概念,如果你具备了这些条件的话,那么你就可以在ASP.NET的世界开始展翅高飞了。
⑥ 时间模型。
ASP.NET的原始设计构想,就是要让开发人员能够像 VB 开发工具那样,可以使用事件驱动式程序开发模式 (Event-Driven Programming Model) 的方法来开发网页与应用程序,若
-10-
要以ASP技术来做到这件事的话,用必须要使用大量的辅助信息,像是查询字符串或是窗体字段数据来识别与判断对象的来源、事件流向以及调用的函数等等,需要撰写的代码量相当的多,但ASP.NET很巧妙利用窗体字段和JavaScript脚本把事件的传递模型隐藏起来了。
ASP.NET的事件模型是由以及数个 Hidden Field 组合而成,基于 HTTP 模型的限制,所有的网页程序在运行结果输出到用户端后,程序就会退出运行,为了维护在ASP.NET网页与控件的状态数据,因此在输出ASP.NET控件时,ASP.NET会将部份状态数据储存到网页的 Hidden Field 中,这类型的状态数据称为 ViewState(ID 为 __VIEWSTATE),在服务器端即会被解译出状态与事件数据。在大多数的内置 Web 控件中都有使用到这个机制,因此在使用大量ASP.NET Web 控件的网页中,会有许多的 ViewState 会存放在网页中并随着 HTTP 数据流输出到用户端,ViewState 在输出时,会被加密为一组乱码字符串,其金钥值定义在计算机中,并且每一个对象都会被序列化 (Serialize) 成字符串(因此若是自定义对象要放到 ViewState 时,则应要让它支持序列化),再输出到 __VIEWSTATE 字段中,在每次的网页来回时都会被传输,较大的 ViewState 会让网页大小膨胀,不利于快速的网络传输,不过ASP.NET本身有提供将 ViewState 关闭的功能,因此如果控件不需要状态保存时,可将它关闭以减少输出的大小。
为确保控件的事件能够确实被引发,让事件驱动能够被运行,因此控件事件引发命令时需要的参数,是交由 JavaScript 脚本在用户端引发时,填入另一个 Hidden Field(ID 为 __EVENTTARGET 以及 __EVENTARGUMENT),并且引发窗体的送出指示 (Submit),传送到服务端后,服务端的 HttpApplication 中的工具函数会解析 __EVENTTARGET 和 __EVENTARGUMENT 字段中的信息,并且交由控件所实现的 RaisePostBackEvent() 来引发事件,并由 .NET Framework 内部的事件处理器制接手处理(调用控件设置的事件处理程序)。
-11-
第三章 系统分析与设计
第一节 系统概括
本博客系统从使用权限来分,分为:博客管理员,注册会员,游客。系统的权限设计使得不同角色只能使用不同的功能。博客管理员可以使用系统的任何功能,包括:后台的管理,前台的浏览、评论、发表等;注册会员只能使用前台的所有功能,包括:前台的浏览、评论、发表等;游客只能浏览前台的博客部分内容,不具有浏览、评论、发表等使用权限。使用权限如图3.1
图3.1 博客系统角色使用功能
第二节 系统用例图
一、系统管理员用例
系统管理员是一个双重身份,既可以后台登陆也可以前台登陆。前台登陆可以修改个人资料,添加博客文章,浏览博文,评论博文,留言及回复;后台登陆可以文章管理,用户管理,留言管理,评论管理,类别管理,数据库操作。如图3.2
-12-