<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>من، شما، فن‌آوری اطلاعات</title>
	
	<link>http://ramezani.wordpress.com</link>
	<description>نوشته‌های مسعود رمضانی</description>
	<lastBuildDate>Sun, 25 Sep 2011 19:26:22 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain="ramezani.wordpress.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>من، شما، فن‌آوری اطلاعات</title>
		<link>http://ramezani.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ramezani.wordpress.com/osd.xml" title="من، شما، فن‌آوری اطلاعات" />
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ramezani" /><feedburner:info uri="ramezani" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://ramezani.wordpress.com/?pushpress=hub" /><item>
		<title>مروری بر ویندوز ۸ و طریقه نصب آن</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/OUhozhX_j2U/</link>
		<comments>http://ramezani.wordpress.com/2011/09/25/windows-8/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 19:26:13 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[مترو]]></category>
		<category><![CDATA[ویندوز ۸]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=429</guid>
		<description><![CDATA[چند روزی است که صحبت ویندوز ۸ گل سرسبد محافل دوستداران تکنولوژی شده است. از همین رو من هم مشتاق شدم و نسخه‌ای که برای پیش نمایش ارائه شده است را از این لینک دانلود کردم. پس از دانلود تصمیم به نصب گرفتم ولی نمی‌خواستم برنامه را روی کامپیوتر به صورت مستقیم نصب کنم. از [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=429&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">چند روزی است که صحبت ویندوز ۸ گل سرسبد محافل دوستداران تکنولوژی شده است. از همین رو من هم مشتاق شدم و نسخه‌ای که برای پیش نمایش ارائه شده است را از این<a href="http://msdn.microsoft.com/en-us/windows/apps/br229516" target="_blank"> لینک</a> دانلود کردم. پس از دانلود تصمیم به نصب گرفتم ولی نمی‌خواستم برنامه را روی کامپیوتر به صورت مستقیم نصب کنم. از این رو نرم‌افزار VirtualBox را از <a href="http://www.virtualbox.org/wiki/Downloads" target="_blank">اینجا </a> دانلود کردم تا بتوانم ویندوز را به صورت مجازی روی یک ماشین مجازی نصب کنم. ابتدا یک ماشین مجازی از نوع ویندوز ساختم نسخه مربوط را از نوع other گذاشتم اما پس از نصب کامل ویندوز متوجه شدم که هیچ کدام از درایورها نصب نشده‌اند و مشکلات فراوانی برای کار با ویندوز وجود داشت، به همین خاطر این بار تصمیم گرفتم که مجددا ویندوز را نصب کنم ولی نوع ماشین را از نوع ویندوز ۷ انتخاب نمایم، حدسم درست بود و ویندوز به همراه تمام درایورهای سخت‌افزاری ماشین نصب شده بودند. پس برای نصب می‌توانید مراحل زیر را طی نمایید:</p>
<p style="text-align:justify;">۱- بر روی دکمه New کلیلک نمایید و از اولین صفحه ظاهر شده بر روی Next کلیک نمایید.</p>
<p style="text-align:justify;">۲- در صفحه بعد یک نام برای ماشین وارد نمایید، و نسخه ویندوز را ویندوز ۷ بگذارید.</p>
<p style="text-align:justify;">۳- در مرحله بعد باید میزان حافظه ماشین را مشخص نمایید، من خودم ۱۰۲۴ مگابایت حافظه انتخاب کردم.</p>
<p style="text-align:justify;">۴- در مرحله بعد برای ماشین خود یک هارددیسک می‌سازید. این قسمت را بدون تغییر ادامه دهید.</p>
<p style="text-align:justify;">۵- از دو مرحله بعد هم با زدن دکمه Next بگذرید و در مرحله سوم سایز و محل فیزیکی هارد دیسک خود را مشخص نمایید. پیشنهاد من برای سایز ۲۰ گیگابایت است.</p>
<p style="text-align:justify;">۶- در مراحل بعد مشخصات کلی ماشین به شما نمایش داده می‌شود و با کلیک روی دکمه Create می‌توانید ماشین را ساخته و کار را به پایان برسانید.</p>
<p style="text-align:justify;">۷- پس از اتمام ساخت ماشین روی دکمه Start ماشین کلیک نمایید و از اولین صفحه روی دکمه Next کلیک نمایید.</p>
<p style="text-align:justify;">۸- در این مرحله شما باید مدیای مربوط به نصب را انتخاب نمایید. می‌توانید آدرس فایل iso دانلود شده را انتخاب نمایید و روی دکمه Next کلیک نمایید و از صفحه بعد هم Start را بزنید تا نصب ویندوز شروع شود.</p>
<p style="text-align:justify;"> از این به بعد نصب شبیه به نصب ویندوز ۷ است و با چند مرحله و با سرعت ویندوز ۸ نصب خواهد شد. پس از اینکه نصب به پایان رسید اولین چیزی که نظر من را در اولین اجرای ویندوز جلب کرد ظاهر متفاوت و ساده آن بود. شما می‌توانید به دو صورت کاربر روی ویندوز بسازید : الف) از طریق یک کاربر موجود بر روی microsoft live ب) کاربر محلی من یک کاربر محلی ساختم و وارد محیط ویندوز شدم.</p>
<p style="text-align:justify;">اولین صفحه‌ای که با آن مواجه شدم واسط کاربری جدید با عنوان مترو بود.</p>
<div id="attachment_430" class="wp-caption aligncenter" style="width: 610px"><a href="http://ramezani.files.wordpress.com/2011/09/win-8-metro.png" target="_blank"><img class="size-full wp-image-430" title="win-8-metro-thumb" src="http://ramezani.files.wordpress.com/2011/09/win-8-metro-thumb.jpg?w=600&#038;h=227" alt="" width="600" height="227" /></a><p class="wp-caption-text">واسط کاربری مترو</p></div>
<p style="text-align:justify;">در این صفحه که مشخصا برای سخت‌افزارهای لمسی بهینه شده است به راحتی می‌توانید نرم‌افزارهای مختلف ارائه شده را اجرا نمایید و بین آن‌ها به راحتی حرکت نمایید. اگر بر روی Desktop کلیک نمایید به محیط سنتی ویندوز خواهید رفت و در آنجا می‌توانید مانند قبل کار کنید. تفاوتی که در این نوع به وجود آمده تغییر منوی Start است که شما هرگاه به گوشه پایین سمت چپ صفحه می‌روید به صورت خودکار نمایش داده می‌شود. این مدل کار کردن برای صفحات لمسی بهینه شده است.</p>
<div id="attachment_432" class="wp-caption aligncenter" style="width: 369px"><a href="http://ramezani.files.wordpress.com/2011/09/win-8-start.png" target="_blank"><img class="size-full wp-image-432" title="win-8-start-thumb" src="http://ramezani.files.wordpress.com/2011/09/win-8-start-thumb.jpg?w=359&#038;h=269" alt="" width="359" height="269" /></a><p class="wp-caption-text">منوی start ویندوز ۸</p></div>
<p style="text-align:justify;"> مورد بعدی که نظرم را جلب کرد استفاده از منوی ریبون در windows explorer بود. شاید باید کمی بگذرد تا به ساختار جدید عادت کنیم.</p>
<p style="text-align:center;"> </p>
<div id="attachment_434" class="wp-caption aligncenter" style="width: 369px"><a href="http://ramezani.files.wordpress.com/2011/09/win-8-explorer.png" target="_blank"><img class="size-full wp-image-434" title="win-8-explorer-thumb" src="http://ramezani.files.wordpress.com/2011/09/win-8-explorer-thumb.jpg?w=359&#038;h=269" alt="" width="359" height="269" /></a><p class="wp-caption-text">Windows Explorer در ویندوز ۸</p></div>
<p style="text-align:justify;"> task manager هم تغییرات جالبی کرده و ساختار خوبی پیدا کرده است. ظاهر نمودارهای آماری مربوط به منابع استفاده شده سیستم هم به نظر من بسیار زیباتر از قبل است.</p>
<div id="attachment_436" class="wp-caption aligncenter" style="width: 369px"><a href="http://ramezani.files.wordpress.com/2011/09/win-8-device-manager.png" target="_blank"><img class="size-full wp-image-436" title="win-8-device-manager-thumb" src="http://ramezani.files.wordpress.com/2011/09/win-8-device-manager-thumb.jpg?w=359&#038;h=269" alt="" width="359" height="269" /></a><p class="wp-caption-text">Task Manager در ویندوز ۸</p></div>
<p style="text-align:justify;">در ادامه برای نصب صفحه کلید زیان فارسی وارد Control Panel ویندوز شدم. این بخش جاییست که تغییرات اساسی کرده است. واسط کاربری جدید و ساده آن که بهینه‌سازی آن برای صفحات لمسی مشهود است، توجه من را به خود جلب کرد. در زیر می‌توانید تصویری از این ساختار جدید را ملاحظه نمایید.</p>
<div id="attachment_448" class="wp-caption aligncenter" style="width: 369px"><a href="http://ramezani.files.wordpress.com/2011/09/win-8-control-panel.png" target="_blank"><img class="size-full wp-image-448" title="win-8-control-panel-thumb" src="http://ramezani.files.wordpress.com/2011/09/win-8-control-panel-thumb.jpg?w=359&#038;h=269" alt="" width="359" height="269" /></a><p class="wp-caption-text">کنترل پنل ویندوز ۸</p></div>
<p style="text-align:justify;">در انتها گزینه‌ای وجود دارد که پس از انتخاب آن، کنترب پنل قدیمی مدل ویندوز ۷ به نمایش در می‌آید. از آنجا صفحه کلید فارسی را به ویندوز اضاف کردم. در این ویندوز یک صفحه کلید لمسی در هر کجا که بخواهید در اختیار شماست. موردی که پس از نصب زبان فارسی نظر من را جلب کرد استاندارد صفحه کلید بود که ظاهرا از استاندارد ۹۱۴۷ تبعیت می‌کند. این خبر خوبیست چون من همیشه باید این کیبورد را نصب می‌کردم!!!</p>
<div id="attachment_438" class="wp-caption aligncenter" style="width: 369px"><a href="http://ramezani.files.wordpress.com/2011/09/win-8-key-layout.png" target="_blank"><img class="size-full wp-image-438" title="win-8-key-layout-thumb" src="http://ramezani.files.wordpress.com/2011/09/win-8-key-layout-thumb.jpg?w=359&#038;h=269" alt="" width="359" height="269" /></a><p class="wp-caption-text">صفحه کلید لمسی فارسی ویندوز ۸</p></div>
<p style="text-align:justify;"> اگر از واسط کاربری مترو بر روی گزینه Internet Explorer کلیک نمایید، IE نسخه ۱۰ را خواهید که ظاهری کاملا متفاوت دارد.</p>
<div id="attachment_440" class="wp-caption aligncenter" style="width: 369px"><a href="http://ramezani.files.wordpress.com/2011/09/win-8-ie.png" target="_blank"><img class="size-full wp-image-440" title="win-8-IE-thumb" src="http://ramezani.files.wordpress.com/2011/09/win-8-ie-thumb.jpg?w=359&#038;h=269" alt="" width="359" height="269" /></a><p class="wp-caption-text">Internet Explorer 10 در ویندوز ۸</p></div>
<p style="text-align:justify;">به نظر من یکی از نقاط قوت ویندوز، جستجوی بسیار جالب و سریع آن است. ظاهر این جستجو هم بسیار جالب و کاراست.</p>
<div id="attachment_442" class="wp-caption aligncenter" style="width: 369px"><a href="http://ramezani.files.wordpress.com/2011/09/win-8-search.png" target="_blank"><img class="size-full wp-image-442" title="win-8-search-thumb" src="http://ramezani.files.wordpress.com/2011/09/win-8-search-thumb.jpg?w=359&#038;h=269" alt="" width="359" height="269" /></a><p class="wp-caption-text">جستجو در ویندوز ۸</p></div>
<p style="text-align:justify;">در این ویندوز شبکه‌های اجتماعی و خبرخوان‌ها جایگاه خاصی دارند و چندین نرم‌افزار برای کار با آن‌ها وجود دارد. شما می‌توانید به راحتی مطالب خود را با دیگران به اشتراک بگذارید.</p>
<div id="attachment_444" class="wp-caption aligncenter" style="width: 369px"><a href="http://ramezani.files.wordpress.com/2011/09/win-8-socialite.png" target="_blank"><img class="size-full wp-image-444" title="win-8-socialite-thumb" src="http://ramezani.files.wordpress.com/2011/09/win-8-socialite-thumb.jpg?w=359&#038;h=269" alt="" width="359" height="269" /></a><p class="wp-caption-text">شبکه‌های اجتماعی در ویندوز ۸</p></div>
<p style="text-align:justify;">به همراه ویندوز چندین نرم‌افزار و بازی هم نصب شده است که می‌توانید با آن‌ها کار نمایید. به عنوان نمنه تصویر یکی از بازی‌ها در زیر آمده است.</p>
<div id="attachment_446" class="wp-caption aligncenter" style="width: 369px"><a href="http://ramezani.files.wordpress.com/2011/09/win-8-lybernith.png" target="_blank"><img class="size-full wp-image-446" title="win-8-lybernith-thumb" src="http://ramezani.files.wordpress.com/2011/09/win-8-lybernith-thumb.jpg?w=359&#038;h=269" alt="" width="359" height="269" /></a><p class="wp-caption-text">نمونه‌ای از بازی‌های نصب شده به همراه ویندوز ۸</p></div>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a>, <a href='http://ramezani.wordpress.com/category/technology/'>Technology</a> Tagged: <a href='http://ramezani.wordpress.com/tag/%d9%85%d8%aa%d8%b1%d9%88/'>مترو</a>, <a href='http://ramezani.wordpress.com/tag/%d9%88%db%8c%d9%86%d8%af%d9%88%d8%b2-%db%b8/'>ویندوز ۸</a>, <a href='http://ramezani.wordpress.com/tag/windows-8/'>windows 8</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/429/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=429&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/OUhozhX_j2U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2011/09/25/windows-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2011/09/win-8-metro-thumb.jpg" medium="image">
			<media:title type="html">win-8-metro-thumb</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2011/09/win-8-start-thumb.jpg" medium="image">
			<media:title type="html">win-8-start-thumb</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2011/09/win-8-explorer-thumb.jpg" medium="image">
			<media:title type="html">win-8-explorer-thumb</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2011/09/win-8-device-manager-thumb.jpg" medium="image">
			<media:title type="html">win-8-device-manager-thumb</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2011/09/win-8-control-panel-thumb.jpg" medium="image">
			<media:title type="html">win-8-control-panel-thumb</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2011/09/win-8-key-layout-thumb.jpg" medium="image">
			<media:title type="html">win-8-key-layout-thumb</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2011/09/win-8-ie-thumb.jpg" medium="image">
			<media:title type="html">win-8-IE-thumb</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2011/09/win-8-search-thumb.jpg" medium="image">
			<media:title type="html">win-8-search-thumb</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2011/09/win-8-socialite-thumb.jpg" medium="image">
			<media:title type="html">win-8-socialite-thumb</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2011/09/win-8-lybernith-thumb.jpg" medium="image">
			<media:title type="html">win-8-lybernith-thumb</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2011/09/25/windows-8/</feedburner:origLink></item>
		<item>
		<title>XQuery چیست؟</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/51kY91R5TLU/</link>
		<comments>http://ramezani.wordpress.com/2011/09/06/xquery/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 16:55:49 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[#C]]></category>
		<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[XQuery]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xml mapping]]></category>
		<category><![CDATA[xpath]]></category>
		<category><![CDATA[xquery]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=426</guid>
		<description><![CDATA[XQuery چیست؟  xml  یکی از آن مواردی بود که بسیار مورد علاقه تمامی برنامه‌نویسان قرار گرفت، دلیل این امر هم قالب ساده ارائه شده توسط آن برای ذخیره‌سازی و ارسال اطلاعات بود. قواعد مورد نظر برای ساخت یک ساختار xml به قدری ساده بود که باعث محبوبیت سریع آن شد. حال فرض کنید که دارای [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=426&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><strong>XQuery چیست؟</strong><br />
 xml  یکی از آن مواردی بود که بسیار مورد علاقه تمامی برنامه‌نویسان قرار گرفت، دلیل این امر هم قالب ساده ارائه شده توسط آن برای ذخیره‌سازی و ارسال اطلاعات بود. قواعد مورد نظر برای ساخت یک ساختار xml به قدری ساده بود که باعث محبوبیت سریع آن شد.<br />
حال فرض کنید که دارای یک فایل xml هستید که داده‌های مورد نظر شما در آن ذخیره شده است. برای تحلیل و بیرون کشیدن اطلاعات مورد نظر، راه‌های مختلفی وجود دارد، به عنوان مثال می‌توانید با زبان برنامه‌نویسی مورد علاقه خود یک parser برای این ساختارمتنی بنویسید و داده‌های مورد نظر خود را از داخل ساختار تودرتوی آن بیرون بکشید.<br />
در اینجاست که XQuery می‌تواند وارد شده و کار شما را با قواعد خود، بسیار ساده کرده و شما را از دردسر نوشتن یک parser پیچیده خلاص کند.<br />
XQuery  زبانی است که به برنامه‌نویسان اجازه کوئری زدن روی اطلاعات موجود در یک ساختار xml را می‌دهد. با استفاده از این زبان می‌توانید عناصر (element) و خصوصیات (attribute) آن در ساختار xml را شناسایی کرده و آن‌ها را استخراج نمایید XQuery از عبارات XPath برای مشخص کردن گره خاصی در xml استفاده کرده و آن گره را از اجزای دیگر مشتق می‌نماید. از آنجا که در خیلی موارد از ساختار xml برای ارسال و نگهداری داده‌ها استفاده می‌شود لذا  استفاده از این زبان می‌تواند بسیار مفید و پرکاربرد باشد.<br />
در زیر می‌توانید برخی از موارد استفاده این زبان را ملاحظه فرمایید:<br />
۱- تولید گزارش<br />
۲- جستجوی پایگاه داده<br />
۳- جدا کردن بخشی از عناصر xml و ساختن یک xml جدید<br />
۴- تبدیل یک ساختار xml به XHTML<br />
۵- &#8230;</p>
<p style="text-align:justify;"><strong>XQuery  به صورت خلاصه در یک نگاه:</strong><br />
• XQuey  زبان کوئری زدن روی داده xml است<br />
• XQuery  برای xml مانند SQL برای پایگاه داده‌هاست<br />
• XQuery  بر اساس عبارات XPath ساخته شده است<br />
• XQuery  توسط پایگاه داده‌های اصلی و مطرح پشتیبانی می‌شود<br />
• XQuery  پیشنهادی از کنسرسیوم W3C می‌باشد</p>
<p style="text-align:justify;"> </p>
<p style="text-align:justify;"><strong>نمونه ساده‌ای از کاربرد XQuery :</strong><br />
فرض کنید که یک xml با ساختار زیر داشته باشید:</p>
<p style="text-align:left;" dir="ltr">&lt;bookstore&gt;</p>
<p style="text-align:left;padding-left:30px;" dir="ltr">
&lt;book category=&#8221;COOKING&#8221;&gt;<br />
  &lt;title lang=&#8221;en&#8221;&gt;Everyday Italian&lt;/title&gt;<br />
  &lt;author&gt;Giada De Laurentiis&lt;/author&gt;<br />
  &lt;year&gt;2005&lt;/year&gt;<br />
  &lt;price&gt;31.00&lt;/price&gt;<br />
&lt;/book&gt;<br />
&lt;book category=&#8221;CHILDREN&#8221;&gt;<br />
  &lt;title lang=&#8221;en&#8221;&gt;Harry Potter&lt;/title&gt;<br />
  &lt;author&gt;J K. Rowling&lt;/author&gt;<br />
  &lt;year&gt;2005&lt;/year&gt;<br />
  &lt;price&gt;29.99&lt;/price&gt;<br />
&lt;/book&gt;</p>
<p style="text-align:left;" dir="ltr">
&lt;/bookstore&gt;</p>
<p style="text-align:justify;">عبارت زیر که با زبان XQeury نوشته شده است روی تمام عناصر book می‌گردد و عنوان کتاب‌هایی را که دارای قیمت کمتر از ۳۰ می‌باشند را باز می‌گرداند :</p>
<p style="text-align:left;" dir="ltr">for $x in doc(&#8220;books.xml&#8221;)/bookstore/book<br />
where $x/price&gt;30<br />
order by $x/title<br />
return $x/title</p>
<p style="text-align:justify;">
نحوه دیگر نوشتن کوئری می‌تواند به صورت زیر باشد :</p>
<p style="text-align:left;" dir="ltr">
doc(&#8220;books.xml&#8221;)/bookstore/book[price&lt;30]</p>
<p style="text-align:justify;">خروجی کوئری بالا به صورت زیر خواهد بود :</p>
<p style="text-align:left;" dir="ltr">
&lt;book category=&#8221;CHILDREN&#8221;&gt;<br />
  &lt;title lang=&#8221;en&#8221;&gt;Harry Potter&lt;/title&gt;<br />
  &lt;author&gt;J K. Rowling&lt;/author&gt;<br />
  &lt;year&gt;2005&lt;/year&gt;<br />
  &lt;price&gt;29.99&lt;/price&gt;<br />
&lt;/book&gt;</p>
<p style="text-align:justify;">حال اگر عبارت زیر را اجرا کنیم می‌توانیم به نتیجه کوئری اول برسیم :</p>
<p style="text-align:left;" dir="ltr">
doc(&#8220;books.xml&#8221;)/bookstore/book[price&gt;30]/title</p>
<p style="text-align:justify;">اولین کوئری نوشته شده را  یک عبارت FLWOR می‌نامند. FLWOR مخففی از ابتدای عبارات For, Let, Where,Order by و Return می‌باشد.</p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/c/'>#C</a>, <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a>, <a href='http://ramezani.wordpress.com/category/sql-server/'>SQL Server</a>, <a href='http://ramezani.wordpress.com/category/xquery/'>XQuery</a> Tagged: <a href='http://ramezani.wordpress.com/tag/xml/'>xml</a>, <a href='http://ramezani.wordpress.com/tag/xml-mapping/'>xml mapping</a>, <a href='http://ramezani.wordpress.com/tag/xpath/'>xpath</a>, <a href='http://ramezani.wordpress.com/tag/xquery-2/'>xquery</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/426/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=426&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/51kY91R5TLU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2011/09/06/xquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2011/09/06/xquery/</feedburner:origLink></item>
		<item>
		<title>CTE بازگشتی و ساختار آن</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/UD20Z74lFXY/</link>
		<comments>http://ramezani.wordpress.com/2011/09/02/recursive-cte/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 12:47:01 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[common table expression]]></category>
		<category><![CDATA[cte]]></category>
		<category><![CDATA[recursive cte]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=420</guid>
		<description><![CDATA[CTE چیست؟ CTE یک مجموعه نتیجه موقتی دارای نام است که از یک کوئری ساده مشتق شده و می‌تواند در محدوده اجرای یک عبارت SELECT ، INSERT ، UPDATE و یا DELETE تعریف شود. می‌توان به CTE مانند جایگزینی برای جداول مشتق شده (subquery)، View و توابعی که توسط کاربران تعریف شده، اندیشید. از مهمترین [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=420&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>CTE چیست؟</strong></p>
<p>CTE یک مجموعه نتیجه موقتی دارای نام است که از یک کوئری ساده مشتق شده و می‌تواند در محدوده اجرای یک عبارت SELECT ، INSERT ، UPDATE و یا DELETE تعریف شود.<br />
می‌توان به CTE مانند جایگزینی برای جداول مشتق شده (subquery)، View و توابعی که توسط کاربران تعریف شده، اندیشید. از مهمترین تفاوت‌های CTE با دیگر ساختارها می‌توان به این مورد اشاره کرد که می‌توان آن را به صورت بازگشتی استفاده کرد که این مورد برای ساختارهای درختی بسیار مفید خواهد بود.<br />
از دیگر مزایای آن کپسوله‌سازی کد است. ما می‌توانیم یک روال را در CTE نوشته و چندین بار به آن ارجاع دهیم.</p>
<p><strong>ساختار CTE بازگشتی</strong><br />
این ساختار شبیه ساختارهای بازگشتی در زبان‌های برنامه‌نویسی دیگر است. اگرچه توابع بازگشتی در زبان‌های دیگر فقط یک مقدار عددی را باز می‌گرداند ولی یک CTE بازگشتی می‌تواند چندین سطر را بازگرداند.<br />
هر CTE بازگشتی شامل سه عنصر است :<br />
<strong>۱- فراخوانی روال :</strong><br />
اولین فراخوانی CTE بازگشتی شامل یک یا چند CTE_query_deefinition است که توسط عملگرهای UNION ALL ، UNION ، EXCEPT یا INTERSECT به هم ملحق شده‌اند.<br />
چون این تعاریف ساختار پایه‌ای CTE را تشکیل می‌دهند، آن‌ها را  به عنوان اعضای لنگر  (anchor) می‌شناسند. CTE_query_definition ها به عنوان اعضای لنگر در نظر گرفته می‌شوند مگر اینکه به خودشان ارجاع دهند. تعیف تمام اعضای لنگر کوئری باید قبل از تعریف اولین عضو بازگشتی قرار بگیرند و یک عملگر UNION ALL باید برای الحاق آخرین عضو لنگر و اولین عضو بازگشتی قرار گیرد.</p>
<p><strong>۲- فراخوانی بازگشتی روال :</strong><br />
فراخوانی بازگشتی شامل یک یا چند CTE_query_definition می‌باشد که با عملگرهای UNION ALL که به خود CTE ارجاع می‌دهند، به هم ملحق شده‌اند.<br />
این بخش کوئری به عنوان اعضای بازگشتی شناخته می‌شوند.</p>
<p><strong>۳- شرط خاتمه :</strong><br />
این عملیات ، یک عملیات ضمنی (implicit) است. زمانی که هیچ سطری از فراخوانی قبلی باز نگردد، عملیات بازگشت خاتمه می‌یابد.</p>
<p>نکته : استفاده ناصحیح از این روش ممکن است باعث شود که یک چرخه بی‌نهایت تشکیل شود و کوئری ما با مشکل برخورد نماید.<br />
ساختار CTE بازگشتی باید حداقل شامل یک عنصر لنگر و یک عنصر بازگشتی باشد. شبه کد زی با فرض این حداقل‌ها، ساختار اولیه را به ما نشان می‌دهد :</p>
<p style="text-align:left;" dir="ltr">WITH     cte_name    (column_name[,…n])<br />
AS<br />
(<br />
CTE_query_definition<br />
UNION   ALL<br />
CTE_query_definition<br />
)<br />
SELECT  *  FROM cte_name</p>
<p>مراحل اجرای عملیات بازگشتی به شرح زیر است:<br />
۱- عبارت CTE به دو بخش عضو لنگر و عضو بازگشتی تقسیم می‌گردد.<br />
۲- اعضای لنگر اجرا شده و اولین فراخوانی یا مجموعه نتیجه پایه (T(0)) را می‌سازد.<br />
۳- اعضای بازگشتی اجرا می‌شود که T(i) ورودی و T(i+1) خروجی است.<br />
۴- مرحله ۳ تا زمانی که مجموعه‌ای خالی بازگردانده شود تکرار می‌گردد.<br />
۵- مجموعه نتیجه بازگردانده می‌شود. این مجموعه اجتماعی ازT(0) تا T(n) است.</p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a>, <a href='http://ramezani.wordpress.com/category/sql-server/'>SQL Server</a>, <a href='http://ramezani.wordpress.com/category/sql-server/t-sql/'>T-SQL</a> Tagged: <a href='http://ramezani.wordpress.com/tag/common-table-expression/'>common table expression</a>, <a href='http://ramezani.wordpress.com/tag/cte/'>cte</a>, <a href='http://ramezani.wordpress.com/tag/recursive-cte/'>recursive cte</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/420/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/420/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/420/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/420/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/420/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/420/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/420/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/420/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/420/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/420/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/420/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/420/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/420/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/420/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=420&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/UD20Z74lFXY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2011/09/02/recursive-cte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2011/09/02/recursive-cte/</feedburner:origLink></item>
		<item>
		<title>WCF به زبان ساده</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/FzeUr4QWBmI/</link>
		<comments>http://ramezani.wordpress.com/2011/05/18/wcf-%d8%a8%d9%87-%d8%b2%d8%a8%d8%a7%d9%86-%d8%b3%d8%a7%d8%af%d9%87/#comments</comments>
		<pubDate>Wed, 18 May 2011 18:51:37 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[#C]]></category>
		<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=417</guid>
		<description><![CDATA[WCF فریمورکی برای ساخت نرم‌افزارهای مبتنی بر سرویس است. با استفاده از آن می‌توان پیام‌های غیرهمزمان را از یک نقطه پایانی سرویس به یک نقطه پایانی سرویس دیگر ارسال کرد. نقطه پایانی سرویس می‌تواند بخشی از یک سرویس باشد که به طور مداوم در دسترس و IIS میزبان آن است، یا می‌تواند سرویسی باشد که [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=417&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">WCF فریمورکی برای ساخت نرم‌افزارهای مبتنی بر سرویس است. با استفاده از آن می‌توان پیام‌های غیرهمزمان را از یک نقطه پایانی سرویس به یک نقطه پایانی سرویس دیگر ارسال کرد. نقطه پایانی سرویس می‌تواند بخشی از یک سرویس باشد که به طور مداوم در دسترس و IIS میزبان آن است، یا می‌تواند سرویسی باشد که یک نرم‌افزار میزبان است. یک نقطه پایانی می‌تواند کلاینتی از یک سرویس سرویس باشد که از یک نقطه پایانی سرویس دیگر، درخواست داده کند. پیام‌ها می‌توانند به سادگی یک کاراکتر ساده و یا یک XML پیچیده ارسال شده باشند. این داده‌ها همچنین می‌توانند جریانی از داده‌ها باشند.<br />
در زیر مثال‌های ساده‌ای از آن ارائه شده است :</p>
<ul style="text-align:justify;">
<li>یک سرویس امن برای پردازش تراکنش‌های تجاری</li>
<li>یک سرویس که داده‌هایی را برای دیگران مهیا می‌کند مانند یک گزارش ترافیکی یا سرویس‌های مونیتورینگ دیگر</li>
<li>یک سرویس چت که به دو نفر اجازه ارتباط و تبادل داده در لحظه را می‌دهد.</li>
<li>ظاهر ساختن یک گردش کاری پیاده‌سازی شده توسط WF به عنوان یک سرویس WCF</li>
<li>نرم‌افزار تهیه شده با silverlight برای راه‌اندازی سرویس برای نمایش آخرین فیدهای خبری</li>
</ul>
<p style="text-align:justify;">به طور خلاصه می‌توان گفت : WCF بدین منظور طراحی شده که راهکاری قابل مدیریت برای ساخت سرویس‌های وب و کلاینت‌های سرویس‌های وب ارائه داد.</p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/c/'>#C</a>, <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a>, <a href='http://ramezani.wordpress.com/category/wcf/'>WCF</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/417/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=417&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/FzeUr4QWBmI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2011/05/18/wcf-%d8%a8%d9%87-%d8%b2%d8%a8%d8%a7%d9%86-%d8%b3%d8%a7%d8%af%d9%87/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2011/05/18/wcf-%d8%a8%d9%87-%d8%b2%d8%a8%d8%a7%d9%86-%d8%b3%d8%a7%d8%af%d9%87/</feedburner:origLink></item>
		<item>
		<title>stackoverflow و سایت‌های هم‌خانواده آن</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/8sBkdPSFWGI/</link>
		<comments>http://ramezani.wordpress.com/2010/11/16/stackoverflow/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 11:10:28 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[#C]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[Reporting Service]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[Unit Test]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=400</guid>
		<description><![CDATA[یکی دو سالیست که سایتی با نام stackoverflow در عرصه‌ی سایت‌های تخصصی برای پرسش و پاسخ در رابطه با مسائل برنامه‌نویسی می‌درخشد. این سایت به قدری اعتبار پیدا کرده که سوالات ان بلافاصله در گوگل ایندکس می‌شودِ یعنی درست بلافاصله پس از پرسیدن یک سوال، می‌توان آن را در گوگل جستجو کرد و آن را [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=400&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://ramezani.files.wordpress.com/2010/11/stackoverflow-logo-300.png"><img class="aligncenter size-full wp-image-403" title="stackoverflow-logo-300" src="http://ramezani.files.wordpress.com/2010/11/stackoverflow-logo-300.png?w=300&#038;h=83" alt="" width="300" height="83" /></a></p>
<p style="text-align:justify;">یکی دو سالیست که سایتی با نام <a href="http://stackoverflow.com/" target="_blank">stackoverflow</a> در عرصه‌ی سایت‌های تخصصی برای پرسش و پاسخ در رابطه با مسائل برنامه‌نویسی می‌درخشد. این سایت به قدری اعتبار پیدا کرده که سوالات ان بلافاصله در گوگل ایندکس می‌شودِ یعنی درست بلافاصله پس از پرسیدن یک سوال، می‌توان آن را در گوگل جستجو کرد و آن را دید.</p>
<p style="text-align:justify;">این نرم‌افزار بسیار خلاقانه و با کارایی بالا نوشته شده است. برای نوشتن این برنامه از تکنولوژی ASP.Net MVC نوشته شده است. سناریوی تهیه شده برای پرسش و پاسخ در این وب سایت به قدری عالی و خلاقانه طراحی شده که تمام کاربران آن را به دادن پاسخ‌های سریع و دقیق ترغیب می‌کند. معمولا هر سوالی که در آن از بقیه کاربران بپرسید پس از چند دقیقه به پاسخ‌های خوبی دست خواهید یافت. این سایت مورد توجه متخصصان زیادی از سراسر دنیا می‌باشد.</p>
<p style="text-align:justify;">نحوه کار در این سایت به گونه‌ای است که برای هر فعالیتی امتیازاتی از طرف کاربران و خود سایت به شما داده می‌شود. به عنوان مثال برای هر سوالی که بپرسید و سوال شما سوال خوبی باشد، کاربران می‌توانند به سوال شما رای بدهند به ازای هر رای برای سوال خوب ۵ امتیاز، برای هر پاسخ مناسب ۱۰ امتیاز و برای هر جوابی که از طرف شخص سوال‌کننده به عنوان پاسخ سوالش انتخاب شود ۱۵ امتیاز کسب می‌شود. خود سایت هم دارای مدال‌هایی با رنگ‌های طلایی، نقره‌ای و برنزی می‌باشد. این موارد به صورت خودکار محاسبه می‌شود و به شما مدال‌هایی با نام‌های مختلف داده می‌شود. به عنوان مثال اگر سوالی بپرسید که بیش از ۱۰۰۰ بار دیده شود، یک مدال برنز با عنوان popular question به شما داده می‌شود. به همین ترتیب مدال‌های دیگری با رنگ‌های دیگر به شما اعطا خواهد شد.</p>
<p style="text-align:justify;">این سایت به تازگی بخشی هم برای <a href="http://chat.stackoverflow.com/" target="_blank">گفتگوی آنلاین</a> کاربران راه‌اندازی کرده است، به طوری که می‌توانید به صورت آنلاین در اتاق‌های تخصصی آن با دیگر متخصصان گفتگو نمایید.</p>
<p style="text-align:justify;">از آنجا که کارایی و ایده این سایت بسیار جالب بوده است، سایت‌های هم خانواده‌ای برای آن ساخته شده است که لزوما در زمینه برنامه‌نویسی نیستند. از جمله این ساایت‌ها می‌توان به موارد زیر اشاره کرد :</p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;">۱- <a href="http://serverfault.com/" target="_blank">http://serverfault.com</a> : این سایت از اولین نمونه‌هاست، اگر مشکلاتی در رابطه با پیکربندی سرورهای مختلف دارید می‌توانید در این سایت به پاسخی دست یابید و مشکل خود را حل کنید.</p>
<p style="text-align:justify;">۲- <a href="http://superuser.com/" target="_blank">http://superuser.com</a> : این سایت مربوط است به پرسش و پاسخ برای تمام مشتاقان کامپیوتر در هر ضمینه و در هم پلتفرمی.</p>
<p style="text-align:justify;">۳- <a href="http://webapps.stackexchange.com/" target="_blank">http://webapps.stackexchange.com</a> : این سایت برای متخصصینی که در ضمینه طراحی و پیاده‌سازی نرم‌افزارهای تحت وب کار می‌کنند، پیاده سازی شده است.</p>
<p style="text-align:justify;">۴- <a href="http://area51.stackexchange.com/" target="_blank">http://area51.stackexchange.com</a> : این سایت برای کسانی است که علاقه دارند که سایت‌هایی از خانواده stackoverflow بسازند. در این سایت می‌توان پیشنهاداتی را برای ساخت سایت‌های هم خانواده ارائه داد.</p>
<p style="text-align:justify;">۵- <a href="http://webmasters.stackexchange.com/" target="_blank">http://webmasters.stackexchange.com</a> : این سایت به وب‌مسترها کمک می‌کند تا سوالات خود را در رابطه با نگهداری و پیشبرد وب سایت خود بپرسند.</p>
<p style="text-align:justify;">۶- <a href="http://gamedev.stackexchange.com/" target="_blank">http://gamedev.stackexchange.com</a> : اگر سوالی در رابطه با توسعه بازی‌های کامپیوتری داشتید، می‌توانید از این سایت استفاده کنید.</p>
<p style="text-align:justify;">۷- <a href="http://askubuntu.com/" target="_blank">http://askubuntu.com</a> : در این سایت هر سوالیکه در ضمینه کار با سیستم عامل اوبونتو داشته باشید پاسخ داده می‌شود. دوستانی که از ایم سیستم عامل متن‌باز استفاده می‌کنند می‌توانند کمک زیادی از این سایت بگیرند.</p>
<p style="text-align:justify;">۸- <a href="http://math.stackexchange.com/" target="_blank">http://math.stackexchange.com</a> : این سایت یکی از موارد مورد علاقه بنده است. در این سایت متخصصین زیادی گرد هم آمده‌اند و به سوالات ریاضی پاسخ می‌دهند و در ضمینه‌های گوناگون علم شیرین ریاضیات تبادل نظر می‌کنند.</p>
<p style="text-align:justify;">۹- <a href="http://stats.stackexchange.com/" target="_blank">http://stats.stackexchange.com</a> : این هم سایتی برای بچه‌های رشته آمار و ریاضی. در این سایت سوالات مربوط به تحلیل‌های آماری پاسخ داده می‌شوند.</p>
<p style="text-align:justify;">۱۰- <a href="http://photo.stackexchange.com/" target="_blank">http://photo.stackexchange.com</a> : جمعی از متخصصین عکاسی این سایت را راه‌اندازی کرده‌اند که بتوانند به آموزش این هنر بسیار زیبا بپردازند. من یکی از علاقه‌مندان پر و پا قرص عکاسی هستم.</p>
<p style="text-align:justify;">۱۱- <a href="http://english.stackexchange.com/" target="_blank">http://english.stackexchange.com</a> : اگر سوالی در رابطه با زبان انگلیسی و کاربرد آن دارید این سایت به شما توصیه می‌شود. سوالات گرامری، معناشناسی، نوشتاری و &#8230; در رابطه با زبان انگلیسی را در این سایت بپرسید. از آنجا که آموزش زبان انگلیسی در کشور ما، طرفداران زیادی دارد لذا این سایت یکی از پرکاربردترین این سایت‌ها می‌تواند باشد.</p>
<p style="text-align:justify;">۱۲- <a href="http://cooking.stackexchange.com/" target="_blank">http://cooking.stackexchange.com</a> : این هم سایتی برای آموزش آشپزی که از هم خانواده‌های سایت‌های بالا می‌باشد.</p>
<p style="text-align:justify;">۱۳- <a href="http://gaming.stackexchange.com/" target="_blank">http://gaming.stackexchange.com</a> : اگر از علاقه‌مندان بازی‌های کامپیوتری هستید و در جایی از بازی به مشکلی برخورد کردید، این سایت را به خاطر داشته باشید.</p>
<p style="text-align:justify;">۱۴- <a href="http://www.danatarin.com/" target="_blank">http://www.danatarin.com</a> : این هم یک عضو فارسی زبان این خانواده که به پرسش و پاسخ درباره بحث‌های مختلف مربوط به حوزه IT می‌پردازد.</p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;">سایت‌های هم خانواده دیگری هم وجود دارند که می‌توانیم با یک گشت کوچک در اینترنت به آن‌ها دسترسی پیدا نماییم. امیدوارم که استفاده از چنین سایت‌هایی برای کاربران هدف، مفید واقع شود.</p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/c/'>#C</a>, <a href='http://ramezani.wordpress.com/category/sql-server/administration/'>Administration</a>, <a href='http://ramezani.wordpress.com/category/entity-framework/'>Entity Framework</a>, <a href='http://ramezani.wordpress.com/category/linq/'>LINQ</a>, <a href='http://ramezani.wordpress.com/category/nhibernate/'>NHibernate</a>, <a href='http://ramezani.wordpress.com/category/open-source/'>Open Source</a>, <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a>, <a href='http://ramezani.wordpress.com/category/sql-server/reporting-service/'>Reporting Service</a>, <a href='http://ramezani.wordpress.com/category/software-engineering/'>Software Engineering</a>, <a href='http://ramezani.wordpress.com/category/sql-server/'>SQL Server</a>, <a href='http://ramezani.wordpress.com/category/sql-server/t-sql/'>T-SQL</a>, <a href='http://ramezani.wordpress.com/category/software-engineering/unit-test/'>Unit Test</a>, <a href='http://ramezani.wordpress.com/category/visual-studio/'>Visual Studio</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/400/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=400&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/8sBkdPSFWGI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2010/11/16/stackoverflow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2010/11/stackoverflow-logo-300.png" medium="image">
			<media:title type="html">stackoverflow-logo-300</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2010/11/16/stackoverflow/</feedburner:origLink></item>
		<item>
		<title>چه زمانی برای تولید کوئری در Entity Framework از Entity SQL استفاده نماییم؟</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/kzRF033f7KM/</link>
		<comments>http://ramezani.wordpress.com/2010/11/15/when-sql-entity/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 13:07:16 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[#C]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[EF]]></category>
		<category><![CDATA[entity sql]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=396</guid>
		<description><![CDATA[در ادامه مطلب قبلی با عنوان «روش‌های موجود برای کوئری زدن روی مدل مفهومی در EF» بد ندیدم که این مطلب را در رابطه با زمان استفاده از Entity SQL بنویسم. لطفا به آن توجه نمایید. ۱- زمانی که نیاز داریم یک کوئری در زمان اجرا (runtime) به صورت پویا ساخته شود. البته در این [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=396&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>در ادامه مطلب قبلی با عنوان «<a href="http://ramezani.wordpress.com/2010/06/08/querying-ef/" target="_blank">روش‌های موجود برای کوئری زدن روی مدل مفهومی در EF</a>» بد ندیدم که این مطلب را در رابطه با زمان استفاده از Entity SQL بنویسم. لطفا به آن توجه نمایید.</p>
<p>۱- زمانی که نیاز داریم یک کوئری در زمان اجرا (runtime) به صورت پویا ساخته شود. البته در این موارد می‌توان از متدهای سازنده کوئری‌ها هم استفاده کرد.</p>
<p>۲- زمانی که می‌خواهید یک کوئری را به عنوان بخشی از تعریف مدل استفاده کنید.</p>
<p><strong>نکته مهم: </strong>فقط استفاده از Entity SQL در مدل داده‌ای مجاز است، یعنی می‌توان یک کوئری را به عنوان بخشی از مدل تعریف کرد.</p>
<p>۳- زمانی که از Entity Client برای بازگرداندن یک موجودیت داده‌ای به عنوان مجموعه‌ای از سطرها (rowset) با استفاده از EntityDataReader استفاده کنیم.</p>
<p>۴- اگر یک متخصص حرفه‌ای در زبان SQL هستیم، این زبان برای ما بسیار ساده به نظر خواهد رسید.</p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/c/'>#C</a>, <a href='http://ramezani.wordpress.com/category/entity-framework/'>Entity Framework</a>, <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a> Tagged: <a href='http://ramezani.wordpress.com/tag/ef/'>EF</a>, <a href='http://ramezani.wordpress.com/tag/entity-sql/'>entity sql</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/396/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=396&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/kzRF033f7KM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2010/11/15/when-sql-entity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2010/11/15/when-sql-entity/</feedburner:origLink></item>
		<item>
		<title>دستورالعمل‌های پیش‌پردازشی #C چیستند؟</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/HljlZ4MxwUU/</link>
		<comments>http://ramezani.wordpress.com/2010/10/07/c-preprocessing-directives/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 08:06:27 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[#C]]></category>
		<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[conditional compilation]]></category>
		<category><![CDATA[lexical analysis]]></category>
		<category><![CDATA[preprocessing directives]]></category>
		<category><![CDATA[دستوالعمل پیش‌پردازشی]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=383</guid>
		<description><![CDATA[دستورالعمل‌های پیش‌پردازشی به ما این قابلیت را می‌دهند که به صورت شرطی عملیات کامپایل کردن را انجام دهیم یعنی قابلیت نادیده گرفتن شرطی بخشی از فایل‌های منبع، قرار دادن شرط برای تولید خطا و هشدار، و مشخص کردن بخشی مجزا از کد منبع را برای ما مهیا می‌کنند. واژه «دستورالعمل‌های پیش‌پردازشی» فقط برای همسانی با [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=383&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">دستورالعمل‌های پیش‌پردازشی به ما این قابلیت را می‌دهند که به صورت شرطی عملیات کامپایل کردن را انجام دهیم یعنی قابلیت نادیده گرفتن شرطی بخشی از فایل‌های منبع، قرار دادن شرط برای تولید خطا و هشدار، و مشخص کردن بخشی مجزا از کد منبع را برای ما مهیا می‌کنند. واژه «دستورالعمل‌های پیش‌پردازشی» فقط برای همسانی با زبان‌های برنامه‌نویسی C  و ++C به کار برده شده‌اند. در #C هیچ مرحله مجزایی به عنوان مرحله قبل از پردازش وجود ندارد و این دستورالعمل‌ها در بخشی از فاز تحلیل لغوی (lexical analysis phase) زبان، پردازش می‌شوند.</p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;">در #C دستورالعمل‌های پیش‌پردازشی زیر موجود هستند:</p>
<p style="text-align:justify;">۱- <span style="color:#3366ff;">define#</span> و <span style="color:#3366ff;">undefine#</span> : به ترتیب برای تعریف و حذف کردن علامت‌های قابل فهم برای کامپایل شرطی استفاده میذشوند.</p>
<p style="text-align:justify;">۲-<span style="color:#3366ff;"> if#</span> و <span style="color:#3366ff;">elif#</span> و <span style="color:#3366ff;">else#</span> و <span style="color:#3366ff;">endif#</span> : این‌ها عباراتی هستند که با استفاده از آن‌ها می‌توانیم به صورت شرطی به کامپایلر بفهمانیم که بخشی از کد منبع را در عملیات کامپایل کردن نادیده بگیرد.</p>
<p style="text-align:justify;">۳-  <span style="color:#3366ff;">line#</span> : که برای کنترل کردن شماره خطوطی که برای خطاها و هشدارها منتشر شده‌اند.</p>
<p style="text-align:justify;">۴- <span style="color:#3366ff;">error#</span> و <span style="color:#3366ff;">warning#</span> : به ترتبب برای صادر کردن خطاها و هشدارها استفاده می‌شوند.</p>
<p style="text-align:justify;">۵- <span style="color:#3366ff;">region#</span> و <span style="color:#3366ff;">endregion#</span> : برای مشخص و مجزا کردن بخشی از کد منبع باشد.فکر میکنم از این دستورالعمل بیش از بقیه استفاده می‌شود.</p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;">به تکه کد زیر دقت کنید :</p>
<p style="text-align:left;" dir="ltr">#define A<br />
#undef B<br />
class C<br />
{<br />
#if A<br />
void F() {}<br />
#else<br />
void G() {}<br />
#endif<br />
#if B<br />
void H() {}<br />
#else<br />
void I() {}<br />
#endif<br />
}</p>
<p style="text-align:right;">این تکه کد در زمان کامپایل معادل کد زیر کامپایل می‌شود :</p>
<p style="text-align:left;" dir="ltr">class C<br />
{<br />
void F() {}<br />
void I() {}<br />
}</p>
<p style="text-align:justify;">این دو اگرچه از لحاظ لغوی کاملا با هم متفاوتند ولی از دید قواعد نحوی کاملا معادل یکدیگر می‌باشند.</p>
<p style="text-align:justify;">در اینجا برای فهم بهتر کامپایل شرطی مثالی می‌زنم تا موضوغ قابل فهم‌تر باشد. فرض کنید می‌خواهیم یکی از سرویس‌های نوشته شده توسط ما، در یکی از dll های برنامه‌مان به صورت شرطی دو رفتار مختلف نشان دهد. مثلا این سرویس باید برای دو شرکت خریدار محصول ما متفاوت باشد و برای هر کدام نیاز داریم یک dll مجزا تولید کنیم، در عین حال نمی‌خواهیم به ازای هر کدام یک متد جدا داشته باشیم، در اینجا می‌توانیم از دستورالعمل if# و else# و endif# استفاده کنیم و کامپایل شدن dll را به یک پارامتر وابسته نماییم. این پارامتر را هم می‌توان به کمک define# تعریف کرد و هم می‌توان از بخش properties مربوط به پروژه که به یک dll تبدیل خواهد شد این کار را انجام داد. برای روش دوم باید از صفحه ظاهر شده روی لبه‌ی Build کلیک کرد و در بخش Conditional compilation symbols آن را تعریف می‌کنیم، مثلا می‌توانیم از نام شرکت مورد نظر به عنوان این علامت استفاده کرد.</p>
<p style="text-align:justify;"><a href="http://ramezani.files.wordpress.com/2010/10/conditinal-compilation-symbol.png"><img class="aligncenter size-full wp-image-384" title="conditinal-compilation-symbol" src="http://ramezani.files.wordpress.com/2010/10/conditinal-compilation-symbol.png?w=600&#038;h=244" alt="" width="600" height="244" /></a></p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/c/'>#C</a>, <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a>, <a href='http://ramezani.wordpress.com/category/visual-studio/'>Visual Studio</a> Tagged: <a href='http://ramezani.wordpress.com/tag/conditional-compilation/'>conditional compilation</a>, <a href='http://ramezani.wordpress.com/tag/lexical-analysis/'>lexical analysis</a>, <a href='http://ramezani.wordpress.com/tag/preprocessing-directives/'>preprocessing directives</a>, <a href='http://ramezani.wordpress.com/tag/%d8%af%d8%b3%d8%aa%d9%88%d8%a7%d9%84%d8%b9%d9%85%d9%84-%d9%be%db%8c%d8%b4%e2%80%8c%d9%be%d8%b1%d8%af%d8%a7%d8%b2%d8%b4%db%8c/'>دستوالعمل پیش‌پردازشی</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/383/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/383/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/383/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/383/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/383/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/383/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/383/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/383/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/383/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/383/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/383/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/383/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/383/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/383/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=383&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/HljlZ4MxwUU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2010/10/07/c-preprocessing-directives/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2010/10/conditinal-compilation-symbol.png" medium="image">
			<media:title type="html">conditinal-compilation-symbol</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2010/10/07/c-preprocessing-directives/</feedburner:origLink></item>
		<item>
		<title>خلاص شدن از دست حجم زیاد فایل‌های Log در SQL Server</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/HJeZIAHkZYA/</link>
		<comments>http://ramezani.wordpress.com/2010/09/25/shrink-log-files/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 12:18:55 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[ldf]]></category>
		<category><![CDATA[log file]]></category>
		<category><![CDATA[mdf]]></category>
		<category><![CDATA[shrink]]></category>
		<category><![CDATA[truncate]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=379</guid>
		<description><![CDATA[مدت‌ها است که دارای یک فایل پایگاه داده هستیم که حجم خود فایل داده‌ها (mdf) حدود ۴۵۰ مگابایت است، این در حالی است که حجم فایل log آن حدود ۱۲.۵ گیگابایت است. این حجم زیاد مشکلاتی برای ما ایجاد کرده بود از جمله از بین بردن فضای هارددیسک سرورمان و بالا بودن حجم آن برای [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=379&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>مدت‌ها است که دارای یک فایل پایگاه داده هستیم که حجم خود فایل داده‌ها (mdf) حدود ۴۵۰ مگابایت است، این در حالی است که حجم فایل log آن حدود ۱۲.۵ گیگابایت است. این حجم زیاد مشکلاتی برای ما ایجاد کرده بود از جمله از بین بردن فضای هارددیسک سرورمان و بالا بودن حجم آن برای ارسال ازطریق اینترنت.</p>
<p>همان‌طور که می‌دانید هر پایگاه داده شامل ۲ فایل می‌باشد، فایل اول، فایل اصلی است که اصل داده‌ها روی آن نگهداری می‌شوند (فایلی با پسوند mdf)  و حجم آن عددی کاملا متعارف است. دومین فایل مربوط به ثبت وقایع اتفاق افتاده روی پایگاه داده است و هر تراکنشی که روی پایگاه داده انجام می‌شود روی این فایل ذخیره می‌شود (فایلی با پسوند ldf)، به همین دلیل حجم این فایل به سرعت در حال زیاد شدن است و زمانی که کل فضای هارددیسک را اشغال کند، عملا دیگر هیچ عملیاتی روی پایگاه داده انجام نمی‌شود. لازم به ذکر است که ابزارهایی برای بازیابی داده‌ها از روی این فایل وجود دارد.</p>
<p>فکر می‌کردم که با یک Shrink ساده از طریق خود SQL Server  می‌توانم این فضا را آزاد کنم ولی وقتی این کار را انجام دادم دیدم که فقط حدود یک گیگابایت از حجم آن کم شده که اصلا برای من قابل قبول نبود. به همین منظور کمی در این زمینه مطالعه کردم و به جاهای خوبی رسیدم.</p>
<p>یادمه که در نسخه ۲۰۰۰ می‌توانستیم یک پایگاه داده را Detach کنیم و فایل ldf مربوط به آن را حذف کنیم، زمانیکه دوباره پایگاه داده را attach می‌کردیم یک فایل ldf جدید ساخته می‌شد اما در نسخه‌های بعد از آن چنین امکانی وجود ندارد.</p>
<p>در نسخه‌های جدید برای shrink کردن ابتدا باید عملیات log truncation را انجام دهیم. این عملیات در دو حالت اتفاق می‌افتد:</p>
<p>۱- در مدل بازیابی ساده (simple recovery model) بعد از یک checkpoint اتفاق می‌افتد.</p>
<p>۲- در مدل بازیابی کامل (full recovery model) و مدل بازیابی bulked-log ، پس از پشتیبان‌گیری از log .</p>
<p>هر فایل log دارای یک بخش غیرفعال است که در عملیات  truncate کردن فقط این بخش از پایگاه داده آزاد می‌شود. بخش غیر فعال به بخشی گفته می‌شود که مربوط به اتفاقاتی است که commit شده‌اند و عملا بودن یا نبودن آن‌ها هیچ مزیتی برای ما ندارند.</p>
<p>طبق مواردی که در بالا بیان شد برای اینکه بتوانیم حجم این فایل را کم کنیم باید ابتدا عملیات truncation را انجام دهیم و سپس آن را shrink کنیم. برای truncate کردن باید از فایل log پشتیبان بگیریم. برای انجام این کار از طریق SQL Server Management Studio کاری شبیه به پشتیبان‌گیری معمولی انجام می‌شود، فقط باید نوع پشتیبان‌گیری را از نوع  Transaction Log انتخاب کرد. زمانی که این نوع انتخاب شود می‌توان از بخش Options تعیین کرد که آیا عملیات truncate کردن انجام شود یا خیر. از این بخش مقدار پیش‌فرض را تغییر ندهید. زمانی‌که محل مورد نظر برای پشتیبان‌گیری را انتخاب کردید روی دکمه OK کلیک کنید تا پشتیبان‌گیری انجام شود.</p>
<p>بعد از این مرحله برای shrink کردن پایگاه داده روی نام پایگاه داده کلیک راست ماوس را زده و از بخش Tasks گزینه Shrink و سپس Database را انتخاب نمایید و روی دکمه OK در صفحه جدید کلیک نمایید. با این کار حجم فایل من که حدود ۱۲.۵ گیگابایت بود به حدود ۱۶۰ مگابایت رسید!!!؟؟!!</p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/sql-server/administration/'>Administration</a>, <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a>, <a href='http://ramezani.wordpress.com/category/sql-server/'>SQL Server</a> Tagged: <a href='http://ramezani.wordpress.com/tag/ldf/'>ldf</a>, <a href='http://ramezani.wordpress.com/tag/log-file/'>log file</a>, <a href='http://ramezani.wordpress.com/tag/mdf/'>mdf</a>, <a href='http://ramezani.wordpress.com/tag/shrink/'>shrink</a>, <a href='http://ramezani.wordpress.com/tag/truncate/'>truncate</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/379/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/379/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/379/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/379/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/379/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/379/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/379/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/379/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/379/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/379/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/379/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/379/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/379/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/379/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=379&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/HJeZIAHkZYA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2010/09/25/shrink-log-files/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2010/09/25/shrink-log-files/</feedburner:origLink></item>
		<item>
		<title>نکاتی مختصر و مفید برای معرفی LINQ</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/x_UK2ya1B0g/</link>
		<comments>http://ramezani.wordpress.com/2010/09/13/linq-tips/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 10:56:33 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[#C]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[expression tree]]></category>
		<category><![CDATA[extension method]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[query expression]]></category>
		<category><![CDATA[query operator]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=369</guid>
		<description><![CDATA[سوال ۱) انگیزه اصلی برای به وجود آمدن LINQ چه بوده است؟ ۱- یکپارچگی عمیق بین زبان برنامه‌نویسی و داده‌ها ۲-پیدا کردن راه حلی برای مشکل Object Relational Mapping علاوه بر ساده‌سازی تعامل بین آبجکت‌ها و منابع داده‌ای ۳- یکی کردن و یکپارچگی دسترسی به داده‌ها سوال ۲) انواع LINQ از لحاظ دسترسی به منابع [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=369&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><strong>سوال ۱)</strong> انگیزه اصلی برای به وجود آمدن LINQ چه بوده است؟</p>
<p style="text-align:justify;">۱- یکپارچگی عمیق بین زبان برنامه‌نویسی و داده‌ها</p>
<p style="text-align:justify;">۲-پیدا کردن راه حلی برای مشکل Object Relational Mapping علاوه بر ساده‌سازی تعامل بین آبجکت‌ها و منابع داده‌ای</p>
<p style="text-align:justify;">۳- یکی کردن و یکپارچگی دسترسی به داده‌ها</p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;"><strong>سوال ۲) </strong>انواع LINQ از لحاظ دسترسی به منابع اطلاعاتی کدامند؟</p>
<p style="text-align:justify;">۱- کار با داده‌های حافظه (LINQ to Dataset , LINQ to Object)</p>
<p style="text-align:justify;">۲- کار با پایگاه داده (LINQ to SQL)</p>
<p style="text-align:justify;">۳- کار با مستندات XML</p>
<p style="text-align:justify;">۴- کار با file system و منابع دیگر مانند Active Directory</p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;"><strong>نکته ۱</strong> : LINQ در عمل چندین دنیای مختلف را به هم چسباند. استفاده XML با آبجکتها، آبجکتها با داده های به هم مرتبط و داده‌های به هم مرتبط با XML از جمله وظایفی است که LINQ آنها را ساده کرده است.</p>
<p style="text-align:justify;"><strong>نکته ۲</strong> : گرامر (syntax) و مفاهیم مربوط به LINQ در تمامی انواع استفاده آن مشترک است.</p>
<p style="text-align:justify;"><strong>نکته ۳</strong> : زمانی که با LINQ کار می‌کنیم در دنیایی با انواع strong کار می‌نماییم که دارای فواید زیر است :</p>
<p style="text-align:justify;">الف &#8211; قابلیت چک شدن در زمان compile و کم شدن امکان بروز exception</p>
<p style="text-align:justify;">ب &#8211; استفاده از خصوصیت Intellisense در محیط Visual Studio</p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;"><strong>نکته ۴</strong> : LINQ شامل دو بخش مکمل می‌باشد، اول مجموعه‌ای از ابزارها که با داده‌ها کار می‌کنند و دوم مجموعه‌ای از extesion ها برای زبان برنامه‌نویسی</p>
<p style="text-align:justify;"><strong>نکته ۵</strong> : مبانی LINQ شامل چند بلوک می‌شود که به آن امکان گسترش‌پذیر بودن را می‌دهد :</p>
<p style="text-align:justify;">الف &#8211; query operator    ب &#8211; query expression    پ &#8211; expression tree</p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;"><strong>نکته ۶</strong> : ما میتوانیم پیاده‌سازی خودمان را برای LINQ داشته باشیم که این باعث گسترش‌پذیری آن است درست مانند LINQ to NHibernate که توسط توسعه‌دهندگان NHibernate نوشته شده است.</p>
<p style="text-align:justify;"><strong>نکته ۷ </strong>: می‌توان انواع گسترده‌ای از datasource ها را به LINQ متصل کرد مانند سیستم فایل، Active Directory ، WMI ، Windows Event Log و یا API های دیگر.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<div class="mceTemp mceIEcenter" style="text-align:justify;">
<dl class="wp-caption aligncenter">
<dt class="wp-caption-dt"><a href="http://ramezani.files.wordpress.com/2010/09/linq.gif"><img class="size-full wp-image-371" title="LINQ" src="http://ramezani.files.wordpress.com/2010/09/linq.gif?w=600&#038;h=493" alt="" width="600" height="493" /></a></dt>
<dd class="wp-caption-dd">ساختار LINQ</dd>
</dl>
</div>
<p style="text-align:justify;">
<p style="text-align:justify;"><strong>نکته ۸ </strong>: LINQ رویکردی اعلانی (declerative) دارد یعنی به مراحل انجام کار، کاری ندارد و فقط نتیجه را می‌خواهد.</p>
<p style="text-align:justify;"><strong>نکته ۹ </strong>: سه روش برای نوشتن کوئری‌های LINQ وجود دارد که عبارتند از :</p>
<p style="text-align:justify;">الف &#8211; قالب Query Expression</p>
<p style="text-align:justify;">ب &#8211; قالب Extension Method</p>
<p style="text-align:justify;">پ &#8211; ترکیبی از دو روش قبل</p>
<p style="text-align:justify;">لازم به ذکر است که معمولا روش اول به روش‌های دیگر ترجیح داده می‌شود.</p>
<p style="text-align:justify;"><strong>مثال برای روش اول )</strong></p>
<p style="text-align:left;" dir="ltr">int[] nums = new int[] {0,4,2,6,3,7,9}</p>
<p style="text-align:left;" dir="ltr">var result = from n in nums</p>
<p style="padding-left:90px;text-align:left;" dir="ltr">where n &lt; 5</p>
<p style="padding-left:90px;text-align:left;" dir="ltr">orderby n</p>
<p style="padding-left:90px;text-align:left;" dir="ltr">select n;</p>
<p style="padding-left:90px;text-align:justify;"><strong>مثال برای روش دوم)</strong></p>
<p style="text-align:left;" dir="ltr">var result2 = nums</p>
<p style="padding-left:90px;text-align:left;" dir="ltr">.Where ( n =&gt; n&lt;5)</p>
<p style="padding-left:90px;text-align:left;" dir="ltr">.OrderBy ( n =&gt; n);</p>
<p style="padding-left:90px;text-align:justify;"><strong>مثال برای روش سوم)</strong></p>
<p style="text-align:left;" dir="ltr">var result3 = ( from n in nums</p>
<p style="padding-left:90px;text-align:left;" dir="ltr">where n &lt; 5</p>
<p style="padding-left:90px;text-align:left;" dir="ltr">orderby n</p>
<p style="padding-left:90px;text-align:left;" dir="ltr">select n).Distinct();</p>
<p style="padding-left:90px;text-align:justify;">
<p style="padding-left:90px;text-align:justify;">
<p style="padding-left:90px;text-align:justify;"><strong>نکته ۱۰ </strong>: کامپایلر #C تمام کوئری‌ها را به Extension Method تبدیل می‌کند و آن را اجرا می‌نماید بنابراین روش اول فقط برای کاربرپسند بودن و قابل فهم‌تر بودن به #C اضافه شده است.</p>
<p style="padding-left:90px;text-align:justify;"><strong>نکته ۱۱ </strong>: هر جایی که استفاده از Query Expression مقدوراست بهتر است که از آن روش استفاده شود. لازم به ذکر است که این روش تمامی عملگرهای استاندارد کوئری موجود را پشتیبانی نمی‌کند و در این مواقع لاجرم باید از روش دوم استفاده نماییم.</p>
<p style="padding-left:90px;text-align:justify;"><strong>نکته ۱۲</strong> : یکی از لغزش‌های LINQ ترتیب نوشتن عملگرها بر خلاف SQL است، یعنی به جای اینکه به ترتیب select-from-where باشد به صورت from-where-select است. البته دلیل این کار این است که این روش پشتیبانی بهتری از Intellisense در جایی که نیاز به آن است انجام می‌دهد، در ضمن در #C نوع متغیر در سمت راست آن تعریف می‌شود.</p>
<p style="padding-left:90px;text-align:justify;"><strong>نکته ۱۳ </strong>: اگر نیازی برای استفاده از روش سوم یا به عبارتی ترکیبی از دو روش اصلی دارید، بهتر است که Extension Method ها را به انتهای عبارت انتقال دهید.</p>
<p style="padding-left:90px;text-align:justify;"><strong>نکته ۱۴ </strong>: مایکروسافت مجموعه‌ای از Extension Method ها را تعریف کرده (به standard query operator معروف است) که این ها متدها را به هر نوعی که IEnumerable را پیاده‌سازی کرده باشد، معرفی می‌شود تا به ما اجازه دهد تا عملگرهای کوئری را بنویسیم.</p>
<p style="padding-left:90px;text-align:justify;"><strong>نکته ۱۵</strong> : تمامی انواع مجموعه‌ای (collection type) توکار NET. واسط IEnumerable را پیاده‌سازی کرده است بنابراین روی تمام آن‌ها می‌توان کوئری‌های موردنظر را اجرا کرد.</p>
<p style="padding-left:90px;text-align:justify;"><strong>نکته ۱۶</strong> : فرم کلی گرامر Extension Method ها به صورت زیر است :</p>
<p style="padding-left:90px;text-align:justify;" dir="ltr">[Source Collection].[Extension Method].[Extension Method]&#8230;;</p>
<p style="padding-left:90px;text-align:justify;">به عنوان مثال :</p>
<p style="padding-left:90px;text-align:justify;" dir="ltr">[Source].Where([Lambda Expression]).Select([Lambda Expression]);</p>
<p style="padding-left:90px;text-align:justify;" dir="ltr">
<p style="padding-left:90px;text-align:justify;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>در ادامه بد ندیدم مطالبی را که دوست عزیز آقای علی اقدم در بخش نظرات نوشته‌اند را در پست نوشته شده بیفزایم :</p>
<p>یک  نکته راجب نکته ۱۴ وجود دارد و اون هم اینه که عملگرهای استاندارد  پرس و  جو به انواعی که واسط IEnumerable و یاIQueryable را پیاده سازی کرده   باشند،معرفی می شوند.</p>
<p>همچنین بهتر است نکات زیر به لیست اضافه شود</p>
<p><strong>نکته ۱۷ </strong>:  وقتی یک پرس و جو، یک مقدار واحد را برمی گرداند مثل جمع (Sum)  و یا  میانگین (Average) نتیجه پرس و جو در همان لحظه برگردانده می شود ولی   زمانی که خروجی پرس وجو توالی از اطلاعات است،اجرای پرس و جو به عقب می   افتد مثلا یک شئ IEnumerable.</p>
<p><strong>نکته ۱۸</strong> : به قابلیت چک شدن دستورات لینک در زمان کد نویسی  Language-Level گفته می شود که جان توسعه دهندگان را از خطایابی خلاص می  کند.</p>
<p><strong>نکته ۱۹</strong> : شاید شما فکر کنید که LINQ ابزاری است که بتوان با آن کوئری  های برای  آرایه و مجموعه ها ، پایگاه داده و یا XML پیاده سازی کرد ولی این  تعریف  درستی از LINQ نیست بلکه یک تکنولوژی است که بتوان Provider های را  پیاده  سازی کرد تا بوسیله آن با پایگاه داده های مختلف به یک صورت ثابت  ارتباط  برقرار کرد به طور مثال Provider های مانند LINQ to SQL  و یا LINQ  to XML  که توسط تیم توسعه .NET پیاده سازی شده اند که به این مدل ، مدل  Provider  اطلاق می شود (LINQ provider model).برای مشاهده انواع مختلفی از  این  Provider ها به لینک زیر مراجعه کنید :<br />
<a rel="nofollow" href="http://aliaghdam.blogspot.com/2010/08/linq.html">http://aliaghdam.blogspot.com/2010/08/linq.html</a></p>
<p><strong>نکته ۲۰</strong> : توجه داشته باشید که LINQ را به صورت لینک (Link) تلفط کنید چون به وفور دیده می شود که الفاظی مانند لینکیو و… تلفط میشود.</p>
<p style="text-align:justify;">
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/c/'>#C</a>, <a href='http://ramezani.wordpress.com/category/linq/'>LINQ</a>, <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a> Tagged: <a href='http://ramezani.wordpress.com/tag/expression-tree/'>expression tree</a>, <a href='http://ramezani.wordpress.com/tag/extension-method/'>extension method</a>, <a href='http://ramezani.wordpress.com/tag/orm/'>orm</a>, <a href='http://ramezani.wordpress.com/tag/query-expression/'>query expression</a>, <a href='http://ramezani.wordpress.com/tag/query-operator/'>query operator</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/369/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=369&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/x_UK2ya1B0g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2010/09/13/linq-tips/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2010/09/linq.gif" medium="image">
			<media:title type="html">LINQ</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2010/09/13/linq-tips/</feedburner:origLink></item>
		<item>
		<title>چطور NHibernate را برای راه‌اندازی اولیه پیکربندی کنیم؟</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/ar7TdjMw0_o/</link>
		<comments>http://ramezani.wordpress.com/2010/08/16/nhibernate-config-summary/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 06:25:26 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[ISessionFactory]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[xml mapping]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=364</guid>
		<description><![CDATA[در این نوشته قصد دارم تا مراحل مورد نیازبرای پیکربندی NHibernate برای راه‌اندازی اولیه را به صورت خیلی خلاصه بیان کنم. مراحل مورد نظر به شرح زیر می‌باشد: ۱- اگر ADO.NET data provider شما هنوز نصب نشده، آن را دانلود و نصب نمایید. اگر از SQL Server استفاده می‌کنید می‌توانید ازاین مرحله چشم‌پوشی کنید. ۲- [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=364&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>در این نوشته قصد دارم تا مراحل مورد نیازبرای پیکربندی NHibernate برای راه‌اندازی اولیه را به صورت خیلی خلاصه بیان کنم. مراحل مورد نظر به شرح زیر می‌باشد:</p>
<p>۱- اگر ADO.NET data provider شما هنوز نصب نشده، آن را دانلود و نصب نمایید. اگر از SQL Server استفاده می‌کنید می‌توانید ازاین مرحله چشم‌پوشی کنید.</p>
<p>۲- پیشنهاد می‌شود که فایل log4net.dll را برای عملیات logging به پروژه خود بیفزایید. البته این کار کاملا اختیاری است.</p>
<p>۳- property های مربوط به دسترسی به پایگاه داده مانند ConnectionString ، Dialect و &#8230; را مشخص نمایید.</p>
<p>۴- به NHibernate اجازه دهید که این تنظیمات را از روی فایل Hibernate.cfg.xml که در دایرکتوری کنونی ساخته شده است، بخواند.</p>
<p>۵- نمونه‌ای از Configuration در برنامه خود بسازید، متد ()Configure را فراخوانی کنید، کلاس‌های نگاشت‌یافته را با استفاده از()HbmSerializer.Default.Serialize و AddInputStream (در هنگام استفاده از attribute ها در NET.) بارگزاری نمایی یا این کار را توسط فایل‌های نگاشت Xml و با استفاده از متدهای ()AddAssembly و ()AddClass یا ()AddXmlFile انجام دهید.</p>
<p>۶- یک نمونه  ISessionFactory از Configuration توسط فراخوانی ()BuildSessionFactory بسازید.</p>
<p>۷- فراموش نکنید که نمونه ISessionFactrory را پس از اتمام کار ببندید. این کار توسط ()sessionFactory.Close انجام می‌شود. اغلب این کار در زمان بستن برنامه صورت می‌پذیرد.</p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/nhibernate/'>NHibernate</a>, <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a> Tagged: <a href='http://ramezani.wordpress.com/tag/configuration/'>configuration</a>, <a href='http://ramezani.wordpress.com/tag/isessionfactory/'>ISessionFactory</a>, <a href='http://ramezani.wordpress.com/tag/orm/'>orm</a>, <a href='http://ramezani.wordpress.com/tag/xml-mapping/'>xml mapping</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/364/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=364&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/ar7TdjMw0_o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2010/08/16/nhibernate-config-summary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2010/08/16/nhibernate-config-summary/</feedburner:origLink></item>
		<item>
		<title>مشکلات پیش رو پس از راه‌اندازی Lazy Loading در NHibernate</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/-YxS0rEfq7Y/</link>
		<comments>http://ramezani.wordpress.com/2010/08/02/lazy-loading-problem/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 12:37:19 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[eager loading]]></category>
		<category><![CDATA[Lazy Loading]]></category>
		<category><![CDATA[n + 1 select]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=359</guid>
		<description><![CDATA[در نسخه جدید NHibernate رفتار پیش‌فرض برای بارگذاری داده‌ها استفاده از روش Lazy Loading است و تا زمانی که به سطحی از داده‌ها نیاز نداشته باشیم، آن سطح از داده‌ها در حافظه بارگذاری نخواهد شد. راه‌اندازی Lazy Loading بدون مدیریت درست آن ممکن است باعث بروز خطاهایی در بارگذاری و استفاده از داده‌ها در برنامه [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=359&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>در نسخه جدید NHibernate رفتار پیش‌فرض برای بارگذاری داده‌ها استفاده از روش Lazy Loading است و تا زمانی که به سطحی از داده‌ها نیاز نداشته باشیم، آن سطح از داده‌ها در حافظه بارگذاری نخواهد شد.</p>
<p>راه‌اندازی Lazy Loading بدون مدیریت درست آن ممکن است باعث بروز خطاهایی در بارگذاری و استفاده از داده‌ها در برنامه ما شود. این عبور موجب به وجود آمدن برخی استثنائات در برنامه خواهد شد، لذت در هنگام استفاده از آن باید به دقت عمل نمود. از مشکلات پیش رو می‌توان به موارد زیر اشاره کرد:</p>
<p>۱- <strong>بارگذاری نشدن داده‌های مرتبط با آبجکت مورد نظر ما:</strong></p>
<p>به عنوان مثال در نمونه روبرو اگر داده‌های مربوط به کلاس Order را در حافظه بارگذاری نماییم یا به طور دقیق‌تر اگر <a href="http://ramezani.files.wordpress.com/2010/08/lazyloadingproblem.png"><img class="alignleft size-medium wp-image-360" title="LazyLoadingProblem" src="http://ramezani.files.wordpress.com/2010/08/lazyloadingproblem.png?w=300&#038;h=242" alt="" width="300" height="242" /></a>توسط متد Get یک سفارش (order) را از پایگاه داده خوانده و در حافظه قرار دهیم و session را ببندیم، در این صورت در هنگام فراخوانی یکی از مشخصه‌های مرتبط با کلاس‌های مرتبط با این کلاس با خطا مواجه خواهیم شد. مثلا برای اجرای این خط از کد</p>
<p style="text-align:left;" dir="ltr">
<p style="text-align:left;" dir="ltr">
<p style="text-align:left;" dir="ltr">
<p style="text-align:left;" dir="ltr">
<p style="text-align:left;" dir="ltr">string name = Order.Customer.CompanyName;</p>
<p style="text-align:right;">با خطا مواجه خواهیم شد. دلیل این است که در Lazy Loading و در اجرای متد Get کوئری ساخته شده دارای هیچ join ای با هیچ کدام از جداول معادل کلاس‌های دیگر نیست و عملا ما به داده‌های کلاس‌های دیگر دسترسی نداشته‌ایم.</p>
<p style="text-align:right;">
<p style="text-align:right;">۲- <strong>مشکل n + 1 عبارت select :</strong></p>
<p style="text-align:right;">اگر پس از بارگذاری یک Order بخواهیم به آیتم‌های OrderLine دسترسی پیدا کنیم، در این صورت به ازای هر آیتمی که به آن دسترسی پیدا می‌کنیم یک عبارت select ساخته می‌شود. بنابراین اگر دارای n آیتم باشیم  و بخواهیم به تمام آن‌ها دسترسی پیدا کنیم، یک عبارت select برای خود order و n عبارت برای تمام آیتم‌های مرتبط با آن ساخته می‌شود که در نتیجه دارای n+1 عبارت select خواهیم بود (دلیل نامگذاری). این امر می‌تواند عملیات واکشی داده‌ها را کند نماید و سبب سرباری روی وایگاه داده می‌شود.</p>
<p style="text-align:right;">فرض کنید دارای یک collection هستید که دارای چند صد آیتم باشد و ما فقط نیاز به دسترسی به یک یا دو مورد از آن‌ها هستیم. اگر بخواهیم تمام آیتم‌ها را بارگذاری کنیم مقادیر زیادی از منابع خود را از دست خواهیم داد اما خوشبختانه NHibernate دارای راه حلی برای این مورد است، این راه حل Eager Loading نام دارد.</p>
<p><strong><br />
</strong></p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/nhibernate/'>NHibernate</a>, <a href='http://ramezani.wordpress.com/category/open-source/'>Open Source</a>, <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a> Tagged: <a href='http://ramezani.wordpress.com/tag/eager-loading/'>eager loading</a>, <a href='http://ramezani.wordpress.com/tag/lazy-loading/'>Lazy Loading</a>, <a href='http://ramezani.wordpress.com/tag/n-1-select/'>n + 1 select</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/359/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=359&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/-YxS0rEfq7Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2010/08/02/lazy-loading-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2010/08/lazyloadingproblem.png?w=300" medium="image">
			<media:title type="html">LazyLoadingProblem</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2010/08/02/lazy-loading-problem/</feedburner:origLink></item>
		<item>
		<title>بازی وبلاگی نیازهای نیروی انسانی برنامه‌نویس</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/lOK6SDHmjSA/</link>
		<comments>http://ramezani.wordpress.com/2010/07/25/hr-weblog-game/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 12:45:25 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[human resources]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[منابع انسانی]]></category>
		<category><![CDATA[نیروی کار]]></category>
		<category><![CDATA[برنامه‌نویس]]></category>
		<category><![CDATA[توسعه دهنده]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=356</guid>
		<description><![CDATA[در پاسخ به بازی وبلاگی که دوست عزیزم آقای محبی آغاز کردند، بد ندیدم که من هم نظرات خودم را بنویسم. در این مورد، مطالب زیر به ذهنم رسید. خیلی از موارد را دوستان در وبلاگ‌های خودشان نوشتند به همین دلیل ممکن است برخی موارد تکراری باشند: ۱- دوست دارم به عنوان یک برنامه‌نویس به [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=356&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>در پاسخ به <a href="http://afsharm.blogspot.com/2010/07/what-hr-needs.html" target="_blank"><strong>بازی وبلاگی</strong></a> که دوست عزیزم آقای محبی آغاز کردند، بد ندیدم که من هم نظرات خودم را بنویسم. در این مورد، مطالب زیر به ذهنم رسید. خیلی از موارد را دوستان در وبلاگ‌های خودشان نوشتند به همین دلیل ممکن است برخی موارد تکراری باشند:</p>
<p>۱- دوست دارم به عنوان یک برنامه‌نویس به صورت متمرکز روی موارد خاص کار کنم نه اینکه هر روز بر روی یک پروژه و با نقشی جدید</p>
<p>۲- نمی‌پسندم که بیش از توانایی یک نفر از من توقع داشته باشند.</p>
<p>۳- برای من مهم است که در شرکت مورد نظرم به تکنولوژی‌های روز دنیا توجه شود. کارفرما باید بداند که آموزش بخشی از کار ماست. اگر قرار باشد که بدون مطالعه، هر روز صبح تا شب فقط کد بزنیم فقط کارفرما از این بازی سود می‌برد و بعد از مدت کوتاهی باید به دنبال کار دیگری باشیم!</p>
<p>۴- دوست ندارم در شرکتی که کار می‌کنم حکومت نظامی برقرار باشد.در چنین شرکت‌های اگه سرت رو از مونیتور برگردونی یعنی داری در امانت، خیانت می‌کنید. مطمئنا چنین مکان‌هایی پس از گذشت زمان کوتاهی تبدیل ب کابوس برای برنامه‌نویس‌ها خواهد شد.</p>
<p>۵- ترجیح می‌دهم در فضای کاری که اعتماد به نفر استخدام شده وجود ندارد، کار نکنم.</p>
<p>۶- بعضی روزها شده که در شرکت بیش از ۱۲ ساعت کار می‌کنی ولی هیچ مزایایی برای شما وجود ندارد(اضافه‌کار معنی خارجی ندارد) ولی خدا نکنه که یک یا چند روز نیاز داشته باشی که به خودت و خانواده برسی &#8230;</p>
<p>۷- دوست دارم به عنوان یک برنامه‌نویس دارای موقعیت شغلی مشخص شده باشم نه اینکه هر روز یک نقش جدید</p>
<p>۸- کارفرمایان محترم توجه داشته باشند که <strong>کار خوبه ولی به اندازه</strong>. (الویت مسائل خانوادگی در راس امور است مگر در موارد خاص، البته منظورم این نیست که بی‌مسئولیت باشیم بلکه بدانیم که ارجحیت با چه موردی است)</p>
<p>۹- کارفرمای محترم برنامه‌نویس هم آدم است! احتمال اشتباه در کار وجود دارد.</p>
<p>۱۰- معمولا در شرکت‌ها مشخص نیست که یک برنامه‌نویس چگونه باید مراحل ترقی را طی کند. اغلب اوقات این امر فقط با تغییر شرکت و کار در جاهای جدید توسط برنامه‌نویس انجام می‌پذیرد.</p>
<p>۱۱- برنامه‌نویس‌ها را نباید با توجه به سواد آکادمیکشان رده‌بندی کرد. داشتیم مواقعی که شرکتی نفر جدیدی را با حقوق بسیار بالاتر نسبت به یک نفر باتجربه‌تر خود استخدام می‌کند فقط و فقط به خاطر اینکه از فلان دانشگاه فلان مدرک رو گرفته ولی اصلا در عمل هیچ کاری رو بلد نیست. به نظر این بی احترامی بزرگی به بقیه افراد یک تیم نرم‌افزاریست.</p>
<p>۱۲- در رابطه با کار در جاهای دولتی هم که ترجیح می‌دم که چیزی بیان نکنم.</p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a>, <a href='http://ramezani.wordpress.com/category/software-engineering/'>Software Engineering</a> Tagged: <a href='http://ramezani.wordpress.com/tag/developer/'>developer</a>, <a href='http://ramezani.wordpress.com/tag/human-resources/'>human resources</a>, <a href='http://ramezani.wordpress.com/tag/programmer/'>programmer</a>, <a href='http://ramezani.wordpress.com/tag/%d9%85%d9%86%d8%a7%d8%a8%d8%b9-%d8%a7%d9%86%d8%b3%d8%a7%d9%86%db%8c/'>منابع انسانی</a>, <a href='http://ramezani.wordpress.com/tag/%d9%86%db%8c%d8%b1%d9%88%db%8c-%da%a9%d8%a7%d8%b1/'>نیروی کار</a>, <a href='http://ramezani.wordpress.com/tag/%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%e2%80%8c%d9%86%d9%88%db%8c%d8%b3/'>برنامه‌نویس</a>, <a href='http://ramezani.wordpress.com/tag/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%af%d9%87%d9%86%d8%af%d9%87/'>توسعه دهنده</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/356/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=356&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/lOK6SDHmjSA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2010/07/25/hr-weblog-game/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2010/07/25/hr-weblog-game/</feedburner:origLink></item>
		<item>
		<title>آبجکت‌های تولید کوئری در Entity Framework</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/1898AZLrfqI/</link>
		<comments>http://ramezani.wordpress.com/2010/07/19/ef-querying-objects/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 10:22:13 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[EF]]></category>
		<category><![CDATA[orm]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=351</guid>
		<description><![CDATA[ابزارهای ADO.NET EDM یک کلاس مشتق شده از ObjectContext تولید می‌کنند که جایگزین entity container تعریف شده در مدل مفهومی می‌شود. کلاس ObjectContext کوئری‌های مقابل یک مدل مفهومی را که موجودیت‌ها را به عنوان آبجکت برمی‌گرداند، پشتیبانی می‌کند. EF کوئری‌های آبجکتی را پشتیبانی می‌کند. کوئری‌ها می‌توانند با استفاده از Entity SQL ، LINQ و متدهای [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=351&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>ابزارهای ADO.NET EDM یک کلاس مشتق شده از ObjectContext تولید می‌کنند که جایگزین entity container تعریف شده در مدل مفهومی می‌شود. کلاس ObjectContext کوئری‌های مقابل یک مدل مفهومی را که موجودیت‌ها را به عنوان آبجکت برمی‌گرداند، پشتیبانی می‌کند. EF کوئری‌های آبجکتی را پشتیبانی می‌کند. کوئری‌ها می‌توانند با استفاده از Entity SQL ، LINQ و متدهای سازنده کوئری آبجکتی، ترکیب شوند.</p>
<p>در مدل مفهومی، موجودیت‌ها با استفاده از پیوند (association) به هم متصل هستند. در لایه آبجکت، این ارتباطات توسط property هایی که مجموعه‌ای از آبجکت‌های مرتبط بر اساس موجودیت مرجع را در معرض قرار می‌دهند، پیاده‌سازی می‌شوند.</p>
<p>نکته ۱- اگر خصوصیت LazyLoadingEnabled در کلاس ObjectContext برابر false تنظیم شده باشد، آبجکت‌های ارتباط داده شده به صورت خودکار بارگزاری نمی‌شوند و باید متد Load را برای بارگزاری داده‌های آبجکت مرتبط در ObjectContext فراخوانی کرد.</p>
<p>نکته ۲- می‌توان یک آدرس کوئری مشخص کرد که تعریف می‌کند که کدام آبجکت‌های مرتبط با آبجکت‌های بازگشتی بارگزاری می‌شود.</p>
<p>نکته ۳- می‌توانیم مجموعه‌ای از مدل‌ها را تعریف کنیم که از sp ها استفاده می‌کند که کوئری‌ها را روی منبع داده‌ای اجرا نماید. مجموعه‌های خروجی از این sp ها به موجودیت‌های موجود در مدل مفهومی نگاشت می‌شوند.</p>
<p>نکته ۴- EF تغییرات داده‌های موجودیت‌ها را ردیابی می‌کند و این قابلیت را می‌دهد که تغییرات را روی منبع داده ثبت کنیم مثلا</p>
<p dir="ltr">schoolContext.SaveChanges();</p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/entity-framework/'>Entity Framework</a>, <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a> Tagged: <a href='http://ramezani.wordpress.com/tag/ef/'>EF</a>, <a href='http://ramezani.wordpress.com/tag/orm/'>orm</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/351/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=351&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/1898AZLrfqI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2010/07/19/ef-querying-objects/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2010/07/19/ef-querying-objects/</feedburner:origLink></item>
		<item>
		<title>ساخت پایگاه داده از روی مدل مفهومی در Entity Framework</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/BX_PSUdlFek/</link>
		<comments>http://ramezani.wordpress.com/2010/07/03/ef-create-db-from-model/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 10:55:23 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[data access layer]]></category>
		<category><![CDATA[orm]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=348</guid>
		<description><![CDATA[می‌توان ابتدا مدل مفهومی را ساخت و سپس از روی آن با ابزارهای موجود پایگاه داده معادل را به وجود آورد. نام این ابزار Create Database Wizard می‌باشد. این ویزارد برای اجرا شدن به موارد زیر نیاز دارد: ۱- مدل مفهومی معتبر: این ویزارد نیازی به وجود فایل edmx. ندارد بلکه کافیست محتوای csdl فایل [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=348&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>می‌توان ابتدا مدل مفهومی را ساخت و سپس از روی آن با ابزارهای موجود پایگاه داده معادل را به وجود آورد. نام این ابزار Create Database Wizard می‌باشد.</p>
<p>این ویزارد برای اجرا شدن به موارد زیر نیاز دارد:</p>
<p>۱- <strong>مدل مفهومی معتبر:</strong> این ویزارد نیازی به وجود فایل edmx. ندارد بلکه کافیست محتوای csdl فایل edmx. معتبر باشد.</p>
<p>۲- <strong>دسترسی کافی برای افزودن فایل‌ها به پروژه VS کنونی: ‌</strong>پس از کامل شدن عملیات، ویزارد یک فایل sql. را به پروژه می‌افزاید که شامل DDL مربوط برای ساخت پایگاه داده است.</p>
<p>۳- <strong>وجود ارتباط با پایگاه داده:</strong> فقط نسخه‌های ۲۰۰۸ ، ۲۰۰۵ ، CE  و Azure پشتیبانی می‌شوند.</p>
<p>به محض تکمیل موارد بالا، ویزارد کارهای زیر را انجام می‌دهد:</p>
<p>۱- SSDL  و MSL که معادل CSDL تهیه شده است، ساخته می‌شود. فایل edmx. با SSDL و MSL تولید شده به‌روزرسانی می‌شود.</p>
<p>۲- DDL قابل اجرا در یک فایل sql. ذخیره می‌شود. این فایل از استراتژی table-per-type پیروی می‌کند.</p>
<p>۳- اطلاعات مربوط به connection string به فایل پیکربندی برنامه اضافه می‌شود.</p>
<p>نکته مهم این است که DDL ساخته شده به صورت خودکار اجرا نمی‌شود و باید آن را به صورت دستی اجرا کرد.</p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/entity-framework/'>Entity Framework</a>, <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a> Tagged: <a href='http://ramezani.wordpress.com/tag/data-access-layer/'>data access layer</a>, <a href='http://ramezani.wordpress.com/tag/orm/'>orm</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/348/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=348&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/BX_PSUdlFek" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2010/07/03/ef-create-db-from-model/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2010/07/03/ef-create-db-from-model/</feedburner:origLink></item>
		<item>
		<title>اولین تجربه واقعی همکاری با یک تیم نرم‌افزار خارجی</title>
		<link>http://feedproxy.google.com/~r/ramezani/~3/cBawtg8pvBc/</link>
		<comments>http://ramezani.wordpress.com/2010/06/27/persian-screwturn-wiki/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 13:07:30 +0000</pubDate>
		<dc:creator>Masoud Ramezani</dc:creator>
				<category><![CDATA[#C]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Persian Contents]]></category>
		<category><![CDATA[persian support]]></category>
		<category><![CDATA[screwturn wiki]]></category>
		<category><![CDATA[نرم‌افزار ویکی]]></category>

		<guid isPermaLink="false">http://ramezani.wordpress.com/?p=340</guid>
		<description><![CDATA[چند وقتی بود که دوست داشتم به صورت جدی‌تر روی یک پروژه متن‌باز کار کنم. دوست داشتم این پروژه، یک پروژه کاربردی باشد که با #C پیاده‌سازی شده است. مدتی بود که در شرکت خودمان برای نگهداری و دسته‌بندی برخی اطلاعات عمومی از یک نرم‌افزار متن‌باز ویکی استفاده می‌کردیم. این نرم‌افزار تحت وب با استفاده [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=340&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">چند وقتی بود که دوست داشتم به صورت جدی‌تر روی یک پروژه متن‌باز کار کنم. دوست داشتم این پروژه، یک پروژه کاربردی باشد که با #C پیاده‌سازی شده است.<a href="http://ramezani.files.wordpress.com/2010/06/screwturn.png"><img class="alignleft size-full wp-image-341" title="screwturn" src="http://ramezani.files.wordpress.com/2010/06/screwturn.png?w=150&#038;h=150" alt="" width="150" height="150" /></a><br />
مدتی بود که در شرکت خودمان برای نگهداری و دسته‌بندی برخی اطلاعات عمومی از یک نرم‌افزار متن‌باز ویکی استفاده می‌کردیم. این نرم‌افزار تحت وب با استفاده از ASP .NET و #C پیاده‌سازی شده بود. از ویژگی‌های این نرم‌افزار سادگی کار با آن و امکانات بسیار قوی موجود در آن بود به طوری که در عین سادگی، بهترین و کاملترین امکانات را به کاربر ارائه می‌داد. ما بسیاری از اطلاعات عمومی شرکت را با استفاده از این نرم‌افزار با همکاران به اشتراک گذاشته ایم.<br />
از ظاهر امر بر می‌آمد که روی بحث محلی‌سازی این نرم‌افزار برای زبان فارسی کاری صورت نگرفته است به همین دلیل روی اینترنت جستجوهایی را انجام دادم و از روی وب سایت مربوط به این نرم‌افزار هم چرخی زدم و دیدم افرادی بوده‌اند که پیشنهاد ترجمه متون نرم‌افزار را به مدیر این پروژه داده‌اند اما تا آن موقع کاری در این رابطه صورت نگرفته بود.<br />
مشتاق شدم که این نرم‌افزار خوب را برای کاربران فارسی زبان محلی‌سازی نمایم به همین خاطر بود که با مدیر این پروژه از طریق ایمیل تماس برقرار کردم. این نرم‌افزار را یک تیم ایتالیایی راهبری می‌کردند و نام سرتیم این گروه داریو سولرا بود. در ایمیل خودم به ایشان بیان کردم که مشتاق هستم که زبان فارسی را نیز به این نرم‌افزار اضافه کنم ولی آقای سولرا در جواب من گفتند که مشکل در این است که این نرم‌افزار هنوز زبان‌های راست به چپ را پشتیبانی نمی‌کند و ممکن است که تا مدت‌ها هم وقت نکنند که این امکان را به برنامه بیفزایند.<br />
در اینجا بود که به ایشان پیشنهاد دادم که خوشحال می‌شوم که این قابلیت را بنده به سیستم بیفزایم. آقای سولرا هم از بنده زمانبندی خواست و بنده کارم را شروع کردم. برای این کار علاوه بر ترجمه متون باید برنامه را طوری تغییر می‌دادم که با تغییر زبان در بخش پیکربندی سیستم، جهت نوشتار آن تشخیص داده می‌شد و ظاهر برنامه به صورت یک برنامه راست به چپ تبدیل می‌شد.<br />
برای انجام تمام این کارها نیاز به برخی تغییرات در هسته سیستم و انجام کارهایی روی رابط کاربری سیستم می‌بود که می‌بایست با استانداردهای موجود در کدنویسی تیم اصلی انجام می‌شد. این کار با برخی مطالعات روی مستندات موجود در سایت برنامه انجام شد و کار با موفقیت انجام شد.<br />
این تیم از نرم‌افزار svn برای کنترل نسخه استفاده می‌کند. بنده هم آخرین نسخه را از طریق اینترنت دریافت کردم و پس از اعمال تغییرات لازم، یک patch از روی تغییرات ساختم و برای آنها فرستادم که آنها هم به راحتی تغییرات من را روی برنامه اعمال کردند و نسخه جدید را با امکانات جدید روی سایت برنامه منتشر کردند.<br />
حالا نوبت به معرفی برنامه رسیده، این نرم‌افزار <a href="http://screwturn.eu" target="_blank">ScrewTurn Wiki</a> نام دارد. به همه دوستانی که در شرکتی کار می‌کنند و نیاز دارند که اطلاعات را با سطوح مختلف دسترسی بین افراد به اشتراک بگذارند پیشنهاد می‌کنم که از <a href="http://www.screwturn.eu/Download.ashx" target="_blank">این نرم‌افزار </a>حتما استفاده کنند. این نرم‌افزار از آوریل سال ۲۰۰۹ تاکنون حدود ۱۱۴۰۰۰ بار دانلود شده که این رقم مقدار بالایی است و نشان از رضایت کاربران از امکانات این نرم‌افزار دارد. از این نرم‌افزار در سایت‌های زیادی نیز استفاده شده، اگر به سایتی نیاز دارید که می‌خواهید در آن اطلاعات را با کاربران خود به اشتراک بگذارید، استفاده از این نرم‌افزار را پیشنهاد می‌کنم.</p>
<p style="text-align:center;">
<div id="attachment_342" class="wp-caption aligncenter" style="width: 610px"><a href="http://ramezani.files.wordpress.com/2010/06/admincontent.jpg"><img class="size-full wp-image-342" title="ScrewTurnAdminContent" src="http://ramezani.files.wordpress.com/2010/06/admincontent.jpg?w=600&#038;h=337" alt="" width="600" height="337" /></a><p class="wp-caption-text">تصویری از نرم‌افزار پس از تغییر زبان به فارسی</p></div>
<p style="text-align:justify;">امیدوارم بتوانم در آینده در این راستا کارهای جدیدی انجام دهم. از این همکاری هرچند کوچک، موارد زیادی آموختم و به همین دلیل علاقه‌مند شدم که این نوع همکاری‌ها را با نرم‌افزارهای متن‌باز ادامه دهم.<br />
به امید روزی که فرهنگ استفاده از نرم‌افزارهای متن‌باز در کشور ما هم بین مردم نهادینه شود.   <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />دسته‌بندی شده در: <a href='http://ramezani.wordpress.com/category/c/'>#C</a>, <a href='http://ramezani.wordpress.com/category/open-source/'>Open Source</a>, <a href='http://ramezani.wordpress.com/category/persian-contents/'>Persian Contents</a> Tagged: <a href='http://ramezani.wordpress.com/tag/persian-support/'>persian support</a>, <a href='http://ramezani.wordpress.com/tag/screwturn-wiki/'>screwturn wiki</a>, <a href='http://ramezani.wordpress.com/tag/%d9%86%d8%b1%d9%85%e2%80%8c%d8%a7%d9%81%d8%b2%d8%a7%d8%b1-%d9%88%db%8c%da%a9%db%8c/'>نرم‌افزار ویکی</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramezani.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramezani.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramezani.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramezani.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ramezani.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ramezani.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ramezani.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ramezani.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramezani.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramezani.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramezani.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramezani.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramezani.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramezani.wordpress.com/340/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramezani.wordpress.com&amp;blog=6864371&amp;post=340&amp;subd=ramezani&amp;ref=&amp;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/ramezani/~4/cBawtg8pvBc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ramezani.wordpress.com/2010/06/27/persian-screwturn-wiki/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f320590852ab1f68535737a79cae18af?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">iranitil</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2010/06/screwturn.png" medium="image">
			<media:title type="html">screwturn</media:title>
		</media:content>

		<media:content url="http://ramezani.files.wordpress.com/2010/06/admincontent.jpg" medium="image">
			<media:title type="html">ScrewTurnAdminContent</media:title>
		</media:content>
	<feedburner:origLink>http://ramezani.wordpress.com/2010/06/27/persian-screwturn-wiki/</feedburner:origLink></item>
	</channel>
</rss>

