<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
	<channel>
		<title><![CDATA[برترین مقالات کامپیوتر]]></title>
		<link>http://yosafy.blogsky.com</link>
		<description><![CDATA[همه چیز در مورد اینترنت , سخت افزار,ویندوز ,موبایل , نرم افزار و ...]]></description>
		<language>fa</language>
		<generator>RSS Generated by BlogSky.com</generator>
		
			
				<item>
					<title><![CDATA[LINQ : تحولی بزرگ در کار با داده ( بخش اول )]]></title>
					<link>http://yosafy.blogsky.com/1387/06/15/post-435/</link>
					<description><![CDATA[<p><font face="Times New Roman" size="3"><strong><font face="Tahoma" size="2" color="#336699"><br />
</font></strong><font face="Tahoma" size="2">
نرم افزار یکی از ارکان مهم فناوری اطلاعات و ارتباطات در عصر حاضر است . گرچه نرم 
افزار در گذشته نیز همواره حائز اهمیت بوده 
است ، ولی در سالیان اخیر به دلیل گسترش 
اینترنت و ظهور نسل جدیدی از برنامه های کامپیوتری موسوم به برنامه های وب ، نگاه 
به نرم افزار و انتظار از آن در جهت تامین طیف گسترده ای از خواسته ها تغییر&nbsp; 
و رشد چشمگیری یافته است . به همین دلیل است که در دنیای نرم افزار هر روز تحولات 
مهمی اتفاق می افتد و فناوری های جدیدی قدم در این عرصه می گذارند . <br />
ظهور فناوری <span lang="en-us">LINQ</span> ( برگرفته شده از&nbsp; <span lang="en-us">
<strong>L</strong>anguage-<strong>IN</strong>tegrated <strong>Q</strong>uery</span>&nbsp;&nbsp; ) تلاشی است در 
این راستا که با هدف 
تحول در 
نحوه دستیابی به منابع داده ( صرفنظر از نوع منبع داده ) 
، مطرح شده است .
<br />
پس از مطرح شدن هر گونه فناوری در عرصه نرم افزار ، 
طراحان و پیاده کنندگان با سه پرسش اساسی 
مواجه می گردند : این فناوری چیست ؟ چه کار می کند ؟ و چرا ما به آن نیاز 
داریم ؟ در این مقاله و سایر مقالاتی که در ادامه بر روی سایت منتشر خواهد شد ، سعی 
خواهیم کرد به سه پرسش فوق در ارتباط با فناوری <span lang="en-us">LINQ</span> 
پاسخ دهیم .</font></font></p><p><font face="Times New Roman" size="3"><strong><font face="Tahoma" size="2" color="#336699"><br />
</font></strong><font face="Tahoma" size="2">
نرم افزار یکی از ارکان مهم فناوری اطلاعات و ارتباطات در عصر حاضر است . گرچه نرم 
افزار در گذشته نیز همواره حائز اهمیت بوده 
است ، ولی در سالیان اخیر به دلیل گسترش 
اینترنت و ظهور نسل جدیدی از برنامه های کامپیوتری موسوم به برنامه های وب ، نگاه 
به نرم افزار و انتظار از آن در جهت تامین طیف گسترده ای از خواسته ها تغییر&nbsp; 
و رشد چشمگیری یافته است . به همین دلیل است که در دنیای نرم افزار هر روز تحولات 
مهمی اتفاق می افتد و فناوری های جدیدی قدم در این عرصه می گذارند . <br />
ظهور فناوری <span lang="en-us">LINQ</span> ( برگرفته شده از&nbsp; <span lang="en-us">
<strong>L</strong>anguage-<strong>IN</strong>tegrated <strong>Q</strong>uery</span>&nbsp;&nbsp; ) تلاشی است در 
این راستا که با هدف 
تحول در 
نحوه دستیابی به منابع داده ( صرفنظر از نوع منبع داده ) 
، مطرح شده است .
<br />
پس از مطرح شدن هر گونه فناوری در عرصه نرم افزار ، 
طراحان و پیاده کنندگان با سه پرسش اساسی 
مواجه می گردند : این فناوری چیست ؟ چه کار می کند ؟ و چرا ما به آن نیاز 
داریم ؟ در این مقاله و سایر مقالاتی که در ادامه بر روی سایت منتشر خواهد شد ، سعی 
خواهیم کرد به سه پرسش فوق در ارتباط با فناوری <span lang="en-us">LINQ</span> 
پاسخ دهیم .</font></font>

</p><p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><font color="#336699">
<strong>مقدمه <br />
</strong></font>کد و داده دو عنصر اساسی در نرم افزار می باشند&nbsp; که هر یک دارای 
جایگاه تعریف شده مختص به خود است . یکی از فعالیت های مهم در زمان پیاده سازی نرم 
افزار ، نوشتن کد مورد نیاز جهت دستیابی به داده است . برای نوشتن کد ، پیاده 
کنندگان می توانند از زبان های برنامه نویسی مختلفی استفاده کنند . انتخاب زبان 
برنامه نویسی به عوامل متعددی نظیر نوع رفتار برنامه ، پیش زمینه و دانش پیاده 
کنندگان ، مهارت های تیم پیاده کننده ، نوع سیستم عامل و سیاست های سازمان بستگی 
دارد . صرفنظر از این که پیاده کنندگان چه زبانی را برای نوشتن کد انتخاب می نمایند 
، در زمان پیاده سازی نرم افزار به دفعات مجبور خواهیم بود که با داده سرو کار داشته 
باشیم . داده می تواند بر روی دیسک ، جداولی در بانک اطلاعاتی و یا اسناد
<span lang="en-us">XML</span> ذخیره شده باشد . در برخی موارد لازم است که با 
تمامی نوع های اشاره شده در یک برنامه سرو کار داشته باشیم .&nbsp; فراموش نکنیم که 
مدیریت داده برای هر پروژه نرم افزاری یک باید است . <br />
پیاده کنندگان نرم افزار در زمان نوشتن کد و تولید امکانات مورد نیاز در هر یک از 
لایه های متفاوت ( با توجه به&nbsp; نوع معماری نرم افزار ) ، همواره این پرسش را 
با خود مطرح می نمایند که محیط پیاده سازی و یا فریمورک هائی نظیر دات نت چه 
امکاناتی را در اختیار آنها خصوصا&quot; در زمان کار با داده قرار می دهند . به عبارت 
دیگر ، یک سیستم عامل چگونه می تواند نیاز پیاده کنندگان نرم افزار را پوشش دهد و&nbsp; 
چه امکانات و پتانسیل هائی را در اختیار علاقه مندان به طراحی و پیاده سازی نرم 
افزار قرار می دهد .&nbsp; <br />
دات نت به عنوان یکی از فریمورک های پیاده سازی نرم افزار در سالیان اخیر ، امکانات 
متعددی را جهت کار با داده در اختیار پیاده کنندگان نرم افزار قرار می دهد .
<span lang="en-us">LINQ</span> ، تلاشی است جهت یکپارچگی عمیق تر و بیش تر بین 
زبان های برنامه نویسی و داده .&nbsp; 
در واقع <span lang="en-us">LINQ</span> مشتمل بر مجموعه ای از عملگرهای
<span lang="en-us">query</span> استاندارد است که&nbsp; معماری لازم جهت حرکت ، 
فیلترینگ و اجرای عملیات بر روی تقریبا&quot; هر نوع منبع داده نظیر <span lang="en-us">
XML</span> ، بانک های اطلاعاتی رابطه ای و اشیاء درون حافظه را فراهم می نماید .
<br />
قبل از هر چیز 
اجازه دهید ببینیم <span lang="en-us">LINQ</span> چیست ؟<br />
<br />
<font color="#336699">
<strong><span lang="en-us">
LINQ</span> چیست ؟ <br />
</strong>
</font>با این که فناوری
<span lang="en-us">LINQ</span> در پائیز سال 2005 مطرح گردید ولی فرآیند پیاده 
سازی آن از سال 2003 آغاز شده بود . هدف از ابداع فناوری 
فوق، ارائه تسهیلات لازم برای پیاده کنندگان جهت کار با داده در بانک های اطلاعاتی&nbsp; <span lang="en-us">SQL</span> و <span lang="en-us">XML</span> 
عنوان شده است. در 
واقع ، وجود یک حلقه گمشده بین داده رابطه ای ( بانک های اطلاعاتی )&nbsp; 
، اسناد
<span lang="en-us">XML</span> با زبان های برنامه نویسی ، ضرورت ابداع فناوری فوق 
را توجیه کرده بود . پیاده کنندگان مجبور بودند&nbsp; برای کار با هر یک از منابع 
داده ، از روش های مختلفی استفاده نمایند . <span lang="en-us">LINQ</span>&nbsp;
را می توان به منزله حلقه ای گمشده&nbsp; بین دنیای 
داده و زبان های برنامه نویسی همه منظوره&nbsp; تصور کرد 
. با استفاده از&nbsp; <span lang="en-us">LINQ</span>&nbsp; امکان دستیابی به داده  
صرفنظر از نوع داده&nbsp; 
، با روشی مشابه و یکسان فراهم می گردد .&nbsp; <br />
پیاده کنندگان نرم افزار<strong> </strong>در زمان نوشتن برنامه های خود معمولا&quot; از دو زبان 
مختلف جهت رسیدن به یک هدف مشترک استفاده می نمایند . ما برای نوشتن کدها از یک زبان برنامه نویسی نظیر
<span lang="en-us">VB.NET</span> و یا <span lang="en-us">#C</span> و برای&nbsp; گفتگو با سیستم بانک اطلاعاتی از یک 
زبان دیگر نظیر <span lang="en-us">SQL</span> استفاده می کنیم 
.</font></font></p>

<div align="center">
<font face="Times New Roman" size="3">  </font><center>

<font face="Times New Roman" size="3">  <table height="29" width="402" cellspacing="0" cellpadding="0" bordercolor="#c0c0c0" border="1" dir="rtl" style="border-collapse: collapse;" class="code">
    <tbody><tr>

      <td height="16" width="400" bgcolor="#f4f4ff" style="text-align: right;" dir="rtl">
<p style="text-align: center;" dir="rtl"><font face="Tahoma" size="2">برای سفارش 
شام خود از یک زبان و برای سفارش چای از زبان دیگر !</font></p></td>

    </tr>
  </tbody></table>

  </font></center>
</div>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">این موضوع می تواند چالش های متعددی را برای پیاده کنندگان نرم افزار به دنبال 
داشته باشد : </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">در مواردی که فریمورک 
دات نت را به عنوان پلت فرم انتخاب کرده باشیم ، دات نت قادر به درک کدهای
<span lang="en-us">SQL</span> نخواهد بود.</font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">&nbsp;در مواردی که از 
زبان های برنامه نویسی حمایت شده در دات نت جهت نوشتن کد در محیط ویژوال استودیو 
استفاده می کنیم ، همواره یک ابزار قدرتمند در کنار ما است تا در صورت اشتباه در 
گرامر دستورات توصیه های لازم را ارائه نماید ( IntelliSense ) .از ویژگی فوق نمی 
توان در ارتباط با&nbsp; <span lang="en-us">SQL</span>&nbsp; استفاده کرد . </font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">امکان بررسی نوع ها در 
زمان ترجمه وجود ندارد . این بدان معنی است که پیاده کنندگان تا زمانی که برنامه 
اجراء نگردد ، نمی توانند مشکلات احتمالی را مشاهده و قبل از زمان اجراء با آنها 
برخورد نمایند . </font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">شرکت مایکروسافت 
امکانات متعددی را در فریمورک دات نت جهت کار با اسناد <span lang="en-us">XML</span>&nbsp; 
ارائه کرده است . ارائه
<span lang="en-us">System.Xml </span>،&nbsp; <span lang="en-us">
System.Xml.XPath</span> و <span lang="en-us">System.Xml.Schema</span>&nbsp; 
نمونه هائی در این زمینه می باشند . پیاده کنندگان نرم افزار در زمان کار با اسناد
<span lang="en-us">XML</span> مجبور بودند که از فناوری های متعددی نظیر&nbsp;&nbsp;&nbsp; <span lang="en-us">DOM</span> ( 
برگرفته شده از <span lang="en-us">Document Object Mode</span> 
) و
<span lang="en-us">XQuery</span>&nbsp; استفاده نمایند . همین موضوع باعث شده بود 
که کار با اسناد <span lang="en-us">XML</span> نظیر خواندن و یا نوشتن داده در 
آنها برای بسیاری از پیاده کنندگان مشکل 
باشد. </font></p>

  </li>
</font></ul>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">شرکت مایکروسافت برای 
حل مشکلات فوق ، بررسی دو راهکار را در دستور کار خود قرار داد : </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000">ایجاد پتانسیل های مورد نیاز&nbsp; مختص <span lang="en-us">XML</span> 
و یا داده رابطه ای در هر یک از زبان های برنامه نویسی و زمان اجراء</font></strong> . 
راهکار فوق نه تنها مشکل اصلی را حل نمی کرد بلکه در مواردی مشکلات را خصوصا&quot; در 
زمینه نگهداری افزایش می داد .&nbsp; </font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000">اضافه کردن قابلیت های همه منظوره 
نوشتن <span lang="en-us">query</span> در 
فریمورک دات نت</font></strong>&nbsp; 
. به عبارت دیگر یک فریمورک 
همه منظوره با قابلیت نوشتن
<span lang="en-us">query&nbsp;</span>درون فریمورک دات نت که زبان 
های <span lang="en-us">VB.NET</span> و <span lang="en-us">#C</span> بتوانند به 
سادگی از مز ایای آن استفاده نمایند . </font></p>

  </li>
</font></ul>
<font face="Times New Roman" size="3">

</font><p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">خوشبختانه ، شرکت 
مایکروسافت گزینه دوم را انتخاب نمود . ایجاد یک زیرساخت جهت نوشتن <span lang="en-us">query</span> در بین اشیاء ، اسناد
<span lang="en-us">XML</span> ، داده رابطه ای و 
... <br />
هم اینک پیاده کنندگان می توانند از مزایای 
یک الگوی تعریفی در هر یک از زبان های دات نت 
جهت کار با داده&nbsp; استفاده نمایند . 
ارائه مجموعه اپراتورهای استاندارد جهت نوشتن <span lang="en-us">query</span> یکی 
از دستاوردهای مهم <span lang="en-us">LINQ</span> محسوب می گردد .&nbsp; بدین 
ترتیب ، پیاده کنندگان می توانند با بکارگیری یک مجموعه یکسان از اپراتورهای نوشتن
<span lang="en-us">query</span> در هر یک از زبان های برنامه نویسی حمایت شده در 
دات نت ، از داده ذخیره شده در&nbsp; منابع داده مختلف صرفنظر از نوع منبع داده 
استفاده نمایند . همچنین ، امکان استفاده از پتانسیل هائی نظیر&nbsp;&nbsp; 
IntelliSense <span lang="en-us">&nbsp;</span>و بررسی نوع ها در زمان ترجمه نیز 
وجود خواهد داشت .
<br />
شکل 1 نحوه عملکرد <span lang="en-us">LINQ</span>&nbsp; را نشان می دهد .</font></font></p>

<p align="center" dir="rtl"><font face="Times New Roman" size="3"><img border="0" src="http://www.srco.ir/Articles/images/IntroLINQ2.jpg" /><font face="Tahoma" size="2"><br />
<br />
شکل 1 : عملکرد فناوری <span lang="en-us">LINQ</span> </font></font></p>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><strong>
<font color="#336699">مثال <br />
</font></strong>برای آشنایی اولیه با&nbsp; قابلیت های <span lang="en-us">LINQ</span>&nbsp; 
، بد نیست بدون این که بخواهیم وارد جزئیات شویم یک مثال کاربردی را با یکدیگر 
دنبال نمائیم . <br />
در این مثال با استفاده از <span lang="en-us">LINQ</span> و با یک روش مشابه به 
منابع داده مختلفی متصل شده و پس از بازیابی داده ، آنها را در یک
<span lang="en-us">ListBox</span> جداگانه نمایش می دهیم .&nbsp; <br />
منابع داده عبارتند از : </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

 <font face="Tahoma" size="2">فولدرهای موجود در یک 
درایو </font> 
  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">پردازه های در حال 
اجراء در ویندور </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">یک بانک اطلاعاتی رابطه 
ای <span lang="en-us">SQL</span> </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">عناصر موجود در یک 
آرایه </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">یک فایل
<span lang="en-us">XML</span> </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">یک فایل متن </font> 

  </li>
</font></ul>

<font face="Times New Roman" size="3">  </font><div align="left">

<font face="Times New Roman" size="3">  <table height="23" width="507" cellspacing="0" cellpadding="0" bordercolor="#c0c0c0" border="1" dir="ltr" style="border-collapse: collapse;" class="code">
    <tbody><tr>

      <td height="10" width="615" bgcolor="#f4f4ff" dir="ltr">
<font face="Tahoma">
<font size="1"><span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1">
</font><font size="1" color="#a31515">Page</font><font size="1"> </font>
<font size="1" color="#ff0000"><span lang="en-us">&nbsp; </span>Language</font><font size="1" color="#0000ff">=&quot;VB&quot;</font><font size="1">
</font><font size="1" color="#ff0000">uiCulture</font><font size="1" color="#0000ff">=&quot;fa-IR&quot;</font><font size="1">
</font><font size="1" color="#ff0000">Culture</font><font size="1" color="#0000ff">=&quot;fa-IR&quot;</font><font size="1">
<span style="background-color: rgb(255, 255, 0);">%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">Namespace</font><font size="1" color="#0000ff">=&quot;System.Diagnostics&quot;</font><font size="1"><span style="background-color: rgb(255, 255, 0);"> 
%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">NameSpace</font><font size="1" color="#0000ff">=&quot;System.IO&quot;</font><font size="1">
<span style="background-color: rgb(255, 255, 0);">%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">NameSpace</font><font size="1" color="#0000ff">=&quot;System.Linq&quot;</font><font size="1">
<span style="background-color: rgb(255, 255, 0);">%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">NameSpace</font><font size="1" color="#0000ff">=&quot;System.Data.Linq&quot;</font><font size="1">
<span style="background-color: rgb(255, 255, 0);">%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">NameSpace</font><font size="1" color="#0000ff">=&quot;System.Data.Linq.Mapping&quot;</font><font size="1">
<span style="background-color: rgb(255, 255, 0);">%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">NameSpace</font><font size="1" color="#0000ff">=&quot;System.XML.Linq&quot;</font><font size="1">
<span style="background-color: rgb(255, 255, 0);">%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">NameSpace</font><font size="1" color="#0000ff">=&quot;System.Collections&quot;</font><font size="1"><span style="background-color: rgb(255, 255, 0);"> 
%&gt;</span></font></font><p><font face="Tahoma">
<font size="1" color="#0000ff">&lt;</font><font size="1" color="#a31515">script</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;</font><font size="1">
<br />
</font><font size="1" color="#008000">
'====================================================================</font></font></p>
<div align="center">
  <center>
  <table height="30" width="79%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="30" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">کلاس ایجاد شده بر اساس داده 
      موجود در بانک اطلاعاتی <span lang="en-us">Contact</span> برای جدول
      <span lang="en-us">Persons</span> <br />
      <span lang="en-us">LINQ to SQL Class</span></font></p></td>
    </tr>
  </tbody></table>
  </center>
</div>
<p><font face="Tahoma"><font size="1">&lt;Table(Name:=</font><font size="1" color="#a31515">&quot;Persons&quot;</font><font size="1">)&gt; 
_<br />
</font><font size="1" color="#0000ff">Public</font><font size="1"> </font>
<font size="1" color="#0000ff">Class</font><font size="1"> Person<br />
<span lang="en-us">&nbsp;&nbsp; </span>&lt;Column(DbType:=</font><font size="1" color="#a31515">&quot;Int 
not null&quot;</font><font size="1">)&gt; _<br />
</font><font size="1" color="#0000ff"><span lang="en-us">&nbsp;&nbsp; </span>
Public</font><font size="1"> ID </font><font size="1" color="#0000ff">As</font><font size="1">
</font><font size="1" color="#0000ff">Integer<br />
</font><font size="1"><span lang="en-us">&nbsp;&nbsp; </span>&lt;Column(DbType:=</font><font size="1" color="#a31515">&quot;nvarchar(50) 
not null&quot;</font><font size="1">)&gt; _<br />
</font><font size="1" color="#0000ff"><span lang="en-us">&nbsp;&nbsp; </span>
Public</font><font size="1"> Name </font><font size="1" color="#0000ff">As</font><font size="1">
</font><font size="1" color="#0000ff">String<br />
</font><font size="1"><span lang="en-us">&nbsp;&nbsp; </span>&lt;Column(DbType:=</font><font size="1" color="#a31515">&quot;nvarchar(50) 
not null&quot;</font><font size="1">)&gt; _<br />
</font><font size="1" color="#0000ff"><span lang="en-us">&nbsp;&nbsp; </span>
Public</font><font size="1"> Email </font><font size="1" color="#0000ff">As</font><font size="1">
</font><font size="1" color="#0000ff">String<br />
End</font><font size="1"> </font><font size="1" color="#0000ff">Class<br />
</font><font size="1" color="#008000">
'====================================================================&nbsp; <br />
</font><font size="1" color="#0000ff">Protected</font><font size="1"> </font>
<font size="1" color="#0000ff">Sub</font><font size="1"> Page_Load(</font><font size="1" color="#0000ff">ByVal</font><font size="1"> 
sender </font><font size="1" color="#0000ff">As</font><font size="1"> </font>
<font size="1" color="#0000ff">Object</font><font size="1">, </font>
<font size="1" color="#0000ff">ByVal</font><font size="1"> e </font>
<font size="1" color="#0000ff">As</font><font size="1"> System.EventArgs)</font></font><font color="#008000"><font face="Tahoma" size="1"><span lang="en-us"><br />
</span>
</font></font></p>
<font size="2" color="#008000">
</font><div align="center">
<font size="2" color="#008000">  </font><center>
<font size="2" color="#008000">  <table height="27" width="81%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="27" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">بازیابی فولدرهای موجود در 
      درایو <span lang="en-us">C</span> </font></p></td>
    </tr>
  </tbody></table>
  </font></center>
</div>

<p><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> DI </font>
<font size="1" color="#0000ff">As</font><font size="1"> DirectoryInfo = </font>
<font size="1" color="#0000ff">New</font><font size="1"> DirectoryInfo(</font><font size="1" color="#a31515">&quot;<a href="file:///C://">C:\\</a>&quot;</font><font size="1">)<br />
</font><font size="1" color="#0000ff">Dim</font><font size="1"> dirQuery =
</font><font size="1" color="#0000ff">From</font><font size="1"> dir </font>
<font size="1" color="#0000ff">In</font><font size="1"> DI.GetDirectories()
</font><font size="1" color="#0000ff">Order</font><font size="1"> </font>
<font size="1" color="#0000ff">By</font><font size="1"><br />
<span lang="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>&nbsp;(dir.Name) </font><font size="1" color="#0000ff">Select</font><font size="1"> 
dir.Name<br />
</font><font size="1" color="#0000ff">For</font><font size="1"> </font>
<font size="1" color="#0000ff">Each</font><font size="1"> item </font>
<font size="1" color="#0000ff">In</font><font size="1"> dirQuery<br />
<span lang="en-us">&nbsp;&nbsp;&nbsp; </span>ListBox1.Items.Add(item)<br />
</font><font size="1" color="#0000ff">Next</font></font><font face="Tahoma" size="1"> item<br />
<span lang="en-us">
'====================================================================</span></font></p>
<font size="2">

</font><font size="2" color="#008000"><div align="center">
  <center>
  <table height="26" width="83%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="26" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">بازیابی پردازه های در حال 
      اجرا در ویندور </font></p></td>
    </tr>
  </tbody></table>
  </center>
</div>

</font><font size="2">
</font><p><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> procQuery =
</font><font size="1" color="#0000ff">From</font><font size="1"> proc </font>
<font size="1" color="#0000ff">In</font><font size="1"> Process.GetProcesses()
</font><font size="1" color="#0000ff">Order</font><font size="1"> </font>
<font size="1" color="#0000ff">By</font><font size="1"> proc.I<span lang="en-us">d</span> </font>
<font size="1" color="#0000ff">&nbsp;&nbsp;<span lang="en-us">_<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Descending</font><font size="1"> </font>
<font size="1" color="#0000ff">Select</font><font size="1"> proc.Id, 
proc.ProcessName<span lang="en-us"> <br />
</span>
</font><font size="1" color="#0000ff">For</font><font size="1"> </font>
<font size="1" color="#0000ff">Each</font><font size="1"> item </font>
<font size="1" color="#0000ff">In</font><font size="1"> procQuery<br />
&nbsp;&nbsp; ListBox2.Items.Add(item.Id &amp; </font>
<font size="1" color="#a31515">&quot; &quot;</font><font size="1"> 
&amp; item.ProcessName)<br />
</font><font size="1" color="#0000ff">Next</font><font size="1"> item<br />
</font></font><font color="#008000">
<font face="Tahoma" size="1">
'=====================================================================</font><span lang="en-us"><font face="Tahoma" size="1">
</font></span></font></p>
<font size="2" color="#008000">
</font><div align="center">
<font size="2" color="#008000">  </font><center>
<font size="2" color="#008000">  <table height="25" width="83%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="25" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">بازیابی داده موجود در جدول
      <span lang="en-us">Persons</span> بانک اطلاعاتی <span lang="en-us">Conatct</span></font></p></td>
    </tr>
  </tbody></table>
  </font></center>
</div>

<font size="2">
</font><p><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> context
</font><font size="1" color="#0000ff">As</font><font size="1"> DataContext =
</font><font size="1" color="#0000ff">New</font><font size="1"> DataContext(</font><font size="1" color="#a31515">&quot;Data 
Source=SRCO-1\SQLEXPRESS;<br />
<span lang="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Initial Catalog=Contact;Integrated Security=true&quot;</font><font size="1">)<br />
</font><font size="1" color="#0000ff">Dim</font><font size="1"> contact1
</font><font size="1" color="#0000ff">As</font><font size="1"> Table(</font><font size="1" color="#0000ff">Of</font><font size="1"> 
Person) = context.GetTable(</font><font size="1" color="#0000ff">Of</font><font size="1"> 
Person)()<br />
</font><font size="1" color="#0000ff">Dim</font><font size="1"> query =
</font><font size="1" color="#0000ff">From</font><font size="1"> c </font>
<font size="1" color="#0000ff">In</font><font size="1"> contact1 </font>
<font size="1" color="#0000ff">Select</font><font size="1"> c.Name, c.Email<br />
</font><font size="1" color="#0000ff">For</font><font size="1"> </font>
<font size="1" color="#0000ff">Each</font><font size="1"> item </font>
<font size="1" color="#0000ff">In</font><font size="1"> query<br />
&nbsp;&nbsp;&nbsp;&nbsp; ListBox3.Items.Add(item.Name &amp; </font>
<font size="1" color="#a31515">&quot; &quot;</font><font size="1"> 
&amp; </font><font size="1" color="#a31515">&quot; ==== ◄ &quot;</font><font size="1"> &amp; 
item.Email)<br />
</font><font size="1" color="#0000ff">Next</font><font size="1"> item<br />
</font></font><font color="#008000">
<font face="Tahoma" size="1">'=======================================================================</font><span lang="en-us"><font face="Tahoma" size="1">
</font></span></font></p>
<font size="2" color="#008000">
</font><div align="center">
<font size="2" color="#008000">  </font><center>
<font size="2" color="#008000">  <table height="29" width="80%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="29" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">بازیابی عناصر یک آرایه
      </font></p></td>
    </tr>
  </tbody></table>
  </font></center>
</div>

<font size="2">
</font><p><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> firstnames
</font><font size="1" color="#0000ff">As</font><font size="1"> </font>
<font size="1" color="#0000ff">String</font></font><font size="1"><font face="Tahoma">() = 
{&quot;سخا روش&quot;, &quot;سایت شرکت سخا روش&quot;, &quot;سایت مقالات به زبان فارسی&quot;, &quot;سری مقالات &quot;, 
&quot;ایران&quot;, &quot;تهران&quot;} </font><span lang="en-us"><font face="Tahoma">&nbsp;</font></span><font face="Tahoma"><br />
</font></font><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> val </font>
<font size="1" color="#0000ff">As</font><font size="1"> IEnumerable(</font><font size="1" color="#0000ff">Of</font><font size="1">
</font><font size="1" color="#0000ff">String</font><font size="1">) = </font>
<font size="1" color="#0000ff">From</font><font size="1"> fn </font>
<font size="1" color="#0000ff">In</font><font size="1"> firstnames _<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
<font size="1" color="#0000ff">Where</font><font size="1"> 
(fn.StartsWith(</font><font size="1" color="#a31515">&quot;س&quot;</font><font size="1">)) 
_<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
<font size="1" color="#0000ff">Select</font><font size="1"> fn<br />
</font><font size="1" color="#0000ff">For</font><font size="1"> </font>
<font size="1" color="#0000ff">Each</font><font size="1"> name </font>
<font size="1" color="#0000ff">As</font><font size="1"> </font>
<font size="1" color="#0000ff">String</font><font size="1"> </font>
<font size="1" color="#0000ff">In</font><font size="1"> val<br />
&nbsp;&nbsp;&nbsp;&nbsp; ListBox4.Items.Add(name)<br />
</font><font size="1" color="#0000ff">Next</font><font size="1"> name<br />
</font></font><font color="#008000">
<font face="Tahoma" size="1">
'========================================================================</font><span lang="en-us"><font face="Tahoma" size="1">
</font></span></font></p>
<font size="2" color="#008000">
<div align="center">
  <center>
  <table height="28" width="81%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="28" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">بازیابی داده ذخیره شده در 
      یک فایل <span lang="en-us">XML</span> با نام <span lang="en-us">Cities.xml</span>
      </font></p></td>
    </tr>
  </tbody></table>
  </center>
</div>

</font><font size="2">
</font><p><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> XDoc </font>
<font size="1" color="#0000ff">As</font><font size="1"> XDocument = 
XDocument.Load(MapPath(</font><font size="1" color="#a31515">&quot;Cities.xml&quot;</font><font size="1">))<br />
</font><font size="1" color="#0000ff">Dim</font><font size="1"> query1 =
</font><font size="1" color="#0000ff">From</font><font size="1"> c </font>
<font size="1" color="#0000ff">In</font><font size="1"> XDoc.Descendants(</font><font size="1" color="#a31515">&quot;City&quot;</font><font size="1">) 
_<br />
</font><font size="1" color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order</font><font size="1"> </font>
<font size="1" color="#0000ff">By</font><font size="1"> c.Element(</font><font size="1" color="#a31515">&quot;Name&quot;</font><font size="1">).Value 
_<br />
</font><font size="1" color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Select</font><font size="1"> c.Element(</font><font size="1" color="#a31515">&quot;Name&quot;</font><font size="1">).Value<br />
</font><font size="1" color="#0000ff">For</font><font size="1"> </font>
<font size="1" color="#0000ff">Each</font><font size="1"> item </font>
<font size="1" color="#0000ff">In</font><font size="1"> query1<br />
&nbsp;&nbsp;&nbsp; ListBox5.Items.Add(item)<br />
</font><font size="1" color="#0000ff">Next</font><font size="1"> item<br />
<span lang="en-us">
'======================================================================</span>
<span lang="en-us">
&nbsp;<br />
&nbsp;</span></font></font></p><div align="center">
<font size="2" color="#008000">  </font><center>
<font size="2" color="#008000">  <table height="25" width="82%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="25" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">بازیابی داده از یک فایل متن 
      با نام <span lang="en-us">Maghalat.csv</span> </font></p></td>
    </tr>
  </tbody></table>
  </font></center>
</div>

<font size="2">
</font><p><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> query2 =
</font><font size="1" color="#0000ff">From</font><font size="1"> line </font>
<font size="1" color="#0000ff">In</font><font size="1"> 
File.ReadAllLines(MapPath(</font><font size="1" color="#a31515">&quot;Maghalat.csv&quot;</font><font size="1">)) 
_<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
<font size="1" color="#0000ff">Where</font><font size="1"> </font>
<font size="1" color="#0000ff">Not</font><font size="1"> line.StartsWith(</font><font size="1" color="#a31515">&quot;#&quot;</font><font size="1">) 
_<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
<font size="1" color="#0000ff">Let</font><font size="1"> parts = 
line.Split(</font><font size="1" color="#a31515">&quot;,&quot;</font><font size="1">) _<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
<font size="1" color="#0000ff">Select</font><font size="1"> Title = parts(0), 
Publisher = parts(1) <br />
</font><font size="1" color="#0000ff">For</font><font size="1"> </font>
<font size="1" color="#0000ff">Each</font><font size="1"> item </font>
<font size="1" color="#0000ff">In</font><font size="1"> query2<br />
&nbsp;&nbsp;&nbsp; ListBox6.Items.Add(item.Title &amp; </font>
<font size="1" color="#a31515">&quot; &quot;</font><font size="1"> 
&amp; item.Publisher)<br />
</font><font size="1" color="#0000ff">Next</font></font><font face="Tahoma" size="1"> item</font></p>
<font size="2">
</font>


<p><font face="Tahoma"><font size="1" color="#0000ff">End</font><font size="1"> </font>
<font size="1" color="#0000ff">Sub</font></font></p>
<font size="2">


</font><font size="1" color="#0000ff">
</font><p><font size="1" color="#0000ff"><font face="Tahoma">&lt;/</font></font><font face="Tahoma"><font size="1" color="#a31515">script</font><font size="1" color="#0000ff">&gt;<br />
</font>
<font size="1" color="#008000">'<span lang="en-us">====================================================================</span>===</font></font><font face="Tahoma" size="1" color="#008000">
</font></p>
      </td>

    </tr>
    <tr>

      <td height="10" width="615" bgcolor="#f4f4ff" dir="ltr">
<font size="1" color="#0000ff"><font face="Tahoma">&lt;</font></font><font face="Tahoma"><font size="1" color="#a31515">html</font><font size="1">
</font><font size="1" color="#ff0000">xmlns</font><font size="1" color="#0000ff">=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br />
&lt;</font><font size="1" color="#a31515">head</font><font size="1"> </font>
<font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;<br />
&nbsp; &lt;</font><font size="1" color="#a31515">title</font><font size="1" color="#0000ff">&gt;</font><font size="1"> 
مثال شماره یک&nbsp; </font><font size="1" color="#0000ff">&lt;/</font><font size="1" color="#a31515">title</font><font size="1" color="#0000ff">&gt;<br />
&lt;/</font><font size="1" color="#a31515">head</font><font size="1" color="#0000ff">&gt;<br />
&lt;</font><font size="1" color="#a31515">body</font><font size="1" color="#0000ff">&gt;<br />
&nbsp; &lt;</font><font size="1" color="#a31515">form</font><font size="1"> </font>
<font size="1" color="#ff0000">id</font><font size="1" color="#0000ff">=&quot;form1&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">div</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1">
</font><font size="1" color="#ff0000">ID</font><font size="1" color="#0000ff">=&quot;ListBox1&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;&lt;/</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1">
</font><font size="1" color="#ff0000">ID</font><font size="1" color="#0000ff">=&quot;ListBox2&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;&lt;/</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1">
</font><font size="1" color="#ff0000">ID</font><font size="1" color="#0000ff">=&quot;ListBox3&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;&lt;/</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1">
</font><font size="1" color="#ff0000">ID</font><font size="1" color="#0000ff">=&quot;ListBox4&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;&lt;/</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1">
</font><font size="1" color="#ff0000">ID</font><font size="1" color="#0000ff">=&quot;ListBox5&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;&lt;/</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1">
</font><font size="1" color="#ff0000">ID</font><font size="1" color="#0000ff">=&quot;ListBox6&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;&lt;/</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp; &lt;/</font><font size="1" color="#a31515">div</font><font size="1" color="#0000ff">&gt;<br />
&nbsp; &lt;/</font><font size="1" color="#a31515">form</font><font size="1" color="#0000ff">&gt;<br />
&lt;/</font><font size="1" color="#a31515">body</font><font size="1" color="#0000ff">&gt;<br />
&lt;/</font><font size="1" color="#a31515">html</font><font size="1" color="#0000ff">&gt;</font></font><font face="Tahoma" size="1">&nbsp;</font></td>

    </tr>
  </tbody></table>

</font></div>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">شکل زیر خروجی برنامه 
فوق را نشان می دهد . </font></font></p>

<p align="center" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">
<img border="0" alt=" دستیابی به منابع داده مختلف با استفاده از فناوری LINQ " lowsrc="دستیابی%20به%20منابع%20داده%20مختلف%20با%20استفاده%20از%20فناوری%20LINQ%20" src="http://www.srco.ir/Articles/images/IntroLINQ1.jpg" /><br />
<br />
شکل&nbsp; 2&nbsp; : دستیابی به منابع داده مختلف با استفاده از فناوری
<span lang="en-us">LINQ</span> </font></font></p>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><strong>
<font color="#336699">خلاصه <br />
</font></strong><span lang="en-us">LINQ</span> یک فناوری قدرتمند در زمان کار با داده 
است که دستاوردهای 
متعددی را برای پیاده کنندگان به ارمغان آورده است : </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

 <font face="Tahoma" size="2">روشی ساده جهت نوشتن <span lang="en-us">query</span>
</font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">تسریع در پیاده سازی 
نرم افزار با توجه به حذف خطاهای زمان اجراء </font> 

  </li>
  <li dir="rtl">
 <font face="Tahoma" size="2">امکان استفاده از 
امکاناتی نظیر اشکال زدائی و
<span lang="en-us">IntelliSence</span> در زمان پیاده سازی </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">حذف خلاء موجود بین 
داده رابطه ای و پیاده سازی شی گراء </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">استفاده از یک گرامر 
یکسان جهت نوشتن <span lang="en-us">query</span> صرفنظر از نوع منبع داده </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">افزایش بازدهی و 
راندمان برنامه نویسی ، چراکه برنامه نویسان از یک رویکرد یکسان برای نوشتن <span lang="en-us">query</span>&nbsp; و بهنگام سازی داده از طریق زبان 
برنامه نویسی&nbsp;&nbsp; استفاده خواهند کرد .&nbsp;
</font> 

  </li>
</font></ul>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">&nbsp;</font><font face="Tahoma"><span lang="en-us"><font size="2">LINQ</font></span><font size="2"> 
از دو بخش که مکمل یکدیگر می باشند تشکیل شده است : </font></font><font face="Tahoma" size="2"> 
مجموعه ای از ابزار ها جهت کار با اشیاء ، اسناد <span lang="en-us">XML</span> ، 
بانک های اطلاعاتی رابطه ای و سایر نوع های داده و مجموعه ای از ضمایم برای زبان 
های برنامه نویسی نظیر <span lang="en-us">VB</span> و <span lang="en-us">#C</span>&nbsp; 
. در بخش دوم به بررسی هر یک از موارد فوق خواهیم پرداخت . </font></font></p>]]></description>
					<pubDate>Fri, 5 Sep 2008 02:52:22 GMT</pubDate>
					<comments>http://yosafy.blogsky.com/Comments.bs?PostID=435</comments>
          <guid>http://yosafy.blogsky.com/1387/06/15/post-435/</guid>
				</item>
			
				<item>
					<title><![CDATA[LINQ : تحولی بزرگ در کار با داده &nbsp;( بخش اول )]]></title>
					<link>http://yosafy.blogsky.com/1387/05/26/post-434/</link>
					<description><![CDATA[<p><font face="Times New Roman" size="3"><strong><font face="Tahoma" size="2" color="#336699"><br />
</font></strong><font face="Tahoma" size="2">
نرم افزار یکی از ارکان مهم فناوری اطلاعات و ارتباطات در عصر حاضر است . گرچه نرم 
افزار در گذشته نیز همواره حائز اهمیت بوده 
است ، ولی در سالیان اخیر به دلیل گسترش 
اینترنت و ظهور نسل جدیدی از برنامه های کامپیوتری موسوم به برنامه های وب ، نگاه 
به نرم افزار و انتظار از آن در جهت تامین طیف گسترده ای از خواسته ها تغییر&nbsp; 
و رشد چشمگیری یافته است . به همین دلیل است که در دنیای نرم افزار هر روز تحولات 
مهمی اتفاق می افتد و فناوری های جدیدی قدم در این عرصه می گذارند . <br />
ظهور فناوری <span lang="en-us">LINQ</span> ( برگرفته شده از&nbsp; <span lang="en-us">
<strong>L</strong>anguage-<strong>IN</strong>tegrated <strong>Q</strong>uery</span>&nbsp;&nbsp; ) تلاشی است در 
این راستا که با هدف 
تحول در 
نحوه دستیابی به منابع داده ( صرفنظر از نوع منبع داده ) 
، مطرح شده است .
<br />
پس از مطرح شدن هر گونه فناوری در عرصه نرم افزار ، 
طراحان و پیاده کنندگان با سه پرسش اساسی 
مواجه می گردند : این فناوری چیست ؟ چه کار می کند ؟ و چرا ما به آن نیاز 
داریم ؟ در این مقاله و سایر مقالاتی که در ادامه بر روی سایت منتشر خواهد شد ، سعی 
خواهیم کرد به سه پرسش فوق در ارتباط با فناوری <span lang="en-us">LINQ</span> 
پاسخ دهیم .</font></font>

</p><p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><font color="#336699">
<strong>مقدمه </strong></font></font></font></p><p><font face="Times New Roman" size="3"><font face="Tahoma" size="2">نرم افزار یکی از ارکان مهم فناوری اطلاعات و ارتباطات در عصر حاضر است . گرچه نرم 
افزار در گذشته نیز همواره حائز اهمیت بوده 
است ، ولی در سالیان اخیر به دلیل گسترش 
اینترنت و ظهور نسل جدیدی از برنامه های کامپیوتری موسوم به برنامه های وب ، نگاه 
به نرم افزار و انتظار از آن در جهت تامین طیف گسترده ای از خواسته ها تغییر&nbsp; 
و رشد چشمگیری یافته است . به همین دلیل است که در دنیای نرم افزار هر روز تحولات 
مهمی اتفاق می افتد و فناوری های جدیدی قدم در این عرصه می گذارند . <br />
ظهور فناوری <span lang="en-us">LINQ</span> ( برگرفته شده از&nbsp; <span lang="en-us">
<strong>L</strong>anguage-<strong>IN</strong>tegrated <strong>Q</strong>uery</span>&nbsp;&nbsp; ) تلاشی است در 
این راستا که با هدف 
تحول در 
نحوه دستیابی به منابع داده ( صرفنظر از نوع منبع داده ) 
، مطرح شده است .
<br />
پس از مطرح شدن هر گونه فناوری در عرصه نرم افزار ، 
طراحان و پیاده کنندگان با سه پرسش اساسی 
مواجه می گردند : این فناوری چیست ؟ چه کار می کند ؟ و چرا ما به آن نیاز 
داریم ؟ در این مقاله و سایر مقالاتی که در ادامه بر روی سایت منتشر خواهد شد ، سعی 
خواهیم کرد به سه پرسش فوق در ارتباط با فناوری <span lang="en-us">LINQ</span> 
پاسخ دهیم .</font></font>

</p><p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><font color="#336699">
<strong>مقدمه <br />
</strong></font>کد و داده دو عنصر اساسی در نرم افزار می باشند&nbsp; که هر یک دارای 
جایگاه تعریف شده مختص به خود است . یکی از فعالیت های مهم در زمان پیاده سازی نرم 
افزار ، نوشتن کد مورد نیاز جهت دستیابی به داده است . برای نوشتن کد ، پیاده 
کنندگان می توانند از زبان های برنامه نویسی مختلفی استفاده کنند . انتخاب زبان 
برنامه نویسی به عوامل متعددی نظیر نوع رفتار برنامه ، پیش زمینه و دانش پیاده 
کنندگان ، مهارت های تیم پیاده کننده ، نوع سیستم عامل و سیاست های سازمان بستگی 
دارد . صرفنظر از این که پیاده کنندگان چه زبانی را برای نوشتن کد انتخاب می نمایند 
، در زمان پیاده سازی نرم افزار به دفعات مجبور خواهیم بود که با داده سرو کار داشته 
باشیم . داده می تواند بر روی دیسک ، جداولی در بانک اطلاعاتی و یا اسناد
<span lang="en-us">XML</span> ذخیره شده باشد . در برخی موارد لازم است که با 
تمامی نوع های اشاره شده در یک برنامه سرو کار داشته باشیم .&nbsp; فراموش نکنیم که 
مدیریت داده برای هر پروژه نرم افزاری یک باید است . <br />
پیاده کنندگان نرم افزار در زمان نوشتن کد و تولید امکانات مورد نیاز در هر یک از 
لایه های متفاوت ( با توجه به&nbsp; نوع معماری نرم افزار ) ، همواره این پرسش را 
با خود مطرح می نمایند که محیط پیاده سازی و یا فریمورک هائی نظیر دات نت چه 
امکاناتی را در اختیار آنها خصوصا&quot; در زمان کار با داده قرار می دهند . به عبارت 
دیگر ، یک سیستم عامل چگونه می تواند نیاز پیاده کنندگان نرم افزار را پوشش دهد و&nbsp; 
چه امکانات و پتانسیل هائی را در اختیار علاقه مندان به طراحی و پیاده سازی نرم 
افزار قرار می دهد .&nbsp; <br />
دات نت به عنوان یکی از فریمورک های پیاده سازی نرم افزار در سالیان اخیر ، امکانات 
متعددی را جهت کار با داده در اختیار پیاده کنندگان نرم افزار قرار می دهد .
<span lang="en-us">LINQ</span> ، تلاشی است جهت یکپارچگی عمیق تر و بیش تر بین 
زبان های برنامه نویسی و داده .&nbsp; 
در واقع <span lang="en-us">LINQ</span> مشتمل بر مجموعه ای از عملگرهای
<span lang="en-us">query</span> استاندارد است که&nbsp; معماری لازم جهت حرکت ، 
فیلترینگ و اجرای عملیات بر روی تقریبا&quot; هر نوع منبع داده نظیر <span lang="en-us">
XML</span> ، بانک های اطلاعاتی رابطه ای و اشیاء درون حافظه را فراهم می نماید .
<br />
قبل از هر چیز 
اجازه دهید ببینیم <span lang="en-us">LINQ</span> چیست ؟<br />
<br />
<font color="#336699">
<strong><span lang="en-us">
LINQ</span> چیست ؟ <br />
</strong>
</font>با این که فناوری
<span lang="en-us">LINQ</span> در پائیز سال 2005 مطرح گردید ولی فرآیند پیاده 
سازی آن از سال 2003 آغاز شده بود . هدف از ابداع فناوری 
فوق، ارائه تسهیلات لازم برای پیاده کنندگان جهت کار با داده در بانک های اطلاعاتی&nbsp; <span lang="en-us">SQL</span> و <span lang="en-us">XML</span> 
عنوان شده است. در 
واقع ، وجود یک حلقه گمشده بین داده رابطه ای ( بانک های اطلاعاتی )&nbsp; 
، اسناد
<span lang="en-us">XML</span> با زبان های برنامه نویسی ، ضرورت ابداع فناوری فوق 
را توجیه کرده بود . پیاده کنندگان مجبور بودند&nbsp; برای کار با هر یک از منابع 
داده ، از روش های مختلفی استفاده نمایند . <span lang="en-us">LINQ</span>&nbsp;
را می توان به منزله حلقه ای گمشده&nbsp; بین دنیای 
داده و زبان های برنامه نویسی همه منظوره&nbsp; تصور کرد 
. با استفاده از&nbsp; <span lang="en-us">LINQ</span>&nbsp; امکان دستیابی به داده  
صرفنظر از نوع داده&nbsp; 
، با روشی مشابه و یکسان فراهم می گردد .&nbsp; <br />
پیاده کنندگان نرم افزار<strong> </strong>در زمان نوشتن برنامه های خود معمولا&quot; از دو زبان 
مختلف جهت رسیدن به یک هدف مشترک استفاده می نمایند . ما برای نوشتن کدها از یک زبان برنامه نویسی نظیر
<span lang="en-us">VB.NET</span> و یا <span lang="en-us">#C</span> و برای&nbsp; گفتگو با سیستم بانک اطلاعاتی از یک 
زبان دیگر نظیر <span lang="en-us">SQL</span> استفاده می کنیم 
.</font></font></p>

<div align="center">
<font face="Times New Roman" size="3">  </font><center>

<font face="Times New Roman" size="3">  <table height="29" width="402" cellspacing="0" cellpadding="0" bordercolor="#c0c0c0" border="1" dir="rtl" style="border-collapse: collapse;" class="code">
    <tbody><tr>

      <td height="16" width="400" bgcolor="#f4f4ff" style="text-align: right;" dir="rtl">
<p style="text-align: center;" dir="rtl"><font face="Tahoma" size="2">برای سفارش 
شام خود از یک زبان و برای سفارش چای از زبان دیگر !</font></p></td>

    </tr>
  </tbody></table>

  </font></center>
</div>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">این موضوع می تواند چالش های متعددی را برای پیاده کنندگان نرم افزار به دنبال 
داشته باشد : </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">در مواردی که فریمورک 
دات نت را به عنوان پلت فرم انتخاب کرده باشیم ، دات نت قادر به درک کدهای
<span lang="en-us">SQL</span> نخواهد بود.</font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">&nbsp;در مواردی که از 
زبان های برنامه نویسی حمایت شده در دات نت جهت نوشتن کد در محیط ویژوال استودیو 
استفاده می کنیم ، همواره یک ابزار قدرتمند در کنار ما است تا در صورت اشتباه در 
گرامر دستورات توصیه های لازم را ارائه نماید ( IntelliSense ) .از ویژگی فوق نمی 
توان در ارتباط با&nbsp; <span lang="en-us">SQL</span>&nbsp; استفاده کرد . </font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">امکان بررسی نوع ها در 
زمان ترجمه وجود ندارد . این بدان معنی است که پیاده کنندگان تا زمانی که برنامه 
اجراء نگردد ، نمی توانند مشکلات احتمالی را مشاهده و قبل از زمان اجراء با آنها 
برخورد نمایند . </font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">شرکت مایکروسافت 
امکانات متعددی را در فریمورک دات نت جهت کار با اسناد <span lang="en-us">XML</span>&nbsp; 
ارائه کرده است . ارائه
<span lang="en-us">System.Xml </span>،&nbsp; <span lang="en-us">
System.Xml.XPath</span> و <span lang="en-us">System.Xml.Schema</span>&nbsp; 
نمونه هائی در این زمینه می باشند . پیاده کنندگان نرم افزار در زمان کار با اسناد
<span lang="en-us">XML</span> مجبور بودند که از فناوری های متعددی نظیر&nbsp;&nbsp;&nbsp; <span lang="en-us">DOM</span> ( 
برگرفته شده از <span lang="en-us">Document Object Mode</span> 
) و
<span lang="en-us">XQuery</span>&nbsp; استفاده نمایند . همین موضوع باعث شده بود 
که کار با اسناد <span lang="en-us">XML</span> نظیر خواندن و یا نوشتن داده در 
آنها برای بسیاری از پیاده کنندگان مشکل 
باشد. </font></p>

  </li>
</font></ul>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">شرکت مایکروسافت برای 
حل مشکلات فوق ، بررسی دو راهکار را در دستور کار خود قرار داد : </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000">ایجاد پتانسیل های مورد نیاز&nbsp; مختص <span lang="en-us">XML</span> 
و یا داده رابطه ای در هر یک از زبان های برنامه نویسی و زمان اجراء</font></strong> . 
راهکار فوق نه تنها مشکل اصلی را حل نمی کرد بلکه در مواردی مشکلات را خصوصا&quot; در 
زمینه نگهداری افزایش می داد .&nbsp; </font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000">اضافه کردن قابلیت های همه منظوره 
نوشتن <span lang="en-us">query</span> در 
فریمورک دات نت</font></strong>&nbsp; 
. به عبارت دیگر یک فریمورک 
همه منظوره با قابلیت نوشتن
<span lang="en-us">query&nbsp;</span>درون فریمورک دات نت که زبان 
های <span lang="en-us">VB.NET</span> و <span lang="en-us">#C</span> بتوانند به 
سادگی از مز ایای آن استفاده نمایند . </font></p>

  </li>
</font></ul>
<font face="Times New Roman" size="3">

</font><p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">خوشبختانه ، شرکت 
مایکروسافت گزینه دوم را انتخاب نمود . ایجاد یک زیرساخت جهت نوشتن <span lang="en-us">query</span> در بین اشیاء ، اسناد
<span lang="en-us">XML</span> ، داده رابطه ای و 
... <br />
هم اینک پیاده کنندگان می توانند از مزایای 
یک الگوی تعریفی در هر یک از زبان های دات نت 
جهت کار با داده&nbsp; استفاده نمایند . 
ارائه مجموعه اپراتورهای استاندارد جهت نوشتن <span lang="en-us">query</span> یکی 
از دستاوردهای مهم <span lang="en-us">LINQ</span> محسوب می گردد .&nbsp; بدین 
ترتیب ، پیاده کنندگان می توانند با بکارگیری یک مجموعه یکسان از اپراتورهای نوشتن
<span lang="en-us">query</span> در هر یک از زبان های برنامه نویسی حمایت شده در 
دات نت ، از داده ذخیره شده در&nbsp; منابع داده مختلف صرفنظر از نوع منبع داده 
استفاده نمایند . همچنین ، امکان استفاده از پتانسیل هائی نظیر&nbsp;&nbsp; 
IntelliSense <span lang="en-us">&nbsp;</span>و بررسی نوع ها در زمان ترجمه نیز 
وجود خواهد داشت .
<br />
شکل 1 نحوه عملکرد <span lang="en-us">LINQ</span>&nbsp; را نشان می دهد .</font></font></p>

<p align="center" dir="rtl"><font face="Times New Roman" size="3"><img border="0" src="http://srco.ir/Articles/images/IntroLINQ2.jpg" /><font face="Tahoma" size="2"><br />
<br />
شکل 1 : عملکرد فناوری <span lang="en-us">LINQ</span> </font></font></p>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><strong>
<font color="#336699">مثال <br />
</font></strong>برای آشنایی اولیه با&nbsp; قابلیت های <span lang="en-us">LINQ</span>&nbsp; 
، بد نیست بدون این که بخواهیم وارد جزئیات شویم یک مثال کاربردی را با یکدیگر 
دنبال نمائیم . <br />
در این مثال با استفاده از <span lang="en-us">LINQ</span> و با یک روش مشابه به 
منابع داده مختلفی متصل شده و پس از بازیابی داده ، آنها را در یک
<span lang="en-us">ListBox</span> جداگانه نمایش می دهیم .&nbsp; <br />
منابع داده عبارتند از : </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

 <font face="Tahoma" size="2">فولدرهای موجود در یک 
درایو </font> 
  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">پردازه های در حال 
اجراء در ویندور </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">یک بانک اطلاعاتی رابطه 
ای <span lang="en-us">SQL</span> </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">عناصر موجود در یک 
آرایه </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">یک فایل
<span lang="en-us">XML</span> </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">یک فایل متن </font> 

  </li>
</font></ul>

<font face="Times New Roman" size="3">  </font><div align="left">

<font face="Times New Roman" size="3">  <table height="23" width="507" cellspacing="0" cellpadding="0" bordercolor="#c0c0c0" border="1" dir="ltr" style="border-collapse: collapse;" class="code">
    <tbody><tr>

      <td height="10" width="615" bgcolor="#f4f4ff" dir="ltr">
<font face="Tahoma">
<font size="1"><span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1">
</font><font size="1" color="#a31515">Page</font><font size="1"> </font>
<font size="1" color="#ff0000"><span lang="en-us">&nbsp; </span>Language</font><font size="1" color="#0000ff">=&quot;VB&quot;</font><font size="1">
</font><font size="1" color="#ff0000">uiCulture</font><font size="1" color="#0000ff">=&quot;fa-IR&quot;</font><font size="1">
</font><font size="1" color="#ff0000">Culture</font><font size="1" color="#0000ff">=&quot;fa-IR&quot;</font><font size="1">
<span style="background-color: rgb(255, 255, 0);">%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">Namespace</font><font size="1" color="#0000ff">=&quot;System.Diagnostics&quot;</font><font size="1"><span style="background-color: rgb(255, 255, 0);"> 
%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">NameSpace</font><font size="1" color="#0000ff">=&quot;System.IO&quot;</font><font size="1">
<span style="background-color: rgb(255, 255, 0);">%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">NameSpace</font><font size="1" color="#0000ff">=&quot;System.Linq&quot;</font><font size="1">
<span style="background-color: rgb(255, 255, 0);">%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">NameSpace</font><font size="1" color="#0000ff">=&quot;System.Data.Linq&quot;</font><font size="1">
<span style="background-color: rgb(255, 255, 0);">%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">NameSpace</font><font size="1" color="#0000ff">=&quot;System.Data.Linq.Mapping&quot;</font><font size="1">
<span style="background-color: rgb(255, 255, 0);">%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">NameSpace</font><font size="1" color="#0000ff">=&quot;System.XML.Linq&quot;</font><font size="1">
<span style="background-color: rgb(255, 255, 0);">%&gt;</span><br />
<span style="background-color: rgb(255, 255, 0);">&lt;%</span></font><font size="1" color="#0000ff">@</font><font size="1"> </font>
<font size="1" color="#a31515">Import</font><font size="1"> </font>
<font size="1" color="#ff0000">NameSpace</font><font size="1" color="#0000ff">=&quot;System.Collections&quot;</font><font size="1"><span style="background-color: rgb(255, 255, 0);"> 
%&gt;</span></font></font><p><font face="Tahoma">
<font size="1" color="#0000ff">&lt;</font><font size="1" color="#a31515">script</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;</font><font size="1">
<br />
</font><font size="1" color="#008000">
'====================================================================</font></font></p>
<div align="center">
  <center>
  <table height="30" width="79%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="30" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">کلاس ایجاد شده بر اساس داده 
      موجود در بانک اطلاعاتی <span lang="en-us">Contact</span> برای جدول
      <span lang="en-us">Persons</span> <br />
      <span lang="en-us">LINQ to SQL Class</span></font></p></td>
    </tr>
  </tbody></table>
  </center>
</div>
<p><font face="Tahoma"><font size="1">&lt;Table(Name:=</font><font size="1" color="#a31515">&quot;Persons&quot;</font><font size="1">)&gt; 
_<br />
</font><font size="1" color="#0000ff">Public</font><font size="1"> </font>
<font size="1" color="#0000ff">Class</font><font size="1"> Person<br />
<span lang="en-us">&nbsp;&nbsp; </span>&lt;Column(DbType:=</font><font size="1" color="#a31515">&quot;Int 
not null&quot;</font><font size="1">)&gt; _<br />
</font><font size="1" color="#0000ff"><span lang="en-us">&nbsp;&nbsp; </span>
Public</font><font size="1"> ID </font><font size="1" color="#0000ff">As</font><font size="1">
</font><font size="1" color="#0000ff">Integer<br />
</font><font size="1"><span lang="en-us">&nbsp;&nbsp; </span>&lt;Column(DbType:=</font><font size="1" color="#a31515">&quot;nvarchar(50) 
not null&quot;</font><font size="1">)&gt; _<br />
</font><font size="1" color="#0000ff"><span lang="en-us">&nbsp;&nbsp; </span>
Public</font><font size="1"> Name </font><font size="1" color="#0000ff">As</font><font size="1">
</font><font size="1" color="#0000ff">String<br />
</font><font size="1"><span lang="en-us">&nbsp;&nbsp; </span>&lt;Column(DbType:=</font><font size="1" color="#a31515">&quot;nvarchar(50) 
not null&quot;</font><font size="1">)&gt; _<br />
</font><font size="1" color="#0000ff"><span lang="en-us">&nbsp;&nbsp; </span>
Public</font><font size="1"> Email </font><font size="1" color="#0000ff">As</font><font size="1">
</font><font size="1" color="#0000ff">String<br />
End</font><font size="1"> </font><font size="1" color="#0000ff">Class<br />
</font><font size="1" color="#008000">
'====================================================================&nbsp; <br />
</font><font size="1" color="#0000ff">Protected</font><font size="1"> </font>
<font size="1" color="#0000ff">Sub</font><font size="1"> Page_Load(</font><font size="1" color="#0000ff">ByVal</font><font size="1"> 
sender </font><font size="1" color="#0000ff">As</font><font size="1"> </font>
<font size="1" color="#0000ff">Object</font><font size="1">, </font>
<font size="1" color="#0000ff">ByVal</font><font size="1"> e </font>
<font size="1" color="#0000ff">As</font><font size="1"> System.EventArgs)</font></font><font color="#008000"><font face="Tahoma" size="1"><span lang="en-us"><br />
</span>
</font></font></p>
<font size="2" color="#008000">
</font><div align="center">
<font size="2" color="#008000">  </font><center>
<font size="2" color="#008000">  <table height="27" width="81%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="27" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">بازیابی فولدرهای موجود در 
      درایو <span lang="en-us">C</span> </font></p></td>
    </tr>
  </tbody></table>
  </font></center>
</div>

<p><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> DI </font>
<font size="1" color="#0000ff">As</font><font size="1"> DirectoryInfo = </font>
<font size="1" color="#0000ff">New</font><font size="1"> DirectoryInfo(</font><font size="1" color="#a31515">&quot;<a href="file:///C://">C:\\</a>&quot;</font><font size="1">)<br />
</font><font size="1" color="#0000ff">Dim</font><font size="1"> dirQuery =
</font><font size="1" color="#0000ff">From</font><font size="1"> dir </font>
<font size="1" color="#0000ff">In</font><font size="1"> DI.GetDirectories()
</font><font size="1" color="#0000ff">Order</font><font size="1"> </font>
<font size="1" color="#0000ff">By</font><font size="1"><br />
<span lang="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>&nbsp;(dir.Name) </font><font size="1" color="#0000ff">Select</font><font size="1"> 
dir.Name<br />
</font><font size="1" color="#0000ff">For</font><font size="1"> </font>
<font size="1" color="#0000ff">Each</font><font size="1"> item </font>
<font size="1" color="#0000ff">In</font><font size="1"> dirQuery<br />
<span lang="en-us">&nbsp;&nbsp;&nbsp; </span>ListBox1.Items.Add(item)<br />
</font><font size="1" color="#0000ff">Next</font></font><font face="Tahoma" size="1"> item<br />
<span lang="en-us">
'====================================================================</span></font></p>
<font size="2">

</font><font size="2" color="#008000"><div align="center">
  <center>
  <table height="26" width="83%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="26" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">بازیابی پردازه های در حال 
      اجرا در ویندور </font></p></td>
    </tr>
  </tbody></table>
  </center>
</div>

</font><font size="2">
</font><p><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> procQuery =
</font><font size="1" color="#0000ff">From</font><font size="1"> proc </font>
<font size="1" color="#0000ff">In</font><font size="1"> Process.GetProcesses()
</font><font size="1" color="#0000ff">Order</font><font size="1"> </font>
<font size="1" color="#0000ff">By</font><font size="1"> proc.I<span lang="en-us">d</span> </font>
<font size="1" color="#0000ff">&nbsp;&nbsp;<span lang="en-us">_<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Descending</font><font size="1"> </font>
<font size="1" color="#0000ff">Select</font><font size="1"> proc.Id, 
proc.ProcessName<span lang="en-us"> <br />
</span>
</font><font size="1" color="#0000ff">For</font><font size="1"> </font>
<font size="1" color="#0000ff">Each</font><font size="1"> item </font>
<font size="1" color="#0000ff">In</font><font size="1"> procQuery<br />
&nbsp;&nbsp; ListBox2.Items.Add(item.Id &amp; </font>
<font size="1" color="#a31515">&quot; &quot;</font><font size="1"> 
&amp; item.ProcessName)<br />
</font><font size="1" color="#0000ff">Next</font><font size="1"> item<br />
</font></font><font color="#008000">
<font face="Tahoma" size="1">
'=====================================================================</font><span lang="en-us"><font face="Tahoma" size="1">
</font></span></font></p>
<font size="2" color="#008000">
<div align="center">
  <center>
  <table height="25" width="83%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="25" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">بازیابی داده موجود در جدول
      <span lang="en-us">Persons</span> بانک اطلاعاتی <span lang="en-us">Conatct</span></font></p></td>
    </tr>
  </tbody></table>
  </center>
</div>

</font><font size="2">
</font><p><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> context
</font><font size="1" color="#0000ff">As</font><font size="1"> DataContext =
</font><font size="1" color="#0000ff">New</font><font size="1"> DataContext(</font><font size="1" color="#a31515">&quot;Data 
Source=SRCO-1\SQLEXPRESS;<br />
<span lang="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Initial Catalog=Contact;Integrated Security=true&quot;</font><font size="1">)<br />
</font><font size="1" color="#0000ff">Dim</font><font size="1"> contact1
</font><font size="1" color="#0000ff">As</font><font size="1"> Table(</font><font size="1" color="#0000ff">Of</font><font size="1"> 
Person) = context.GetTable(</font><font size="1" color="#0000ff">Of</font><font size="1"> 
Person)()<br />
</font><font size="1" color="#0000ff">Dim</font><font size="1"> query =
</font><font size="1" color="#0000ff">From</font><font size="1"> c </font>
<font size="1" color="#0000ff">In</font><font size="1"> contact1 </font>
<font size="1" color="#0000ff">Select</font><font size="1"> c.Name, c.Email<br />
</font><font size="1" color="#0000ff">For</font><font size="1"> </font>
<font size="1" color="#0000ff">Each</font><font size="1"> item </font>
<font size="1" color="#0000ff">In</font><font size="1"> query<br />
&nbsp;&nbsp;&nbsp;&nbsp; ListBox3.Items.Add(item.Name &amp; </font>
<font size="1" color="#a31515">&quot; &quot;</font><font size="1"> 
&amp; </font><font size="1" color="#a31515">&quot; ==== ◄ &quot;</font><font size="1"> &amp; 
item.Email)<br />
</font><font size="1" color="#0000ff">Next</font><font size="1"> item<br />
</font></font><font color="#008000">
<font face="Tahoma" size="1">'=======================================================================</font><span lang="en-us"><font face="Tahoma" size="1">
</font></span></font></p>
<font size="2" color="#008000">
<div align="center">
  <center>
  <table height="29" width="80%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="29" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">بازیابی عناصر یک آرایه
      </font></p></td>
    </tr>
  </tbody></table>
  </center>
</div>

</font><font size="2">
</font><p><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> firstnames
</font><font size="1" color="#0000ff">As</font><font size="1"> </font>
<font size="1" color="#0000ff">String</font></font><font size="1"><font face="Tahoma">() = 
{&quot;سخا روش&quot;, &quot;سایت شرکت سخا روش&quot;, &quot;سایت مقالات به زبان فارسی&quot;, &quot;سری مقالات &quot;, 
&quot;ایران&quot;, &quot;تهران&quot;} </font><span lang="en-us"><font face="Tahoma">&nbsp;</font></span><font face="Tahoma"><br />
</font></font><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> val </font>
<font size="1" color="#0000ff">As</font><font size="1"> IEnumerable(</font><font size="1" color="#0000ff">Of</font><font size="1">
</font><font size="1" color="#0000ff">String</font><font size="1">) = </font>
<font size="1" color="#0000ff">From</font><font size="1"> fn </font>
<font size="1" color="#0000ff">In</font><font size="1"> firstnames _<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
<font size="1" color="#0000ff">Where</font><font size="1"> 
(fn.StartsWith(</font><font size="1" color="#a31515">&quot;س&quot;</font><font size="1">)) 
_<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
<font size="1" color="#0000ff">Select</font><font size="1"> fn<br />
</font><font size="1" color="#0000ff">For</font><font size="1"> </font>
<font size="1" color="#0000ff">Each</font><font size="1"> name </font>
<font size="1" color="#0000ff">As</font><font size="1"> </font>
<font size="1" color="#0000ff">String</font><font size="1"> </font>
<font size="1" color="#0000ff">In</font><font size="1"> val<br />
&nbsp;&nbsp;&nbsp;&nbsp; ListBox4.Items.Add(name)<br />
</font><font size="1" color="#0000ff">Next</font><font size="1"> name<br />
</font></font><font color="#008000">
<font face="Tahoma" size="1">
'========================================================================</font><span lang="en-us"><font face="Tahoma" size="1">
</font></span></font></p>
<font size="2" color="#008000">
</font><div align="center">
<font size="2" color="#008000">  </font><center>
<font size="2" color="#008000">  <table height="28" width="81%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="28" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">بازیابی داده ذخیره شده در 
      یک فایل <span lang="en-us">XML</span> با نام <span lang="en-us">Cities.xml</span>
      </font></p></td>
    </tr>
  </tbody></table>
  </font></center>
</div>

<font size="2">
</font><p><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> XDoc </font>
<font size="1" color="#0000ff">As</font><font size="1"> XDocument = 
XDocument.Load(MapPath(</font><font size="1" color="#a31515">&quot;Cities.xml&quot;</font><font size="1">))<br />
</font><font size="1" color="#0000ff">Dim</font><font size="1"> query1 =
</font><font size="1" color="#0000ff">From</font><font size="1"> c </font>
<font size="1" color="#0000ff">In</font><font size="1"> XDoc.Descendants(</font><font size="1" color="#a31515">&quot;City&quot;</font><font size="1">) 
_<br />
</font><font size="1" color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order</font><font size="1"> </font>
<font size="1" color="#0000ff">By</font><font size="1"> c.Element(</font><font size="1" color="#a31515">&quot;Name&quot;</font><font size="1">).Value 
_<br />
</font><font size="1" color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Select</font><font size="1"> c.Element(</font><font size="1" color="#a31515">&quot;Name&quot;</font><font size="1">).Value<br />
</font><font size="1" color="#0000ff">For</font><font size="1"> </font>
<font size="1" color="#0000ff">Each</font><font size="1"> item </font>
<font size="1" color="#0000ff">In</font><font size="1"> query1<br />
&nbsp;&nbsp;&nbsp; ListBox5.Items.Add(item)<br />
</font><font size="1" color="#0000ff">Next</font><font size="1"> item<br />
<span lang="en-us">
'======================================================================</span>
<span lang="en-us">
&nbsp;<br />
&nbsp;</span></font></font><font size="2" color="#008000"><div align="center">
  <center>
  <table height="25" width="82%" cellspacing="0" cellpadding="0" bordercolor="#111111" border="0" id="AutoNumber1" style="border-collapse: collapse;">
    <tbody><tr>
      <td height="25" width="100%" bgcolor="#bfd5ea" align="center" dir="rtl">
      <p align="center"><font face="Tahoma" size="1">بازیابی داده از یک فایل متن 
      با نام <span lang="en-us">Maghalat.csv</span> </font></p></td>
    </tr>
  </tbody></table>
  </center>
</div>
</font></p>
<font size="2">
</font><p><font face="Tahoma"><font size="1" color="#0000ff">Dim</font><font size="1"> query2 =
</font><font size="1" color="#0000ff">From</font><font size="1"> line </font>
<font size="1" color="#0000ff">In</font><font size="1"> 
File.ReadAllLines(MapPath(</font><font size="1" color="#a31515">&quot;Maghalat.csv&quot;</font><font size="1">)) 
_<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
<font size="1" color="#0000ff">Where</font><font size="1"> </font>
<font size="1" color="#0000ff">Not</font><font size="1"> line.StartsWith(</font><font size="1" color="#a31515">&quot;#&quot;</font><font size="1">) 
_<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
<font size="1" color="#0000ff">Let</font><font size="1"> parts = 
line.Split(</font><font size="1" color="#a31515">&quot;,&quot;</font><font size="1">) _<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
<font size="1" color="#0000ff">Select</font><font size="1"> Title = parts(0), 
Publisher = parts(1) <br />
</font><font size="1" color="#0000ff">For</font><font size="1"> </font>
<font size="1" color="#0000ff">Each</font><font size="1"> item </font>
<font size="1" color="#0000ff">In</font><font size="1"> query2<br />
&nbsp;&nbsp;&nbsp; ListBox6.Items.Add(item.Title &amp; </font>
<font size="1" color="#a31515">&quot; &quot;</font><font size="1"> 
&amp; item.Publisher)<br />
</font><font size="1" color="#0000ff">Next</font></font><font face="Tahoma" size="1"> item</font></p>
<font size="2">
</font>


<p><font face="Tahoma"><font size="1" color="#0000ff">End</font><font size="1"> </font>
<font size="1" color="#0000ff">Sub</font></font></p>
<font size="2">


</font><font size="1" color="#0000ff">
</font><p><font size="1" color="#0000ff"><font face="Tahoma">&lt;/</font></font><font face="Tahoma"><font size="1" color="#a31515">script</font><font size="1" color="#0000ff">&gt;<br />
</font>
<font size="1" color="#008000">'<span lang="en-us">====================================================================</span>===</font></font><font face="Tahoma" size="1" color="#008000">
</font></p>
      </td>

    </tr>
    <tr>

      <td height="10" width="615" bgcolor="#f4f4ff" dir="ltr">
<font size="1" color="#0000ff"><font face="Tahoma">&lt;</font></font><font face="Tahoma"><font size="1" color="#a31515">html</font><font size="1">
</font><font size="1" color="#ff0000">xmlns</font><font size="1" color="#0000ff">=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br />
&lt;</font><font size="1" color="#a31515">head</font><font size="1"> </font>
<font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;<br />
&nbsp; &lt;</font><font size="1" color="#a31515">title</font><font size="1" color="#0000ff">&gt;</font><font size="1"> 
مثال شماره یک&nbsp; </font><font size="1" color="#0000ff">&lt;/</font><font size="1" color="#a31515">title</font><font size="1" color="#0000ff">&gt;<br />
&lt;/</font><font size="1" color="#a31515">head</font><font size="1" color="#0000ff">&gt;<br />
&lt;</font><font size="1" color="#a31515">body</font><font size="1" color="#0000ff">&gt;<br />
&nbsp; &lt;</font><font size="1" color="#a31515">form</font><font size="1"> </font>
<font size="1" color="#ff0000">id</font><font size="1" color="#0000ff">=&quot;form1&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">div</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1">
</font><font size="1" color="#ff0000">ID</font><font size="1" color="#0000ff">=&quot;ListBox1&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;&lt;/</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1">
</font><font size="1" color="#ff0000">ID</font><font size="1" color="#0000ff">=&quot;ListBox2&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;&lt;/</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1">
</font><font size="1" color="#ff0000">ID</font><font size="1" color="#0000ff">=&quot;ListBox3&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;&lt;/</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1">
</font><font size="1" color="#ff0000">ID</font><font size="1" color="#0000ff">=&quot;ListBox4&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;&lt;/</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1">
</font><font size="1" color="#ff0000">ID</font><font size="1" color="#0000ff">=&quot;ListBox5&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;&lt;/</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1">
</font><font size="1" color="#ff0000">ID</font><font size="1" color="#0000ff">=&quot;ListBox6&quot;</font><font size="1">
</font><font size="1" color="#ff0000">runat</font><font size="1" color="#0000ff">=&quot;server&quot;&gt;&lt;/</font><font size="1" color="#a31515">asp</font><font size="1" color="#0000ff">:</font><font size="1" color="#a31515">ListBox</font><font size="1" color="#0000ff">&gt;<br />
&nbsp;&nbsp; &lt;/</font><font size="1" color="#a31515">div</font><font size="1" color="#0000ff">&gt;<br />
&nbsp; &lt;/</font><font size="1" color="#a31515">form</font><font size="1" color="#0000ff">&gt;<br />
&lt;/</font><font size="1" color="#a31515">body</font><font size="1" color="#0000ff">&gt;<br />
&lt;/</font><font size="1" color="#a31515">html</font><font size="1" color="#0000ff">&gt;</font></font><font face="Tahoma" size="1">&nbsp;</font></td>

    </tr>
  </tbody></table>

</font></div>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">شکل زیر خروجی برنامه 
فوق را نشان می دهد . </font></font></p>

<p align="center" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">
<img border="0" alt=" دستیابی به منابع داده مختلف با استفاده از فناوری LINQ " lowsrc="دستیابی%20به%20منابع%20داده%20مختلف%20با%20استفاده%20از%20فناوری%20LINQ%20" src="http://srco.ir/Articles/images/IntroLINQ1.jpg" /><br />
<br />
شکل&nbsp; 2&nbsp; : دستیابی به منابع داده مختلف با استفاده از فناوری
<span lang="en-us">LINQ</span> </font></font></p>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><strong>
<font color="#336699">خلاصه <br />
</font></strong><span lang="en-us">LINQ</span> یک فناوری قدرتمند در زمان کار با داده 
است که دستاوردهای 
متعددی را برای پیاده کنندگان به ارمغان آورده است : </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

 <font face="Tahoma" size="2">روشی ساده جهت نوشتن <span lang="en-us">query</span>
</font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">تسریع در پیاده سازی 
نرم افزار با توجه به حذف خطاهای زمان اجراء </font> 

  </li>
  <li dir="rtl">
 <font face="Tahoma" size="2">امکان استفاده از 
امکاناتی نظیر اشکال زدائی و
<span lang="en-us">IntelliSence</span> در زمان پیاده سازی </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">حذف خلاء موجود بین 
داده رابطه ای و پیاده سازی شی گراء </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">استفاده از یک گرامر 
یکسان جهت نوشتن <span lang="en-us">query</span> صرفنظر از نوع منبع داده </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">افزایش بازدهی و 
راندمان برنامه نویسی ، چراکه برنامه نویسان از یک رویکرد یکسان برای نوشتن <span lang="en-us">query</span>&nbsp; و بهنگام سازی داده از طریق زبان 
برنامه نویسی&nbsp;&nbsp; استفاده خواهند کرد .&nbsp;
</font> 

  </li>
</font></ul>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">&nbsp;</font><font face="Tahoma"><span lang="en-us"><font size="2">LINQ</font></span><font size="2"> 
از دو بخش که مکمل یکدیگر می باشند تشکیل شده است : </font></font><font face="Tahoma" size="2"> 
مجموعه ای از ابزار ها جهت کار با اشیاء ، اسناد <span lang="en-us">XML</span> ، 
بانک های اطلاعاتی رابطه ای و سایر نوع های داده و مجموعه ای از ضمایم برای زبان 
های برنامه نویسی نظیر <span lang="en-us">VB</span> و <span lang="en-us">#C</span>&nbsp; 
. در بخش دوم به بررسی هر یک از موارد فوق خواهیم پرداخت . </font></font></p>]]></description>
					<pubDate>Sat, 16 Aug 2008 01:27:33 GMT</pubDate>
					<comments>http://yosafy.blogsky.com/Comments.bs?PostID=434</comments>
          <guid>http://yosafy.blogsky.com/1387/05/26/post-434/</guid>
				</item>
			
				<item>
					<title><![CDATA[اصول اولیه استراتژی دفاع در عمق]]></title>
					<link>http://yosafy.blogsky.com/1387/05/26/post-433/</link>
					<description><![CDATA[<p><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><span lang="en-us">IATFF</span> ( برگرفته شده از 
Information Assurance Technical Framework Forum ) سازمانی است که توسط
<span lang="en-us">NSA </span>( برگرفته شده از&nbsp; National Security Agency&nbsp; 
) حمایت می گردد و مهمترین وظیفه آن مبادله اطلاعات فنی بین صنایع امریکا ، موسسات 
آموزشی و سازمان های دولتی امریکا بر روی موضوع مهم امنیت و یا 
تضمین امنیت اطلاعات است . <br />
<span lang="en-us">IATFF</span> ، سند <span lang="en-us">IATF</span> ( 
برگرفته شده از&nbsp; Information Assurance Technical Framework ) را تولید و 
اخیرا&quot; نسخه 1 . 3 آن 
را منشتر کرده است . در این سند به&nbsp; 
فرآیندها و&nbsp; توصیه هائی در جهت حفاظت 
از سیستم های اطلاعاتی بر اساس اصول مهندسی سیستم اشاره شده است . <br />
در سند فوق به سه عنصر تاثیر گذار در 
امنیت اطلاعات یعنی انسان ، عملیات و فناوری ها اشاره شده است . سه موجودیت فوق ، 
اساس متدلوژی &quot;دفاع در عمق &quot; در تشکیل می دهند . <br />
در ادامه با این استراتژی امنیتی حفاظتی و اصول اساسی آن بیشتر آشنا می شویم . </font></font></p><p><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><span lang="en-us">IATFF</span> ( برگرفته شده از 
Information Assurance Technical Framework Forum ) سازمانی است که توسط
<span lang="en-us">NSA </span>( برگرفته شده از&nbsp; National Security Agency&nbsp; 
) حمایت می گردد و مهمترین وظیفه آن مبادله اطلاعات فنی بین صنایع امریکا ، موسسات 
آموزشی و سازمان های دولتی امریکا بر روی موضوع مهم امنیت و یا 
تضمین امنیت اطلاعات است . <br />
<span lang="en-us">IATFF</span> ، سند <span lang="en-us">IATF</span> ( 
برگرفته شده از&nbsp; Information Assurance Technical Framework ) را تولید و 
اخیرا&quot; نسخه 1 . 3 آن 
را منشتر کرده است . در این سند به&nbsp; 
فرآیندها و&nbsp; توصیه هائی در جهت حفاظت 
از سیستم های اطلاعاتی بر اساس اصول مهندسی سیستم اشاره شده است . <br />
در سند فوق به سه عنصر تاثیر گذار در 
امنیت اطلاعات یعنی انسان ، عملیات و فناوری ها اشاره شده است . سه موجودیت فوق ، 
اساس متدلوژی &quot;دفاع در عمق &quot; در تشکیل می دهند . <br />
در ادامه با این استراتژی امنیتی حفاظتی و اصول اساسی آن بیشتر آشنا می شویم . </font></font>

</p><p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><strong>
<font color="#336699">دفاع در عمق چیست ؟ <br />
</font></strong>دفاع در عمق ، یک مدل حفاظتی لایه ای 
برای اجزاء مهم سیستم های 
اطلاعاتی است . 
استراتژی دفاع در عمق محدوده های زیر را شامل می شود :
</font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

 <font face="Tahoma" size="2">حفاظت از شبکه و 
زیرساخت </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">حفاظت و دفاع در محدوده 
های مرزی&nbsp; ( نقطه تماس شبکه با سایر شبکه ها ) </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">حفاظت و دفاع ار محیط 
محاسباتی و عملیاتی </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">زیرساخت های حمایتی </font> 

  </li>
</font></ul>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2">واژه &quot;محدوده مرزی &quot; که 
در استراتژی دفاع در عمق 
به آن اشاره شده است ، به مجموعه ای از 
محیط های محاسباتی و عملیاتی متصل شده توسط یک و یا چندین شبکه داخلی که تحت کنترل 
یک مجوز و سیاست امنیتی می باشند ، اشاره دارد. <br />
<br />
<font color="#336699"><strong>استراتژی‌ د</strong></font><strong><font color="#336699">فاع در 
عمق&nbsp; : موجودیت ها </font></strong><br />
استراتژی دفاع در عمق 
مبتنی بر سه عنصر حیاتی&nbsp; انسان ، فناوری و عملیات 
است . </font></font></p>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><font color="#800000">
<strong>انسان <br />
</strong></font>برای پیاده سازی 
موثر امنیت اطلاعات در یک سازمان ، مدیریت می بایست  
دارای یک شناخت مناسب سطح بالا نسبت به 
فرآیندها باشد . این شناخت توسط آیتم ها و 
فعالیت های زیر مشخص می گردند . </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

<font face="Tahoma" size="2">پیاده سازی سیاست ها و 
رویه های امنیت اطلاعات </font>

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">تعیین وظایف و مسئولیت 
ها </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">آموزش کارکنان حیاتی
</font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">الزام کارکنان به 
پاسخگوئی </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">شناخت صحیح منابع </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">استقرار کنترل های 
امنیت فیزیکی </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">استقرار کنترل امنیت 
کارکنان </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">تعیین مجازات متناسب 
با رفتارهای غیرمجاز </font> 

  </li>
</font></ul>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><strong>
<font color="#800000">فناوری <br />
</font></strong>یک سازمان می بایست این اطمینان را داشته باشد که از فناوری 
های مناسب به منظور پیاده 
سازی سرویس های 
مورد نیاز جهت حفاظت اطلاعات استفاده می نماید . 
نیل به اهداف فوق مستلزم بکارگیری فرآیندها و سیاست های زیر برای بدست آوردن 
و استفاده صحیح از فناوری 
است . </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

 <font face="Tahoma" size="2">یک سیاست امنیتی </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">معماری تضمین&nbsp; 
امنیت اطلاعات در سطح سیستم </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">استانداردهای تضمین 
امنیت اطلاعات در سطح سیستم </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">اصول تضمین امنیت 
اطلاعات </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">ضوابط مشخص برای تضمین 
امنیت اطلاعات محصولات مورد نیاز </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">بدست آوردن محصولات 
معتبر و قابل اطمینان </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">توصیه ها و پیشنهادات 
پیکربندی </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">فرآیندهای تشخیص 
تهدیدات برای سیستم های یکپارچه </font> 

  </li>
</font></ul>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><br />
<strong><font color="#800000">عملیات <br />
</font></strong>عملیات بر فعالیت ها و آیتم های 
مورد نیاز به منظور نگهداری وضعیت امنیت یک سازمان&nbsp;تاکید 
و موارد زیر را شامل می شود : </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

 <font face="Tahoma" size="2">یک سیاست امنیتی ملموس 
و به روز </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">تاکید بر سیاست امنیت 
اطلاعات </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">تائید و&nbsp; اعتبار 
گذاری </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">مدیریت وضعیت امنیت 
اطلاعات </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">سرویس های مدیریت کلید
</font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">تشخیص آمادگی</font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">حفاظت از زیرساخت
</font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">ارزیابی وضعیت امنیت 
سیستم </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">مانیتورینگ و واکنش در 
مقابل تهدیدات </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">تشخیص حملات ، هشدار و 
پاسخ </font> 

  </li>
  <li dir="rtl">

 <font face="Tahoma" size="2">بازیافت و بازسازی مجدد
</font> 

  </li>
</font></ul>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><font color="#336699">
<strong>استراتژی‌ د</strong></font><strong><font color="#336699">فاع در عمق&nbsp; : محدوده 
حفاظتی </font></strong><br />
استراتژی دفاع در عمق&nbsp; ، دفاع در مقابل حملات زیر را تضمین می نماید : </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><font color="#800000">
<strong><span lang="en-us">
Passive</span></strong></font> : حملات <span lang="en-us">Passive </span>&nbsp;شامل تجزیه و 
تحلیل ترافیک ، مانیتورینگ مبادله 
اطلاعات غیرحفاظت شده ، رمزگشائی ترافیک 
رمزشده ضعیف&nbsp; ، بدست آوردن اطلاعات تائیدیه ( نظیر رمزهای عبور ) 
می باشد.<br />
رهگیری <span lang="en-us">passive</span> عملیات شبکه ، دانش لازم جهت تدارک و 
برنامه ریزی حملات را در اختیار مهاجمان قرار می دهد . این نوع حملات می تواند منتج 
به افشاء اطلاعات و یا فایل های داده برای مهاجمان بدون آگاهی و رضایت کاربران گردد 
.&nbsp; </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000"><span lang="en-us">
active</span></font></strong> : حملات <span lang="en-us">active</span> 
تلاش برای نفوذ در سیستم&nbsp; و نادیده گرفتن اقدامات امنیتی ، معرفی کدهای مخرب ، 
سرقت و اصلاح اطلاعات را شامل می شود . شعاع این نوع حملات بسیار گسترده می باشد . 
هدف قرار دادن ستون فقرات شبکه ، بهره برداری و یا سوء استفاده از اطلاعات در حال 
عبور و&nbsp; نفوذ الکترونیکی در یک ناحیه خاص نمونه هائی متداول در این زمینه می 
باشند .حملات <span lang="en-us">active</span> می تواند افشاء فایل های 
داده ، حملات <span lang="en-us">DoS</span> و یا تغییر داده را به دنبال داشته 
باشد . </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000"><span lang="en-us">
Close-in</span></font></strong> : حملات فوق 
با هدف دستیابی فیزیکی به شبکه 
و سیستم ها به منظور تغییر ، جمع 
آوری و غیرقابل دسترس کردن اطلاعات 
انجام می گردند .&nbsp; </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><font color="#800000">
<strong><span lang="en-us">
Insider</span></strong></font> : : این نوع حملات می تواند مخرب و یا 
غیرمخرب باشند . حملات مخرب&nbsp; استراق سمع ، سرقت و آسیب رساندن به اطلاعات، 
استفاده از اطلاعات با اهداف فریبکارانه و یا غیرفعال کردن سرویس ها وخدمات برای 
سایر کاربران مجاز را شامل می شود . حملات غیرمخرب عموما&quot; به دلیل عدم دقت لازم 
و ضعف دانش کاربران محقق می گردند .&nbsp; </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000"><span lang="en-us">
Distribution</span> </font></strong>: این نوع حملات با 
انجام تغییرات مخرب بر روی سخت افزار و یا نرم افزار در کارخانه و یا شرکت 
سازنده و یا در حین توزیع صورت می پذیرند .&nbsp; در این نوع حملات با معرفی کدهای 
مخرب درون یک محصول ( نظیر یک <span lang="en-us">back door</span> ) ، امکان 
دستیابی غیرمجاز به اطلاعات و قابلیت های سیستم  در آینده فراهم می 
گردد .&nbsp; </font></p>

  </li>
</font></ul>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><font color="#336699">
<strong>استراتژی‌ د</strong></font><strong><font color="#336699">فاع در عمق&nbsp; : </font></strong>
<font color="#336699"><strong>ابزارها و مکانیزم ها </strong></font><br />
برای مقاومت در 
مقابل این نوع حملات ،&nbsp; استراتژی دفاع در عمق&nbsp; ، روش های 
زیر را ارائه کرده است : </font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000">دفاع در چندین&nbsp; مکان</font></strong> : بکارگیری مکانیزم 
های حفاظت اطلاعات در چندین مکان به منظور 
حفاظت در مقابل تهدیدات داخلی و یا خارجی </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><font color="#800000">
<strong>دفاع لایه ای</strong></font> : 
بکارگیری چندین 
مکانیزم تشخیص و حفاظتی تا یک مهاجم مجبور به عبور از موانع مختلف جهت دستیابی به 
اطلاعات حیاتی گردد .&nbsp; </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000">استحکام امنیتی</font></strong> : بر اساس ارزش عناصر سیستم 
اطلاعاتی و تهدیدات پیش بینی شده ، میزان استحکام لایه های امنیتی می بایست به 
درستی تخمین و پیاده سازی گردد .&nbsp; </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000">بکارگیری
<span lang="en-us">KMI/PKI</span></font></strong> : بکارگیری زیرساخت مدیریت کلید 
،
<span lang="en-us">KMI</span> ( برگرفته شده از key management infrastructure&nbsp; 
)&nbsp;&nbsp; و زیرساخت کلید عمومی ، <span lang="en-us">PKI
</span>( برگرفته شده از public key infrastructure )&nbsp; </font></p>

  </li>
  
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000">بکارگیری سیستم های تشخیص مزاحمین</font></strong> : بکارگیری 
مکانیزم هائی برای تشخیص مزاحمین ، ارزیابی اطلاعات ، بررسی نتایج و در صورت ضرورت 
انجام واکنش های لازم .
</font></p>

  </li>
</font></ul>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><font color="#336699">
<strong>استراتژی‌ د</strong></font><strong><font color="#336699">فاع در عمق&nbsp; : پیاده سازی
</font></strong><br />
استراتژی دفاع 
در عمق می تواند 
در مرحله پیاده سازی منابع زیادی را 
مصرف نماید . برای کمک در جهت تعدیل و یا کاهش هزینه پیاده سازی 
رویکرد فوق ، توصیه های زیر ارائه شده است .</font></font></p>

<ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">اتخاذ تصمیم در خصوص 
امنیت اطلاعات بر اساس آنالیز تهدیدات و اهداف کلیدی عملیاتی سیستم&nbsp; </font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">&nbsp;توجه به سه 
موجودیت مهم موجود در استراتژی دفاع در عمق : انسان ، عملیات و فن آوری . بدون وجود 
افراد آموزش دیده و رویه های عملیاتی استفاده مطلوب از مزایای فناوری ها فراهم 
نخواهد شد . </font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">تدوین و پیاده سازی یک 
برنامه آموزشی جامع ، استفاده از تجارب عملی دیگران و اطلاع رسانی به موقع </font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">دستیابی اداواری به 
وضعیت زیرساخت اطلاعات . 
بکارگیری ابزارهای فنی نظیر پویش اتوماتیک شبکه می تواند در تشخیص 
به موقع نقاط آسیب پذیر مفید واقع شوند . </font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">انجام واکنش های لازم 
در مقابل اهداف مخرب و برخورد مناسب و به موقع با فعالیت هائی که ممکن است سهوا&quot; 
انجام شده باشد . </font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">بکارگیری رویکردهای حفاظتی مشترک 
و چندگانه جهت مقابله با رویدادهای قابل پیش بینی . بدین ترتیب ،&nbsp; نفوذ از یک 
لایه ( با فرض موفقیت آمیز بودن آن ) باعث بروز مسائل امنیتی برای تمامی زیرساخت 
اطلاعات نخواهد شد . </font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">حصول اطمینان از این 
موضوع که صرفا&quot; کارکنان معتمد دارای دستیابی فیزیکی به سیستم می باشند ( بکارگیری 
روش های مختلف نظیر مجوزها و اعتبارنامه ) .</font></p>

  </li>
  <li dir="rtl">

<p align="justify" dir="rtl"><font face="Tahoma" size="2">استفاده از رویه های 
مدون برای گزارش حوادث امنیتی 
به مراکز پاسخگو </font></p>

  </li>
</font></ul>

<p align="justify" dir="rtl"><font face="Times New Roman" size="3"><font face="Tahoma" size="2"><font color="#336699">
<strong>جمع بندی<br />
</strong></font>زیرساخت اطلاعات 
هر سازمان مشتمل بر مجموعه ای از سیستم های پیچیده است که هر یک ممکن است نقاط آسیب 
پذیر مختص به خود را داشته باشند . برای مقابله با تهدیدات امنیتی ، از چندین راه حل به همراه اصول مقدماتی 
استراتژی دفاع در عمق استفاده می گردد . استراتژی دفاع در عمق ، یک ساختار لایه ای 
برای حفاظت از زیرساخت اطلاعات در یک سازمان است . در صورتی که 
مهاجمان بتوانند با موفقیت از یک مانع با موفقیت عبور نمایند ، وجود لایه های 
حفاظتی دیگر امکان دستیابی آنان به منابع و اطلاعات حیاتی موجود در سازمان را مشکل 
و یا غیرممکن می سازد. </font></font></p>]]></description>
					<pubDate>Sat, 16 Aug 2008 01:26:00 GMT</pubDate>
					<comments>http://yosafy.blogsky.com/Comments.bs?PostID=433</comments>
          <guid>http://yosafy.blogsky.com/1387/05/26/post-433/</guid>
				</item>
			
				<item>
					<title><![CDATA[متداولترین دستورات Show در دستگاه های شبکه ای]]></title>
					<link>http://yosafy.blogsky.com/1387/05/26/post-432/</link>
					<description><![CDATA[<p><font face="Times New Roman" size="3"><font face="Tahoma" size="2">مدیران شبکه های کامپیوتری به منظور مدیریت و نگهداری 
مطلوب یک شبکه می بایست دارای مجموعه ای از مهارت ها و توانمندی باشند . یکی از 
مهمترین مهارت هائی که یک مدیر شبکه می بایست توان انجام آن را داشته باشد ، دانش 
لازم به منظور اخذ اطلاعات از دستگاه های شبکه ای است. در اکثر شبکه ها 
برای دریافت&nbsp; اطلاعات از دستگاه های شبکه ای&nbsp; نظیر روتر و&nbsp; سوئیچ از دستور
<span lang="en-us">show</span> استفاده می گردد . در ادامه با متداولترین دستورات
<span lang="en-us">show</span> ،‌ آشنا خواهیم شد .</font></font></p><p><font face="Times New Roman" size="3"><font face="Tahoma" size="2">مدیران شبکه های کامپیوتری به منظور مدیریت و نگهداری 
مطلوب یک شبکه می بایست دارای مجموعه ای از مهارت ها و توانمندی باشند . یکی از 
مهمترین مهارت هائی که یک مدیر شبکه می بایست توان انجام آن را داشته باشد ، دانش 
لازم به منظور اخذ اطلاعات از دستگاه های شبکه ای است. در اکثر شبکه ها 
برای دریافت&nbsp; اطلاعات از دستگاه های شبکه ای&nbsp; نظیر روتر و&nbsp; سوئیچ از دستور
<span lang="en-us">show</span> استفاده می گردد . در ادامه با متداولترین دستورات
<span lang="en-us">show</span> ،‌ آشنا خواهیم شد .</font></font>

</p><ul dir="rtl"><font face="Times New Roman" size="3">  <li dir="rtl">

<p align="justify" dir="rtl">
<font face="Tahoma" size="2"> <strong><font color="#800000">
<span lang="en-us">show version</span> </font></strong>: دستور فوق 
اطلاعات متنوعی در خصوص سخت افزار ( به عنوان نمونه میزان حافظه دستگاه ) ، نرم 
افزار ( به عنوان نمونه شماره نسخه نرم افزار <span lang="en-us">IOS</span> نصب 
شده بر روی دستگاه&nbsp; ) و موارد دیگر ( به عنوان نمونه تعداد و نوع هر اینترفیس 
دستگاه ) را نمایش می دهد . </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000">show ip interface 
brief</font></strong> : دستور فوق علاوه بر نمایش وضعیت ( فعال و یا غیرفعال بودن ) هر 
اینترفیس ، آدرس های <span lang="en-us">IP</span> نسبت داده شده به هر یک از آنها&nbsp; 
را نیز نمایش می دهد . مهمترین مزیت دستور فوق ، نمایش اطلاعات حیاتی در ارتباط با 
هر یک از&nbsp; اینترفیس ها است . </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><span lang="en-us"><strong>
<font face="Tahoma" size="2" color="#800000">s</font></strong></span><font face="Tahoma" size="2"><strong><font color="#800000"><span lang="en-us">how interface</span>
</font></strong>: دستور فوق جزئیات اطلاعات مربوط به هر یک از اینترفیس را نمایش می دهد 
. نمایش وضعیت ترافیک اینترفیس از جمله اطلاعاتی است که توسط دستور فوق نمایش داده 
می شود . </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000"><span lang="en-us">show ip interface</span></font></strong> : 
دستور فوق تمامی پیکربندی انجام شده در خصوص یک اینترفیس را نمایش می دهد . نمایش اطلاعات 
مربوط به <span lang="en-us">switching mode</span> ، لیست های دستیابی (&nbsp;
<span lang="en-us">ACLs</span> ) ، سیاست های روتینگ ، سطح امنیتی و
<span lang="en-us">NAT</span> نمونه هائی در این زمینه می باشند . 
در واقع ، دستور فوق نحوه رفتار یک اینترفیس را نمایش می دهد . </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000">show ip route </font></strong>&nbsp;: این دستور ضروری و مهم ، 
اطلاعات مربوط به جدول روتینگ را نمایش می دهد ( مهمترین وظیفه روتر ) .</font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000"><span lang="en-us">
show arp</span></font></strong> : در صورتی که امکان <span lang="en-us">ping</span> یک 
دستگاه شبکه ای مجاور وجود نداشته باشد ، می بایست از وجود یک <span lang="en-us">
arp entry</span> اطمینان حاصل نمود . </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000">show running-config </font></strong>&nbsp;: اطلاعات مربوط به 
پیکربندی انجام شده بر روی دستگاه را نمایش می دهد . همچنین دستور show 
startup-config&nbsp; ، اطلاعات پیکربندی که در راه اندازی آتی دستگاه از آنها استفاده 
خواهد شد را نمایش می دهد .&nbsp;
</font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000"><span lang="en-us">
show port</span></font></strong> : دستور فوق همانند دستور <span lang="en-us">show interface</span>&nbsp; 
در روتر ( نمایش وضعیت هر یک از اینترفیس ها ) ، وضعیت 
پورت های یک سوئیچ را نمایش می دهد . </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000"><span lang="en-us">
show vlan</span></font></strong>&nbsp;: با توجه به 
رشد فزاینده استفاده از شبکه های 
محلی مجازی ( <span lang="en-us">VLANs</span> ) ، با استفاده از دستور فوق می توان 
از وجود پورت ها در یک <span lang="en-us">VLANs</span> متناسب با پیکربندی انجام 
شده آگاهی یافت . </font></p>

  </li>
  <li>

<p align="justify" dir="rtl"><font face="Tahoma" size="2"><strong>
<font color="#800000"><span lang="en-us">
show tech-support</span></font></strong> : دستور فوق اطلاعات متنوعی را در رابطه با 
دستگاه های&nbsp; شبکه ای نمایش می دهد . این دستور با اجرای دستورات متعدد
<span lang="en-us">show</span> دیگر ، چندین صفحه اطلاعات فنی را 
جهت ارسال برای بخش فنی آماده می نماید . از خروجی د