﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><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://www.cnblogs.com/yicone/</link><description>The future is worth fighting for.</description><language>zh-cn</language><lastBuildDate>Fri, 10 Oct 2008 22:13:16 GMT</lastBuildDate><pubDate>Fri, 10 Oct 2008 22:13:16 GMT</pubDate><ttl>60</ttl><item><title>GDI+学习笔记1</title><link>http://www.cnblogs.com/yicone/archive/2008/06/19/1226164.html</link><dc:creator>yicone</dc:creator><author>yicone</author><pubDate>Thu, 19 Jun 2008 11:54:00 GMT</pubDate><guid>http://www.cnblogs.com/yicone/archive/2008/06/19/1226164.html</guid><wfw:comment>http://www.cnblogs.com/yicone/comments/1226164.html</wfw:comment><comments>http://www.cnblogs.com/yicone/archive/2008/06/19/1226164.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/yicone/comments/commentRss/1226164.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yicone/services/trackbacks/1226164.html</trackback:ping><description><![CDATA[<p>GDI+不支持异或绘图，而使用双缓存方式，避免了图形闪烁，但是速度稍慢，占用内存较多。随着硬件发展，这是一个图形编辑器的趋势；</p> <p><a href="http://www.cnblogs.com/Kokman/archive/2006/10/08/523656.html">用 GDI+ 开发矢量图形编辑系统的经验之谈</a><br>性能篇<br>“经过无数次的实验，终于形成了自己的代码风格”：声明两个Bitmap对象，一个用于即时的图形绘制，另一个用于存放已有的图形。在用鼠标绘图的过程中，直接把Bitmap复制到绘图窗口所对应的Graphics上，以提升绘图的速度；<br>避免用三角函数、平方根、除法；<br>避免大量使用Structure；<br>不同的图元有不同的图像拾取算法，一般常用的矢量计算方法可以保证较高的算法效率； <p>项目的对象建模<br>要考虑几个方面：确定图元、图元参数的保存和处理、坐标系、图像时拾取。<br>操作图元参数时，直接把像素值保存在图元参数中比较方便。因为Single类型的“数据还原性”很差，而图形经过旋转、缩放、坐标系变换后，必须用double类型处理，所以可以考虑把所有图元参数全部用double类型处理，损失一些性能但换来了易用性。</p> <p><a title="http://www.cnblogs.com/bluntsword/archive/2005/08/10/211363.html" href="http://www.cnblogs.com/bluntsword/archive/2005/08/10/211363.html">http://www.cnblogs.com/bluntsword/archive/2005/08/10/211363.html</a>也提到了GDI+采用float类型带来的精度问题。另外此文提出要解决精度的问题，需要避免使用坐标变换。整个绘制过程中保持<br>“世界坐标系”和设备坐标系统一，然后自己记录实际坐标与设备坐标的缩放和偏移，然后在绘制时将实际坐标转换为设备坐标。</p> <p>“自己进行坐标转换也不难，简单的仿射变换”</p> <p>READ:《GDI+的雷区 》<br><a href="http://blog.csdn.net/Nightmare/archive/2005/04/22/359092.aspx">http://blog.csdn.net/Nightmare/archive/2005/04/22/359092.aspx</a></p> <p>GDI+变换之后的坐标被限制在以下范围 <br>x -4194304.0f <br>y -4194304.0f <br>width 8388608.0f <br>height 8388608.0f <br>如果超出范围，图形画不出， <p>INST：了解GDI+ 2.0所作的改进<br>INST：了解“放射变换”作坐标变换</p><img src ="http://www.cnblogs.com/yicone/aggbug/1226164.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42930/" target="_blank">[新闻]Silverlight 2.0正式版下周发布</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>HOWTO:使ASP.NET网站Forms验证可以指定多个登录页面</title><link>http://www.cnblogs.com/yicone/archive/2008/05/22/1204431.html</link><dc:creator>yicone</dc:creator><author>yicone</author><pubDate>Wed, 21 May 2008 16:32:00 GMT</pubDate><guid>http://www.cnblogs.com/yicone/archive/2008/05/22/1204431.html</guid><wfw:comment>http://www.cnblogs.com/yicone/comments/1204431.html</wfw:comment><comments>http://www.cnblogs.com/yicone/archive/2008/05/22/1204431.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/yicone/comments/commentRss/1204431.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yicone/services/trackbacks/1204431.html</trackback:ping><description><![CDATA[<p>网站结构如下:<br />
&nbsp;&nbsp;&nbsp; /default.aspx<br />
&nbsp;&nbsp;&nbsp; /login.aspx<br />
&nbsp;&nbsp;&nbsp; /adminlogin.aspx<br />
&nbsp;&nbsp;&nbsp; /member/*.aspx<br />
&nbsp;&nbsp;&nbsp; /admin/*.aspx</p>
<p><strong>需求</strong>：访问/member/路径下的页面的请求转向到/login.aspx；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 访问/admin/路径下的页面的请求被转向到/adminlogin.aspx;</p>
<p>一开始，自己假想在/Web.config中作如下配置可以达到目的：</p>
<blockquote>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authentication&nbsp;</span><span style="color: #ff0000;">mode</span><span style="color: #0000ff;">="Forms"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">forms&nbsp;</span><span style="color: #ff0000;">loginUrl</span><span style="color: #0000ff;">="/Login.aspx"</span><span style="color: #ff0000;">&nbsp;name</span><span style="color: #0000ff;">=".ASPXFORMSAUTH"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">forms</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authentication</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">location&nbsp;</span><span style="color: #ff0000;">path</span><span style="color: #0000ff;">="member"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">deny&nbsp;</span><span style="color: #ff0000;">users</span><span style="color: #0000ff;">="?"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">location</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">location&nbsp;</span><span style="color: #ff0000;">path</span><span style="color: #0000ff;">="admin"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authentication&nbsp;</span><span style="color: #ff0000;">mode</span><span style="color: #0000ff;">="Forms"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">forms&nbsp;</span><span style="color: #ff0000;">loginUrl</span><span style="color: #0000ff;">="/AdminLogin.aspx"</span><span style="color: #ff0000;">&nbsp;name</span><span style="color: #0000ff;">=".ASPXFORMSAUTH"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">forms</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authentication</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">deny&nbsp;</span><span style="color: #ff0000;">users</span><span style="color: #0000ff;">="?"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">location</span><span style="color: #0000ff;">&gt;</span></div>
<p>&nbsp;</p>
</blockquote>
<p>但很快发现，这样会导致一个运行时错误：</p>
<blockquote>
<p>在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的</p>
</blockquote>
<p>Google了几下，遇到同样错误的不少，但问题相似的不多。于是临时采用了一种变通的做法（急于解决问题，可能有良好的/更好的解决方案）。两个步骤：</p>
<p>1. 定义/LoginHandler.ashx。在ProcessRequest方法中，</p>
<blockquote>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_61_707_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_61_707_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_61_707_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_61_707_Closed_Text').style.display='inline';" align="top"  alt="" /><img id="Codehighlighter1_61_707_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_61_707_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_61_707_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_61_707_Open_Text').style.display='inline';" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">!</span><span style="color: #000000;">HttpContext.Current.User.Identity.IsAuthenticated)</span><span id="Codehighlighter1_61_707_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_61_707_Open_Text"><span style="color: #000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;loginUrl;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;returnUrl&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;context.Request.Params[</span><span style="color: #800000;">"</span><span style="color: #800000;">returnUrl</span><span style="color: #800000;">"</span><span style="color: #000000;">];<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_231_309_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_231_309_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_231_309_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_231_309_Closed_Text').style.display='inline';" align="top"  alt="" /><img id="Codehighlighter1_231_309_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_231_309_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_231_309_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_231_309_Open_Text').style.display='inline';" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(returnUrl.Contains(</span><span style="color: #800000;">"</span><span style="color: #800000;">/Admin/</span><span style="color: #800000;">"</span><span style="color: #000000;">))&nbsp;</span><span id="Codehighlighter1_231_309_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_231_309_Open_Text"><span style="color: #000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loginUrl&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">/AdminLogin.aspx</span><span style="color: #800000;">"</span><span style="color: #000000;">;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br />
<img id="Codehighlighter1_334_414_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_334_414_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_334_414_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_334_414_Closed_Text').style.display='inline';" align="top"  alt="" /><img id="Codehighlighter1_334_414_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_334_414_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_334_414_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_334_414_Open_Text').style.display='inline';" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span id="Codehighlighter1_334_414_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_334_414_Open_Text"><span style="color: #000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loginUrl&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">/Public/Login.aspx</span><span style="color: #800000;">"</span><span style="color: #000000;">;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_499_644_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_499_644_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_499_644_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_499_644_Closed_Text').style.display='inline';" align="top"  alt="" /><img id="Codehighlighter1_499_644_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_499_644_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_499_644_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_499_644_Open_Text').style.display='inline';" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">!</span><span style="color: #0000ff;">string</span><span style="color: #000000;">.IsNullOrEmpty(context.Request.Params[</span><span style="color: #800000;">"</span><span style="color: #800000;">returnUrl</span><span style="color: #800000;">"</span><span style="color: #000000;">]))</span><span id="Codehighlighter1_499_644_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_499_644_Open_Text"><span style="color: #000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loginUrl&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;loginUrl&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">?returnUrl=</span><span style="color: #800000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;HttpUtility.UrlEncode(context.Request.Params[</span><span style="color: #800000;">"</span><span style="color: #800000;">returnUrl</span><span style="color: #800000;">"</span><span style="color: #000000;">]);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.Response.Redirect(loginUrl);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
</blockquote>
<p>2. 配置/Web.config，</p>
<blockquote>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authentication&nbsp;</span><span style="color: #ff0000;">mode</span><span style="color: #0000ff;">="Forms"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">forms&nbsp;</span><span style="color: #ff0000;">loginUrl</span><span style="color: #0000ff;">="/LoginHandler.ashx"</span><span style="color: #ff0000;">&nbsp;name</span><span style="color: #0000ff;">=".ASPXFORMSAUTH"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">forms</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authentication</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">location&nbsp;</span><span style="color: #ff0000;">path</span><span style="color: #0000ff;">="LoginHandler.ashx"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">httpHandlers</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">add&nbsp;</span><span style="color: #ff0000;">verb</span><span style="color: #0000ff;">="*"</span><span style="color: #ff0000;">&nbsp;path</span><span style="color: #0000ff;">="LoginHandler.ashx"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="Web.LoginHandler"</span><span style="color: #ff0000;">&nbsp;validate</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">httpHandlers</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">location</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">location&nbsp;</span><span style="color: #ff0000;">path</span><span style="color: #0000ff;">="member"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">deny&nbsp;</span><span style="color: #ff0000;">users</span><span style="color: #0000ff;">="?"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">location</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">location&nbsp;</span><span style="color: #ff0000;">path</span><span style="color: #0000ff;">="admin"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">deny&nbsp;</span><span style="color: #ff0000;">users</span><span style="color: #0000ff;">="?"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">system.web</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">location</span><span style="color: #0000ff;">&gt;</span></div>
<p>&nbsp;</p>
</blockquote> 
<img src ="http://www.cnblogs.com/yicone/aggbug/1204431.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42925/" target="_blank">[新闻]Wikipedia“变心”，力挺Ubuntu</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Expression Web使用问题，相关资源及今日阅读</title><link>http://www.cnblogs.com/yicone/archive/2008/05/18/1202015.html</link><dc:creator>yicone</dc:creator><author>yicone</author><pubDate>Sun, 18 May 2008 07:41:00 GMT</pubDate><guid>http://www.cnblogs.com/yicone/archive/2008/05/18/1202015.html</guid><wfw:comment>http://www.cnblogs.com/yicone/comments/1202015.html</wfw:comment><comments>http://www.cnblogs.com/yicone/archive/2008/05/18/1202015.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/yicone/comments/commentRss/1202015.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yicone/services/trackbacks/1202015.html</trackback:ping><description><![CDATA[<h3>Expression Web使用问题</h3> <p>1. 在Expression Web中，如何在设计时预览ASP.NET Master Page或普通页面时，能够查看应用了theme后的效果？<br>无论在Visual Studio 2008，还是Expression Web SP1中，都没有找到可以在设计时预览theme的功能。初步推断，ASP.NET的Theme功能是运行时的行为，需要经过服务器的处理才能展现，尤其是其中针对服务器端控件的Skin特性。由此得出，解决预览问题的粗糙方式，是将Theme中定义的css文件导入到ASP.NET页面中，来查看应用静态样式后的效果。这里可以采用在母板页中引入css文件，以避免重复对多个ASP.NET页面进行css导入工作。<br><br>2. 如何在Expression Web中启用浏览器来预览ASP.NET页面？<br>如果没有IIS，则此功能需要安装ASP.NET Development Server。我在初次安装Expression Web时的确没有勾选安装这个东东，因为那时我已经安装了Visual Studio 2005，我认为那意味着已经存在了ASP.NET Development Server。但在Express Web的菜单项/Site/Site Settings -Preview中，我看到的情况如下：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.cnblogs.com/images/cnblogs_com/yicone/WindowsLiveWriter/ExpressionWeb_DC7A/image_2.png"><img height="218" alt="Express Web的菜单项/Site/Site Settings -Preview" src="http://www.cnblogs.com/images/cnblogs_com/yicone/WindowsLiveWriter/ExpressionWeb_DC7A/image_thumb.png" width="420"></a>&nbsp;<br>即软件提醒我ASP.NET Development Server没有被安装。于是我在添加删除程序中修改Expression Web的安装，勾选了ASP.NET Development Server。但两次重复尝试的结果，得到的都是与上图一样的情况！<br>无奈之下，换了个变通的办法，即使用上图中的设置来达到可以预览ASP.NET页面的目的。具体解释一下：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. 在VS安装目录中找到WebDev.WebServer.exe（这就是ASP.NET Development Server）；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. 建立一个桌面快捷方式，指向该程序，并在快捷方式的地址中定义好程序需要的参数（例如：C:\Windows\Microsoft.NET\Framework\v2.0.50727\WebDev.WebServer.EXE /port:2189 /path:"d:\MyCurrentWebProject" /vpath:"/"）；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. 双击运行创建好的快捷方式，再配合上图中的设置，就可以在Expression Web中预览ASP.NET页面啦。<br>（P.S. VS2008 SP1 BETA和Expression Web 2试用版都可以下载了，后者提供了Expression Web Development Server，不知道和ASP.NET Development Server是不是同一个东东）</p> <h3>相关资源</h3> <p>Expression Web的插件：<br><a href="http://www.j-moves.com">http://www.j-moves.com</a> $10.99 FREE 15 day<br><a href="http://www.panemanager.com">http://www.panemanager.com</a> $34.95 15 days FREE</p> <h3>今日阅读</h3> <p>Brian Simmons&nbsp;&nbsp; <em>ASP.NET 2.0 Theme Creation using ITracker<br></em><a title="http://www.simmonswebdesign.net/artITracker.asp" href="http://www.simmonswebdesign.net/artITracker.asp">http://www.simmonswebdesign.net/artITracker.asp</a><br>读后总结：<br>优秀的设计网站，Sitepoint 和<a href="http://www.csszengarden.com">www.csszengarden.com</a> <br>优秀资料，<a href="http://www.sitepoint.com/books/css2/"><em>HTML Utopia: Designing Without Tables Using CSS</em></a><em>、</em><a href="http://www.sitepoint.com/books/photoshop1/"><em>The Photoshop Anthology</em></a><br>网页设计的流程（讨论）：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在Photoshop中绘制mockup<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 得到客户对mockup的确认。作者认为这是Web项目最拖慢进度的步骤，在这期间谨记在得到客户完全的认同以及没有形成文档之前，不要开始下一步工作。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从mockup中切图、搜集素材<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用Expression Web(或DW)将设计实现在一个单独的HTML页面内，将全部的CSS也放置在此页面。尽早测试，完成一部分的测试再开始下一部分。如果遇到布局问题，检查元素和环绕它的元素的padding和margin。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在VS中创将Web项目或网站，建立theme和相应的skin，建立母板页，在Web.config中设置theme<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在skin中修改部分空间的样式，如GridView<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 测试，测试，测试<br>App_Themes文件夹的组织结构：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /Theme1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /Theme1/Images&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /Theme1/Skin1.skin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /Theme1/styles.css<br><br>作者对工作流程的认识，对各步骤注意事项的认识，是在不断的摸索和实践中形成的。勿骄勿躁！</p><img src ="http://www.cnblogs.com/yicone/aggbug/1202015.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42924/" target="_blank">[新闻]“不可破解”的加密技术出</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>私单日记 第2日</title><link>http://www.cnblogs.com/yicone/archive/2008/04/09/1145416.html</link><dc:creator>yicone</dc:creator><author>yicone</author><pubDate>Wed, 09 Apr 2008 09:32:00 GMT</pubDate><guid>http://www.cnblogs.com/yicone/archive/2008/04/09/1145416.html</guid><wfw:comment>http://www.cnblogs.com/yicone/comments/1145416.html</wfw:comment><comments>http://www.cnblogs.com/yicone/archive/2008/04/09/1145416.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/yicone/comments/commentRss/1145416.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yicone/services/trackbacks/1145416.html</trackback:ping><description><![CDATA[<p>和几个朋友一起做私单，在开始时遇到一些问题，所以想整理一下思路，也为以后的合作积累一些经验。</p> <p>目前项目缺乏协调人。几个人的关系比较特殊，四个人，我和A,B,C。熟不熟的情况是这样的：我和A熟，A和B熟，B和A、C都熟。个人希望B能担起PM的责任，但尚未得到大家和时间的确认。协调人来负责分工，大家依据自己的模块独立进行开发，遇到问题大家一起讨论，这是我目前想到的协作方式。接下来的几天，也搜搜其他协作方式的资料。无论选择何种协作方式，目的都是为了提高团队的效率，而重点在于让大家都发自内心的接受这种方式。</p> <p>沟通方面<br>我们的沟通方式是通过QQ群和项目论坛完成的。目前一些初期的文档草案都放在QQ群的共享中，但这些文档可能会不断修改，如果能将文档加入版本控制，可能会更好些。比如Google Docs就提供了协作编辑和版本记录的功能。<br>另外，大家工作的地点不同，时间也经常对不到一起，所以在讨论一些长期需要考虑和讨论的问题时，论坛的形式会更好些。Google网上论坛其实是一个披着论坛皮的邮件列表，这使大家通过邮箱就能及时得到新信息。</p> <p>这两天的工组情况是，A负责概要设计；B主要与客户接洽，拿需求；C则挑了一些难点去攻关。我这两天则做了一些凌乱的工作，如选择源码管理服务、建立项目讨论组、给大家准备一些资料、自己了解需求、初步分析了一个大模块……，最重要的工作就是希望和大家都尽快熟悉起来，所以花了不少时间与大家讨论。但讨论的效果还不够好，主要是因为几个人工作的时间不一致，而对项目论坛的使用还没有真正开始。</p> <p>自己的定位<br>写文章时，还没有形成清晰的定位，从这两天的工作来看，自己已经参与了各种角色，没有十分明确的重点。从初衷上讲，并不奢望能从这个单子上挣到钱，只是希望找些有意义的事来做。半年的项目冰河期让我手痒痒，不想荒废了自己，也担心缺少新积累的项目经验，会对将来的求职不利；另外，希望掌握更多的Web开发的经验，从而走一条长远发展的路。除却这两点，松散的合作开发方式所积累的经验也会对将来有利。</p> <p>项目开发的周期比较短，大家可用的时间也存在不确定性，所以我个人倾向于从开始就抓紧时间，但看大家现在的状态，很难乐观看待。</p> <p>P.S. Subversion大家都还没有开始用，所以也是一个担心的方面。自己也不太熟悉，所以在团队中推广尚有一点压力。新工具在团队中的推广，一定是个循序渐进的过程，所以我一直暗暗提醒自己，在这方面不要着急。</p><img src ="http://www.cnblogs.com/yicone/aggbug/1145416.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42923/" target="_blank">[新闻]13款Firefox Gmail扩展</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>脚印：2008年的前三个月</title><link>http://www.cnblogs.com/yicone/archive/2008/03/17/1110291.html</link><dc:creator>yicone</dc:creator><author>yicone</author><pubDate>Mon, 17 Mar 2008 10:07:00 GMT</pubDate><guid>http://www.cnblogs.com/yicone/archive/2008/03/17/1110291.html</guid><wfw:comment>http://www.cnblogs.com/yicone/comments/1110291.html</wfw:comment><comments>http://www.cnblogs.com/yicone/archive/2008/03/17/1110291.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/yicone/comments/commentRss/1110291.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yicone/services/trackbacks/1110291.html</trackback:ping><description><![CDATA[<p>没留下太多记忆，没项目，自己也怠慢下来。</p><img src ="http://www.cnblogs.com/yicone/aggbug/1110291.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42922/" target="_blank">[新闻]支持鼠标手势的Chrome中文修改版</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>