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

<channel>
	<title>思维 &#187; 辅助工具</title>
	<atom:link href="http://blog.acmind.com/archives/tag/tools/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.acmind.com</link>
	<description>Acme of Mind</description>
	<lastBuildDate>Mon, 19 Apr 2010 02:23:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>实用的Web工具Clixpy: 捕获用户行为活动</title>
		<link>http://blog.acmind.com/archives/1128</link>
		<comments>http://blog.acmind.com/archives/1128#comments</comments>
		<pubDate>Wed, 03 Jun 2009 00:52:02 +0000</pubDate>
		<dc:creator>笑谈</dc:creator>
				<category><![CDATA[辅助工具]]></category>
		<category><![CDATA[clixpy]]></category>
		<category><![CDATA[用户]]></category>
		<category><![CDATA[行为]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[捕获]]></category>
		<category><![CDATA[活动]]></category>

		<guid isPermaLink="false">http://blog.acmind.com/?p=1128</guid>
		<description><![CDATA[作为设计师&#38;开发者，我们会尽可能为最终用户制作最容易用的网站，这可以根据内容优先关系等使用不同的大小&#38;颜色建设一个较复杂的系统。
但是，无论我们做什么，我们需要找出这些是不是在工作。因为有的时候，用户会给你带来意外与惊讶，你建设的最易用的网站对他们来说是怎样的不容易。

Clixpy, 一款非常容易安装使用的可用性web测试工具, 对找到用户是如何浏览一个网站十分有帮助.他能记录下以下的活动:

鼠标动作
点击
滚动
表单输入

统计应用可以给你提供访问者的浏览路线。但是，它并不能提供在这条路线上发生的事情及为什么读者选择这条路线，实际上这是非常重要的问题。这是正是Clixpy所能提供。
如何建立与使用?
将JavaScript代码插入到网站的脚部，Clixpy便可以自动检测到并开始跟踪记录（使用代码预防被其他网站使用的意外发生是非常棒的）。
从应用程序的管理界面可以通过域名，日期或者身份筛会话记录（新的捕捉，atched ones，等等）
在查看会话前，你能 atched oneshave（找不到很好的翻译方法）强大的细节，Clixpy 显示综合浏览量，浏览的哪些网页，持续的时间&#38;捕获的用户+浏览器的详细资料。它还可以让你再任何捕获上保存并标记以便以后分析。

通过点击任何所捕获的会话，Clixpy 赠予你读者在网站上相同的体验。
你也可以在捕获过程的中定义限制，比如“捕获前二十个会话”或者&#34;任何时候停止整个捕获&#34;。
预期的结果是什么?
在安装Clixpy &#38; 捕获用户行为一段时间后，分析结果的时候到了，简单的如：

观察此段时间
看一看你的用户觉得困难或者容易使用的特点是哪个
做笔记
&#38;采取行动, 改善你能提供更好的用户体验的部分。然后再仔细检查，使用Clixpy重新捕获网页，看一看更新是不是能真的起作用。

&#160;
摘自：http://www.yeeyan.com/articles/view/61966/44195
]]></description>
			<content:encoded><![CDATA[<p>作为设计师&amp;开发者，我们会尽可能为最终用户制作最容易用的网站，这可以根据内容优先关系等使用不同的大小&amp;颜色建设一个较复杂的系统。</p>
<p>但是，无论我们做什么，<b>我们需要找出这些是不是在工作。</b>因为有的时候，<b>用户会给你带来意外与惊讶，</b>你建设的最易用的网站对他们来说是怎样的不容易。</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/06/clip-image00115.jpg" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image001" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="196" alt="clip_image001" src="http://blog.acmind.com/wp-content/uploads/2009/06/clip-image001-thumb13.jpg" width="500" border="0" /></a></p>
<p><a href="http://clixpy.com/"><b>Clixpy</b></a>, 一款非常容易安装使用的<b>可用性web测试工具</b>, 对找到用户是如何浏览一个网站十分有帮助.他能记录下以下的活动:</p>
<ul>
<li>鼠标动作</li>
<li>点击</li>
<li>滚动</li>
<li>表单输入</li>
</ul>
<p>统计应用可以给你提供访问者的浏览路线。但是，它并不能提供在这条路线上发生的事情及为什么读者选择这条路线，实际上这是非常重要的问题。<b>这是正是Clixpy所能提供。</b></p>
<p><b>如何建立与使用?</b></p>
<p>将JavaScript代码插入到网站的脚部，<b>Clixpy</b>便可以自动检测到并开始跟踪记录（使用代码预防被其他网站使用的意外发生是非常棒的）。</p>
<p>从应用程序的管理界面可以通过域名，日期或者身份筛会话记录（新的捕捉，atched ones，等等）</p>
<p>在查看会话前，你能 atched oneshave（找不到很好的翻译方法）强大的细节<b>，Clixpy</b> 显示综合浏览量，浏览的哪些网页，持续的时间&amp;捕获的用户+浏览器的详细资料。它还可以让你再任何捕获上保存并标记以便以后分析。</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/06/clip-image00214.jpg" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image002" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="49" alt="clip_image002" src="http://blog.acmind.com/wp-content/uploads/2009/06/clip-image002-thumb12.jpg" width="500" border="0" /></a></p>
<p>通过点击任何所捕获的会话，<b>Clixpy 赠予你读者在网站上相同的体验。</b></p>
<p>你也可以在捕获过程的中定义限制，比如“捕获前二十个会话”或者&quot;任何时候停止整个捕获&quot;。</p>
<p><b>预期的结果是什么?</b></p>
<p>在安装<b>Clixpy</b> &amp; 捕获用户行为一段时间后，分析结果的时候到了，简单的如：</p>
<ul>
<li>观察此段时间</li>
<li>看一看你的用户觉得困难或者容易使用的特点是哪个</li>
<li>做笔记</li>
<li>&amp;<b>采取行动</b>, 改善<b>你能提供更好的用户体验</b>的部分。然后再仔细检查，使用<b>Clixpy</b>重新捕获网页，看一看更新是不是能真的起作用。</li>
</ul>
<p>&#160;</p>
<p>摘自：<a title="http://www.yeeyan.com/articles/view/61966/44195" href="http://www.yeeyan.com/articles/view/61966/44195">http://www.yeeyan.com/articles/view/61966/44195</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.acmind.com/archives/1128/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>19个改善Google阅读器的工具和技巧</title>
		<link>http://blog.acmind.com/archives/968</link>
		<comments>http://blog.acmind.com/archives/968#comments</comments>
		<pubDate>Tue, 02 Jun 2009 09:53:57 +0000</pubDate>
		<dc:creator>笑谈</dc:creator>
				<category><![CDATA[谷歌产品]]></category>
		<category><![CDATA[辅助工具]]></category>
		<category><![CDATA[阅读器]]></category>
		<category><![CDATA[技巧]]></category>

		<guid isPermaLink="false">http://blog.acmind.com/?p=968</guid>
		<description><![CDATA[Google阅读器是一款十分快捷、整齐、易用的，或许能称为是最好的网络Feed阅读器. 它集中了很多令人期待的功能： “feed标签”允许你标记并存储想要的项目以备将来需要时参考；“加注星标”允许你在对正在看的那些重要项目加上星标，而完美的共享功能则使你不仅能通过电子邮件还能通过带RSS功能的网页来与朋友分享东西。不管你是一个收集feed的博主，还是一个偶尔会阅读但却不喜欢StartPages之类而一直在寻找一个简单有效的feed阅读器的人，那么都不妨试一下Google阅读器。
和Google其他几个好用的东西如Gmail、Google日历一样， Google阅读器最方便的地方也是在于有许多第三方的工具可以让它变得更好，比如有新项目提醒器、离线插件、 Greasemonkey (?) 脚本, 一键快捷方式等等。
(1) Google Gears &#8211; Google齿轮，新近推出的开源的浏览器扩展，能让你离线使用网络应用程序（包括Google阅读器）。 安装之后在登陆你的Google阅读器账户的时候会在右上角菜单处出现一个绿色的小圈。这个按钮允许你下载你所订阅的feed以便在离线时也能阅读。 你 所需要做的就是当你能连上网络的时候将离线内容与在线的Google阅读器同步一下。
(2) Desktop Notifiers-桌面提醒器

苹果系统: Reader Notifier, GROSX 
Windows系统: GReader Notifier 
Firefox扩展: Google Reader Notifier 
IE扩展: Google Reader Button (需要安装Google Toolbar 4以上版本) 

(3) Widgets-小工具

雅虎小工具(用于Windows, 苹果系统): Google Reader Notify, 更多看此Yahoo Widgets … 
苹果DashBoard小工具 
用于Google桌面侧边栏(或者iGoogle): Gadget for iGoogle 
Vista侧边栏小工具: 虽然没有专门的Vista侧边栏小工具，但是有一个叫做Amnesty Generator的小玩意可以帮你把任何网页小工具（如iGoogle小工具）转换成Vista侧边栏小工具。 

(4) Browser Bookmarklets &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Google阅读器是一款十分快捷、整齐、易用的，或许能称为是最好的网络<a href="http://www.makeuseof.com/tag/feedreaders-to-become-most-popular-tools/">Feed阅读器</a>. 它集中了很多令人期待的功能： “<i>feed</i><i>标签”</i>允许你标记并存储想要的项目以备将来需要时参考；<i>“加注星标”</i>允许你在对正在看的那些重要项目加上星标，而完美的共享功能则使你不仅能通过电子邮件还能通过带RSS功能的网页来与朋友分享东西。不管你是一个收集feed的博主，还是一个偶尔会阅读但却不喜欢<a href="http://www.makeuseof.com/tag/12-web-based-startpages-compared-the-winner-is/">StartPages</a>之类而一直在寻找一个简单有效的feed阅读器的人，那么都不妨试一下Google阅读器。</p>
<p>和Google其他几个好用的东西如<a href="http://www.makeuseof.com/tag/gmail-craze-30-tools-to-make-your-gmail-better/">Gmail</a>、<a href="http://www.makeuseof.com/tag/best-of-google-calendar-addons-tips/">Google日历</a>一样， Google阅读器最方便的地方也是在于有许多第三方的工具可以让它变得更好，比如有<i>新项目提醒器</i>、<i>离线插件</i>、 <i>Greasemonkey <a href="http://www.makeuseof.com/tag/greasemonkey-firefox-addon/">(?)</a> 脚本</i>, <i>一键快捷方式等等。</i></p>
<p><b>(1)</b> <a href="http://gears.google.com/">Google Gears</a> &#8211; Google齿轮，新近推出的开源的浏览器扩展，能让你离线使用网络应用程序（包括Google阅读器）。 安装之后在登陆你的Google阅读器账户的时候会在右上角菜单处出现一个绿色的小圈。这个按钮允许你下载你所订阅的feed以便在离线时也能阅读。 你 所需要做的就是当你能连上网络的时候将离线内容与在线的Google阅读器同步一下。</p>
<p><b>(2)</b> <u>Desktop Notifiers</u>-桌面提醒器</p>
<ul>
<li>苹果系统: <a href="http://troelsbay.eu/software/reader">Reader Notifier</a>, <a href="http://elidourado.wordpress.com/software/grosx/">GROSX</a> </li>
<li>Windows系统: <a href="http://www.braindotty.com/google-reader-notifier/">GReader Notifier</a> </li>
<li>Firefox扩展: <a href="http://markdbd.com/proyectos/google_reader_notifier/">Google Reader Notifier</a> </li>
<li>IE扩展: <a href="http://electragician.blogspot.com/2006/11/google-toolbar-for-ie-google-reader.html">Google Reader Button</a> (需要安装<a href="http://toolbar.google.com/">Google Toolbar</a> 4以上版本) </li>
</ul>
<p><b>(3)</b> <u>Widgets</u>-小工具</p>
<ul>
<li>雅虎小工具(用于Windows, 苹果系统): <a href="http://widgets.yahoo.com/gallery/view.php?widget=42068">Google Reader Notify</a>, 更多看此<a href="http://www.makeuseof.com/tag/enhance-your-desktop-with-yahoo-widgets/">Yahoo Widgets</a> … </li>
<li><a href="http://www.rustybrick.com/google-reader-dashboard-widget.php">苹果DashBoard小工具</a> </li>
<li>用于Google桌面侧边栏(或者iGoogle): <a href="http://www.google.com/ig/directory?url=reader.xml">Gadget for iGoogle</a> </li>
<li>Vista侧边栏小工具: 虽然没有专门的Vista侧边栏小工具，但是有一个叫做<a href="http://amnesty.mesadynamics.com/GeneratorWin.html">Amnesty Generator</a>的小玩意可以帮你把任何网页小工具（如iGoogle小工具）转换成Vista侧边栏小工具。 </li>
</ul>
<p><b>(4)</b> <u>Browser Bookmarklets</u> &#8211; 浏览器书签</p>
<p>为了更好的用户体验，Google阅读器提供了三种便利的浏览器书签（设置-酷功能），包括“一键feed订阅”和两个便利的浏览器快捷键“到下一个未读项目”、“下一个特定标签的未读项目”。</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/06/clip-image00111.jpg" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image001" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="66" alt="clip_image001" src="http://blog.acmind.com/wp-content/uploads/2009/06/clip-image001-thumb10.jpg" width="320" border="0" /></a></p>
<p><b>*** </b><b>火狐插件***</b></p>
<p><b>(5)</b> <a href="http://lifehacker.com/software/exclusive-lifehacker-download/trick-out-google-reader-with-better-greader-262020.php">Better GReader</a> &#8211; 值得一试的火狐三合一插件，能增加一堆有用的选项，可用于Google阅读器。包括：优化的界面，一些导航快捷方式以及智能订阅按钮。其中的每一个也能以Greasemonkey脚本的形式分别安装，详见下面段落。</p>
<p><b>*** GreaseMonkey</b><b>脚本(<a href="http://www.makeuseof.com/tag/greasemonkey-firefox-addon/">什么是GreaseMonkey?</a>) ***</b></p>
<p><u>界面改进 </u></p>
<p><b>(6)</b> <a href="http://userscripts.org/scripts/show/6912">Custom Search</a> -自定义搜索。在Google阅读器中添加一个自定义的Google搜索框。 (参见下面的演示)</p>
<p><b>(7)</b> <a href="http://userscripts.org/scripts/show/7957">Google Reader + Del.icio.us</a> -用于Del.icio.us网站的插件，可以在不离开Google阅读器页面的情况下对Del.icio.us网站上的条目标记书签。 (参见下面的演示)</p>
<p><b>(8)</b> <a href="http://userscripts.org/scripts/show/8561">Original Item Preview</a> -原始项目预览。一个非常酷的脚本，可以把Google阅读器上的条目摘要替换为博客上的实际项目。例如，你可以直接从Google阅读器账户上连到Digg网和评论上面的文章。(参见下面演示)</p>
<p><b>(9)</b> <a href="http://userscripts.org/scripts/show/8843">Read by Mouse</a> -用鼠标来浏览。又一个方便的插件，可以让你用鼠标手势来浏览项目。一旦启用，鼠标的左键和右键将分别相当于“下一个项目”和“上一个项目”的快捷键。鼠标中键可以被设置成“加星标”、“共享”或者“在新标签页中打开”。(参见下面演示)</p>
<p><u>屏幕截图:</u> (脚本6-9 和Google齿轮). 点击<a href="http://i157.photobucket.com/albums/t56/esengulov/google-reader-demo.jpg" class="highslide-image" onclick="return hs.expand(this);">这儿</a>, 放大并在新窗口中打开。</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/06/clip-image00210.jpg" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image002" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="253" alt="clip_image002" src="http://blog.acmind.com/wp-content/uploads/2009/06/clip-image002-thumb9.jpg" width="420" border="0" /></a></p>
<p><u>订阅辅助</u></p>
<p><b>(10)</b> <a href="http://userscripts.org/scripts/show/8390">Auto Add</a> -自动添加插件。当你点击一个feed的时候，可以避免弹出一个页面问你是否要添加feed到Google个人主页（iGoogle）或者是Google阅读器，而是直接转到Google阅读器，这样你就可以直接订阅了。</p>
<p><b>(11)</b> <a href="http://blog.persistent.info/2006/05/smart-google-reader-subscribe-button.html">Smart Subscribe</a> -智能订阅。显示当前所浏览的页面是否早就在已订阅列表里。</p>
<p><u>Gmail</u><u>集成</u></p>
<p><b>(12)</b> <a href="http://userscripts.org/scripts/show/8450">Google Reader Integration</a> -把Google阅读器对话框集成到Gmail侧栏。强烈推荐。 (<a href="http://i157.photobucket.com/albums/t56/esengulov/greader-to-gmail.jpg" class="highslide-image" onclick="return hs.expand(this);">演示</a>). 更多可见<a href="http://www.makeuseof.com/tag/gmail-craze-30-tools-to-make-your-gmail-better/">GMail</a>工具。</p>
<p><b>(13)</b> <a href="http://userscripts.org/scripts/show/8598">Google Reader Folders on Gmail</a> &#8211; 在Gmail页面上添加一个小对话框，列出Google阅读器的文件夹以及每个文件夹中的未读项目数。</p>
<p><u>视觉插件</u></p>
<p>(注意<i>: ‘Optimized’</i>, <i>‘Mac OS X Theme’</i> 脚本以及“更好的Google阅读器“扩展会与”界面改进部分“的脚本相冲突。)</p>
<p><b>(14)</b> <a href="http://userstyles.org/style/show/1236">Optimized</a> -去除很少使用的项目以使可视面积最大化。有时候你需要一下子看好几百个项目，那么这个清爽的界面会很不错。</p>
<p><b>(15)</b> <a href="http://www.hicksdesign.co.uk/journal/google-reader-theme">Mac OS X Theme</a> -苹果系统主题插件。这个插件主要是让Google阅读器看起来具有苹果风格。如果感兴趣的话， <a href="http://www.hicksdesign.co.uk/journal/google-reader-theme">这里</a>会指导你如何将这个应用到其他浏览器上（Camino, Omniweb, Opera)。</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/06/clip-image0038.jpg" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image003" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="222" alt="clip_image003" src="http://blog.acmind.com/wp-content/uploads/2009/06/clip-image003-thumb8.jpg" width="370" border="0" /></a>(点击看大图)</p>
<p><b>(16)</b> <a href="http://userscripts.org/scripts/show/8782">Colourful List View</a> -彩色列表，在Google阅读器的项目上运用彩色标题，可为每个feed指定一个颜色。</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/06/clip-image0043.jpg" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image004" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="120" alt="clip_image004" src="http://blog.acmind.com/wp-content/uploads/2009/06/clip-image004-thumb3.jpg" width="290" border="0" /></a></p>
<p><b>(17) *** </b><b>非常棒的快捷键*** </b></p>
<ul>
<li>r: 刷新 </li>
<li>u:隐藏或展示订阅列表 </li>
<li>s: 加星标 </li>
<li>t: 标记项目 </li>
<li>m: 标记为已读/未读 </li>
<li>j/k: 向下/向上浏览项目 </li>
<li>o: 打开/关闭项目 </li>
<li>Shift+a: 将所有项目标为已读 </li>
<li>g+s: 转到加星标项目 </li>
<li>g+t: 转到标记 </li>
<li><a href="http://thomaskorte.com/archive/printable-cheat-sheet-for-google-reader/">更多快捷键</a> … </li>
</ul>
<p><b>*** </b><b>移动版工具*** </b></p>
<p><b>(18)</b> <a href="http://www.google.com/reader/m">GReader Mobile</a> &#8211; 手机版的Google阅读器.</p>
<p><b>(19)</b> <a href="http://www.mostlygeek.com/2006/11/03/controlling-google-reader-with-a-cell-phone/">HowTo:</a> &#8211; 某些懒人或许也想要尝试一下这篇好玩的文章，它会告诉你如何通过蓝牙手机来远程操控Google阅读器。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.acmind.com/archives/968/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>手把手教你怎么用动软.net代码生成器 搭建三层架构</title>
		<link>http://blog.acmind.com/archives/184</link>
		<comments>http://blog.acmind.com/archives/184#comments</comments>
		<pubDate>Sat, 17 Jan 2009 02:32:33 +0000</pubDate>
		<dc:creator>笑谈</dc:creator>
				<category><![CDATA[辅助工具]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[动软]]></category>
		<category><![CDATA[三层]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[生成器]]></category>
		<category><![CDATA[Maticsoft]]></category>
		<category><![CDATA[架构分析]]></category>

		<guid isPermaLink="false">http://blog.acmind.com/?p=184</guid>
		<description><![CDATA[从暑假里面开始接触学习.NET，由于实际需求，必须一开始就从三层架构开始。于是进入了痛苦的.NET三层架构学习。可能我们学校学生很少有在毕业前在学校用      三层架构做东西的，所以我准备给大家来个简单的三层架构实践部署入门。我就从我自己开发的&#160; “波Blog” 作为实例      开发环境及其使用工具：
· 动软.net代码生成器 2.17版本
· VsualStudio 2008 
· SQL Server2000 数据库
· ER studio 数据库建模工具
好我们开始：    从最基本的，首先在ERstudio 里面把我的系统的数据库设计好，先设计好逻辑模型（Logical Model）

完成数据库逻辑模型后，我们用ERstudio 生成实体模型（Physic Model）

最后链接生SQL Server成我们的数据库 Bo_Blog，由于重点在后面，我就不一一演示 ER Studio 怎么使用了    打开 动软.NET代码生成器，在右上选择添加SQL Server 2000 服务器

选择数据库类型，我们这里是SQL 2000

填写数据库据连接信息

链接成功数据库后，我们会看见右边栏变成了和我们SQL Server 企业管理器一样的数据库表列表

我们选择我们项目用的 Bo_Blog 数据库，选择中间的选项的生成代码项目

然后选择 简单三层架构 ， 填写好 [...]]]></description>
			<content:encoded><![CDATA[<p><b>从暑假里面开始接触学习</b><b>.NET</b><b>，由于实际需求，必须一开始就从三层架构开始。于是进入了痛苦的</b><b>.NET</b><b>三层架构学习。可能我们学校学生很少有在毕业前在学校用</b><b>      <br /></b><b>三层架构做东西的，所以我准备给大家来个简单的三层架构实践部署入门。我就从我自己开发的</b><b>&#160; “</b><b>波</b><b>Blog” </b><b>作为实例</b><b>      <br /></b><b>开发环境及其使用工具：</b><b></b></p>
<p>· 动软.net代码生成器 2.17版本</p>
<p>· VsualStudio 2008 </p>
<p>· SQL Server2000 数据库</p>
<p>· ER studio 数据库建模工具</p>
<p>好我们开始：    <br />从最基本的，首先在ERstudio 里面把我的系统的数据库设计好，先设计好逻辑模型（Logical Model）</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image0021.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image002" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="500" alt="clip_image002" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image002-thumb1.gif" width="619" border="0" /></a></p>
<p>完成数据库逻辑模型后，我们用ERstudio 生成实体模型（Physic Model）</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image004.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image004" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="264" alt="clip_image004" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image004-thumb.gif" width="197" border="0" /></a></p>
<p>最后链接生SQL Server成我们的数据库 Bo_Blog，由于重点在后面，我就不一一演示 ER Studio 怎么使用了    <br />打开 动软.NET代码生成器，在右上选择添加SQL Server 2000 服务器</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image0061.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image006" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="500" alt="clip_image006" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image006-thumb1.gif" width="623" border="0" /></a></p>
<p>选择数据库类型，我们这里是SQL 2000</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image008.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image008" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="215" alt="clip_image008" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image008-thumb.gif" width="264" border="0" /></a></p>
<p>填写数据库据连接信息</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image010.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image010" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="394" alt="clip_image010" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image010-thumb.gif" width="480" border="0" /></a></p>
<p>链接成功数据库后，我们会看见右边栏变成了和我们SQL Server 企业管理器一样的数据库表列表</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image0121.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image012" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="500" alt="clip_image012" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image012-thumb1.gif" width="627" border="0" /></a></p>
<p>我们选择我们项目用的 Bo_Blog 数据库，选择中间的选项的生成代码项目</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image014.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image014" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="358" alt="clip_image014" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image014-thumb.gif" width="230" border="0" /></a></p>
<p>然后选择 简单三层架构 ， 填写好 极为据我方案名称，这里我写的是 MyBlog，选择保存路径，这里我保存在桌面</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image016.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image016" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="410" alt="clip_image016" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image016-thumb.gif" width="603" border="0" /></a></p>
<p>然后选择数据库&#160; Bo_Blog&#160; 然后会在左边列出 数据库的所有表</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image0181.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image018" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="500" alt="clip_image018" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image018-thumb1.gif" width="622" border="0" /></a>     <br /><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image020.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image020" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="474" alt="clip_image020" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image020-thumb.gif" width="591" border="0" /></a></p>
<p>我们把所有表添加到右边框里面来</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image0221.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image022" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="472" alt="clip_image022" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image022-thumb1.gif" width="589" border="0" /></a></p>
<p>在这里我们要设置一下，我们在解决方案中 各个项目里面的命名空间，这里我把所有的命名空间都设置为MyBlog ，其他选择默认，点击开始生成</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image024.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image024" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="469" alt="clip_image024" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image024-thumb.gif" width="590" border="0" /></a></p>
<p>这样会自动生成整个三层架构的解决方案</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image0261.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image026" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="500" alt="clip_image026" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image026-thumb1.gif" width="657" border="0" /></a></p>
<p>但是这样生成的整个解决方案是不能通过VS 2008 编译通过的，会报很多错误，我们得经行精简和修改    <br />接下来按照我说的做     <br />打开生成的解决方案，删除 里面的所有 以&#160; .sln&#160; .csproj 和 .csproj.user 结尾的文件，删除整个Web文件夹，只保留Lib 文件夹里面的LTP.Common.dll 文件，DBUtility文件夹里面的DbHelperSQL.cs文件，我们另外在原文件夹中新建解决方案，然后自己把Model&#160; BLL DAL DBUtility Lib 类库 项目按照下面方法附加到我们新建的 解决方案中     <br />添加方式见下面步骤</p>
<p>我们新建解决方案 Bo_Blog&#160; 在桌面上    <br />注意在VS 创建项目的时候，选择.NET FrameWork 2.0 的这里我们，路径选择在桌面</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image0281.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image028" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="500" alt="clip_image028" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image028-thumb1.gif" width="619" border="0" /></a></p>
<p>创建新的解决方案后，我们在解决方案中新建BLL , DAL , DBUtility ，Lib，Model&#160; 五个类库项目，建立一个&#160; ASP.NET&#160; Web应用程序项目</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image030.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image030" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="251" alt="clip_image030" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image030-thumb.gif" width="296" border="0" /></a></p>
<p>然后我们分别把原来我们生成 和 整理后的BLL DAL Model&#160; Lib DBUtility&#160; 下的文件对应的拷贝到 我们新建解决方案的相对应的文件夹下面</p>
<p>拷贝完成后，我们在现在的解决方案中，选中一个 项目 <a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image032.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image032" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="126" alt="clip_image032" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image032-thumb.gif" width="229" border="0" /></a></p>
<p>，然后选中解决方案属性上面的显示所有文件按钮 <a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image034.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image034" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="66" alt="clip_image034" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image034-thumb.gif" width="53" border="0" /></a>     <br />，这样就会在下面出现我们赋值过来的文件，用虚线表示的 <a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image036.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image036" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="270" alt="clip_image036" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image036-thumb.gif" width="228" border="0" /></a>     <br />，然后我们按住Ctrl全部选中他们，鼠标右键选择&#160; “包括到项目中”&#160;&#160; <a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image038.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image038" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="373" alt="clip_image038" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image038-thumb.gif" width="265" border="0" /></a>     <br />，就这样，我们就吧他们附加到这个类库项目中了 <a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image040.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image040" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="248" alt="clip_image040" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image040-thumb.gif" width="225" border="0" /></a>     <br />就这样，我们把其他文件都附加到DAL,Lib，Model，DBUtility 项目中去。     <br />接下来我们得将解决方案中的几个项目关联起来，分别添加好各自间的引用     <br />我们选择引用项目，在BLL中，我们要引用DAL和Model两个项目</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image042.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image042" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="362" alt="clip_image042" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image042-thumb.gif" width="261" border="0" /></a></p>
<p>Ctrl+鼠标左键选中DAL和Model，点击确定。</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image044.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image044" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="364" alt="clip_image044" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image044-thumb.gif" width="484" border="0" /></a></p>
<p>然后我们还要在BLL中引用一个Lib项目中的DLL文件，同样的方式，添加引用-&gt;浏览-&gt;找到Lib项目，选择里面的LTP.Common.dll 文件，点击确定</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image0461.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image046" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="500" alt="clip_image046" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image046-thumb1.gif" width="620" border="0" /></a></p>
<p>同样的方法，我们将在DAL项目中引用 DBUtility ，Model两个项目    <br />然后我们要补充的就是，在DBUtility 项目中添加引用System.configuration 这个系统类，方式是 添加引用-&gt;.NET-&gt;找到System.configuration，然确定</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image048.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image048" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="376" alt="clip_image048" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image048-thumb.gif" width="497" border="0" /></a></p>
<p>然后我们在WEB 项目中 打开配置文件 Web.config&#160; 文件 ，在 &lt;configuration&gt; 后面添加 <i>复制内容到剪贴板</i> 代码:&lt;appSettings&gt;     <br />&lt;add key=&quot;WebDAL&quot; value=&quot;MyBlog.SQLServerDAL&quot;/&gt;     <br />&lt;add key=&quot;WebConnectionString&quot; value=&quot;server=localhost;Initial Catalog=Bo_Blog;uid=sa;pwd=***&quot;/&gt;     <br />&lt;/appSettings&gt;     <br />这样一段数据库链接配置     <br />然后找到 DBUtility 项目下的 DbHelperSQL.cs 文件，用代码:ConfigurationManager.AppSettings[&quot;WebConnectionString&quot;];     <br />字符串代替代码PubConstant.ConnectionString     <br />当然，你也可以不在Web.Config&#160; 文件里面写连接字符串，直接写在这里就是了。</p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image051.gif" class="highslide-image" onclick="return hs.expand(this);"><img title="clip_image051" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="206" alt="clip_image051" src="http://blog.acmind.com/wp-content/uploads/2009/01/clip-image051-thumb.gif" width="294" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.acmind.com/archives/184/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何用Powerdesigner的PDM(物理数据模型)生成数据库</title>
		<link>http://blog.acmind.com/archives/133</link>
		<comments>http://blog.acmind.com/archives/133#comments</comments>
		<pubDate>Sat, 17 Jan 2009 02:24:44 +0000</pubDate>
		<dc:creator>笑谈</dc:creator>
				<category><![CDATA[数据相关]]></category>
		<category><![CDATA[辅助工具]]></category>
		<category><![CDATA[建模]]></category>
		<category><![CDATA[PDM]]></category>
		<category><![CDATA[PowerDesigner]]></category>

		<guid isPermaLink="false">http://blog.acmind.com/?p=133</guid>
		<description><![CDATA[pdm做好后，最终是要将其转化为数据库实体的。    1.确认当前Powerdesigner设置的dbms是否正确,即是否是我们要生成的数据库类型，我在这里使用的是sqlserver2000:     Powerdesigner-&#62;数据库-&#62;更改当前dbms，选择您的数据库类型。 
 
2.配置Powerdesigner与数据源的连接    Powerdesigner-&#62;数据库-&#62;配置连接-&#62;用户dsn(或系统dsn)-&#62;选择、添加您的数据源     3.连接     Powerdesigner-&#62;数据库-&#62;连接-&#62;设置好您刚才建立的dsn确定。     OK,设置好连接后我们就可以将pdm生成sql语句了。     4.数据库生成     Powerdesigner-&#62;数据库-&#62;生成数据库-&#62;配置好（默认就可以）后选择确定就好了。     拿到sql脚本语句，大家都知道应当如何做了吧，放到sql查询分析器里执行吧。 
]]></description>
			<content:encoded><![CDATA[<p>pdm做好后，最终是要将其转化为数据库实体的。    <br />1.确认当前Powerdesigner设置的dbms是否正确,即是否是我们要生成的数据库类型，我在这里使用的是sqlserver2000:     <br />Powerdesigner-&gt;数据库-&gt;更改当前dbms，选择您的数据库类型。 </p>
<p><a href="http://blog.acmind.com/wp-content/uploads/2009/01/image12.png" class="highslide-image" onclick="return hs.expand(this);"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="386" alt="image" src="http://blog.acmind.com/wp-content/uploads/2009/01/image-thumb12.png" width="474" border="0" /></a> </p>
<p>2.配置Powerdesigner与数据源的连接    <br />Powerdesigner-&gt;数据库-&gt;配置连接-&gt;用户dsn(或系统dsn)-&gt;选择、添加您的数据源     <br />3.连接     <br />Powerdesigner-&gt;数据库-&gt;连接-&gt;设置好您刚才建立的dsn确定。     <br />OK,设置好连接后我们就可以将pdm生成sql语句了。     <br />4.数据库生成     <br />Powerdesigner-&gt;数据库-&gt;生成数据库-&gt;配置好（默认就可以）后选择确定就好了。     <br />拿到sql脚本语句，大家都知道应当如何做了吧，放到sql查询分析器里执行吧。 </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.acmind.com/archives/133/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

