<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>梦随风度dê窝 &#187; 网站</title>
	<atom:link href="http://www.youthfly.net/archives/tag/%e7%bd%91%e7%ab%99/feed" rel="self" type="application/rss+xml" />
	<link>http://www.youthfly.net</link>
	<description>在风中游走的灵魂</description>
	<lastBuildDate>Wed, 01 Feb 2012 06:01:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>ASP.NET生成网站截图程序</title>
		<link>http://www.youthfly.net/archives/400.html</link>
		<comments>http://www.youthfly.net/archives/400.html#comments</comments>
		<pubDate>Sun, 04 May 2008 08:03:48 +0000</pubDate>
		<dc:creator>梦随风度</dc:creator>
				<category><![CDATA[Programs]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[截图]]></category>
		<category><![CDATA[程序]]></category>
		<category><![CDATA[网站]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[这是在蓝色理想论坛里面淘到的一个可以在线生成网站截图的ASP.NET程序,还不太会使用。所以发上来大家一起研究一下。另附部分核心代码演示:using System; &#160;&#160;using System.Collections.Generic; &#160;&#160;using System.Text; &#160;&#160;using System.Drawing; &#160;&#160;using System.Drawing.Drawing2D; &#160;&#160;using System.Drawing.Imaging; &#160;&#160;using System.Windows.Forms; &#160;&#160;using System.Diagnostics; &#160;&#160; &#160;&#160;namespace MyLib &#160;&#160;{ &#160;&#160; public class GetImage &#160;&#160; { &#160;&#160; private int S_Height; &#160;&#160; private int S_Width; &#160;&#160; private int F_Height; &#160;&#160; private int F_Width; &#160;&#160; private string MyURL; &#160;&#160; &#160;&#160; public int ScreenHeight &#160;&#160; { &#160;&#160; get [...]]]></description>
			<content:encoded><![CDATA[<p>这是在蓝色理想论坛里面淘到的一个可以在线生成网站截图的ASP.NET程序,还不太会使用。所以发上来大家一起研究一下。<br/>另附部分核心代码演示:<br/><code><br/>using System; <br/>&nbsp;&nbsp;using System.Collections.Generic; <br/>&nbsp;&nbsp;using System.Text; <br/>&nbsp;&nbsp;using System.Drawing; <br/>&nbsp;&nbsp;using System.Drawing.Drawing2D; <br/>&nbsp;&nbsp;using System.Drawing.Imaging; <br/>&nbsp;&nbsp;using System.Windows.Forms; <br/>&nbsp;&nbsp;using System.Diagnostics; <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;namespace MyLib <br/>&nbsp;&nbsp;{ <br/>&nbsp;&nbsp; public class GetImage <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp; private int S_Height; <br/>&nbsp;&nbsp; private int S_Width; <br/>&nbsp;&nbsp; private int F_Height; <br/>&nbsp;&nbsp; private int F_Width; <br/>&nbsp;&nbsp; private string MyURL; <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; public int ScreenHeight <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp; get { return S_Height; } <br/>&nbsp;&nbsp; set { S_Height = value; } <br/>&nbsp;&nbsp; } <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; public int ScreenWidth <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp; get { return S_Width; } <br/>&nbsp;&nbsp; set { S_Width = value; } <br/>&nbsp;&nbsp; } <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; public int ImageHeight <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp; get { return F_Height; } <br/>&nbsp;&nbsp; set { F_Height = value; } <br/>&nbsp;&nbsp; } <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; public int ImageWidth <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp; get { return F_Width; } <br/>&nbsp;&nbsp; set { F_Width = value; } <br/>&nbsp;&nbsp; } <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; public string WebSite <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp; get { return MyURL; } <br/>&nbsp;&nbsp; set { MyURL = value; } <br/>&nbsp;&nbsp; } <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; public GetImage(string WebSite, int ScreenWidth, int ScreenHeight, int ImageWidth, int ImageHeight) <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp; this.WebSite = WebSite; <br/>&nbsp;&nbsp; this.ScreenWidth = ScreenWidth; <br/>&nbsp;&nbsp; this.ScreenHeight = ScreenHeight; <br/>&nbsp;&nbsp; this.ImageHeight = ImageHeight; <br/>&nbsp;&nbsp; this.ImageWidth = ImageWidth; <br/>&nbsp;&nbsp; } <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; public Bitmap GetBitmap() <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp; WebPageBitmap Shot = new WebPageBitmap(this.WebSite, this.ScreenWidth, this.ScreenHeight); <br/>&nbsp;&nbsp; Shot.GetIt(); <br/>&nbsp;&nbsp; Bitmap Pic = Shot.DrawBitmap(this.ImageHeight, this.ImageWidth); <br/>&nbsp;&nbsp; return Pic; <br/>&nbsp;&nbsp; } <br/>&nbsp;&nbsp; } <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; class WebPageBitmap <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp; WebBrowser MyBrowser; <br/>&nbsp;&nbsp; string URL; <br/>&nbsp;&nbsp; int Height; <br/>&nbsp;&nbsp; int Width; <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; public WebPageBitmap(string url, int width, int height) <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp; this.Height = height; <br/>&nbsp;&nbsp; this.Width = width; <br/>&nbsp;&nbsp; this.URL = url; <br/>&nbsp;&nbsp; MyBrowser = new WebBrowser(); <br/>&nbsp;&nbsp; MyBrowser.ScrollBarsEnabled = false; <br/>&nbsp;&nbsp; MyBrowser.WebBrowserShortcutsEnabled = false;<br/>&nbsp;&nbsp; MyBrowser.ObjectForScripting = false;<br/>&nbsp;&nbsp; MyBrowser.Size = new Size(this.Width, this.Height); <br/>&nbsp;&nbsp; } <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; public void GetIt() <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyBrowser.Navigate(this.URL); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (MyBrowser.ReadyState != WebBrowserReadyState.Complete) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application.DoEvents(); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Bitmap DrawBitmap(int theight, int twidth) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bitmap myBitmap = new Bitmap(Width, Height); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rectangle DrawRect = new Rectangle(0, 0, Width, Height); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyBrowser.DrawToBitmap(myBitmap, DrawRect); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Drawing.Image imgOutput = myBitmap; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Drawing.Image oThumbNail = new Bitmap(twidth, theight, imgOutput.PixelFormat); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Graphics g = Graphics.FromImage(oThumbNail); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.CompositingQuality = CompositingQuality.HighSpeed; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.SmoothingMode = SmoothingMode.HighSpeed; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.InterpolationMode = InterpolationMode.HighQualityBilinear; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rectangle orectangle = new Rectangle(0, 0, twidth, theight); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.DrawImage(imgOutput, orectangle); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (Bitmap)oThumbNail; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception ex) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(ex.Message);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finally <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgOutput.Dispose(); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgOutput = null; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyBrowser.Dispose(); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyBrowser = null; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br/>&nbsp;&nbsp; } <br/>&nbsp;&nbsp; } <br/>public class OLayer{<br/>&nbsp;&nbsp; public void CaptureImage(string url){ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Drawing.Bitmap x =null;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// string url = "<a href="http://" target="_blank" rel="external">http://</a>" + Request.Url.Host + ":" + Request.Url.Port.ToString(); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //url = url + UrlPath; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetImage thumb = new GetImage(url, 1024, 3200, 1024, 3200); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x = thumb.GetBitmap(); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string FileName = DateTime.Now.ToString("yyyyMMddhhmmss"); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x.Save( System.Environment.CurrentDirectory + "cap"+ FileName + ".jpg"); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //CaptureState = true; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }catch (Exception ex){ <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(&nbsp;&nbsp;ex.ToString());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //CaptureState = false; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }finally{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(x!=null) x.Dispose();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp; }&nbsp;&nbsp;<br/>}<br/>public class Run<br/>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[STAThread]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static void Main(){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OLayer ow=new OLayer();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ow.CaptureImage("<a href="http://" target="_blank" rel="external">http://</a>www.5do8.com/");<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}&nbsp;&nbsp; <br/>&nbsp;&nbsp;}<br/></code><br/><a href="wp-content/uploads/2008/05/420085416459.rar" target="_blank">点击下载此文件</a><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.youthfly.net/archives/400.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个可以在线制作.htaccess的网站</title>
		<link>http://www.youthfly.net/archives/397.html</link>
		<comments>http://www.youthfly.net/archives/397.html#comments</comments>
		<pubDate>Fri, 18 Apr 2008 03:27:48 +0000</pubDate>
		<dc:creator>梦随风度</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[制作]]></category>
		<category><![CDATA[在线]]></category>
		<category><![CDATA[网站]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[一个日本人开发的，可以在线编辑和制作.htaccess文件的网站。该网站支持多国语言，其中包括中文。有了它，以后再也不用为编辑.htaccess文件而发愁了。http://www.htaccesseditor.com/]]></description>
			<content:encoded><![CDATA[<p><img src="wp-content/uploads/2008/04/x2008418112545.gif" /><br/>一个日本人开发的，可以在线编辑和制作.htaccess文件的网站。该网站支持多国语言，其中包括中文。有了它，以后再也不用为编辑.htaccess文件而发愁了。<br/><a target="_blank" href="http://www.htaccesseditor.com/">http://www.htaccesseditor.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.youthfly.net/archives/397.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>某知名网站软件开发规范</title>
		<link>http://www.youthfly.net/archives/371.html</link>
		<comments>http://www.youthfly.net/archives/371.html#comments</comments>
		<pubDate>Fri, 18 Jan 2008 05:02:12 +0000</pubDate>
		<dc:creator>梦随风度</dc:creator>
				<category><![CDATA[Resource]]></category>
		<category><![CDATA[网站]]></category>
		<category><![CDATA[软件开发]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[1 数据库使用规范 1.1服务器上有关数据库的一切操作只能由服务器管理人员进行。 1.2程序中访问数据库时使用统一的用户、统一的连接文件访问数据库。 1.3原则上每一个频道只能建一个库，库名与各频道的英文名称相一致，库中再包含若干表。比较大的、重点的栏目可以考虑单独建库，库名与栏目的英文名称相一致。 1.4命名： （1） 数据库、表、字段、索引、视图等一系列与数据库相关的名称必须全部使用与内容相关的英文单词命名（尽量避免使用汉语拼音），对于一个单词难以表达的，可以考虑用多个单词加下划线（_）连接（不能超过四个单词）命名。 （2） 所有的名称必须统一使用英文小写字母。 （3） 所有的名称起始和结尾不能使用下划线（_）。 （4） 所有的名称不能包含26个英文小写字母和下划线（_）以外的其他字符。 1.5不再使用的数据库、表应删除，在删除之前必须备份（包括结构和内容）。 2 文档规范 所有的项目必须有相关的文档说明（可以是电子文档）。文档应包含如下内容： （1）项目名称。 （2）项目小组名单，项目负责人。 （3）项目开发起始时间和结束时间。 （4）项目内容描述。 （5）项目位置。（在哪个频道、哪个栏目） （6）与项目有关的程序文件名（含路径名），文件内容及实现的功能描述。 （7）完整的程序流程图。 （8）数据库、表、视图、索引的名称，用途。字段的名称、类型、长度、用途，必须附上相关的SQL语句。 3源代码与页面嵌套规范 3.1源代码： （1） 使用自定义变量（包括全局变量、局部变量）之前必须先声明变量，并用注释语句标明变量的类型、用途。 （2）自定义函数必须用注释语句标明函数的用途、参数的数据类型、意义，返回值的类型。 （3）程序中重要的过程或代码较长的过程应使用注释语句标明该过程的起始行和结束行，并注明该过程的功能。 （5） 所有的注释文字一律使用简体中文。 3.2 HTML页面嵌套： （1） 网页设计部设计的HTML页面以嵌套的方式确定用于动态显示程序执行结果的位置、宽度、行数（或高度）等，并在相应位置予以文字说明。页面中与程序无关的图片、文字、联结等必须使用完整的URL。 （2） 软件开发人员和编辑人员可以根据情况协商，将页面文件及图片与程序独立存放在各自的服务器上，页面改版和修改程序独立进行。 （3） 使用include技术将分割开的HTML页面分别嵌入程序代码中，要求做到修改HTML页面时无须改写程序，而修改程序时不会影响HTML页面效果，将页面改版和修改程序两项工作分别独立。 （4） 页面和程序嵌套以后不能破坏原HTML页面的整体显示效果，字体、字号、颜色等应尽量保持原HTML页面的风格。 （5） 动态生成的页面的各项指标（如图片大小、页面宽度、高度、页面文件的字节数等）应符合本公司网页设计方面的要求。 4测试规范（软件部分） 对于较大的项目应成立相应的测试小组，小组成员由软件开发人员、网页设计人员、技术人员、编辑人员组成。测试过程应参照网页设计部为该项目提供的原HTML页面进行。测试内容包括以下几点： （1） 页面宽度、高度（行数）。 （2） 页面文字、图片、色彩是否风格统一。 （3）页面的图片显示是否正常、有无变形。 （4）弹出页面的效果。 （5）页面的联接是否正确。 [...]]]></description>
			<content:encoded><![CDATA[<p>1 数据库使用规范 <br/><br/>1.1服务器上有关数据库的一切操作只能由服务器管理人员进行。 <br/>1.2程序中访问数据库时使用统一的用户、统一的连接文件访问数据库。 <br/>1.3原则上每一个频道只能建一个库，库名与各频道的英文名称相一致，库中再包含若干表。比较大的、重点的栏目可以考虑单独建库，库名与栏目的英文名称相一致。 <br/>1.4命名： <br/>（1） 数据库、表、字段、索引、视图等一系列与数据库相关的名称必须全部使用与内容相关的英文单词命名（尽量避免使用汉语拼音），对于一个单词难以表达的，可以考虑用多个单词加下划线（_）连接（不能超过四个单词）命名。 <br/>（2） 所有的名称必须统一使用英文小写字母。 <br/>（3） 所有的名称起始和结尾不能使用下划线（_）。 <br/>（4） 所有的名称不能包含26个英文小写字母和下划线（_）以外的其他字符。 <br/>1.5不再使用的数据库、表应删除，在删除之前必须备份（包括结构和内容）。 <br/><br/>2 文档规范 <br/><br/>所有的项目必须有相关的文档说明（可以是电子文档）。文档应包含如下内容： <br/>（1）项目名称。 <br/>（2）项目小组名单，项目负责人。 <br/>（3）项目开发起始时间和结束时间。 <br/>（4）项目内容描述。 <br/>（5）项目位置。（在哪个频道、哪个栏目） <br/>（6）与项目有关的程序文件名（含路径名），文件内容及实现的功能描述。 <br/>（7）完整的程序流程图。 <br/>（8）数据库、表、视图、索引的名称，用途。字段的名称、类型、长度、用途，必须附上相关的SQL语句。 <br/><br/>3源代码与页面嵌套规范 <br/><br/>3.1源代码： <br/>（1） 使用自定义变量（包括全局变量、局部变量）之前必须先声明变量，并用注释语句标明变量的类型、用途。 <br/>（2）自定义函数必须用注释语句标明函数的用途、参数的数据类型、意义，返回值的类型。 <br/>（3）程序中重要的过程或代码较长的过程应使用注释语句标明该过程的起始行和结束行，并注明该过程的功能。 <br/>（5） 所有的注释文字一律使用简体中文。 <br/><br/>3.2 HTML页面嵌套： <br/>（1） 网页设计部设计的HTML页面以嵌套的方式确定用于动态显示程序执行结果的位置、宽度、行数（或高度）等，并在相应位置予以文字说明。页面中与程序无关的图片、文字、联结等必须使用完整的URL。 <br/>（2） 软件开发人员和编辑人员可以根据情况协商，将页面文件及图片与程序独立存放在各自的服务器上，页面改版和修改程序独立进行。 <br/>（3） 使用include技术将分割开的HTML页面分别嵌入程序代码中，要求做到修改HTML页面时无须改写程序，而修改程序时不会影响HTML页面效果，将页面改版和修改程序两项工作分别独立。 <br/>（4） 页面和程序嵌套以后不能破坏原HTML页面的整体显示效果，字体、字号、颜色等应尽量保持原HTML页面的风格。 <br/>（5） 动态生成的页面的各项指标（如图片大小、页面宽度、高度、页面文件的字节数等）应符合本公司网页设计方面的要求。 <br/><br/>4测试规范（软件部分） <br/><br/>对于较大的项目应成立相应的测试小组，小组成员由软件开发人员、网页设计人员、技术人员、编辑人员组成。测试过程应参照网页设计部为该项目提供的原HTML页面进行。测试内容包括以下几点： <br/>（1） 页面宽度、高度（行数）。 <br/>（2） 页面文字、图片、色彩是否风格统一。 <br/>（3）页面的图片显示是否正常、有无变形。 <br/>（4）弹出页面的效果。 <br/>（5）页面的联接是否正确。 <br/>（6）动态生成的页面是否符合以上几个方面的要求，页面大小（字节数，包括页面的图片、*.js、*.css、*.class等相关文件）是否符合网页设计的要求。 <br/>（7） 软件方面的功能是否实现。如数据库的查询、修改、删除，文件的上传、下载等操作是否正常。 <br/>（8） 测试结束后，根据《软件开发需求书》在《测试报告》上如实填写测试结果，包括测试通过的、未通过的，指出出错的页面和相关的程序文件，并附上测试中出现的错误信息。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.youthfly.net/archives/371.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>大型企业门户网站设计开发一般性原则和建议</title>
		<link>http://www.youthfly.net/archives/368.html</link>
		<comments>http://www.youthfly.net/archives/368.html#comments</comments>
		<pubDate>Thu, 17 Jan 2008 07:55:43 +0000</pubDate>
		<dc:creator>梦随风度</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[架构]]></category>
		<category><![CDATA[网站]]></category>
		<category><![CDATA[设计]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[[适用范围] 本文所述的原则、建议适用于大型企业信息门户网站的设计和开发，注意不是小型企业网站、一般企业电子商务网站、企业级Web应用系统。 [一般性原则] 一、网站设计原则 第一原则：内容丰富、明确 网站主要是为浏览着提供信息服务的，作为大型企业信息门户网站，必须首先提供种类繁多内容丰富的资讯，使不同的访问者都能够访问到自己想要的信息。但是信息多了自然繁杂，因此有针对性地为浏览者提供明确的内容是很重要的。 第二原则：界面设计良好 内容需要良好的界面设计来展现，良好的界面设计能够让浏览者赏心悦目，能够感受到明确的网站风格和主题，甚至感受到企业的文化底蕴，从而留下深刻的记忆，并为他进一步探索发现和使用网站提供的功能提供感官和心理上的意愿。 [题外话：]作为Web应用程序的开发人员，往往不注意这个特点而专注于“功能设计”。 第三原则：功能适用、易用 网站提供的一切功能都是为浏览者服务的，提供强大的而富于特色的功能可以使浏览者更方便的获取他需要的信息和服务。比如提供网上产品订购的服务，提供一个强大的产品检索功能是很必要的。功能也不是越多越好，有可能让浏览者无从选择，就好像现在的手机，可能绝大多数人还是打电话和收发短信，其他一些比如无线上网等功能并不适用。同时，功能如果不易使用，操作繁琐，甚至容易令人误解，那么再强大的功能都是没用的。作为企业信息门户的浏览者可能并不是都能熟练的使用计算机，不能要求他们像企业级Web用户那样去完成复杂的操作，解决一些使用中可能出现的问题，要求任何一个功能都要容易使用，好用。 上诉三原则，为著名的“Web设计三原则”，同时由于三原则的优先级和重要性，像一个金字塔般，因此也叫作“Web设计金字塔”。 &#160;&#160;二、网站结构设计原则 &#160;&#160;合理的导航设计： 在门户的首页需要一个合理的导航设计，比如栏目导航，内容导航，用户功能导航等，具体怎么使用根据网站的功能定位和设计定位决定。页面导航的层次不能太深，一般来说最多让用户点击三次鼠标就能够找到他想要的页面。 良好的目录结构： 一般来说按照网站功能/栏目划分一级目录，子功能/二级栏目划分二级目录，图片可以放在专门的目录等。目录层次不宜过深。搜索引擎一般都是对目录结构的深度来评判网页的价值的，这对于企业网站来说很重要。 网站内容索引： 如果信息量太大，需要对每一个栏目/频道做内容索引，不同于导航设计，内容索引记录了内容摘要、关键词、相关信息等，方便内容检索。比如有的网站的“网站地图”。同时该功能也是搜索引擎最爱访问的地方。 三、网页设计原则： 速度第一 没有人有耐心去打开一个很久才能浏览的网页，故有一个“三秒原则”，如果一个网页在三秒种内都打不开，那么访问者就会失去耐心放弃当前页面的浏览。 页面尽可能小 页面的大小跟访问速度是成正比的，根据速度第一的原则，那么就要做到每一个浏览的页面都要尽可能的小，少占网络带宽，访问速度才可能快。这里的小不仅仅指HTML代码少，也包括图片数量少，单个图片占用磁盘空间少。 使用CSS&#160;&#160;尽管可以直接设置页面元素的表现样式，但网页统一使用CSS可以更容易的统一网站风格，同时减少网页代码大小。 少用Flash和大型图片 别的不说，就是因为他们可能会占用大量带宽。 慎用框架 不能说所有人都在使用最新版本的浏览器，而且不同的浏览器对框架的支持也可能不同，另外不是所有的搜索引擎都能够很好的访问框架页面。 链接清晰 不能让浏览着不知道他在那里，也不能让浏览着找不到回去的路，每一个链接都要明确浏览着想要去的地方和想要访问的功能，更不能有死链接。 四、系统架构原则： 提供快速的系统访问 包括客户端的浏览和服务器端的通讯/数据访问，都只有一个原则，就是“快”。可以采取集群技术，缓存技术，负载均衡技术等 。 稳定的运行 不能出现时不时无法访问或者访问数据很慢。这需要采用上面的技术确保在大容量并发访问的时候系统仍然能够稳定的运行。 安全可靠 确保数据不会丢失、泄密、损坏。如采用多层服务器访问，数据加密技术，安全信道等方式。 &#160;&#160;[开发设计建议] 根据上面的“一般性原则”，可以采用本文下面的一些建议。注意这些建议都是一般性的，不是特定的，需要根据实际情况具体运用。 限于篇幅，本文主要说一下在采用.NET开发企业信息门户网站所要注意的问题。 一、网页设计相关： 1，做好页面布局和内容规划，只放置合适的内容，并尽可能使页面设计的最小。 2，使用好的网页编辑器，如DW，FP，不要用VS自带的编辑器，因为它会产生很多无用的沉余代码，而且设计的界面也不是很好看。 3，小图片采用GIF格式，下载速度最快，大一点的采用jpg,占用磁盘空间小。 4，尽可能使用CSS，这既是原则也是方法，可以使整个网站浏览速度提高3%以上，有的甚至能够提高30% 。 5，尽量不要使用框架，在需要的地方也要有替代措施。 6，不要只针对IE写客户端脚本。 7，客户端的事情尽量在客户端处理。现在客户端设备已经很强了，许多原来在服务器端才能做的事情现在都能在客户端做，而服务器端反而成了访问的瓶颈。 8，少用Flash。Flash一般都会占较大的网络带宽，在需要的时候也要注意不要做得太大用的太多。 9，&#160;&#160;避免使用弹出式对话框，因为现在好多浏览器都被装上了“弹出窗口拦截”插件。说服用户解决这个问题有时是很恼火的，因为他们不是都能熟练的使用计算机。 二、.NET设计相关 &#160;&#160;1，能用Label的地方不用TextBox，因为Label比起TextBox来说是轻量级的控件。 [...]]]></description>
			<content:encoded><![CDATA[<p>[适用范围] <br/>本文所述的原则、建议适用于大型企业信息门户网站的设计和开发，注意不是小型企业网站、一般企业电子商务网站、企业级Web应用系统。 <br/><br/>[一般性原则] <br/><br/>一、网站设计原则 <br/><br/>第一原则：内容丰富、明确 <br/>网站主要是为浏览着提供信息服务的，作为大型企业信息门户网站，必须首先提供种类繁多内容丰富的资讯，使不同的访问者都能够访问到自己想要的信息。但是信息多了自然繁杂，因此有针对性地为浏览者提供明确的内容是很重要的。 <br/><br/>第二原则：界面设计良好 <br/>内容需要良好的界面设计来展现，良好的界面设计能够让浏览者赏心悦目，能够感受到明确的网站风格和主题，甚至感受到企业的文化底蕴，从而留下深刻的记忆，并为他进一步探索发现和使用网站提供的功能提供感官和心理上的意愿。 <br/><br/>[题外话：]作为Web应用程序的开发人员，往往不注意这个特点而专注于“功能设计”。 <br/><br/>第三原则：功能适用、易用 <br/>网站提供的一切功能都是为浏览者服务的，提供强大的而富于特色的功能可以使浏览者更方便的获取他需要的信息和服务。比如提供网上产品订购的服务，提供一个强大的产品检索功能是很必要的。功能也不是越多越好，有可能让浏览者无从选择，就好像现在的手机，可能绝大多数人还是打电话和收发短信，其他一些比如无线上网等功能并不适用。同时，功能如果不易使用，操作繁琐，甚至容易令人误解，那么再强大的功能都是没用的。作为企业信息门户的浏览者可能并不是都能熟练的使用计算机，不能要求他们像企业级Web用户那样去完成复杂的操作，解决一些使用中可能出现的问题，要求任何一个功能都要容易使用，好用。 <br/><br/>上诉三原则，为著名的“Web设计三原则”，同时由于三原则的优先级和重要性，像一个金字塔般，因此也叫作“Web设计金字塔”。 <br/><br/>&nbsp;&nbsp;<br/>二、网站结构设计原则 <br/>&nbsp;&nbsp;<br/>合理的导航设计： <br/>在门户的首页需要一个合理的导航设计，比如栏目导航，内容导航，用户功能导航等，具体怎么使用根据网站的功能定位和设计定位决定。页面导航的层次不能太深，一般来说最多让用户点击三次鼠标就能够找到他想要的页面。 <br/><br/>良好的目录结构： <br/>一般来说按照网站功能/栏目划分一级目录，子功能/二级栏目划分二级目录，图片可以放在专门的目录等。目录层次不宜过深。搜索引擎一般都是对目录结构的深度来评判网页的价值的，这对于企业网站来说很重要。 <br/><br/>网站内容索引： <br/>如果信息量太大，需要对每一个栏目/频道做内容索引，不同于导航设计，内容索引记录了内容摘要、关键词、相关信息等，方便内容检索。比如有的网站的“网站地图”。同时该功能也是搜索引擎最爱访问的地方。 <br/><br/><br/>三、网页设计原则： <br/>速度第一 <br/>没有人有耐心去打开一个很久才能浏览的网页，故有一个“三秒原则”，如果一个网页在三秒种内都打不开，那么访问者就会失去耐心放弃当前页面的浏览。 <br/><br/>页面尽可能小 <br/>页面的大小跟访问速度是成正比的，根据速度第一的原则，那么就要做到每一个浏览的页面都要尽可能的小，少占网络带宽，访问速度才可能快。这里的小不仅仅指HTML代码少，也包括图片数量少，单个图片占用磁盘空间少。 <br/><br/>使用CSS&nbsp;&nbsp;<br/>尽管可以直接设置页面元素的表现样式，但网页统一使用CSS可以更容易的统一网站风格，同时减少网页代码大小。 <br/><br/>少用Flash和大型图片 <br/>别的不说，就是因为他们可能会占用大量带宽。 <br/><br/>慎用框架 <br/>不能说所有人都在使用最新版本的浏览器，而且不同的浏览器对框架的支持也可能不同，另外不是所有的搜索引擎都能够很好的访问框架页面。 <br/><br/>链接清晰 <br/>不能让浏览着不知道他在那里，也不能让浏览着找不到回去的路，每一个链接都要明确浏览着想要去的地方和想要访问的功能，更不能有死链接。 <br/><br/><br/>四、系统架构原则： <br/>提供快速的系统访问 <br/>包括客户端的浏览和服务器端的通讯/数据访问，都只有一个原则，就是“快”。可以采取集群技术，缓存技术，负载均衡技术等 。 <br/><br/>稳定的运行 <br/>不能出现时不时无法访问或者访问数据很慢。这需要采用上面的技术确保在大容量并发访问的时候系统仍然能够稳定的运行。 <br/><br/>安全可靠 <br/>确保数据不会丢失、泄密、损坏。如采用多层服务器访问，数据加密技术，安全信道等方式。 <br/><br/>&nbsp;&nbsp;<br/>[开发设计建议] <br/>根据上面的“一般性原则”，可以采用本文下面的一些建议。注意这些建议都是一般性的，不是特定的，需要根据实际情况具体运用。 <br/><br/>限于篇幅，本文主要说一下在采用.NET开发企业信息门户网站所要注意的问题。 <br/><br/>一、网页设计相关： <br/><br/>1，做好页面布局和内容规划，只放置合适的内容，并尽可能使页面设计的最小。 <br/><br/>2，使用好的网页编辑器，如DW，FP，不要用VS自带的编辑器，因为它会产生很多无用的沉余代码，而且设计的界面也不是很好看。 <br/><br/>3，小图片采用GIF格式，下载速度最快，大一点的采用jpg,占用磁盘空间小。 <br/><br/>4，尽可能使用CSS，这既是原则也是方法，可以使整个网站浏览速度提高3%以上，有的甚至能够提高30% 。 <br/><br/>5，尽量不要使用框架，在需要的地方也要有替代措施。 <br/><br/>6，不要只针对IE写客户端脚本。 <br/><br/>7，客户端的事情尽量在客户端处理。现在客户端设备已经很强了，许多原来在服务器端才能做的事情现在都能在客户端做，而服务器端反而成了访问的瓶颈。 <br/><br/>8，少用Flash。Flash一般都会占较大的网络带宽，在需要的时候也要注意不要做得太大用的太多。 <br/><br/>9，&nbsp;&nbsp;避免使用弹出式对话框，因为现在好多浏览器都被装上了“弹出窗口拦截”插件。说服用户解决这个问题有时是很恼火的，因为他们不是都能熟练的使用计算机。 <br/><br/>二、.NET设计相关 <br/>&nbsp;&nbsp;<br/><br/>1，能用Label的地方不用TextBox，因为Label比起TextBox来说是轻量级的控件。 <br/><br/>2，尽量使用Repeater 控件绑定列表数据，有两个原因，一是可以保留美工原始的界面设计效果，二是比起DataGrid控件，性能可以提升70%（有专门的测试案例）。 <br/><br/>3，如果页面仅仅是浏览不用回送服务器端继续处理，那么不要使用页面视图ViewState。如果一个界面上有很多控件那么视图将会占去一半的页面大小。其他情况也要尽量少用页面视图。 <br/><br/>4，采用缓存技术。从缓存位置可以分为客户端缓存、代理缓存、服务器端缓存；从具体页面来说可以分为整页缓存、局部缓存、数据缓存。缓存技术可以极大地提高Web服务器的处理能力，是最经济有效的提高访问速度的措施。 <br/><br/>5，静态页面生成技术。如果采用缓存不能起到很好的作用那么可以将经常访问的页面生成静态页面。像三大门户网站都采用了这个技术，很多CMS也都采用了该技术。 <br/><br/>6，服务器处理数据，客户端负责展现。把客户端的事件放到服务器端去处理在互联网上不是好注意，不能想象这是一个企业内部的Web应用程序。 <br/><br/>7，少用Session。如果要在页面之间传递参数，可以采用URL方式或者页面视图方式，如果是跨页面的数据传递，那么也最好使用Cookie 。Web访问的特点决定了这个多用户并发访问环境，Session会占用很多服务器资源，如果访问量很大这个资源占用是很高的。 <br/><br/>8，合理使用Application 。不同于缓存对象，它能够提供更好的全局数据访问，适合于需要长时间缓存频繁的公共数据。 <br/><br/>9，注意Cookie 问题，有的浏览器可能不支持使用Cookie 访问你的站点，在使用Cookie 之前一定要检测客户端是否支持并采用相应的策略。 <br/><br/>10，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;只访问需要的数据，现在Ajax技术可以很好的处理这类问题，它让页面处理速度更快表现力更丰富。 <br/><br/><br/>三、数据访问相关 <br/>&nbsp;&nbsp;<br/><br/>1，优化数据库结构设计。这是数据访问效率和编程复杂程度的关键。没有良好的数据库结构设计其它都谈不上。包括字段类型的选择，表的结构，索引的使用，表的关系等。 <br/><br/>2，优化数据库物理设计。这里关注的是数据库容量，日志，磁盘使用，数据备份机制，数据访问机制，安全等数据库物理结构相关的问题。 <br/><br/>3，合理设计“主键”：在不同的场合需要采用不同的主键设计策略，在互联网大容量并发访问的环境中，建议主键采用整形自增字段。主键使用还应该遵循“无意义”原则。 <br/><br/>4，采用最佳的数据访问接口，如专门针对SQL Server的数据访问对象。 <br/><br/>5，“只要需要的数据”：如果一行有大容量字段，那么读取一整行效率是非常低的（数据瓶颈）。 <br/><br/>6，最迟打开，最早关闭的原则。使用数据库后一定要及时关闭连接，它们是系统昂贵的资源。 <br/><br/>7，采用“数据缓存”技术，将经常使用数据集缓存在磁盘或者内存中，尽量减少对数据库的直接访问。 <br/><br/>8，使用存储过程。可能在一般的应用系统中存储过程可以被简单的查询替代，因而更“通用”，但是我们现在讨论的是大型企业信息门户网站的问题。作为一个互联网应用系统，处理速度和网络带宽无疑是最重要的。系统的瓶颈往往是磁盘IO和网络IO，合理使用存储过程使得分布式系统结构效率大大提升。但也要注意合理使用，比如避免一般的分页过程，由于查询会有很多，使得这样的存储过程太多而管理混乱。 <br/><br/>9，慎用游标。数据库的游标执行效率一般都比较低，一般都可以使用复杂的查询语句代替，合理的数据库结构设计也可以避免这个问题。 <br/><br/>10，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;合理使用触发器。大部分人觉得触发器使得数据关系不明确，即屏蔽了数据的关系，但是当一个系统非常复杂的时候，数据关系更是复杂，这时候使用触发器来维护数据的一致性和数据同步的功能，可以有效地屏蔽数据关系的复杂性，减少程序代码。 <br/><br/>11，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;合理使用事务：如果不是需要连续处理的或者需要特别安全的数据处理，不要使用事务，因为事务的使用会影响数据库的并发性能。单纯的查询过程也使用事务更不可取。 <br/><br/>12，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;安全的数据访问：目前十分常见SQL注入式攻击，需要注意数据库系统安全设置和Web程序编码问题引起的安全漏洞。 <br/><br/>总结：数据访问的性能决定性的影响了系统的整体性能，数据库结构的设计也会极大地影响到程序代码的复杂性。现在有的人认为在网络速度和磁盘容量大大提高的情况下还来考虑数据访问的问题有点不切实际，但是他们忘了我们现在面对的是成千上万的用户。 <br/><br/>&nbsp;&nbsp;<br/>四、系统架构相关 <br/>这个比较复杂，这里只是简单的说说需要注意的问题，具体请参考相关资料。 <br/><br/>软件架构： <br/>采用ASP.NET+IIS+SQLSERVER 三层结构，或者说表现层+业务逻辑层+数据访问层 的三层结构，其中业务逻辑层又可以在拆分处多个层次，从而整个系统成为一个“多层结构”模式。在业务层和数据访问层又可以采用缓存技术等。 <br/><br/>硬件架构： <br/>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 多Web服务器负载均衡 <br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 多DNS解析 <br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 服务器集群&nbsp;&nbsp;<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 多层防火墙 <br/><br/>&nbsp;&nbsp;<br/><br/>一般的企业网站出于自身资金的原因很难用到上面的全部技术/结构，但是处于一般的性能和安全考虑，至少采用下面的硬件架构： <br/><br/>一台Web服务器+ 一台数据库服务器+一个硬件防火墙，其中数据库服务器最好能有第二层防火墙并且不用TCP/IP和Web服务器直接连接。Web服务器内存至少1G以上，数据库服务器内存2G以上，每个服务器最好能够有2个以上的CPU。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.youthfly.net/archives/368.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

