<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>技术类</title><link>http://webuc.net/dotey/category/4.aspx</link><description>技术类随笔</description><managingEditor>宝玉</managingEditor><dc:language>af</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>宝玉</dc:creator><title>ASP.NET 2.0 Resources - MSDN webcasts &amp; whitepapers</title><link>http://webuc.net/dotey/archive/2005/01/06/2541.aspx</link><pubDate>Thu, 06 Jan 2005 02:50:00 GMT</pubDate><guid>http://webuc.net/dotey/archive/2005/01/06/2541.aspx</guid><wfw:comment>http://webuc.net/dotey/comments/2541.aspx</wfw:comment><comments>http://webuc.net/dotey/archive/2005/01/06/2541.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://webuc.net/dotey/comments/commentRss/2541.aspx</wfw:commentRss><trackback:ping>http://webuc.net/dotey/services/trackbacks/2541.aspx</trackback:ping><description>&lt;font face="Arial"&gt;&amp;nbsp;&lt;/font&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;I've been digging into ASP.NET 2.0 lately so thought I'd share some good webcasts and whitepapers I've found along the way...&lt;/span&gt;&lt;span deactivatedstyle="FONT-FAMILY: Arial"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;b&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Arial"&gt;Planning for Whidbey webcast&lt;/span&gt;&lt;/b&gt;&lt;span deactivatedstyle="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Here’s a fantastic webcast by Stefan Schackow discussing “planning for Whidbey”. It was great as he had a good presentation and demos, but also took time to answer a LOT of questions that popped up during the webcast:&lt;/span&gt;&lt;span deactivatedstyle="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032258691&amp;amp;CountryCode=US"&gt;&lt;span deactivatedstyle="mso-bidi-font-size: 12.0pt"&gt;&lt;font color="#6666cc"&gt;http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032258691&amp;amp;CountryCode=US&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;&lt;span deactivatedstyle="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;/span&gt;&lt;span deactivatedstyle="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;/span&gt;&lt;span deactivatedstyle="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Arial"&gt;Data Provider&lt;/span&gt;&lt;/b&gt;&lt;span deactivatedstyle="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;Here’s a 400 level webcast on the Design patterns used in the Provider model. Also check out this &lt;a href="http://weblogs.asp.net/asmith/archive/2004/04/13/112076.aspx"&gt;&lt;span deactivatedstyle="mso-bidi-font-size: 12.0pt"&gt;&lt;font color="#6666cc"&gt;blog&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; by Andy on the basic design pattern of the provider model.&lt;/span&gt;&lt;span deactivatedstyle="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032259187&amp;amp;CountryCode=US"&gt;&lt;span deactivatedstyle="COLOR: #0033cc"&gt;&lt;font color="#6666cc"&gt;MSDN Webcast: Designing Flexible Applications Using the Provider Model in ASP.NET 2.0 (Level 400) &lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032259157&amp;amp;CountryCode=US"&gt;&lt;span deactivatedstyle="COLOR: #0033cc"&gt;&lt;font color="#6666cc"&gt;MSDN Webcast: Building A Google Data Source Control with ASP.NET 2.0 (Level 400) &lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;b&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span deactivatedstyle="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;b&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Arial"&gt;ASP.NET 2.0 Webcasts&lt;/span&gt;&lt;/b&gt;&lt;span deactivatedstyle="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;a title="http" href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032258751&amp;amp;CountryCode=US"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: #0033cc; mso-bidi-font-size: 12.0pt"&gt;&lt;font face="Times New Roman" color="#6666cc"&gt;MSDN Webcast: Using the Time-Saving Membership Features in ASP.NET 2.0 (Level 200)&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;a title="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032259040&amp;amp;CountryCode=US " href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032259040&amp;amp;CountryCode=US%20"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: #0033cc; mso-bidi-font-size: 12.0pt"&gt;&lt;font face="Times New Roman" color="#6666cc"&gt;MSDN Webcast: Building Mobile Web Sites in ASP.NET 2.0 (Level 300) &lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;a title="http" href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032258305&amp;amp;CountryCode=US"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: #0033cc; mso-bidi-font-size: 12.0pt"&gt;&lt;font face="Times New Roman" color="#6666cc"&gt;MSDN Webcast: Fundamentals of ASP.NET Mobile Controls (Level 200) &lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;a title="http" href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032259175&amp;amp;CountryCode=US"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: #0033cc; mso-bidi-font-size: 12.0pt"&gt;&lt;font face="Times New Roman" color="#6666cc"&gt;MSDN Webcast: Working With The GridView and DetailsView Controls in ASP.NET 2.0 (Level 300)&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;a title="http" href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032259180&amp;amp;CountryCode=US"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: #0033cc; mso-bidi-font-size: 12.0pt"&gt;&lt;font face="Times New Roman" color="#6666cc"&gt;MSDN Webcast: Data Access Using ASP.NET 2.0 (Level 200) &lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;a title="http" href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032258756&amp;amp;CountryCode=US"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: #0033cc; mso-bidi-font-size: 12.0pt"&gt;&lt;font face="Times New Roman" color="#6666cc"&gt;MSDN Webcast: Exploring the New Personalization Features in ASP.NET 2.0 (Level 200) &lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;a title="http" href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032258308&amp;amp;CountryCode=US"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: #0033cc; mso-bidi-font-size: 12.0pt"&gt;&lt;font face="Times New Roman" color="#6666cc"&gt;MSDN Webcast: A First Look at ASP.NET 2.0 (Level 200) &lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;a title="http" href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032259197&amp;amp;CountryCode=US"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: #0033cc; mso-bidi-font-size: 12.0pt"&gt;&lt;font face="Times New Roman" color="#6666cc"&gt;MSDN Webcast: Introduction to ASP.NET 2.0 Security (Level 200)&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;a title="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032258775&amp;amp;CountryCode=US " href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032258775&amp;amp;CountryCode=US%20"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: #0033cc; mso-bidi-font-size: 12.0pt"&gt;&lt;font face="Times New Roman" color="#6666cc"&gt;MSDN Webcast: Working with Data Using the Enhanced GridView and DetailsView Controls in ASP.NET 2.0 (Level 200) &lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;b&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Arial"&gt;ASP.NET 2.0 Beta 1 Articles on MSDN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/vwd_sse_personalization.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Let's Get Personal: Personalizing Web Sites in ASP.NET 2.0&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Learn how to personalize your data-driven Web applications by using profiles, Web parts, theming, and skins. Also see how to implement XML-driven forms using the new XMLDataSource object. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/webparts.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Introducing the ASP.NET 2.0 Web Parts Framework&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Web Parts provide you with the infrastructure for creating customizable Web applications. When you build a Web site with Web Parts, the Web site can be easily customized by either the administrator of the Web site or the individual users of the Web site. Web Parts are all about flexibility. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/asp2local.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;ASP.NET 2.0 Localization Features - A Fresh Approach to Localizing Web Applications&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Creating global Web applications with Microsoft ASP.NET is becoming more and more important. ASP.NET 2.0 makes it even easier to provide support for multiple cultures and locales through improved runtime and tool support. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/themes.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Create Web Application Themes in ASP.NET 2.0&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Learn to use cascading style sheets and images with themes in ASP.NET 2.0, and how you can dynamically load themes at run time. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/userprofiles.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Storing User Information with ASP.NET 2.0 Profiles&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Use the new Profile object in ASP.NET 2.0 to track user preferences, create a shopping cart, and more. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/asp2objectdatasource.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Working with the ASP.NET 2.0 ObjectDataSource Control&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Learn how to use the ObjectDataSource control to build a proper multi-tier Web application with the ASP.NET 2.0 Framework. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/treeview.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Introducing the ASP.NET 2.0 TreeView and Menu Controls&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Discover how you can use the TreeView and Menu controls in ASP.NET 2.0 to represent hierarchical data in your applications. Use both controls with various data sources and customize the appearance of both controls. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/sitemaint.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Web Site Operations in ASP.NET 2.0&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Use ASP.NET 2.0, Internet Information Services 6.0, and the Microsoft .NET Framework 2.0 to make deploying, configuring, monitoring, and maintaining Web applications easier than ever before. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/msdnmag/issues/04/10/viewstate/default.aspx"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;ASP.NET 2.0: Speed Up Your Site with the Improved View State in ASP.NET 2.0 – MSDN Magazine, October 2004&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;The release of ASP.NET 2.0 brings several improvements to the view state mechanism that will make it easier to use without hindering your site's performance. These improvements include a reduction in encoding size, the introduction of control state to separate behavioral state from content, and intelligent integration with data-bound controls. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/internals.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;ASP.NET 2.0 Internals&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;While 100 percent backward compatible with ASP.NET 1.1, ASP.NET 2.0 brings a number of internal changes to ASP.NET. These include changes to the code model, compilation, page lifecycle, and more. This article outlines those changes. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/dataaccess.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Code Less to Access Data with ASP.NET 2.0&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Leverage the new ASP.NET 2.0 data access controls to reduce the code you have to write when developing a data-driven Web application. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/masterpages.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Master Pages in ASP.NET 2.0&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Master Pages enable you to create ASP.NET pages that follow a consistent theme and style. Stephen Walther shows you how to take advantage of this new feature. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;span deactivatedstyle="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/valgroups.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Changes to the Validation Controls in ASP.NET 2.0&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;While ASP.NET 1.x supported validating user input, ASP.NET 2.0 increases the flexibility of the validation through the addition of validation groups. This article looks at this new feature, and shows you how you can use it in a number of common scenarios. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/grddetview.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Introducing the ASP.NET 2.0 GridView and DetailsView Controls&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Display and edit database data and single database records with GridView and DetailsView, two new controls in the ASP.NET 2.0 framework. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/person_fin.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Personalize Better with ASP.NET 2.0&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Create personalized Web sites faster, and build entirely new classes of applications, with the new personalization features in ASP.NET 2.0. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/migratefromaspnetto2.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Migrate from ASP.NET 1.x to ASP.NET 2.0&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Explore features new to ASP.NET 2.0 from ASP.NET 1.x that offer a better set of options for Web development within the .NET Framework. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/migratingtoaspnet2.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Migrate from ASP to ASP.NET 2.0&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Tour the advantages of developing with ASP.NET 2.0, and gives guidance to developers in migrating from ASP to ASP.NET 2.0. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/custwebcon.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Creating Custom Web Controls with ASP.NET 2.0&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;The new adaptive rendering model in ASP.NET 2.0 provides a number of new options for control writers. This article shows how those options make creating custom controls for ASP.NET easier than before. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/msdnmag/issues/04/08/gridview/default.aspx"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;GridView: Move Over DataGrid, There's a New Grid in Town!&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Go beyond the DataGrid! &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/secfeatnt2.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;New Security Features in ASP.NET 2.0&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;ASP.NET 2.0 includes a number of new features to make securing your ASP.NET applications easier than before. See how you can use the new controls, tools, and APIs to control access to pages, and make it easier to store information about your users. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a title="http" href="http://msdn.microsoft.com/asp.net/whidbey/default.aspx?pull=/library/en-us/dnvs05/html/cachingnt2.asp"&gt;&lt;span deactivatedstyle="mso-bidi-font-weight: bold"&gt;&lt;font color="#6666cc"&gt;Improved Caching in ASP.NET 2.0&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" deactivatedstyle="MARGIN: 0in 0in 0pt"&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Stephen Walther looks at the new caching features included in ASP.NET 2.0, and how you can use them to improve the performance and scalability of your ASP.NET applications. &lt;/span&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;img src ="http://webuc.net/dotey/aggbug/2541.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>宝玉</dc:creator><title>Asp无组件上传带进度条(续)</title><link>http://webuc.net/dotey/archive/2004/12/16/2388.aspx</link><pubDate>Thu, 16 Dec 2004 11:45:00 GMT</pubDate><guid>http://webuc.net/dotey/archive/2004/12/16/2388.aspx</guid><wfw:comment>http://webuc.net/dotey/comments/2388.aspx</wfw:comment><comments>http://webuc.net/dotey/archive/2004/12/16/2388.aspx#Feedback</comments><slash:comments>60</slash:comments><wfw:commentRss>http://webuc.net/dotey/comments/commentRss/2388.aspx</wfw:commentRss><trackback:ping>http://webuc.net/dotey/services/trackbacks/2388.aspx</trackback:ping><description>&lt;p&gt;几个月前，写过一篇关于Asp无组件上传带进度条的Blog，当时主要分析了一下通过Web文件上传并在后台获取分析数据的实现原理。其中实现进度条的根本就是要实现分块获取数据，根据分块大小和块数记录已上传大小。还有一些具体的细节问题当时并没有说清楚：&lt;/p&gt; &lt;p&gt;Q: 进度信息如何访问？&lt;br /&gt;A: 进度信息保存在Application中，每次上传时生成一个进度ID，根据这个进度ID可以检索Application中的当前上传进度信息。&lt;/p&gt; &lt;p&gt;Q: 进度信息以什么形式保存在Application中？&lt;br /&gt;A: Asp太弱了，我分别试过Scripting.Dictionary和XMLDom，但是Asp中Application不能保存这种对象，要是asp.net就直接可以用Hashtable了。最后是在Application中用一个ADODB.Recordset对象来保存进度相关信息。&lt;/p&gt; &lt;p&gt;Q: 怎么保证的页面能即时反应显示进度条信息？&lt;br /&gt;A: &lt;br /&gt;文件开头加上&lt;%@enablesessionstate=false%&gt;声明来关闭会话状态&lt;br /&gt;要保证禁用缓存:&lt;br /&gt;&amp;nbsp;Response.CacheControl = "no-cache"&lt;br /&gt;&amp;nbsp;Response.Expires = -1&lt;/p&gt; &lt;p&gt;Q: 可以上传多大文件？&lt;br /&gt;A: 这个和网速，服务器内存等多方面因素有关，将Server.ScriptTimeout设置足够长，那么理论上可以和服务器保持连接很长时间。因为在asp中，不能实现对文件的“追加”写入，必须将所有待写入文件的数据都先保存在内存，这样如果上传大文件，那么将很占用服务器内存（文本文件可以使用TextStream.Write追加写入）。在asp.net下就比较爽了，分块读取的时候，每读一块分析一块，然后将上传文件的数据内容“追加”写入硬盘文件中，对内存占用很小很小。一般几十MB的文件还是没问题，太大的上传其实对于web下也不是很有意义。&lt;/p&gt; &lt;p&gt;写了一个比较完善的实例，可以直接下载使用：&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.webuc.net/MyProject/upload/demo.htm" target="_blank"&gt;演示下载&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://webuc.net/dotey/aggbug/2388.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>宝玉</dc:creator><title>Asp.Net Forums中对.Net中序列化和反序列化的应用</title><link>http://webuc.net/dotey/archive/2004/12/10/2387.aspx</link><pubDate>Fri, 10 Dec 2004 01:06:00 GMT</pubDate><guid>http://webuc.net/dotey/archive/2004/12/10/2387.aspx</guid><wfw:comment>http://webuc.net/dotey/comments/2387.aspx</wfw:comment><comments>http://webuc.net/dotey/archive/2004/12/10/2387.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://webuc.net/dotey/comments/commentRss/2387.aspx</wfw:commentRss><trackback:ping>http://webuc.net/dotey/services/trackbacks/2387.aspx</trackback:ping><description>&lt;p&gt;在Forums中，有些内容是不固定的，例如用户资料，除了一些基本资料，可能还要有一些其他资料信息，例如MSN、个人主页、签名档等，一般对于这样的都是每一个属性对应于数据库中的一个字段。但是如果以后我们因为需要增加一些属性，例如QQ号、Blog地址等，如果还是用这种增加数据表字段的方法，那么将会频繁的修改数据库表结构、存储过程、数据库访问的程序。&lt;/p&gt; &lt;p&gt;或许您也遇到过类似问题，看Forums中是怎么借用.Net的序列化和反序列化来解决的：&lt;br /&gt;例如我需要在用户资料里面增加QQ号这个属性，那么我只需要在User类中增加一个属性&lt;br /&gt;public String QQIM&amp;nbsp;&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&amp;nbsp;{ return GetExtendedAttribute("QQIM");&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&amp;nbsp;{ SetExtendedAttribute("QQIM",&amp;nbsp;value);&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;不需要修改数据库表结构，不需要修改存储过程，连数据库访问的程序都不需要动。&lt;/p&gt; &lt;p&gt;其具体实现的主要代码：&lt;br /&gt;&lt;/p&gt; &lt;div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"&gt; &lt;div&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;首先新建在User类中新建一个NameValueCollection对象，将这些扩展属性都保存在NameValueCollection对象中&lt;/span&gt;&lt;span style="COLOR: #008000"&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;NameValueCollection&amp;nbsp;extendedAttributes&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;NameValueCollection(); &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;从NameValueCollection集合中取纪录&lt;/span&gt;&lt;span style="COLOR: #008000"&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;GetExtendedAttribute(&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;name)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;img id="Codehighlighter1_222_357_Open_Image" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /&gt;&lt;img id="Codehighlighter1_222_357_Closed_Image" style="DISPLAY: none" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_222_357_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_222_357_Open_Text"&gt;&lt;span style="COLOR: #000000"&gt;{ &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;returnValue&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;extendedAttributes[name]; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;(returnValue&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;==&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;) &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;.Empty; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;else&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;returnValue; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" width="11" align="top" /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;设置扩展属性的在NameValueCollection中的键值和值&lt;/span&gt;&lt;span style="COLOR: #008000"&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;void&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;SetExtendedAttribute(&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name,&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;value)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;img id="Codehighlighter1_458_498_Open_Image" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /&gt;&lt;img id="Codehighlighter1_458_498_Closed_Image" style="DISPLAY: none" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_458_498_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_458_498_Open_Text"&gt;&lt;span style="COLOR: #000000"&gt;{ &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;extendedAttributes[name]&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;value; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" width="11" align="top" /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;将extendedAttributes对象（前面定义的用来保存所有的用户扩展信息的NameValueCollection对象）序列化为内存流 &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;可以用来保存到数据库中&lt;/span&gt;&lt;span style="COLOR: #008000"&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;byte&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;[]&amp;nbsp;SerializeExtendedAttributes()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;img id="Codehighlighter1_635_1074_Open_Image" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /&gt;&lt;img id="Codehighlighter1_635_1074_Closed_Image" style="DISPLAY: none" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_635_1074_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_635_1074_Open_Text"&gt;&lt;span style="COLOR: #000000"&gt;{ &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;序列化对象&lt;/span&gt;&lt;span style="COLOR: #008000"&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BinaryFormatter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;binaryFormatter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;BinaryFormatter(); &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;创建一个内存流，序列化后保存在其中&lt;/span&gt;&lt;span style="COLOR: #008000"&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MemoryStream&amp;nbsp;ms&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;MemoryStream(); &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;byte&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;[]&amp;nbsp;b; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;将extendedAttributes对象（里面保存了所有的用户扩展信息）序列化为内存流 &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;// &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;binaryFormatter.Serialize(ms,&amp;nbsp;extendedAttributes); &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;设置内存流的起始位置 &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;// &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ms.Position&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;0&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;读入到&amp;nbsp;byte&amp;nbsp;数组 &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;// &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Byte[ms.Length]; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ms.Read(b,&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;0&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;,&amp;nbsp;b.Length); &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ms.Close(); &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;b; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" width="11" align="top" /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;反序列化extendedAttributes对象的内容 &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;从数据库中读取出来的&lt;/span&gt;&lt;span style="COLOR: #008000"&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;void&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;DeserializeExtendedAttributes(&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;byte&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;[]&amp;nbsp;serializedExtendedAttributes)&amp;nbsp; &lt;br /&gt;&lt;img id="Codehighlighter1_1202_1686_Open_Image" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /&gt;&lt;img id="Codehighlighter1_1202_1686_Closed_Image" style="DISPLAY: none" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_1202_1686_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_1202_1686_Open_Text"&gt;&lt;span style="COLOR: #000000"&gt;{ &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;(serializedExtendedAttributes.Length&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;==&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;0&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;) &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;try&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;img id="Codehighlighter1_1277_1668_Open_Image" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /&gt;&lt;img id="Codehighlighter1_1277_1668_Closed_Image" style="DISPLAY: none" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span id="Codehighlighter1_1277_1668_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_1277_1668_Open_Text"&gt;&lt;span style="COLOR: #000000"&gt;{ &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BinaryFormatter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;binaryFormatter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;BinaryFormatter(); &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MemoryStream&amp;nbsp;ms&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;MemoryStream(); &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;将&amp;nbsp;byte&amp;nbsp;数组到内存流 &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;// &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ms.Write(serializedExtendedAttributes,&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;0&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;,&amp;nbsp;serializedExtendedAttributes.Length); &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;将内存流的位置到最开始位置 &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;// &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ms.Position&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;0&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;&amp;nbsp;反序列化成NameValueCollection对象，创建出与原对象完全相同的副本 &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;// &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;extendedAttributes&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;(NameValueCollection)&amp;nbsp;binaryFormatter.Deserialize(ms); &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ms.Close(); &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp; &lt;br /&gt;&lt;img id="Codehighlighter1_1681_1682_Open_Image" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /&gt;&lt;img id="Codehighlighter1_1681_1682_Closed_Image" style="DISPLAY: none" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span id="Codehighlighter1_1681_1682_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_1681_1682_Open_Text"&gt;&lt;span style="COLOR: #000000"&gt;{}&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" width="11" align="top" /&gt;}&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;p&gt;实质上序列化机制是将类的值转化为一个一般的（即连续的）字节流，然后就可以将该流保存到数据库的某个字段中（在数据库中forums_UserProfile表中有一个字段“StringNameValues varbinary(7500)”）。读取的过程对对象进行反序列化时，创建出与原对象完全相同的副本。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;注意一般这类属性在数据库中是不能被检索到的，并且要这些属性能被序列化。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;更详细内容请查阅MSDN和&lt;a href="http://bbs.openlab.net.cn/PostAttachment.aspx?PostID=365356"&gt;Asp.Net Forums源码&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://webuc.net/dotey/aggbug/2387.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>宝玉</dc:creator><title>js中的数组排序</title><link>http://webuc.net/dotey/archive/2004/12/06/2354.aspx</link><pubDate>Mon, 06 Dec 2004 00:19:00 GMT</pubDate><guid>http://webuc.net/dotey/archive/2004/12/06/2354.aspx</guid><wfw:comment>http://webuc.net/dotey/comments/2354.aspx</wfw:comment><comments>http://webuc.net/dotey/archive/2004/12/06/2354.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://webuc.net/dotey/comments/commentRss/2354.aspx</wfw:commentRss><trackback:ping>http://webuc.net/dotey/services/trackbacks/2354.aspx</trackback:ping><description>&lt;p&gt;js的数组中有一个sort方法，默认是按照ASCII 字符顺序进行升序排列。如果需要自定义排序，例如希望通过二维数组中的第二列数据排序：&lt;/p&gt; &lt;p&gt;&amp;lt;script language="javascript"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;br /&gt;var testArray = new Array();&lt;br /&gt;testArray[0]= new Array('e','2','g');&lt;br /&gt;testArray[1]= new Array('b','3','c');&lt;br /&gt;testArray[2]= new Array('a','1','a');&amp;nbsp;&amp;nbsp; &lt;br /&gt;testArray[3]= new Array('d','4','h');&amp;nbsp;&amp;nbsp; &lt;br /&gt;testArray.sort(sortfunction);&lt;br /&gt;alert(testArray[0] + "\n" + testArray[1] + "\n" + testArray[2] + "\n" + testArray[3])&lt;/p&gt; &lt;p&gt;// 排序方法中有两个参数，表示数组中两个用来排序的元素&lt;br /&gt;// &lt;br /&gt;function sortfunction(x,y)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;return x[2].charCodeAt(0) - y[2].charCodeAt(0);//根据二维数组的第三列的第一个字母的ASCII码来降序排序&lt;br /&gt;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // --&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src ="http://webuc.net/dotey/aggbug/2354.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>宝玉</dc:creator><title>获取数据库中前N条记录</title><link>http://webuc.net/dotey/archive/2004/12/05/2353.aspx</link><pubDate>Sun, 05 Dec 2004 21:27:00 GMT</pubDate><guid>http://webuc.net/dotey/archive/2004/12/05/2353.aspx</guid><wfw:comment>http://webuc.net/dotey/comments/2353.aspx</wfw:comment><comments>http://webuc.net/dotey/archive/2004/12/05/2353.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://webuc.net/dotey/comments/commentRss/2353.aspx</wfw:commentRss><trackback:ping>http://webuc.net/dotey/services/trackbacks/2353.aspx</trackback:ping><description>&lt;p&gt;假如我们要写一个存储过程，取表中前N条记录，其中N为参数，以Northwind库中的Orders表为例，有两种方法：&lt;/p&gt; &lt;p&gt;第一种是拼SQL&lt;/p&gt; &lt;p&gt;CREATE PROCEDURE GetTopNOrders&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;@RowsToReturn int&lt;br /&gt;)&lt;br /&gt;AS&lt;br /&gt;declare @sql varchar(8000)&lt;/p&gt; &lt;p&gt;set @sql='select top '+cast(@RowsToReturn as varchar)+' * from orders'&lt;/p&gt; &lt;p&gt;exec (@sql)&lt;br /&gt;&lt;/p&gt; &lt;p&gt;第二种是借用RowCount属性&lt;/p&gt; &lt;p&gt;CREATE PROCEDURE GetTopNOrders&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;@RowsToReturn int&lt;br /&gt;)&lt;br /&gt;AS&lt;br /&gt;SET ROWCOUNT @RowsToReturn&lt;br /&gt;SELECT * FROM Orders order by orderid&lt;/p&gt; &lt;p&gt;对于这个例子不管哪种效果都是一样的，但是第二种应该更灵活一点，只是知道的人比较少罢了！&lt;/p&gt; &lt;p&gt;GetTopNOrders 20&lt;/p&gt; &lt;p&gt;希望能对大家有所帮助：）&lt;/p&gt;&lt;img src ="http://webuc.net/dotey/aggbug/2353.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>宝玉</dc:creator><title>使用js复制网页中指定的元素</title><link>http://webuc.net/dotey/archive/2004/12/02/2345.aspx</link><pubDate>Thu, 02 Dec 2004 09:41:00 GMT</pubDate><guid>http://webuc.net/dotey/archive/2004/12/02/2345.aspx</guid><wfw:comment>http://webuc.net/dotey/comments/2345.aspx</wfw:comment><comments>http://webuc.net/dotey/archive/2004/12/02/2345.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://webuc.net/dotey/comments/commentRss/2345.aspx</wfw:commentRss><trackback:ping>http://webuc.net/dotey/services/trackbacks/2345.aspx</trackback:ping><description>&lt;p&gt;请看&lt;a href="http://blog.joycode.com/"&gt;博客堂&lt;/a&gt;中：《&lt;a id="RecentPosts__ctl0_Hyperlink2" href="http://blog.joycode.com/dotey/archive/2004/12/02/40187.aspx"&gt;如何通过js脚本复制网页上的一个表格？&lt;/a&gt;》&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src ="http://webuc.net/dotey/aggbug/2345.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>宝玉</dc:creator><title>HttpModule的移除</title><link>http://webuc.net/dotey/archive/2004/11/30/2330.aspx</link><pubDate>Tue, 30 Nov 2004 05:36:00 GMT</pubDate><guid>http://webuc.net/dotey/archive/2004/11/30/2330.aspx</guid><wfw:comment>http://webuc.net/dotey/comments/2330.aspx</wfw:comment><comments>http://webuc.net/dotey/archive/2004/11/30/2330.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://webuc.net/dotey/comments/commentRss/2330.aspx</wfw:commentRss><trackback:ping>http://webuc.net/dotey/services/trackbacks/2330.aspx</trackback:ping><description>&lt;p&gt;HttpModule 是个好东西，很多程序都有用到，例如DotText、Asp.Net Forums等，但是有一个问题，当我们将使用了&lt;strong&gt;HttpModule&lt;/strong&gt; 的程序设置为站点根目录（以将DotText设置为站点目录为例），然后再在根目录下建虚拟目录，运行虚拟目录里的asp.net程序会提示出错：&lt;/p&gt; &lt;p&gt;&lt;b&gt;分析器错误信息: &lt;/b&gt;找不到文件或程序集名称“Dottext.Web”，或找不到它的一个依赖项。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;源错误:&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt; &lt;table width="100%" bgcolor="#ffffcc"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;行 145： &lt;br /&gt;行 146： &amp;lt;httpModules&amp;gt; &lt;br /&gt;&lt;font color="red"&gt;行 147：&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;add name="ServiceRouter" type= "Dottext.Web.Modules.BlogServiceModule, Dottext.Web" /&amp;gt; &lt;br /&gt;&lt;/font&gt;行 148： &amp;lt;/httpModules&amp;gt; &lt;br /&gt;行 149： &lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;b&gt;&lt;font face="Verdana"&gt;源文件: &lt;/font&gt;&lt;/b&gt;D:\DotText095\DottextWeb\web.config&lt;b&gt;&lt;font face="Verdana"&gt; &amp;nbsp;&amp;nbsp; 行: &lt;/font&gt;&lt;/b&gt;147 &lt;br /&gt;&lt;/p&gt; &lt;p&gt;也就是说对于虚拟目录中的asp.net应用程序，会首先去加载其所在站点中的HttpModule，而一般虚拟目录中的bin目录是不会有HttpModule所在的DLL的，所以就会出如上的错误。&lt;br /&gt;注意，其中的错误提示信息（&lt;strong&gt;找不到文件或程序集名称“Dottext.Web”，或找不到它的一个依赖项。&lt;/strong&gt;）很有误导性，一开始让我以为是需要每个虚拟目录拷贝一个Dottext.Web.dll进去呢，但是将dll拷贝过去后，其HttpModule会对虚拟目录中的asp.net应用程序产生影响，因此这个问题曾让我郁闷了很久。&lt;/p&gt; &lt;p&gt;后来偶然查msdn中，发现web.config里面的HttpModule是有三种子节点的：&lt;br /&gt;&lt;strong&gt;&amp;lt;httpModules&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;add&lt;/strong&gt; &lt;b&gt;type&lt;/b&gt;=&lt;i&gt;"classname,assemblyname" &lt;/i&gt;&lt;b&gt;name&lt;/b&gt;&lt;i&gt;="modulename"&lt;/i&gt;&lt;b&gt;/&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &amp;lt;remove&lt;/b&gt;&lt;i&gt; &lt;/i&gt;&lt;b&gt;name&lt;/b&gt;&lt;i&gt;="modulename"&lt;/i&gt;&lt;b&gt;/&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &amp;lt;clear/&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;lt;/httpModules&amp;gt;&lt;/b&gt;&amp;nbsp;&lt;br /&gt; &lt;table cellspacing="0" cellpadding="0" border="1"&gt; &lt;tbody&gt; &lt;tr align="middle"&gt; &lt;td&gt;子标记&lt;/td&gt; &lt;td&gt;说明&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&amp;lt;add&amp;gt;&lt;/td&gt; &lt;td&gt;将 HttpModule 类添加到应用程序。 请注意，如果以前已指定了相同的谓词/路径组合（例如在父目录的 Web.config 文件中），则对 &lt;add&gt;的第二个调用将重写以前的设置。&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&amp;lt;remove&amp;gt;&lt;/td&gt; &lt;td&gt;从应用程序移除 HttpModule 类。 &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&amp;lt;clear&amp;gt;&lt;/td&gt; &lt;td&gt;从应用程序移除所有 HttpModule 映射。 &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt; &lt;p&gt;所以遇到类似这样的问题，在虚拟目录中的web.config中Remove一下不需要的HttpModule就好了！如：&lt;br /&gt;&lt;strong&gt;&amp;lt;httpModules&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove&lt;/strong&gt;&lt;i&gt; &lt;/i&gt;&lt;strong&gt;name&lt;/strong&gt;&lt;em&gt;="&lt;/em&gt;&lt;font face="Courier New" color="#ff0000"&gt;ServiceRouter&lt;/font&gt;&lt;em&gt;"&lt;/em&gt;&lt;strong&gt;/&amp;gt;&lt;br /&gt;&amp;lt;/httpModules&amp;gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;注意一般表用&lt;strong&gt;&amp;lt;clear/&amp;gt;&lt;/strong&gt;，因为用&lt;strong&gt;&amp;lt;clear/&amp;gt;&lt;/strong&gt;会把machine.config中定义的httpModule一起清除了从而导致asp.net程序不能正常运行。&lt;/p&gt; &lt;p&gt;有一点我很疑惑的是既然都是用remove移除这个HttpModule了，还要将该HttpModule对应的dll拷贝到虚拟目录的dll下。&lt;/p&gt; &lt;p&gt;httpHandlers的处理方法也类似。&lt;br /&gt;&lt;/p&gt;&lt;/font&gt;&lt;img src ="http://webuc.net/dotey/aggbug/2330.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>宝玉</dc:creator><title>登录？登陆？</title><link>http://webuc.net/dotey/archive/2004/11/28/2304.aspx</link><pubDate>Sun, 28 Nov 2004 22:34:00 GMT</pubDate><guid>http://webuc.net/dotey/archive/2004/11/28/2304.aspx</guid><wfw:comment>http://webuc.net/dotey/comments/2304.aspx</wfw:comment><comments>http://webuc.net/dotey/archive/2004/11/28/2304.aspx#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://webuc.net/dotey/comments/commentRss/2304.aspx</wfw:commentRss><trackback:ping>http://webuc.net/dotey/services/trackbacks/2304.aspx</trackback:ping><description>&lt;p&gt;在我们写程序时，不可避免的要经常写有用户验证功能的界面，一个常见但可能被忽视的问题就是，究竟应该是“登录”系统？还是“登陆”系统？用拼音输入法时两个字的发音都是dēnglù，而似乎都可以表示进入系统的意思。&lt;/p&gt; &lt;p&gt;在网上，关于登录和登陆似乎都是通用的，可能在同一个网站中，有的网页用的是“登陆”，而另一个网页又用的是“登录”&lt;img src="http://bbs.openlab.net.cn/emoticons/emotion-15.gif" /&gt;，但是对于一些相对正规的大网站（如微软，Sina等），都是是用“登录”而基本没有用“登陆”的。&lt;/p&gt; &lt;p&gt;之前我也一直没注意到这个问题，有次项目中技术总监特地给我们详细解释了一下，应该用“登录”而不是“登陆”，当时是怎么解释的我忘记了，倒是记住了应该是“登录”，所以现在看到“登陆”都比较过敏了。&lt;/p&gt; &lt;p&gt;&lt;img src="http://bbs.openlab.net.cn/emoticons/emotion-10.gif" /&gt;我语文不够好，无法给大家解释为什么应该是“登录”而不是“登陆”，给大家提个醒，如果谁能有比较正规的解释欢迎补充&lt;img src="http://bbs.openlab.net.cn/emoticons/emotion-4.gif" /&gt;&lt;/p&gt; &lt;p&gt;附金山词霸中关于两个词意的解释：&lt;br /&gt;登陆dēnglù&lt;br /&gt;渡过海洋或江河登上陆地&lt;br /&gt;登录dēnglù&lt;br /&gt;列入;记载&lt;/p&gt;&lt;img src ="http://webuc.net/dotey/aggbug/2304.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>宝玉</dc:creator><title>Community Server 1.0 Beta 体验</title><link>http://webuc.net/dotey/archive/2004/11/21/2239.aspx</link><pubDate>Sun, 21 Nov 2004 07:39:00 GMT</pubDate><guid>http://webuc.net/dotey/archive/2004/11/21/2239.aspx</guid><wfw:comment>http://webuc.net/dotey/comments/2239.aspx</wfw:comment><comments>http://webuc.net/dotey/archive/2004/11/21/2239.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://webuc.net/dotey/comments/commentRss/2239.aspx</wfw:commentRss><trackback:ping>http://webuc.net/dotey/services/trackbacks/2239.aspx</trackback:ping><description>&lt;style&gt; .dotey { font: 9pt/12pt; } .dotey p{ text-indent:2em; } &lt;/style&gt; &lt;h2&gt;序&lt;/h2&gt; &lt;p class="dotey"&gt;CS1.0 Beta经过几天的跳票，在N多人的期待下终于匆匆发布，而且没有开源，说是要Release才开源，天知道会不会开源！&lt;/p&gt; &lt;h2&gt;安装篇&lt;/h2&gt; &lt;p class="dotey"&gt;您可以从&lt;a href="http://www.communityserver.org/" target="_blank"&gt;http://www.communityserver.org/&lt;/a&gt;下载，下载后，是一个压缩包，解压后，有一个readme.txt，是安装说明，按照上面一步步操作即可。安装非常简单，首先为解压后的web文件夹设虚拟目录为http://localhost/cs，然后根据data文件夹中的sql安装数据库，不过安装数据库时要注意一下：&lt;br /&gt; 执行Data\CS_2004_11_17_Full.sql 脚本，会自动创建一个数据库，但是安装的SQL文件在中文SQL Server上会提示排序规则冲突，必须对SQL作如下修改（谢谢progame的帮助）：&lt;br /&gt; 找到sp: forums_Posts_UpdatePostsInCategories&lt;br /&gt; &lt;pre&gt; where C.[Category] is not null and C.[Category] not in ( Select [Name] FROM forums_Post_Categories where CategoryType = @CategoryType and ForumID = @ForumID ) &lt;/pre&gt; 修改为： &lt;pre&gt; where C.[Category] is not null and C.[Category] &lt;font color="red"&gt;COLLATE Latin1_General_CI_AS&lt;/font&gt; not in ( Select [Name] FROM forums_Post_Categories where CategoryType = @CategoryType and ForumID = @ForumID ) 就是在not in前面加上COLLATE Latin1_General_CI_AS &lt;/pre&gt; 然后执行Data\DefaultCommunity.sql脚本创建默认站点(默认站点:http://localhost/cs;账号/密码:admin/pa$$word)，执行完后会有一些警告错误信息，不过不用管他。&lt;br /&gt; 注意要给root/blogs 和 root/gallery 文件夹有写的权限。 &lt;/p&gt; &lt;h2&gt;使用篇&lt;/h2&gt; &lt;p class="dotey"&gt; 安装完后就可以用http://localhost/cs 来访问传说中的Community Server 1.0 了，首页很简单，主要是Forums/Blog/Photo Galleries的介绍和链接。&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs1.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs1.gif" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p class="dotey"&gt; 首先进入Forums，发现Forums和原来的Forums2.01没有任何区别，只是这时候还没有任何板块/讨论组，使用默认的管理员账号/密码(admin/pa$$word)登录，进入后台(http://localhost/cs/admin)，发现后台已经大变样了！&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs2.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs2.gif" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p class="dotey"&gt; 先进入System选项，有一排链接，分别是:&lt;br /&gt;Manage Blogs|Manage Forums|Manage Galleries|Configuration|Reports|Tools&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs3.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs3.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; 这里的Configuration|Reports|Tools就是以前Forums后台管理中的一些内容，这里就不多介绍。 &lt;/p&gt; &lt;p class="dotey"&gt; Manage Blogs|Manage Forums|Manage Galleries实际上内容是一样的，都是管理各自的“组”、“分类”，权限分配，以Manage Blogs为例:&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs4.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs4.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; 进入"Manage/Create Blogs and new groupings":&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs5.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs5.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; 可以方便的管理/创建Blog分组/blog。同时，每创建一个blog，会在Web\blogs目录下创建相应的文件夹和空的default.aspx文件（这就是为什么该目录需要“写”的权限了），Blog名不能为中文。&lt;br /&gt; 这里可以给每个blog分配角色，选择哪些角色可以对该blog进行相关操作：&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs6.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs6.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; 设置某角色对该Blog有何种权限：&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs7.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs7.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; Manage Forums、Manage Galleries和Manage Blogs基本类似。 &lt;/p&gt; &lt;p class="dotey"&gt; 新建好Blog后，就可以对建好的Blog进行管理更新了:&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs8.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs8.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; Blog的操作和原来的DotText基本上差不多的，可以方便的发表随笔/文章:&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs9.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs9.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;/p&gt; &lt;p class="dotey"&gt; 在System中建好相册类别后，也可以对相册进行管理了:&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs10.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs10.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; 上传照片还是很方便的:&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs11.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs11.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; 相册的配置选项:&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs12.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs12.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;/p&gt; &lt;p class="dotey"&gt; 后台上传完照片，到前台看看效果:&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs13.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs13.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;/p&gt; &lt;p class="dotey"&gt; Blog还是老样子，看看Blog首页:&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs14.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs14.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; 进入某个Blog:&lt;br /&gt; &lt;a href="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/o_cs15.gif" target="_blank"&gt;&lt;img src="http://blog.joycode.com/images/blog.joycode.com/dotey/1053/r_cs15.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;/p&gt; &lt;h2&gt;技术篇&lt;/h2&gt; 因为CS1.0 Beta没有开源而我也没深入研究，所以只是从有限的资源进行简单分析了一下。从数据库、命名空间和目录结构等可以看出，Community Server是在Forums的架构基础上，加上了Blog和相册，继续保持了Forums的换皮肤，多语言等特性。 &lt;h3&gt;数据库&lt;/h3&gt; 数据库还是在Forums的数据库基础上，包括forums_的前缀大部分都还在(可能会要改掉)，用户资料已经转移到aspnet_Users表和aspnet_Membership表中，三个系统共用。角色也转移到aspnet_Roles表中。cs_ApplicationType表主要保存Community Server中的系统类别，目前有论坛/blog/相册。blog和Forums的帖子内容都forums_Posts表中。有几个cs_和aspnet_开头的表作用暂时还不是很清楚，需要等文档和源码后才方便分析。 &lt;h3&gt;目录结构&lt;/h3&gt; Forums/Blogs/Gallery在web根目录下分别有单独目录，另外一些公用文件夹，如FreeTextBox、Languages、Msgs、Themes等都在根目录下，Blogs和Gallery中，每创建一个blog/相册就会在其目录下创建一个相应的文件夹和空的default.aspx，类似于DotText中用来做url重定向用。 &lt;h2&gt;后记&lt;/h2&gt; &lt;p class="dotey"&gt;Community Server总的来说还是挺不错的，安装后就有了一个强大的论坛/blog/相册系统，对于一般网站来说可以足够用了，虽然还有很多很多bug，但是毕竟还只是Beta版，还在慢慢完善中。可惜没有开源，所以一些比较好的设计思想还没能深入学习了解。&lt;/p&gt; &lt;p class="dotey"&gt;有一点我还是很疑惑，我本以为用户新注册后就可以有自己的blog/相册，但是我发现blog/相册只能管理员开通/维护，而且如果需要让某用户可以维护一个blog/Gallery，那么必须为这个用户先建一个角色，然后让这个角色可以维护某个Blog/Gallery，并让该用户属于这个角色。如果要给每个用户开通一个blog/Gallery，那岂不是要给每个用户新建一个角色，再让这一个个角色和这一个个blog/Gallery对应起来？！&lt;/p&gt; &lt;p class="dotey"&gt;Release发布估计是明年的事情了，不过现在也不如以前那么期待了！&lt;/p&gt;&lt;img src ="http://webuc.net/dotey/aggbug/2239.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>宝玉</dc:creator><title>这些样式表，你都用过么？(未完)</title><link>http://webuc.net/dotey/archive/2004/11/13/2177.aspx</link><pubDate>Sat, 13 Nov 2004 06:39:00 GMT</pubDate><guid>http://webuc.net/dotey/archive/2004/11/13/2177.aspx</guid><wfw:comment>http://webuc.net/dotey/comments/2177.aspx</wfw:comment><comments>http://webuc.net/dotey/archive/2004/11/13/2177.aspx#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://webuc.net/dotey/comments/commentRss/2177.aspx</wfw:commentRss><trackback:ping>http://webuc.net/dotey/services/trackbacks/2177.aspx</trackback:ping><description>&lt;style&gt; .clsHoriz { writing-mode: lr-tb } .grid { border-collapse: collapse; } .grid td { border: solid 1px #000000; } .gridNoCollapse td { border: solid 1px #000000; } &lt;/style&gt; &lt;p&gt; 这些样式表，你都用过么？&lt;/p&gt; &lt;p&gt;在Web开发时，不可避免要用到CSS，把我这几年在Web开发过程中积累的一些不常用但是很实用的CSS整理了一下，希望对大家有所帮助！&lt;/p&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;filter:chroma(color:#FFFFFF);&lt;br/&gt;&lt;/strong&gt;让指定的背景色透明，例: &lt;/font&gt; &lt;br/&gt; &lt;table cellspacing="" cellpadding="" border=""&gt; &lt;tbody&gt; &lt;tr align="" bgcolor=""&gt; &lt;td&gt; &lt;img src="" /&gt;&lt;/td&gt; &lt;td&gt; &lt;img style="" chroma="" src="" /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr align=""&gt; &lt;td&gt; 未使用该滤镜&lt;/td&gt; &lt;td&gt; 使用该滤镜&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt; &lt;textarea id="" rows="" cols=""&gt; &lt;table cellspacing="" cellpadding="" border=""&gt; &lt;tbody&gt; &lt;tr align="" bgcolor=""&gt; &lt;td&gt; &lt;img src="" /&gt;&lt;/td&gt; &lt;td&gt; &lt;img style="" chroma="" src="" /&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr align=""&gt; &lt;td&gt; 未使用该滤镜&lt;/td&gt; &lt;td&gt; 使用该滤镜&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/textarea&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;word-break:break-all;&lt;/strong&gt; &lt;br/&gt;强制换行，例: &lt;/font&gt;&lt;/p&gt; &lt;p&gt; 当未使用该样式时，虽然我设置了表格宽度为100px，但是面对这样连续的字符，表格无法自动换行，表格会被撑破: &lt;table cellspacing="" cellpadding="" width="" border=""&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt; &lt;textarea id="" rows="" cols=""&gt; &lt;table cellspacing="" cellpadding="" width="" border=""&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt; &lt;/textarea&gt; &lt;/p&gt; &lt;p&gt; 再看看使用该样式后的效果: &lt;table cellspacing="" cellpadding="" width="" border="" style="" break-all=""&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&lt;/td&gt;&lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;textarea id="" rows="" cols=""&gt; &lt;table cellspacing="" cellpadding="" width="" border="" style="" break-all=""&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/textarea&gt; &lt;/p&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;writing-mode:tb-rl;&lt;/strong&gt; &lt;br/&gt; 用于设置文本的书写方向，可以有两个取值： &lt;br/&gt; lr-tb：表示左右-上下，left right - top bottom &lt;br/&gt; tb-rl：表示上下-右左，top bottom - right left &lt;br/&gt; 需要 IE 5.5+ 才支持，例: &lt;/font&gt;&lt;/p&gt; &lt;div style=""&gt; 第一组垂直文字&lt;span class=""&gt;第一组水平文字&lt;/span&gt;第二组水平文字 &lt;br/&gt; &lt;span style=""&gt;第二组水平文字&lt;/span&gt;第三组竖直文字&lt;span class=""&gt;第三组水平文字&lt;/span&gt; &lt;/div&gt; &lt;textarea id="" rows="" cols=""&gt; &lt;style&gt; .clsHoriz { writing-mode: lr-tb } &lt;/style&gt; &lt;div style=""&gt; 第一组垂直文字&lt;span class=""&gt;第一组水平文字&lt;/span&gt;第二组水平文字 &lt;br/&gt; &lt;span style=""&gt;第二组水平文字&lt;/span&gt;第三组竖直文字&lt;span class=""&gt;第三组水平文字&lt;/span&gt; &lt;/div&gt; &lt;/textarea&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;text-indent:2em;&lt;/strong&gt; &lt;br/&gt;首行缩进，例: &lt;/font&gt;&lt;/p&gt; &lt;p style=""&gt; 有时候，我们需要将段落的首行缩进两个文字，一般我们都是用4个HTML的空格(&amp;amp;nbsp;)来实现，其实我们还可以用样式表来达到这种效果！&lt;/p&gt; &lt;textarea id="" rows="" cols=""&gt; &lt;p style=""&gt; 有时候，我们需要将段落的首行缩进两个文字，一般我们都是用4个HTML的空格(&amp;amp;amp;nbsp;)来实现，其实我们还可以用样式表来达到这种效果！&lt;/p&gt;&lt;/textarea&gt; &lt;/p&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt; background-color: transparent;&lt;/strong&gt; &lt;br/&gt;transparent表示透明色，例: &lt;/font&gt;&lt;/p&gt; &lt;p&gt; &lt;span style="" padding=""&gt; &lt;textarea style="" transparent=""&gt; 背景透明的TextArea&lt;/textarea&gt; &lt;/span&gt; &lt;br/&gt; &lt;textarea id="" rows="" cols=""&gt; &lt;span style="" padding=""&gt; &lt;textarea style="" transparent=""&gt; 背景透明的TextArea&lt;/textarea&gt; &lt;/span&gt; &lt;/textarea&gt; &lt;/p&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;border-collapse:collapse;&lt;/strong&gt; &lt;br/&gt;它会自动把相同的边框线合并，例: &lt;/font&gt;&lt;/p&gt; &lt;p&gt; 不使用border-collapse:collapse; &lt;table border="" cellpadding="" cellspacing="" width="" class=""&gt; &lt;tr&gt; &lt;td&gt; 1.1&lt;/td&gt; &lt;td&gt; 1.2&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; 2.1&lt;/td&gt; &lt;td&gt; 2.2&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; 使用border-collapse:collapse; &lt;table border="" cellpadding="" cellspacing="" width="" class=""&gt; &lt;tr&gt; &lt;td&gt; 1.1&lt;/td&gt; &lt;td&gt; 1.2&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; 2.1&lt;/td&gt; &lt;td&gt; 2.2&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;textarea id="" rows="" cols=""&gt; &lt;style&gt; .grid { border-collapse: collapse; } .grid td { border: solid 1px #cccccc; } .gridNoCollapse td { border: solid 1px #cccccc; } &lt;/style&gt; 不使用border-collapse:collapse; &lt;table border="" cellpadding="" cellspacing="" width="" class=""&gt; &lt;tr&gt; &lt;td&gt; 1.1&lt;/td&gt; &lt;td&gt; 1.2&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; 2.1&lt;/td&gt; &lt;td&gt; 2.2&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; 使用border-collapse:collapse; &lt;table border="" cellpadding="" cellspacing="" width="" class=""&gt; &lt;tr&gt; &lt;td&gt; 1.1&lt;/td&gt; &lt;td&gt; 1.2&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; 2.1&lt;/td&gt; &lt;td&gt; 2.2&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/textarea&gt; &lt;/p&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;background-position: 0 -78;&lt;/strong&gt; &lt;br/&gt;设置背景图片的位置，例: &lt;/font&gt; &lt;br /&gt;&lt;a href="http://www.51js.com/viewthread.php?fpage=1&amp;tid=15302" target="_blank"&gt;《background-position的妙用》&lt;/a&gt; &lt;/p&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;table-layout: fixed;&lt;/strong&gt; &lt;br/&gt;固定布局的算法。在这算法中，水平布局是仅仅基于表格的宽度，表格边框的宽度，单元格间距，列的宽度，而和表格内容无关。也就是说，内容可能被裁切，例: &lt;/font&gt;&lt;br /&gt; 看看我以前写的一个仿msn的htc网格中应用这个属性的效果吧，仿照MSN的网格，单元格中文字过长会自动被截取（在Table中使用样式table-layout: fixed;），鼠标移上会全部显示(使用一个浮动的层覆盖在上面)： &lt;a href="http://cnforums.net/dotey/msncontrols/demo.htm" target="_blank"&gt;演示&lt;/a&gt; &lt;a href="http://cnforums.net/dotey/msncontrols/msncontrols.rar"&gt;下载&lt;/a&gt; &lt;/p&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;display:inline;&lt;/strong&gt; &lt;br/&gt;设置或检索对象是否及如何显示，inline表示内联，例: &lt;/font&gt;&lt;br /&gt; 大家都知道两个表格在一起，默认是会自动换行的，但是利用display:inline;属性可以让两个表格并排在一起： &lt;table border="1" cellpadding="" cellspacing="" width="" style="display:inline;"&gt; &lt;tr&gt; &lt;td&gt;表格1&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&amp;nbsp; &lt;table border="1" cellpadding="" cellspacing="" width="" style="display:inline;"&gt; &lt;tr&gt; &lt;td&gt;表格2&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;br /&gt; &lt;textarea id="" rows="" cols=""&gt; &lt;table border="1" style="display:inline;"&gt; &lt;tr&gt; &lt;td&gt;表格1&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&amp;nbsp; &lt;table border="1" style="display:inline;"&gt; &lt;tr&gt; &lt;td&gt;表格2&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/textarea&gt; &lt;/p&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;overflow: auto;&lt;/strong&gt; &lt;br/&gt;检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。auto : 在需要时剪切内容并添加滚动条，例: &lt;/font&gt;&lt;br /&gt; &lt;table border="" cellpadding="" cellspacing="" width=""&gt; &lt;tr&gt; &lt;td&gt;使用前的TextArea&lt;/td&gt; &lt;td&gt;使用后的TextArea&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;textarea&gt;默认有滚动条&lt;/textarea&gt;&lt;/td&gt; &lt;td&gt;&lt;textarea style="overflow: auto;"&gt;只有当文字超出范围时滚动条才会出现&lt;/textarea&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/p&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;font:12px/18px;&lt;/strong&gt; &lt;br/&gt;字体大小/行高，例: &lt;/font&gt;&lt;br /&gt; &lt;table border="" cellpadding="" cellspacing="" width="200"&gt; &lt;tr&gt; &lt;td&gt;未使用CSS&lt;/td&gt; &lt;td&gt;使用该CSS&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;p&gt; 在这里行高是系统默认的，不会受影响的 &lt;/p&gt; &lt;/td&gt; &lt;td&gt;&lt;p style="font:12px/18px;"&gt;这里的12px就表示字体大小，18px其实就等价于css中的line-height。&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;textarea id="" rows="" cols=""&gt; &lt;table border="" cellpadding="" cellspacing="" width="200"&gt; &lt;tr&gt; &lt;td&gt;未使用CSS&lt;/td&gt; &lt;td&gt;使用该CSS&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;p&gt; 在这里行高是系统默认的，不会受影响的 &lt;/p&gt; &lt;/td&gt; &lt;td&gt;&lt;p style="font:12px/18px;"&gt;这里的12px就表示字体大小，18px其实就等价于css中的line-height。&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/textarea&gt; &lt;/p&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;clip : rect ( 0 64 64 0 ) &lt;/strong&gt; &lt;br/&gt;字体大小/行高，例: &lt;/font&gt;&lt;br /&gt; 原图： &lt;a href="http://www.webuc.net/myproject/rpg/images/girl.gif" target="_blank"&gt;&lt;img src="http://www.webuc.net/myproject/rpg/images/girl.gif" width="128" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; 裁减后： &lt;span style="clip:rect(0 64 64 0);width:64px;height:64px;position:absolute;"&gt;&lt;img src="http://www.webuc.net/myproject/rpg/images/girl.gif" /&gt;&lt;/span&gt;&lt;span style="width:64px;height:64px;"&gt;&amp;nbsp;&lt;/span&gt; &lt;br /&gt;&lt;textarea id="" rows="" cols=""&gt; 原图： &lt;a href="http://www.webuc.net/myproject/rpg/images/girl.gif" target="_blank"&gt;&lt;img src="http://www.webuc.net/myproject/rpg/images/girl.gif" width="128" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; 裁减后： &lt;span style="clip:rect(0 64 64 0);width:64px;height:64px;position:absolute;"&gt;&lt;img src="http://www.webuc.net/myproject/rpg/images/girl.gif" /&gt;&lt;/span&gt;&lt;span style="width:64px;height:64px;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/textarea&gt; 可以利用这个来做&lt;a href="http://www.webuc.net/myproject/rpg/" target="_blank"&gt;动画&lt;/a&gt;:) &lt;/p&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;font-size: expression(document.body.clientWidth / 20);&lt;/strong&gt; &lt;br/&gt;expression是IE浏览器特有的功能，可以直接执行脚本而算出css的值，例: &lt;/font&gt;&lt;br /&gt; &lt;a href="http://www.51js.com/viewthread.php?fpage=1&amp;tid=13400&amp;sid=8uPN9ObO" target="_blank"&gt;《CSS也能控制表格的交替颜色 》&lt;/a&gt;&lt;br /&gt; &lt;div style="font-size: expression(document.body.clientWidth / 20);"&gt; 字体大小随着浏览器大小而变化，始终为浏览器宽度的1/20 &lt;/div&gt; &lt;textarea id="" rows="" cols=""&gt; &lt;div style="font-size: expression(document.body.clientWidth / 20);"&gt; 字体大小随着浏览器大小而变化，始终为浏览器宽度的1/20 &lt;/div&gt; &lt;/textarea&gt;&lt;br /&gt; &lt;font color="red"&gt;对于支持HTML的BBS来说，这可能会是一个安全隐患！&lt;/font&gt; &lt;/p&gt; &lt;p&gt; &lt;font color=""&gt;&lt;strong&gt;position: absolute;&lt;/strong&gt; &lt;br/&gt;这个我想绝大多数人都知道——绝对定位，我所要说的是偶然发现的一个隐含功能，例: &lt;/font&gt;&lt;br /&gt; 当给一个网页元素的CSS设置为"position: absolute;"，那么它会绝对定位，然后根据css中的left,top属性确定自己的位置。但是如果我们仅仅设置一个元素样式表的"position: absolute;"属性，而不设置其left,top属性，那么该元素会浮在其html所在位置。看个例子，我将一个tr的CSS设置为"position: absolute;"： &lt;table border="1" cellpadding="4" cellspacing="0"&gt; &lt;tr style="position: absolute;"&gt; &lt;td&gt;第一行&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;第二行&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;textarea id="" rows="" cols=""&gt; &lt;table border="1" cellpadding="4" cellspacing="0"&gt; &lt;tr style="position: absolute;"&gt; &lt;td&gt;第一行&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;第二行&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/textarea&gt;&lt;br /&gt; 第一行浮在第二行上了，这个特性可以很方便的来制作重叠效果，例如我以前写过的自定义按钮和flash播放器都用到了这个特性来实现重叠：&lt;br /&gt; &lt;a href="http://www.cnforums.net/dotey/button/button.htm" target="_blank"&gt;自定义按钮&lt;/a&gt;：一个自定义按钮，底下是一个普通的Button，利用"position:absolute;"在Button上面覆盖图片，这样看起来就像自定义按钮，而实际点击确是点击底下真实的Button（&lt;a href="http://www.cnforums.net/dotey/button/button.rar"&gt;下载&lt;/a&gt;）&lt;br /&gt; &lt;A href="http://webuc.net/MyProject/flashPlayer/Player.htm" target="_blank"&gt;Flash播放器&lt;/a&gt;：这个播放器的进度条就是通过这种方法来重叠的。（&lt;A href="http://webuc.net/MyProject/flashPlayer/flashPlayer.rar"&gt;下载&lt;/a&gt;） &lt;/p&gt;&lt;img src ="http://webuc.net/dotey/aggbug/2177.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>