تبليغاتX
کامیابی های متفاوت برای افراد متفاوت
برای اولین بار مطاللبی ازیه نفر مثله شما
 

نرم افزار یکی از ارکان مهم فناوری اطلاعات و ارتباطات در عصر حاضر است . گرچه نرم افزار در گذشته نيز همواره حائز اهمیت بوده است ، ولی در ساليان اخير به دليل گسترش اينترنت و ظهور نسل جديدی از برنامه های کامپيوتری موسوم به برنامه های وب ، نگاه به نرم افزار و انتظار از آن در جهت تامين طيف گسترده ای از خواسته ها تغيير  و رشد چشمگيری يافته است . به همين دليل است که در دنيای نرم افزار هر روز تحولات مهمی اتفاق می افتد و فناوری های جديدی قدم در اين عرصه می گذارند .
ظهور فناوری LINQ ( برگرفته شده از  Language-INtegrated Query   ) تلاشی است در اين راستا که با هدف تحول در نحوه دستیابی به منابع داده ( صرفنظر از نوع منبع داده ) ، مطرح شده است .
پس از مطرح شدن هر گونه فناوری در عرصه نرم افزار ، طراحان و پياده کنندگان با سه پرسش اساسی مواجه می گردند : این فناوری چيست ؟ چه کار می کند ؟ و چرا ما به آن نیاز داريم ؟ در این مقاله و سایر مقالاتی که در ادامه بر روی سایت منتشر خواهد شد ، سعی خواهیم کرد به سه پرسش فوق در ارتباط با فناوری LINQ پاسخ دهيم .

مقدمه
کد و داده دو عنصر اساسی در نرم افزار می باشند  که هر یک دارای جایگاه تعريف شده مختص به خود است . یکی از فعالیت های مهم در زمان پياده سازی نرم افزار ، نوشتن کد مورد نیاز جهت دستيابی به داده است . برای نوشتن کد ، پياده کنندگان می توانند از زبان های برنامه نویسی مختلفی استفاده کنند . انتخاب زبان برنامه نویسی به عوامل متعددی نظیر نوع رفتار برنامه ، پيش زمينه و دانش پياده کنندگان ، مهارت های تیم پياده کننده ، نوع سیستم عامل و سياست های سازمان بستگی دارد . صرفنظر از این که پياده کنندگان چه زبانی را برای نوشتن کد انتخاب می نمایند ، در زمان پياده سازی نرم افزار به دفعات مجبور خواهیم بود که با داده سرو کار داشته باشیم . داده می تواند بر روی ديسک ، جداولی در بانک اطلاعاتی و يا اسناد XML ذخيره شده باشد . در برخی موارد لازم است که با تمامی نوع های اشاره شده در یک برنامه سرو کار داشته باشیم .  فراموش نکنيم که مديريت داده برای هر پروژه نرم افزاری یک باید است .
پياده کنندگان نرم افزار در زمان نوشتن کد و تولید امکانات مورد نياز در هر يک از لایه های متفاوت ( با توجه به  نوع معماری نرم افزار ) ، همواره این پرسش را با خود مطرح می نمایند که محيط پياده سازی و یا فريمورک هائی نظیر دات نت چه امکاناتی را در اختيار آنها خصوصا" در زمان کار با داده قرار می دهند . به عبارت دیگر ، يک سيستم عامل چگونه می تواند نياز پياده کنندگان نرم افزار را پوشش دهد و  چه امکانات و پتانسيل هائی را در اختيار علاقه مندان به طراحی و پياده سازی نرم افزار قرار می دهد . 
دات نت به عنوان یکی از فريمورک های پياده سازی نرم افزار در سالیان اخير ، امکانات متعددی را جهت کار با داده در اختيار پياده کنندگان نرم افزار قرار می دهد . LINQ ، تلاشی است جهت يکپارچگی عميق تر و بیش تر بین زبان های برنامه نویسی و داده .  در واقع LINQ مشتمل بر مجموعه ای از عملگرهای query استاندارد است که  معماری لازم جهت حرکت ، فيلترينگ و اجرای عملیات بر روی تقريبا" هر نوع منبع داده نظیر XML ، بانک های اطلاعاتی رابطه ای و اشياء درون حافظه را فراهم می نماید .
قبل از هر چيز اجازه دهيد ببينيم LINQ چيست ؟

LINQ چيست ؟
با این که فناوری LINQ در پائيز سال 2005 مطرح گردید ولی فرآیند پیاده سازی آن از سال 2003 آغاز شده بود . هدف از ابداع فناوری فوق، ارائه تسهيلات لازم برای پياده کنندگان جهت کار با داده در بانک های اطلاعاتی  SQL و XML عنوان شده است. در واقع ، وجود یک حلقه گمشده بین داده رابطه ای ( بانک های اطلاعاتی )  ، اسناد XML با زبان های برنامه نویسی ، ضرورت ابداع فناوری فوق را توجيه کرده بود . پياده کنندگان مجبور بودند  برای کار با هر يک از منابع داده ، از روش های مختلفی استفاده نمایند . LINQ  را می توان به منزله حلقه ای گمشده  بین دنیای داده و زبان های برنامه نویسی همه منظوره  تصور کرد . با استفاده از  LINQ  امکان دستیابی به داده صرفنظر از نوع داده  ، با روشی مشابه و یکسان فراهم می گردد . 
پیاده کنندگان نرم افزار در زمان نوشتن برنامه های خود معمولا" از دو زبان مختلف جهت رسیدن به یک هدف مشترک استفاده می نمایند . ما برای نوشتن کدها از یک زبان برنامه نویسی نظیر VB.NET و يا #C و برای  گفتگو با سیستم بانک اطلاعاتی از یک زبان دیگر نظیر SQL استفاده می کنيم .

برای سفارش شام خود از یک زبان و برای سفارش چای از زبان دیگر !

این موضوع می تواند چالش های متعددی را برای پياده کنندگان نرم افزار به دنبال داشته باشد :

  • در مواردی که فريمورک دات نت را به عنوان پلت فرم انتخاب کرده باشیم ، دات نت قادر به درک کدهای SQL نخواهد بود.

  •  در مواردی که از زبان های برنامه نویسی حمايت شده در دات نت جهت نوشتن کد در محيط ويژوال استوديو استفاده می کنيم ، همواره یک ابزار قدرتمند در کنار ما است تا در صورت اشتباه در گرامر دستورات توصیه های لازم را ارائه نماید ( IntelliSense ) .از ويژگی فوق نمی توان در ارتباط با  SQL  استفاده کرد .

  • امکان بررسی نوع ها در زمان ترجمه وجود ندارد . این بدان معنی است که پياده کنندگان تا زمانی که برنامه اجراء نگردد ، نمی توانند مشکلات احتمالی را مشاهده و قبل از زمان اجراء با آنها برخورد نمایند .

  • شرکت مايکروسافت امکانات متعددی را در فريمورک دات نت جهت کار با اسناد XML  ارائه کرده است . ارائه System.Xml ،  System.Xml.XPath و System.Xml.Schema  نمونه هائی در این زمینه می باشند . پياده کنندگان نرم افزار در زمان کار با اسناد XML مجبور بودند که از فناوری های متعددی نظیر    DOM ( برگرفته شده از Document Object Mode ) و XQuery  استفاده نمایند . همين موضوع باعث شده بود که کار با اسناد XML نظیر خواندن و یا نوشتن داده در آنها برای بسیاری از پياده کنندگان مشکل باشد.

شرکت مايکروسافت برای حل مشکلات فوق ، بررسی دو راهکار را در دستور کار خود قرار داد :

  • ایجاد پتانسیل های مورد نیاز  مختص XML و یا داده رابطه ای در هر یک از زبان های برنامه نویسی و زمان اجراء . راهکار فوق نه تنها مشکل اصلی را حل نمی کرد بلکه در مواردی مشکلات را خصوصا" در زمینه نگهداری افزایش می داد . 

  • اضافه کردن قابلیت های همه منظوره نوشتن query در فریمورک دات نت  . به عبارت دیگر یک فریمورک همه منظوره با قابلیت نوشتن query درون فريمورک دات نت که زبان های VB.NET و #C بتوانند به سادگی از مز ایای آن استفاده نمایند .

خوشبختانه ، شرکت مایکروسافت گزينه دوم را انتخاب نمود . ایجاد یک زیرساخت جهت نوشتن query در بين اشياء ، اسناد XML ، داده رابطه ای و ...
هم اینک پیاده کنندگان می توانند از مزايای یک الگوی تعريفی در هر یک از زبان های دات نت جهت کار با داده  استفاده نمایند . ارائه مجموعه اپراتورهای استاندارد جهت نوشتن query یکی از دستاوردهای مهم LINQ محسوب می گردد .  بدین ترتیب ، پياده کنندگان می توانند با بکارگیری یک مجموعه يکسان از اپراتورهای نوشتن query در هر یک از زبان های برنامه نویسی حمایت شده در دات نت ، از داده ذخیره شده در  منابع داده مختلف صرفنظر از نوع منبع داده استفاده نمایند . همچنين ، امکان استفاده از پتانسیل هائی نظیر   IntelliSense  و بررسی نوع ها در زمان ترجمه نیز وجود خواهد داشت .
شکل 1 نحوه عملکرد LINQ  را نشان می دهد .



شکل 1 : عملکرد فناوری LINQ

مثال
برای آشنایی اولیه با  قابلیت های LINQ  ، بد نيست بدون این که بخواهیم وارد جزئيات شویم یک مثال کاربردی را با یکدیگر دنبال نمائیم .
در اين مثال با استفاده از LINQ و با يک روش مشابه به منابع داده مختلفی متصل شده و پس از بازیابی داده ، آنها را در يک ListBox جداگانه نمایش می دهيم . 
منابع داده عبارتند از :

  • فولدرهای موجود در یک درایو
  • پردازه های در حال اجراء در ويندور
  • يک بانک اطلاعاتی رابطه ای SQL
  • عناصر موجود در يک آرایه
  • يک فایل XML
  • یک فایل متن
<%@ Page   Language="VB" uiCulture="fa-IR" Culture="fa-IR" %>
<%
@ Import Namespace="System.Diagnostics" %>
<%
@ Import NameSpace="System.IO" %>
<%
@ Import NameSpace="System.Linq" %>
<%
@ Import NameSpace="System.Data.Linq" %>
<%
@ Import NameSpace="System.Data.Linq.Mapping" %>
<%
@ Import NameSpace="System.XML.Linq" %>
<%
@ Import NameSpace="System.Collections" %>

<script runat="server">
'====================================================================

کلاس ایجاد شده بر اساس داده موجود در بانک اطلاعاتی Contact برای جدول Persons
LINQ to SQL Class

"Persons")> _
Public Class Person
   "Int not null")> _
   Public ID As Integer
   "nvarchar(50) not null")> _
   Public Name As String
   "nvarchar(50) not null")> _
   Public Email As String
End
Class
'==================================================================== 
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

بازیابی فولدرهای موجود در درایو C

Dim DI As DirectoryInfo = New DirectoryInfo("C:\\")
Dim dirQuery = From dir In DI.GetDirectories() Order By
               (dir.Name)
Select dir.Name
For Each item In dirQuery
    ListBox1.Items.Add(item)
Next
item
'====================================================================

بازیابی پردازه های در حال اجرا در ویندور

Dim procQuery = From proc In Process.GetProcesses() Order By proc.Id   _
             
              Descending
Select proc.Id, proc.ProcessName
For Each item In procQuery
   ListBox2.Items.Add(item.Id &
" " & item.ProcessName)
Next item
'=====================================================================

بازیابی داده موجود در جدول Persons بانک اطلاعاتی Conatct

Dim context As DataContext = New DataContext("Data Source=SRCO-1\SQLEXPRESS;
                                                                        Initial Catalog=Contact;Integrated Security=true"
)
Dim contact1 As Table(Of Person) = context.GetTable(Of Person)()
Dim query = From c In contact1 Select c.Name, c.Email
For Each item In query
     ListBox3.Items.Add(item.Name &
" " & " ==== ◄ " & item.Email)
Next item
'=======================================================================

بازیابی عناصر یک آرایه

Dim firstnames As String() = {"سخا روش", "سايت شرکت سخا روش", "سايت مقالات به زبان فارسی", "سری مقالات ", "ایران", "تهران"}  
Dim val As IEnumerable(Of String) = From fn In firstnames _
                                   
Where (fn.StartsWith("س")) _
                                   
Select fn
For Each name As String In val
     ListBox4.Items.Add(name)
Next name
'========================================================================

بازیابی داده ذخیره شده در یک فایل XML با نام Cities.xml

Dim XDoc As XDocument = XDocument.Load(MapPath("Cities.xml"))
Dim query1 = From c In XDoc.Descendants("City") _
             Order By c.Element("Name").Value _
             Select c.Element("Name").Value
For Each item In query1
    ListBox5.Items.Add(item)
Next item
'======================================================================  
 

بازیابی داده از یک فایل متن با نام Maghalat.csv

Dim query2 = From line In File.ReadAllLines(MapPath("Maghalat.csv")) _
            
Where Not line.StartsWith("#") _
            
Let parts = line.Split(",") _
            
Select Title = parts(0), Publisher = parts(1)
For Each item In query2
    ListBox6.Items.Add(item.Title &
" " & item.Publisher)
Next
item

End Sub

script>
'=======================================================================

<html xmlns="http://www.w3.org/1999/xhtml">
<
head runat="server">
  <
title> مثال شماره یک  title>
head>
<
body>
  <
form id="form1" runat="server">
    <
div>
      <
asp:ListBox ID="ListBox1" runat="server">asp:ListBox>
      <
asp:ListBox ID="ListBox2" runat="server">asp:ListBox>
      <
asp:ListBox ID="ListBox3" runat="server">asp:ListBox>
      <
asp:ListBox ID="ListBox4" runat="server">asp:ListBox>
      <
asp:ListBox ID="ListBox5" runat="server">asp:ListBox>
      <
asp:ListBox ID="ListBox6" runat="server">asp:ListBox>
   div>
  form>
body>
html>
 

شکل زیر خروجی برنامه فوق را نشان می دهد .

 دستيابی به منابع داده مختلف با استفاده از فناوری LINQ

شکل  2  : دستيابی به منابع داده مختلف با استفاده از فناوری LINQ

خلاصه
LINQ يک فناوری قدرتمند در زمان کار با داده است که دستاوردهای متعددی را برای پياده کنندگان به ارمغان آورده است :

  • روشی ساده جهت نوشتن query
  • تسریع در پیاده سازی نرم افزار با توجه به حذف خطاهای زمان اجراء
  • امکان استفاده از امکاناتی نظیر اشکال زدائی و IntelliSence در زمان پياده سازی
  • حذف خلاء موجود بين داده رابطه ای و پیاده سازی شی گراء
  • استفاده از یک گرامر يکسان جهت نوشتن query صرفنظر از نوع منبع داده
  • افزایش بازدهی و راندمان برنامه نویسی ، چراکه برنامه نویسان از یک رویکرد يکسان برای نوشتن query  و بهنگام سازی داده از طریق زبان برنامه نویسی   استفاده خواهند کرد . 

 LINQ از دو بخش که مکمل يکديگر می باشند تشکيل شده است : مجموعه ای از ابزار ها جهت کار با اشياء ، اسناد XML ، بانک های اطلاعاتی رابطه ای و سایر نوع های داده و مجموعه ای از ضمایم برای زبان های برنامه نویسی نظیر VB و #C  . در بخش دوم به بررسی هر یک از موارد فوق خواهيم پرداخت .

+ نوشته شده در  یکشنبه هفتم مهر 1387ساعت 19:20  توسط علی بیات | 

شركت مايكروسافت در نوزدهم نوامبر 2007 ( بيست و هشتم آبان ماه هشتاد و شش ) ، رسما" نسخه ASP. NET 3.5 و ويژوال استوديو 2008 را عرضه كرد .
همانند نسخه شماره 3 كه نسبت به نسخه شماره 2 دارای امكانات بيشتری بود ، در اين نسخه نيز نسبت به نسخه قبلی امكانات جديدی اضافه شده است .    اسمبلی های اساسی نصب شده توسط نسخه شماره 2 فريمورك ، همچنان در نسخه های 2 و 5 / 3 قابل استفاده می باشند . به عبارت ديگر ، در نسخه شماره 5 / 3 ، مفاهيم و نحوه نوشتن كد و مواردی از اين قبيل نسبت به نسخه شماره 2 تغيير نكرده است . در اين نسخه ، نوع ها ، ويژگی ها و قابليت های جديدی به فريمورك اضافه شده است .
ويژوال استوديو 2008 ، ابزاری قدرتمند برای پياده سازی برنامه های ASP. NET است . برخلاف نسخه قبل كه صرفا" مختص يك نسخه خاص فريمورك بود ( به عنوان نمونه در ويژوال استوديو  2003 ،  نسخه ASP.NET 1.1 و در  ويژوال استوديو 2005 نسخه ASP. NET 2.0 ) ، از ويژوال استوديو  2008 می توان به همراه چندين نسخه فريمورك استفاده كرد  . شما می توانيد از طريق يك ليست drop down ، نوع فريمورك خود جهت پياده سازی برنامه ها  ( به عنوان نمونه ASP. NET 2.0 ، ASP. NET 3.0 و يا ASP. NET 3.5 را انتخاب نمائيد .
شكل 1 نحوه انتخاب فريمورك در زمان ايجاد يك وب سايت جديد را در ويژوال استوديو 2008 نشان می دهد .

نحوه انتخاب فريمورك در زمان ايجاد يك وب سايت جديد در ويژوال استوديو 2008
شكل 1 : نحوه انتخاب فريمورك در زمان ايجاد يك وب سايت جديد در ويژوال استوديو 2008

در ويژوال استوديو 2008 ،‌در محيط طراحی نيز تغييراتی در جهت قدرتمند تر شدن آن ايجاد شده است . افزودن امكاناتی نظير هوشمندی در تايپ و اشكال زدائی كدهای جاوا اسكريپت و قابليت مشاهده و حتی توقف در هسته كد فريمورك دات نت در حين اشكال زدائی نمونه هائی در اين زمينه می باشند .
در اين مقاله مروری خواهيم داشت به ويژگی های جديد 5 / 3 و امكانات جديد مرتبط با ASP. NET در ويژوال استوديو 2008 .
 

ارائه يك نسخه جديد فريمورك دات نت  و دستاوردهای آن
زمانی كه يك نسخه جديد ASP. NET ارائه می گردد ، در واقع يك نسخه جديد از فريمورك دات نت نيز ارائه می گردد . كنترل های وب و منطق برخورد با صفحات در كلاس هائی خاص از فريمورك دات نت پياده سازی شده اند .
فريمورك دات نت دارای امكانات فراوانی است كه از آنها در شرايط مختلف استفاده می شود و همه چيز به ASP. NET خلاصه نمی گردد .
متعاقب ارائه يك نسخه جديد از فريمورك دات نت ، امكانات و ويژگی های جديدی نيز به همراه آن ارائه می گردد كه می توان آنها را در سه گروه زير تقسيم كرد :

  • ويژگی هائی از فريمورك كه مختص پياده كنندگان برنامه های ASP.NET ارائه شده اند :اين نوع ويژگی ها جهت پياده سازی برنامه هایASP. NET بسيار مهم و حياتی می باشند . مثلا" پس از معرفی نسخه شماره 2  ASP. NET ، قابليت های جديدی نظير كنترل Gridview و كنترل های نسبت دهی داده نظير sqlDataSource و ObjectDataSource در اختيار پياده كنندگان قرار گرفت .

  • ويژگی هائی از فريمورك كه می تواند برای  پياده كنندگان برنامه های ASP. NET  نيز مفيد واقع شود : اين نوع از ويژگی ها صرفا" مختص ASP. NET نمی باشند و از آنها می توان در مواردی ديگر نظير WinForm نيز استفاده كرد . از پتانسيل های فوق عموما" در ASP. NET استفاده می گردد . به عنوان نمونه ، فريمورك 2 ، نوع های anonymous و Generics را معرفی و وضعيت Dataset را بهبود بخشيد .
    هيچكدام از موارد فوق مختص ASP. NET نمی باشند ، ولی اغلب توسط پياده كنندگان ASP. NET استفاده می گردند . 
     

  • ويژگی هائی از فريمورك كه توسط پياده كنندگان ASP. NET استفاده نمی گردد . فريمورك دات نت مشتمل بر تعداد زيادی از كلاس هائی است كه به ندرت و يا هرگر توسط پياده كنندگان ASP. NET استفاده نمی گردد نظير كلاس های موجود در  System.Windows.Forms .

در ادامه  به بررسی دو گروه اوليه خواهيم پرداخت .
در ابتدا لازم است به اين موضوع اشاره نمائيم كه شما می توانيد يك پوستر از فريمورك 5 / 3 با فرمت pdf  را از اين محل دريافت نمائيد . علاوه بر وجود  تعداد زيادی از كلاس ها و namespace در فريمورك دات نت ، اين پوستر دو چيز را كاملا" شفاف نشان می دهد : اين كه چه ميزان از فريمورك دات نت با ASP.NET مرتبط نيست  و  امكانات و ويژگی های جديد اضافه شده به هر يك از نسخه های فريمورك دات نت  .
شكل 2 ويژگی های ASP. NET 2.0 و قابليت های  جديد اضافه شده در هر يك از نسخه های 3 و 5 / 3 را نشان می دهد .

امكانات اضافه شده به هر يك از نسخه های فريمورك دات نت
شكل 2 : امكانات اضافه شده به هر يك از نسخه های فريمورك دات نت

برای كسب اطلاعات بيشتر در خصوص اين موضوع كه چگونه دات نت 5 / 3 ، اسمبلی های اضافه و قابليت های جديدی را به دات نت 2 اضافه كرده است ، به وبلاگ Daniel Moth  مبحث "فريمورك 5 / 3 "  مراجعه نمائيد .
در وبلاگ فوق و مبحث " Visual Studio 2008 Stack " ، يك تصوير شفاف از تغييرات انجام شده در ويژوال استوديو  ، زبان های برنامه نويسی ، كتابخانه های فريمورك و CLR نيز ارائه شده است .

مروری بر ويژگی هائی از فريمورك كه مختص پياده كنندگان برنامه های ASP.NET ارائه شده اند
ASP.NET 3.5 يك نسخه جديد و ارتقاء‌ يافته نسبت به نسخه قبلی است كه سه ويژگی جديد زير در آن از ساير موارد مشهود تر است :

  • حمايت ذاتی  از ASP.NET AJAX

  • كنترل ListView

  • كنترل DataPager

قبل از ASP.NET 3.5 ، لازم بود كه در ابتدا فريمورك ASP.NET AJAX مايكروسافت دانلود و بر روی سيستم به عنوان يك الحاقيه نصب گردد . در ASP.NET 3.5 ، كلاس های مرتبط با AJAX مستقيما" در فريمورك دات نت ساخته شده اند تا امكان ساخت سريع و آسان برنامه های وب مرتبط با AJAX  در برنامه های ASP.NET فراهم گردد . 
ASP.NET 2.0 به همراه خود كنترل های داده جديدی نظير Gridview، DetailsView و FormView را معرفی كرد . كنترل GridView ، ليستی از ركوردها را در يك جدول نمايش می دهد . كنترل های DetailsView و FormView در هر لحظه يك ركورد را نمايش می هند . كنترل DetailView در يك ساختار نمايشی مشابه جدول و FormView در يك لی اوت متاثر از يك تمپليت خاص ، اطلاعات خود را نمايش می دهند .
ListView در واقع يك نسخه ارتقاء يافته از كنترل های DataList و Repeater است كه می تواند چندين ركورد را به همراه قابليت هائی‌ نظير Gridview نمايش دهد . با اين تفاوت كه بكارگيری تمپليت ها با انعطاف بيشتری انجام می گردد .
 كنترل DataPager به صورت يك نوع اينترفيس free-standing paging كار می كند . به عبارت ديگر كنترل فوق ، يك رابط كاربر paging را تفسير ( به عنوان نمونه صفحه بعد ، قبل ، دكمه آخر   ) و با يك كنترل وب داده مرتبط می شود . كنترل فوق صرفا" با آن گروه از كنترل هائی كار می كند كه IPageableItemContainer interface را پياده سازی كرده باشند كه صرفا" ( در حال حاضر ) در كنترل ListView وجود دارد .
برای آشنائی بيشتر با نحوه استفاده از كنترل های ListView و DataPager می توانيد به وبلاگ  Scott Guthrie مبحث " كنترل ListView " مراجعه نمائيد. مايكروسافت نيز ويدئوهای جديدی جهت آشنائی با نحوه استفاده از كنترل های ListView و DataPager ارائه كرده است .

مروری بر ويژگی هائی از فريمورك كه می تواند برای  پياده كنندگان برنامه های ASP. NET  نيز مفيد واقع شود
مهمترين ويژگی ارائه شده در  نسخه شماره 5 / 3 فريمورك دات نت ، معرفی LINQ ( برگرفته شده از Language Integrated Query  ) است . با استفاده از فناوری فوق ، می توان گرامری شبيه SQL را با استفاده از زبان های برنامه نويسی VB و #C نوشت تا پياده كنندگان بتوانند از داده در برنامه های خود استفاده نمايند . 
به همراه  ويژوال استوديو 2008  يك  LINQ to SQL designer  ارائه شده است كه به كمك آن می توان يك بانك اطلاعاتی را به عنوان يك LINQ به  SQL object model مدل سازی كرد . پس از مدل سازی بانك اطلاعاتی ، می توان به سادگی كدهای مورد نظر خود را به منظور كار با داده نوشت .
كد زير نحوه بازيابی محصولات گروه Test از بانك اطلاعاتی نمونه Northwind را با گرامر مبتنی بر LINQ توسط  VB و #C نشان می دهد ( كلاس NorthwindDataContext  بر اساس مدل طراحی شده ، ايجاد شده است ) .

 C#

 NorthwindDataContext  db = new  NorthwindDataContext() ;
 var Products = from  p  in  db.Products
                      
 Where p.category.CategoryName == "Test"
                      
 select P;
VB

 Dim db AS New
 NorthwindDataContext
 Dim products = From p In db.products _
                        Where p.category.categoryName = "Test" _
                        Select  p

 LINQ ، به سادگی يك گرامر را جهت كار با داده تعريف می كند . همچنين ، ORMs ( برگرفته شده از Object Relational Mappers  ) از قبل تعبيه شده ای وجود دارد كه فريمورك مرتبط را به منظور توليد عبارات LINQ ايجاد می نمايد تا بر روی يك بانك اطلاعاتی و يا XML كار كند .
Scott Guthrie  در چندين مقاله با عنوان " استفاده از LINQ برای پياده سازی SQL ORM " به اين موضوع پرداخته است .
ويژوال استوديو 2008 از گرامر LINQ در زمان استفاده از آن به صورت full-IntelliSense حمايت می نمايد . گرامر LINQ از طريق امكانات جديد ارائه شده در فريمورك دات نت نظير خصلت های اتوماتيك ، متدهای extension و عبارات lambda ، امكان پذير می باشد . پرداختن به موارد فوق خارج از حوصله اين مقاله است .

مروری بر ويژگی های جديد ويژوال استوديو 2008
ويژوال استوديو 2008 امكانات متعددی را در جهت كمك به پياده كنندگان نظير بهبود محيط Designer ، امكانات پيشرفته ويرايش CSS و اشكال زدائی جاوا اسكريپت ارائه كرده است . در اين نسخه از ويژوال استوديو برای پياده سازی برنامه های وب می توان يكی از محيط های NET 2.0, NET 3.0 و يا NET 3.5 را انتخاب كرد . اين بدان معنی است كه شما می توانيد از ويژوال استوديو برای كار بر روی يك وب سايت پياده سازی شده با ASP.NET 2.0 نيز استفاده نمائيد . در ادامه مروری سريع خواهيم داشت به هر يك از موارد فوق .
در نسخه قبلی ويژوال استوديو ، پياده كنندگان می توانستند از Designer و يا Source view در زمان ويرايش عناصر ويژوال در يك صفحه ASP.NET استفاده نمايند . محيط Designer يك نمايش WYSISYG از صفحه را نمايش می دهد . در Source view ، كدهای markup مربوط به كنترل ها نمايش داده می شود . در ويژوال استوديو 2008 ، يك ويژگی جديد با نام  Split screen ارائه شده است كه توسط آن كدهای markup در يك pane و WYSIWYG در pane ديگر نمايش داده می شود . زمانی كه در مد split قرار می گيريم ، همزمان با اضافه كردن محتويات به Designer  ، بطور اتوماتيك كدهای markup در Source view بهنگام می گردند( متاسفانه عكس اين حالت درست نيست ) . اگر شما markup جديدی را بطور دستی در Source view درج نمائيد ، مجبور خواهيد بود كه صفحه را save و يا دكمه refresh را كليك نمائيد تا Designer view نيز  بهنگام گردد .
شكل 3 ، Split screen را در ويژوال استوديو 2008 نشان  می دهد .

Split screen را در ويژوال استوديو 2008
شكل 3 : Split screen در ويژوال استوديو 2008

همزمان با افزايش تعهد مايكروسافت به AJAX ، ويژوال استوديو 2008 امكانات حمايتی بهتری  را در ارتباط با جاوا اسكريپت ارائه كرده است .  امكانات زمان طراحی و اشكال زدائی بطور كامل بهبود يافته اند . زمانی كه از طريق source view اقدام به نوشتن كدهای جاوا اسكريپت می نمائيد ، امكانات و قابليت های IntelliSense مشابه در زمان نوشتن كدهای سمت سرويس دهنده در اختيار شما گذاشته می شود .  اين شامل حمايت از كدهای جاوا اسكريپت inline و اسكريپت هائی است كه از طريق فايل های جاوا اسكريپت خارجی به آنها مراجعه می گردد .
( دستيابی به فايل های اسكريپت از طريق گرامری مشابه    امكان پذير است ) .
Scott Guthrie در وبلاگ خود و با عنوان VS 2008 JavaScript IntelliSense  به اين موضوع اشاره كرده است كه پياده كنندگان می توانيد حتی تذكرات هوشمند را به توابع جاوا اسكريپت و با استفاده از توضيحات XML اضافه نمائيد . وی همچنين در وبلاگ خود به بررسی قابليت های اشكال زدائی جاوا اسكريپت پرداخته است .
اخيرا" شركت مايكروسافت عنوان نموده است كه به زودی كد فريمورك دات نت را تحت مجوز MS-RL در اختيار عموم قرار خواهد داد . نكته جالب مرتبط با اين رويداد برای پياده كنندگانی كه از  ويژوال استوديو استفاده می نمايند در اين است كه آنها می توانند ويژوال استوديو 2008 را به يك URL اشاره دهند  كه شامل نمادهای اشكال زدائی برای فريمورك دات نت است . بدين ترتيب ، در زمان اشكال زدائی امكان ورود به كد فريمورك دات نت فراهم می گردد . اين موضوع می تواند به پياده كنندگان كمك نمايد تا شناخت بهتر و عميق تری نسبت به نحوه عملكرد فريمورك دات نت پيدا نمايند . 
هنوز مشخص نشده است ( در زمان نوشتن اين مطلب ) كه آيا مايكروسافت نمادهای اشكال زدائی را از طريق يك URL عمومی در دسترس قرار خواهد داد . پس از عموميت URL ، پياده كنندگان می توانند از طريق ويژوال استوديو به آن اشاره نمايند . جهت كسب اطلاعات بيشتر به وبلاگ Scott Guthrie مراجعه نمائيد .

خلاصه
نسخه جديد ويژوال استوديو و ASP.NET ويژگی های جديد و جالبی را نسبت به نسخه های قبلی در اختيار پياده كنندگان قرار می دهد. در ASP.NET 3.5  ، مايكروسافت  فريمورك ASP.NET AJAX را به عنوان بخش لاينفك فريمورك دات نت معرفی كرده است  و به همراه ساير كنترل ها ، كنترل های جديد ListView و DataPager را ارائه كرده است .
در ويژوال استوديو 2008 ، تغييرات متعددی نظير افزايش توانمندی پياده كنندگان جهت طراحی رابط كاربر ( يك محيط طراحی قوی تر ) ، بهبود قابليت های ويرايش CSS ، حمايت از اشكال زدائی و تايپ هوشمند جاوا اسكريپت ، قابليت انتخاب نسخه فريمورك برای پياده سازی برنامه وب ارائه شده است .  

+ نوشته شده در  یکشنبه هفتم مهر 1387ساعت 19:15  توسط علی بیات | 

مقدمه

زبان برنامه نويسي سي شارپ با نسخه 1.0 به جهان برنامه نويسي عرضه شد. Visual Studio .NET مجهز به كامپايلر آن بود و برنامه نويسان مي توانستند از ويژگي هاي نسخه اوليه استفاده كنند. نسخه دوم سي شارپ همراه با ويژوال استوديوي 2005 ارائه شد و توانايي را به نسخه قبلي افزود. مدتي است كه شركت مايكروسافت به صورت آزمايشي آخرين نسخه زبان سي شارپ يعني نسخه 3.0  آن را در اختيار برنامه نويسان سراسر جهان قرار داد. اين نسخه قرار است به صورت نهايي در سال 2008 به همراه Visual Studio 2008 ارائه شود. در اين مقاله سعي خواهيم كرد مهم ترين ويژگي هاي افزوده شده به نسخه سي شارپ 3.0 را مورد بررسي قرار دهيم.

 

C# 3.0

شايد اين سوال در ذهن بسياري از كساني كه در حال فراگيري سي شارپ هستند، مطرح باشد كه چرا سي شارپ با اين سرعت در حال دگرگوني است؟ دو سال از ارائه شدن نخسه 2.0 نمي گذرد كه نسخه 3.0 هم ارائه شده است! در پاسخ بايد گفت كه اين روند كاملا طبيعي بوده و هيچ گونه مشكلي براي برنامه نويساني كه از زبان سي شارپ استفاده مي كنند، ايجاد نمي كند.پايه زبان سي شارپ، نسخه 1.0 آن مي باشد. اين نسخه تمامي كمات كليدي و ساختارهاي اصلي زبان را مشخص مي كند. آنچه كه در نسخه هاي بعدي به زبان اضافه مي شود تنها ويژگي هاي جديد است كه موجب تسهيل امر كدنويسي مي شود.

قبل از ارائه شدن نسخه جديد يك زبان، ويژگي ها و خصوصيات آن به صورت فايل متني (Specification file) در اختيار جامعه  برنامه نويسي قرار مي گيرد. ويژگي ها و خصوصيات، نحوه عملكرد نسخه جديد را بيان مي كنند.كساني كه قصد داشته باشند با ويژگي هاي نسخه 3.0 سي شارپ آشنا شوند مي توانند فايل C# 3.0 Specification را مطالعه كنند. ويژگي هاي جديد سي شارپ 3.0 كه در اين فايل بيان شده اند، عبارت اند از:

·         Implicitly typed local variables, which permit the type of local variables to be inferred from the expressions used to initialize them.

·         Extension methods, which make it possible to extend existing types and constructed types with additional methods.

·         Lambda expressions, an evolution of anonymous methods that provides improved type inference and conversions to both delegate types and expression trees.

·         Object initializers, which ease construction and initialization of objects.

·         Anonymous types, which are tuple types automatically inferred and created from object initializers.

·         Implicitly typed arrays, a form of array creation and initialization that infers the element type of the array from an array initializer.

·         Query expressions, which provide a language integrated syntax for queries that is similar to relational and hierarchical query languages such as SQL and XQuery.

·         Expression trees, which permit lambda expressions to be represented as data (expression trees) instead of as code (delegates).

در ادامه اين مقاله، مهم ترين ويژگي هاي ذكر شده را شرح خواهيم داد.

 

Implicitly typed local variables – متغيرهاي ضمني محلي

سي شارپ 3.0 كلمه كليدي جديد var را معرفي مي كند كه به كمك آن برنامه نويسان قادر خواهند بود متغيرهاي محلي خود را بدون ذكر صريح نوع آن ها، تعريف كنند.با توجه به اين ويژگي جديد، تعريف يك رشته و يا مقدار عددي به صورت زير امكانپذير است:

 

يكي از ويژگي هاي اصلي زبان سي شارپ، Strong Type بودن آن است. Strong Type بودن زبان به اين معناست كه با اعلان يك متغير، نوع آن صريحا بايد توسط برنامه نويس مشخص شود. آيا اضافه شدن ويژگي جديد، منافاتي با Strong Type بودن سي شارپ دارد؟در پاسخ بايد گفت كه تعريف متغيرهاي محلي به صورت ضمني با استفاده از كلمه كليدي var هيچ گونه منافاتي با Strong Type بودن سي شارپ ندارد. چون برنامه نويس مي بايست نوع متغير را به هنگام اعلان آن صريحا مشخص كند.نوع متغير پس از اولين اعلان تا اتمام حوزه تعريف آن تغيير نخواهد كرد و هر گونه تلاش براي تغيير نوع با خطا مواجه خواهد شد.با توجه به موارد بيان شده دو اعلان زير نامعتبر هستند:

دقت كنيد كه استفاده از var تنها در تعريف متغيرهاي محلي امكانپذير است. در اعلان متغيرها به صورت سراسري، پارامترهاي توابع و مقادير بازگشتي نمي توان از var استفاده كرد.

چرا var ؟ اين ويژگي آزادي عملي بيشتري براي كار با متغيرهاي محلي در اختيار برنامه نويس قرار مي دهد. سناريويي را در نظر بيگيريد كه يك تابع تحت شرايطي، مقادير از انواع مختلف را برگرداند. در اين صورت بدون درگير شدن با casting و تبديل نوع مي توان با تعريف متغير ضمني محلي هر نوعي را كه تابع برمي گرداند، در اختيار داشت.

 

Extension methods – توابع بسط داده شده

زبان سي شارپ كلمه كليدي sealed را براي اين منظور ارائه كرد كه امكان ارث بري از يك كلاس را صلب كند. يعني با اضافه شدن اين كلمه كليدي به ابتداي تعريف كلاس، امكان ارث بري از آن غير ممكن مي شود. سي شارپ 3.0 ويژگي جديدي را در اختيار برنامه نويسان قرار مي دهد به اين صورت كه مي توان هر نوع كلاسي – حتي كلاس هاي مهر شده با Sealed را با استفاده از Extension methods بسط داد. به مثال زير توجه كنيد:

 

اعضاي كلاس String در آن نشان داده شده اند! كلاس String از جمله كلاس هايي است كه با ارث بري قابل بسط دادن نمي باشد. اما اينك توابع زيادي به عنوان Extension methods به آن اضافه شده اند كه با آيكون  مشخص مي شوند. تنها نكته مهم اين است كه Extension methods فقط به كلاس هاي Static اضافه مي شوند. مانند مثال زير :

 

در اين مثال كلاس استاتيك MyConvertor به همراه تابع عضو آن StringToInt32 تعريف شده است كه مقادير رشته اي را به مقادير عددي تبديل مي كند.دقت كنيد كه MyConvertor، يك تابع بسط داده شده به كلاس String اضافه مي كند.نحو (syntax) تعريف تابع بسط داده شده با زيرخط زرد رنگ مشخص شده است.در تعريف تابع بسط داده شده بايد از كلمه كليدي this به صورت قراردادي استفاده كرد.پس از كلمه كليدي بايد نوعي را مشخص كرد كه دسترسي به تابع از طريق آن امكانپذير خواهد بود.(در مثال بالا تابع Str_Int32 از طريق كلاس string قابل دسترسي خواهد بود) پس از تعريف تابع بسط داده شده، مي توان در مجموعه توابع كلاس String از آن استفاده كرد كه اين مورد در شكل به خوبي نشان داده شده است.

چرا Extension methods؟ همانطور كه بيان شد بسياري از كلاس هاي ارائه شده در دات نت فريم ورك با برچسب sealed، قابل بسط داده شدن نيستند. كلاس مفيدي مثل List را در نظر بگيريد كه از جمله اين كلاس هاست. با استفاده از ويژگي معرفي شده برنامه نويسان قادر خواهند بود با اضافه كردن توابع دلخواه خود به اين كلاس ها، آنها را بنا به نياز خود بسط دهند.

 

Lambda expressions – عبارات لامبدا

يكي از ويژگي هايي كه سي شارپ 2.0 ارائه كرد، توانايي تعريف توابع به صورت Inline بود كه اين ويژگي با عنوان توابع بي نام (anonymous methods) شناخته مي شود. توابع بي نام در پاره اي مواقع بسيار مفيدند. اما نحو (syntax) به كارگيري آنها دشوار مي باشد. عبارات لامبدا ويژگي توابع بي نام را دارند اما با نحو ساده تري در سي شارپ 3.0 معرفي شده اند. به نمونه اي از عبارات لامبداي تعريف شده توجه كنيد:

تعريف عبارات لامبدا از نحو (syntax) خاصي پيرو مي كند. همانطور كه در شكل مشاهده مي كنيد، پارامترهاي تابع هم به صورت صريح و هم به صورت ضمني قابل بيان اند. كلمه return به صورت ضمني حذف شده است. تابع معادل عبارت لامبداي اول به شكل زير مي باشد:

ليست پارامترها و بدنه عبارت لامبدا توسط => از هم جدا مي شوند. در صورتي كه تعريف عبارت لامبدا بيشتر از يك خط كد باشد مي توان بدنه آن را با استفاده از {} نشان داد مانند شكل زير:

در ادامه يك مثال عملي از عبارات لامبدا بيان مي شود. كلاس MyMath را در نظر بگيريد. يك نماينده و يك تابع در داخل اين كلاس تعريف شده اند:

تابع MathInvoker براي اين منظور در نظر گرفته شده است كه از طريق نماينده Operation كه از نوع MathFn مي باشد، يكي از چهار عملي اصلي را دريافت كرده، و با استفاده از آرگومان هاي ارسالي، تابع مربوطه را فراخواني كند.به فراخواني هاي زير دقت كنيد:

تابع MathInvoker اول با پارامتر تابع بي نام و سپس باعبارت لامبدا فراخواني شده است.سادگي كار با عبارت لامبدا نسبت به تابع بي نام كاملا مشهود مي باشد. (عبارت لامبدا با زير خط آبي مشخص شده است)

چرا Lambda expressions؟ عبارات لامبدا براي جايگزين كردن توابع بي نام ارائه شده اند.نحو ساده تري دارند.در ضمن در Expression trees از آنها استفاده مي شود.

 

Object initializers – سازنده هاي پيشرفته

ماهيت تمامي برنامه هاي امروزي به گونه اي ست كه با حجم عظيمي از داده ها سرو كار دارند.براي مديريت داده ها، نياز به كلاس هايي ست كه در مهندسي نرم افزار آنها را Entity Types مي ناميم.اين كلاس ها به عنوان بسته هايي از داده ها محسوب مي شوند.معضل فعلي موجود در رابطه با Entity Typeها تعدد سازنده هاي آن ها مي باشد و ممكن است شما نيز با اين مشكل برخورد كرده باشيد.به اين صورت كه در سناريوهاي مختلف، برنامه نويسان مجبور هستند سازنده يك كلاس را به چند شكل سربارگذاري كنند.سي شارپ 3.0 راه چاره اي فوق العاده براي اين مشكل ارائه مي دهد. Object initializer حالت پيشرفته اي از سازنده مي باشد.يك كلاس Entity به نام Person  در نظر بگيريد كه داده هاي زير را بسته بندي ( پكيج ) مي كند:

اين كلاس شامل سه متغير بوده و براي هرمتغير شناسه اي تعريف شده است.اينك اين سوالات مطرح مي شوند : سازنده اين كلاس را به چند شكل بايد سربارگذاري كرد؟ سازنده اي كه هر سه متغير را مقداردهي كند؟ شايد در مواردي هر سه متغير در دست نباشد در اين صورت چه سازنده اي بايد فراخواني شود؟ سي شارپ 3.0 راه حل زير را ارائه مي دهد.فرض كنيد بخوانيم نمونه اي ازكلاس Person را ايجاد كنيم:

همانطور كه مشاهده مي كنيد،در سي شارپ 3.0 به هنگام نمونه سازي، اين امكان در اختيار برنامه نويس قرار مي گيرد كه هر يك از خصيصه هاي موجود در كلاس را به دلخواه و بنا به نياز مقدار دهي كند ( فوق العاده است نه؟!) به شكل زير :

توجه داشته باشيد كه به جاي () از {} استفاده شده است.در ضمن هيچ سازنده اي در كلاس Person تعريف نشده است!

 

Anonymous types – تايپ هاي بي نام!

سي شارپ 2.0 توابع بي نام را معرفي كرد.سي شارپ 3.0 هم انواع بي نام را معرفي مي كند.با استفاده از اين ويژگي برنامه نويسان قادر خواهند بود به صورت Inline انواع دلخواه خود را ايجاد كنند! به نمونه زير توجه كنيد:

كد ارائه شده، يك نوع بي نام را تعريف مي كند كه از طريق متغير ضمني محلي به نام anonymousType در اختيار قرار مي گيرد.به توضيحات ويژوال استوديو نسبت به نوع ايجاد شده دقت كنيد.همانطور كه مشاهده مي كنيد، تمامي متغيرهايي كه در سازنده پيشرفته ذكر شده اند، در ادامه به عنوان خصيصه هاي نوع بي نام مطرح مي شوند.

چرا Anonymous types؟ انواع بي نام بهترين گزينه براي توليد Entity Typeها مي باشند.همانطور كه گفته شد Entity Typeها فقط حاوي داده ها هستند.بنابراين به بهترين نحو مي توان داده هاي دريافت شده از كاربر را در انواع بي نام بسته بندي كرد.

 

Query expressions – عبارات كئوري

تيم طراح سي شارپ ويژگي فوق العاده اي را به آن اضافه كرد كه برنامه نويسان را قادر مي سازد نحو (Syntax) زبان هاي پرس و جو مانند SQL و XQuery را با استفاده از سي شارپ پياده سازي كنند! اين ويژگي با نام اختصاري LINQ شناخته مي شود و داراي انواع زير است:

•         LINQ-to-Objects - talks to in-memory objects

•         LINQ-to-SQL - talks to SQL Server databases

•         LINQ-to-XML - talks to hierarchical data represented in XML

•         LINQ-to-DataSets - talks to DataSet objects and underlying DataTables with their relationships

•         LINQ-to-Entities - talks to "entities", part of ADO.NET 3.0

نمونه ای ازكاربر LINQ در شكل زير نشان داده شده است :

توضيح : در مثال بالا ابتدا يك آرايه ي intي با مقداردهي اوليه تعريف شده است.سپس با استفاده از دستورات LINQ ( كه جز كلمات كليدي سي شارپ محسوب مي شوند)، آرايه اي با اعضاي بزرگتر از 5 انتخاب و در متغير ضمني محلي selective_array ذخيره  مي شود.در نهايت اعضاي selective_array به شكل زير چاپ مي شوند:

در توضيح اين ويژگي جديد به همين يك مثال بسنده مي كنيم چون بيان تمامي جنبه هاي LINQ خود نيازمند نگارش مقاله اي مفصل مي باشد.

 

دو ويژگي باقيمانده

شش ويژگي سي شارپ 3.0 را به طور كامل شرح داديم و اين شش مورد از اهميت بيشتري برخودارند.در مورد Implicitly typed arrays بايد گفت كه اين ويژگي عبارت است از تعريف متغيرهاي آرايه اي با استفاده از كلمه كليدي var .به مثال هاي زير دقت كنيد:

trees نيز در رابطه با عبارات لامبدا مطرح مي شود.در توضيحات مربوط به عبارات لامبدا بيان شد كه اين عبارات جايگزيني براي توابع بي نام هستند بنابراين ماهيت delegate ي دارند.اگر بخواهيم به عبارات لامبدا ماهيت داده اي (data) بدهيم،مقوله Expression trees مطرح مي شود.براي كسب اطلاعات كامل تر به مراجع منتشر شده در اين زمينه مراجعه كنيد.

 

جمع بندي

در اين مقاله سي شارپ 3.0 را به طور كامل بررسي كرديم. اگر دقت كرده باشيد، بيشتر ويژگي هاي ارائه شده توسط نسخه جديد كار با داده ها را تسهيل بخشيده و با كاهش ميزان كدنويسي، باعث صرفه جويي در وقت خواهند شد.

با اتمام مطالعه اين مقاله، خواهشمندم نظر خود را از طريق راي و نيز بخش پيام منعكس كنيد. اين امر اینجانب را در ارائه هر چه بهتر مقاله هاي بعدي ياري خواهد كرد. منتظر نظرات شما در رابطه با سي شارپ 3.0 خواهم بود.

+ نوشته شده در  یکشنبه هفتم مهر 1387ساعت 19:11  توسط علی بیات | 

تعداد مردهای چپ دست خیلی بیشتر از خانم های چپ دست می باشد، خانم ها معمولا با هر دو گوش خود می شنوند، اما آقایون ترجیح می دهند این کار را با گوش راستشان انجام دهند.

مشاهده و درک خانم ها و آقایون از جهان اطرافشان کاملا متفاوت است. آقایون به راحتی می توانند مسائل چند محوری را در ذهن خود تجزیه و تحلیل نمایند. خانم ها استعداد خوبی در شناسایی احساسات افراد در عکس هایشان دارند. البته شاید در برخی موارد زیاده روی نیز به خرج دهند.

کروموزوم های خانم ها "XX" است، اما آقایون یک "X " و یک "Y" دارند. و باید اذعان داشت که آقایون به طور طبیعی در دوران جنینی تحت تاثیر تسترون بیشتری نسبت به خانم ها قرار می گیرند.

هیپوتالاموس ( عضو کوچکی در قسمت ساقه مغز) آقایون از اکثر خانم ها بزرگتر است. زمانی که آنها برانگیخته می شوند، هیپوتالاموس باعث می شود که میزان کلیه احساساتشان از جمله تشنگی، گرسنگی، و خواست های جنسی خیلی بیشتر از همنوعان خانمشان افزایش پیدا کند؛ همین امر نکته قابل توجهی برای اثبات خوی پرخاشگرانه و غیر قابل کنترل مردهاست.

در بیشتر خانمها میزان کلسیم قشری، بالاتر از مردان است. این امر آنها را قادر میسازد تا بتوانند به راحتی بین نیم کره راست و نیم کره چپ مغزشان ارتباط برقرار کنند. به همین دلیل است که می توانند به راحتی احساسات و عواطف طرف مقابل را ارزیابی نمایند. در بسیاری موارد دیگر نیز مشاهده شده است که ذهن خانم ها نسبت به ذهن آقایون، ارتباط تنگاتنگ و پیچیده بیشتری برقرار می کند.

ارتباط نیم کره های مغزی گاهی اوقات باعث به وجود آوردن اختلال در عملکر مغز نیز می شود. به عنوان مثال در هنگام خواندن نقشه یک مرد خیلی راحت تر می تواند نقاط مختلف را در ذهن خود بالا و پایین کند، اما یک خانم حتما باید نقشه را این طرف و آنطرف کند تا از آن سر در بیاورد.

برای هر دو جنس، نقطه ای که مربوط به انجام عملیات های زبانی و گفتاری است در یک مرکز معین: یعنی در نیمکره چپ مغز واقع شده است. با توجه به عملکرد مرتبط دو نیمکره مغز، خانم ها به دلیل استفاده از داده هایی که از نقاط مختلف ذهن به هم میپیوندند، (شامل دید و احساس) قادرند به طور متوسط خیلی بیشتر از آقایون صحبت کنند. به همین دلیل است که دختر بچه ها خیلی سریعتر از پسر بچه ها به حرف می افتند و کلمات را خیلی صریح تر و واضح تر از پسر بچه ها تلفظ می کنند، همچنین دامنه لغاتشان نیز گسترده تر است.


مردها به طور اخص از خیانتهای جنسی آسیب بیشتری می بینند : فقط کافی است تصور کنند که شریک زندگی شان با شخص دیگری غیر از خودشان هم آغوش شده است! آنگاه ضربان قلبشان 5 برابر شود. اما همین امر اگر برای خانم ها اتفاق بیفتد، به اندازه آقایون درد آور نیست و راحت تر می توانند آنرا بپیذیرند.

در عوض خانم ها در قبال خیانت ها احساسی از خود عکس العمل های شدید نشان می دهند. تنها چیزی که خانم ها از آن وحشت دارند، این است که سرسپردگی و پشتیبانی دراز مدت همسر خود را از دست بدهند.



مردها خود را به عنوان افراد مستقلی می شناسند که در پی بدست آوردن چیزی هستند؛ خانم ها اغلب احساس وابستگی بیشتری دارند و تصور می کنند که تنها در سایه یک ارتباط است که می توانند هویت حقیقی خودشان را پیدا کنند.

"موفقیت های شخصی به جای وابستگی، یکی از مولفه های شخصیتی مردان در راه بدست آورون تفکر و تخیل مردانه است"

مهمترین ایده های یک مرد عبارت است از: استقلال، رسیدن، وارد شدن

مهترین ایده خانم ها چیزی نیست جز: وابستگی، قرار گرفتن در رابطه و دعوت از سوی دیگران. این امر به خوبی در روابط جنسی قابل مشاهده می باشد. "در حین معاشقه مردها کاملا احساس کمال می کنند، و خانم ها از اینکه کسی آنها را دعوت به این کار کرده، نهایت لذت را می برند."

مردانگی زمانی به حد کمال خود می رسد که : "مردها در کمال قدرت و در نهایت فروتنی تقاضای برقراری این نوع ارتباط را دارند و در ذهن خود قصد دارند تا بهترین نحو این کار را انجام دهند. زنانگی نیز در جایی خودش را نشان می دهد که یک خانم: "مرد مورد نظر را به دنیای خودش راه می دهد تا با کسب تجربیات جدید، از زندگی نهایت لذت را ببرد."

تنها تلاش خانم ها در روابط خود با جنس مخالف این است که: سعی می کنند وابستگی ها را افزایش داده، ارتباط را عمیق تر کنند و دیگران را نیز به انجام این کار تشویق می نمایند.

5 نیاز اساسی آقایون از زندگی مشترک

1- ارضای جنسی

2- مصاحبت لذت بخش

3- داشتن یک همسر جذاب

4- پشتیبانی خانوادگی

5- تقدیر و تشکر

5 نیاز اساسی خانم ها از زندگی مشترک

1- مهربانی و محبت

2- گفتگو

3- صداقت و درستی

4- حمایت مالی

5- سرسپردگی همسر

در ارتباط با روابط جنسی می توان گفت: آقایون خیلی راحت به حالت برانگیختگی و اوج لذت دست پیدا می کنند؛ اما برای خانم ها دقیقا مخالف این امر اتفاق می افتد.

یک مرد غیر قابل اجتناب

1- او از طریق در آغوش کشیدن ها و بوسیدن های مکرر، مهر و محبتی را که خانم به آن نیاز دارد، جبران می کند.

2- او نیاز خانم به گفتگو را از طریق ترتیب دادن یک بحث عاشقانه مرتفع می سازد.

3- صداقت و درستی خود را با نگاه کردن به طور مستقیم در چشم های خانم و بیان احساسات و افکار حقیقی اش به معرض نمایش می گذارد.

4- او را از نظر مالی حمایت کرده و هزینه مسکن، خوراک، و پوشاک را به عهده میگیرد.

5- او سر سپردگی خود را به خانواده با قرار دادن مسائل مربوط به خانواده در راس همه کارها، اعلام می کند. وقت و انرژی خود را صرف تعلیم و تربیت فرزندانش می کند.

خانم غیرقابل اجتناب

1- نیازهای جنسی آقا را برآورده کرده و شریک جنسی خوبی برای او می شود.

2- مصاحبت و سرگرمی را از طریق جذاب بودن برای همسرش برآورده می کند.

3- او باید جذابیتی که در اولین قرارها برای آقا داشته همچنان حفظ کند. با انجام ورزش و رعایت رژیم غذایی مناسب خود را از نظر فیزیکی متناسب نگه می دارد. موها و آرایش خود را همانطور که همسرش دوست دارد نگه می دارد.

4- فضای آرام و ساکتی را در خانه فراهم کرده تا نیاز آقا به حمایت خانوادگی مرتفع گردد.

5- ارزش و اعتبار آقا را به خوبی درک می کند و به خاطر موفقیت های که بدست می آورد از او تشکر و قدردانی به عمل می اورد.



مردها بیشتر برای قدرت، لیاقت، شایستگی، صلاحیت و پیشرفت ارزش قائل هستند؛ معمولا تلاش می کنند تا ارزش های شخصی خودشان را اثبات کنند. "خود محوری مردان از طریق پیشرفت هایی که بدست می آورند تطمیع می شود. آنها به "اموال" و "اشیا" اهمیت بیشتری می دهند تا به افراد و احساساتشان. رسیدن به اهداف برایشان از اهمیت ویژه ای برخوردار است، چراکه به منزله اثبات توانایی رسیدن به پیشرفت محسوب می شود. کمتر در مورد مشکلاتشان صحبت می کنند مگر اینکه نیاز به راهنمایی و کارشناسی های تخصصی داشته باشند. زمانی که خانم ها به مشکلی برمی خورند، آنها آماده هستند تا همسرشان را نصیحت کرده، راه حل های مختلف را پیش رویشان قرار دهند و اقدام به حل مشکل نمایند.

خانم ها برای عشق، سرسپردگی، زیبایی، و برقراری ارتباط ارزش قائل می شوند. آنها دوست دارند وقت خود را صرف حمایت و پرورش کودکانشان کنند. خود محوری در آنها تنها از طریق احساسات و توانایی برقراری رابطه توضیح داده می شود و کار و تکنولوژی برای آنها از جایگاه ویژه ای برخوردار نمی باشد. مستقیما و به راحتی می توانند نیازهای دیگران را پیش بینی کنند. برای خانم ها بزرگترین نشانه عشق این است که همسرانشان کاری را بدون درخواست آنها انجام دهند.

زمانی که آقایون در حال انجام کاری هستند، اگر به آنها پیشنهاد کمک شود، تصور میکنند که به اندازه کافی لایق و شایسته نبوده اند و خانم به او اعتماد نداشته که یک چنین پیشنهادی را مطرح نموده. اما برعکس "پیشنهاد کمک و مساعدت به خانم ها به عنوان نشانی از عشق به شمار می رود."

آقایون دوست دارند مشکلات را حل نمایند، خانم ها ترجیح می دهند در مورد مشکلات صحبت کنند.

زمانی که آقایون تحت فشار قرار می گیرند، ترجیح می دهند تا تنها باشند و راه حلی برای از بین بردن مشکل پیدا کنند. زمانی که یک خانم تحت فشار باشد، فقط میخواهد با کسی در آن مورد صحبت کند. حرف زدن در مورد مشکلات باعث می شود که او احساس بهتری پیدا کند.

زمانی که یک خانم با همسر خود در مورد مشکلاتش صحبت می کند، آقا احساس مسئولیت پذیری می کند. زمانی که یک مرد در مورد مشکلاتش با همسرش حرف نمی زد، خانم تصور می کند که نسبت به او بی توجهی شده است.

مردها باید احساس کنند که به وجودشان نیاز است و خانم ها نیز باید احساس آرامش از همسرانشان بگیرند.

خانم ها احساساتشان را بیان می کنند، آقایون اطلاعات مفید در اختیارشان قرار میدهند.

آقایون نیازمند اعتماد، مقبولیت، تمجید، تایید، و تشویق و دلگرمی هستند.

خانم ها نیازمند اهمیت، فهمیده شدن، احترام، صمیمیت، تایید و اطمینان هستند.

آقایون در بحث و مشاجره یا "مبارزه" می کنند یا "کناره گیری" به این معنا که یا تهدید و ارعاب را تا حد نهایی ادامه می دهند و یا اینکه ساکت می شوند و هیچ حرفی به زبان نمی آورند. در این مواقع خانم ها یا "جا می زنند" و یا "اعتراف" می کنند، یعنی طوری وانمود می کنند که گویی هیچ اتفاقی نیفتاده و یا مسئولیت همه چیز را به عهده میگیرند.

مردها تصور می کنند که برای رویدادهای بزرگ باید هدیه های بزرگ خریداری کنند، خانم ها به تمام کادوها یک امتیاز میدهند.

خانم ها به طور ذاتی احساسات و نیازهای طرف مقابل را درک می کنند به همین دلیل از آقایون هم انتظار دارند که اینچنین باشند.

+ نوشته شده در  یکشنبه هفتم مهر 1387ساعت 18:33  توسط علی بیات | 

اخبار بد—مرگ یکی از عزیزان، بیماری، اخراج شدن از کار و ...—مثل شوک می مانند، وحشت می کنید و همه زندگیتان ناگهان تغییر می کند.

جای تعجب نیست که در تحقیقی مشخص شده است که تقریباً همه خانم هایی که به تازگی ابتلا به سرطان سینه شان به آن گزارش شده است، دچار پریشانی و اضطراب می شوند. اما جدی تر اینکه، این وضعیت در تقریباً نیمی از آنها آنقدر پیشرفت می کند که منجر به اختلالات روانی شدید مثل افسردگی می شود.

کاملاً بدیهی است که شنیدن خبر بد چندان آسان نیست. اما واقعیت این است که باید با آن کنار بیایید، شما فرزندانی دارید که باید از آنها حمایت کنید و زندگی که باید آنرا ادامه دهید. اما چطور؟

بااینکه به نظر غیرممکن می رسد اما راه هایی هست که می توانید بااستفاده از آنها به خودتان برای کنار آمدن با این اخبار بد و شروع یک زندگی جدید، کمک کنید.

کمک بگیرید

بعد از شنیدن یک خبر بد، ساده ترین راه این است که فکر کنید تنها و بی کس هستید و یا آنقدر خودتان را غرق در فکر کردن به جزئیات آن مسئله می کنید که دیگر نمی توانید از زندگی لذت ببرید. باید سعی کنید با افراد خوشبین و مثبتی که در اطرافتان دارید صحبت کنید و از آنها کمک بگیرید. و حتماً انجام کارهایی که سابقاً از آنها لذت می بردید را ادامه دهید.

اطلاعات بگیرید

در شرایطی که اخبار بد، خبر ابتلای شما به یک بیماری باشد، یا مواردی مثل این، تا می توانید در آن زمینه اطلاعات جمع کنید. در اینترنت برای گرفتن اطلاعات درمورد آن بیماری جستجو کنید، کمی تحقیق کتابخانه ای انجام دهید و حرف های بیماران مبتلا به آن بیماری را بشنوید. وقتی حس کنید که کاری انجام می دهید اضطراب و ترستان تاحدودی تسکین می یابد.

درمورد احساساتتان قضاوت نکنید

بااینکه ممکن است از دهان دوستان و آشنایان بشنوید که باید سرتان را بالا بگیرید و قوی باشید، اما لزومی ندارد درمورد احساسی که دارید حس بدی داشته باشید. ترسیدن و ناراحت بودن کاملاً طبیعی است و هیچ اشکالی ندارد. وقتی کم کم سعی می کنید که با آن خبر بد و تاثیری که در زندگیتان دارد کنار بیایید، به خودتان اجازه بدهید که هر احساسی را آزادانه و بدون قضاوت و انتقاد تجربه کنید.

به خودتان فرصت دهید

در زمانهای سخت، نباید از خودتان انتظار داشته باشید که نظم و روال عادی زندگی را داشته باشید یا با همان سرعت قبل در زندگیتان پیش روید. درصورت نیاز از دیگران کمک بگیرید، تعهداتی که انجام آن در آن زمان به نظرتان دشوار است را لغو کنید و از خودتان مراقبت کنید. خوب غذا بخورید، خوب بخوابید و ورزش کنید. و بالاتر از همه اینها به خودتان سخت نگیرید.

احساسات منفی را بیرون بریزید و کم کم شرایط را بپذیرید

مهم نیست که شوک احساسی که به شما وارد شده، چیست، مراحلی هست که بعد از هر شوک احساسی باید طی کنید. شاید اول آن اتفاق را نپذیرید یا سعی کنید نادیده اش بگیرید و دوست داشته باشید که به زندگی که قبلاً داشتید برگردید. در مرحله بعد ممکن است از آن وضعیت عصبانی شوید و مدام بپرسید که "چرا من؟"  و همه چیز را زیر سوال ببرید و آخر سر هم به طریقی افسرده و مغموم شوید.

بااینکه همه این مراحل کاملاً نرمال وطبیعی هستند اما شما را از پذیرفتن واقعیت دور می کنند. قبول واقعیت از نظر احساسی خیلی دشوار است اما باید به خودتان اجازه دهید که کم کم به آن سمت بروید. وقتی آن اتفاق را پذیرفتید آنوقت می توانید به آن با آرامش بیشتری نگاه کنید، نه با ترس و عصبانیت و ناراحتی.

+ نوشته شده در  یکشنبه هفتم مهر 1387ساعت 18:32  توسط علی بیات | 

اندامی بی نقص دارید؟ با آخرین مد لباس می پوشید؟ بهترین رفتار را دارید؟ بهترین نام و تاریخچه خانوادگی را دارید؟ آنقدر کاملید که حتی کوچکترین اشتباهی هم ندارید؟ بهترین تحصیلات را دارید و انگلیسی را با بهترین لهجه صحبت میکنید؟ همه انتخابهایتان تا به امروز بهترین بوده اند؟ شما کی هستید که درمورد دیگران قضاوت میکنید؟

افرادی را می بینیم که در مورد وزن، قد، تحصیلات، زبان، خانواده و همه چیز بقیه نظر می دهند و قضاوت می کنند. بااینکه میدانند خودشان هم بی عیب نیستند. بهترین اندام چه اندامی است؟ نظرات زیادی در مورد این موضوع وجود دارد. برای یک نفر مقدور نیست که همه نظرات و دیدگاه های موجود درمورد بهترین اندام را داشته باشد. یک نفر به ظاهر کامل می آید درحالیکه فرد دیگر به نظر زشت می آید. پس چون یک نفر به شما گفته که بهترین هیکل را دارید نمی توانید به خودتان این حق را بدهید که درمورد هیکل کس دیگری قضاوت کنید.

وقتی افراد دیگران را با گذشته و تجربه هایی که در زندگی داشته اند قضاوت میکنند، بسیار تاسف می خورم. آنها حتی شناخت درستی از آن افراد ندارند، یا حتی یک کلمه حرف با آنها نزده اند و نمی دانند که چه کسی هستند و از کجا آمده اند. هیچوقت وقت نمی گذارند که به حرف های او گوش بدهند و ببینند که چه کرده اند که به آنجا رسیده اند. تقریباً مثل قضاوت کردن درمورد دختر نوجوانی که در سن 17 سالگی حامله می شود. همه استنباط بدی نسبت به او پیدا میکنند بدون اینکه هیچوقت برای شناختن آن دختر وقت بگذارند. در اکثر موارد، مردم فقط قضاوت می کنند، همین.

حتی اگر در بهترین و کاملترین شرایط زندگی کنید و درکارتان بیشترین موفقیت را داشته باشید هم باز دلیل بر این نیست که درمورد دیگران قضاوت کنید. هیچ استاندارد قاطعی درمورد خوب یا بد وجود ندارد. عقاید، باورها، فرهنگ ها و ....بسیارند و هیچکس نمی تواند همه آنها را با هم داشته باشد.

من کامل نیستم. بهترین اندام، تحصیلات، و خانواده را ندارم. انگلیسی را با بهترین لهجه صحبت نمی کنم. همه انتخاب های زندگیم عالی نبوده و خیلی وقت ها در زندگی واقعاً گند زدم. من به هیچ وجه کامل نیستم. می دانم که همه چیز آنطور که به نظر می رسد نیست. ترجیح می دهم دیگران قبل از اینکه درمورد من قضاوت کنند، من را خوب بشناسند. من قاضی نیستم، خدا هم نیستم. به خاطر همین هیچکس را قضاوت نمی کنم.

+ نوشته شده در  دوشنبه یکم مهر 1387ساعت 18:11  توسط علی بیات | 

 

اگر شما از خوردن کره بادام زمینی و ژله لذت می برید، نمی توان نام طرفدار آجیل را بر روی شما گذاشت. آجیل یکی از میان وعده های بسیار مفید است. محققین به این نتیجه دست پیدا کرده اند که آجیل دارای خواص بیشماری است؛ از بروز حملات قلبی و ابتلا به دیابت جلو گیری می کند، مانع رشد سرطان شده و تا آن اندازه که قبلا تصور می شد موجب فربگی نمی شود.

جهان پر از چیزهای جذاب است، البته من در مورد نامزد قبلی شما که ساعت 3 نیمه شب با تماس تلفنی خود شما را از خواب بیدار می کرد تا با هم صحبت کنید، حرف نمی زنم. بلکه منظور من کاشو، گردو، فندوق، و پسته می باشد. و با وجود این همه خشکبارهای سخت پوست می توانید از بین آنها هریک که شما را بیش از سایرین به خود جلب می کند، را انتخاب کنید.

چه چیز آجیل است و چه چیز نیست؟
آجیل معمولا به میوه های دانه ای شکلی گفته می شود که بر روی درخت های شکوفه ای و یا بوته های مستقیم رشد می کنند. یکی از اشتباهات در مورد آجیل این است که مردم اغلب تصور می کنند بادام زمینی نیز جزء این گروه می باشد. بادام زمینی شاید خوشمزه باشد، اما از انواع آجیل نیست و مانند نخود و لوبیا نوعی بنشن(حبوبات) است. (دانه ای خوردنی که درون یک پوسته می روید) و اغلب در زیر زمین رشد می کند.

هر چند آجیل سویا نیز دارای خواص بسیار زیادی است اما عموما نمی توان آنها را در زیر گروه آجیل قرار داد. آجیل سویا معمولا از خشک کردن و یا حرارت دادن دانه های سویا بدست می آید به همین دلیل به زیر گروه حبوبات تعلق دارد.

خواص کلی
هر کدام از انواع آجیل ها دارای خواص بیشماری می باشند. دارای چربی های اشباع شده گیاهی بوده که کلسترول خون را پایین آورده و از بروز حملات قلبی جلوگیری میکنند.

بیشتر آنها دارای پروتئین می باشند. نوع پروتئینی که در آجیل ها یافت می شود "آرجینی" نام دارد. این ماده یکی از پیش نیازهای تولید اکسید نیتریک است که به سلامت رگ های خونی و کاهش فشار خون کمک می کند.

در آخر باید اضافه کرد که اغلب انواع آجیل ها منبع مناسبی از ویتامین و فیبر میباشند و باعث می شوند که عملکرد بدن شما روان و بدون مشکل باشد.

انواع آجیل

بادام زمینی
هر چند بادام زمینی رسما آجیل نیست اما دارای خصوصیاتی می باشد که ما را به یاد اجیل می اندازد. منبع غنی پروتیین می باشد (20 تا 30 درصد از آن از پروتیین تشکیل شده است) حاوی انواع ویتامین ها به ویژه گروه ویتامین های B، پتاسیم و نیاسین(اسید نیکوتینیک) می باشند.

فواید
به جای استفاده از هله هوله سعی کنید بادام زمینی مصرف کنید. ویتامین هایی که در بادام زمینی وجود دارند سلامت پوست، مو و ماهیچه ها را تضمین می کند. پتاسیم موجود در آن آب بدن را تنظیم می کند و متابولیسم بدن را در حد نرمال نگه داشته و از گرفتگی عضلات در حین انجام ورزش های سنگین جلوگیری می کند.

در هنگام خوردن بادام زمینی لازم نیست ناراحت باشید که ممکن است تمام تلاش هایی که در باشگاه کرده اید از بین می رود: بادام زمینی به آن اندازه که شما تصور می کنید چاق کننده نیست. 85% از کل چربی بادام زمینی اشباع نشده است و 50% از این چربی ها اشباع نشده تکی می باشد که خون را از کلستول بد (لیپو پروتیین های کم تراکم) پاک می کنند، شریان های خونی را باز می کنند و خطر حمله قلبی را پایین می آورد.

نکته ای در مورد کره بادام زمینی
شروع نکنید به خوردن کوهی از ساندویچ کره بادام زمینی. شاید تصور کنید که چون بادام زمینی دارای خواص بیشماری است پس خوردن کره آن نیز همان نتایج را در بر خواهد داشت. اما این تصور درست نیست. هر چند کره آن همانند خودش دارای مقادیر زیادی پروتیین می باشد، بیشتر کره هایی که در بازار یافت می شوند دارای میزان زیادی چربی، سدیم، شکر، روغن هیدروژنه برای تازه نگه داشتن می باشند. اگر میخواهید از این نوع کره ها استفاده کنید بهتر است یکی از آنها که فاقد روغن هیدروژنه می باشد را انتخاب کنید. یا از روغن های طبیعی که به روش سنتی از بادام زمینی گرفته می شوند استفاده کنید.


بادام
بادام نه تنها دارای مواد فیبردار و پروتیین می باشد بلکه حاوی کلسیم نیز میباشد. لاکتوزهایی که برای بدن مفید بوده و اغلب در شیر وجود دارند در بادام نیز یافت میشوند: یک چهارم فنجان بادام تقریبا به اندازه یک فنجان شیر دارای کلسیم لاکتوز می باشد. اگر این فواید شما را به خوردن بادام وادار نمی کند باید بگوییم که حاوی ویتامین E و سلسیوم نیز می باشد.

فواید
کلسیم موجود در بادام شبانه روز به شما کمک می کند که استخوان ها و دندان های سالمی داشته باشید و همچنین در برخی موارد از ابتلا به سرطان روده و پروستات نیز جلوگیری می کند. آنتی اکسیدان هایی که در بادام وجود دارند از تخریب دیواره های سلولی که یکی از دلایل اصلی بروز سرطان می باشند، جلوگیری می کنند. آنها همچنین دارای خواص بیشماری برای حفظ سلامت قلب می باشند. تاثیر بادام در پایین آوردن کلسترول خون از بادام زمینی هم بیشتر است. 70% از کل چربی که در بادام وجود دارد از انواع چربی های اشباع نشده تکی است که منجر به تسویه شریان های قلب می شود.


کاشو
کاشو میوه درخت بلارد می باشد و آنقدر مفید است که شما می توانید ساعت ها در زیر درخت آن به انتظار بنشینید تا یکی از میوه ها از درخت به پایین بیفتد و شما آنرا میل کنید. حاوی میزان زیادی ویتامین و مواد معدنی از قبیل منیزیم، مس، فسفر، و آهن می باشد.

فواید
مس موجود در آن به بهبود بدن از بیماری و رهایی از عفونت ها کمک می کند. منیزیم انرژی بدن را بالا برده و جزء پیش نیازهای تولید پروتیین می باشد. فسفر به همراه کلسیم در به وجود آوردن استخوان ها و دندان های محکم سهیم است. آهن نیز برای حفظ سلامت گلبول های قرمز خون، پوست، مو و ناخن ضروری است.


پسته
پسته به خانواده کاشو تعلق دارد و مانند سایر انواع آجیل ها فاقد کلسترول می باشد. علاوه بر این آرد آن برای درست کردن بستنی های خوشمزه کاربرد زیادی دارد؛ سرشار از خواص غذایی است: 30 گرم از آن (در حدود 45 عدد) شامل بیش از 10% از خواص لبنیات مصرفی در طول روز، منیزیوم، مس، فسفر و ویتامین های خانواده B می باشند.

فواید
پسته فاقد کلسترول بوده و در عوض دارای چربی های اشباع نشده تکی می باشد که مانند سایر آجیل ها به شما در حفظ سلامت قلب کمک می کنند. مس، منیزیم و ویتامین های B موجود در آن عملکرد سیستم ایمنی بدن را افزایش داده و بدن را در حال تناسب نگه می دارند.


گردو
گردو یکی از انواع آجیل ها می باشد که بیشترین فایده را برای قلب دارد. نه تنها فاقد چربی های اشباع شده می باشند بلکه حاوی امگا 3 نیز می باشند. یک مشت گردو، دارای امگا 3 بیشتری نسبت به 30 گرم ماهی قزل آلا دارد.

فواید
امگا 3 موجود در گردو از ابتلا به بیماری های قلبی جلوگیری کرده و لخته های خونی موجود در شریان های قلب را از بین می برد. در حالی که امگا 3 از آرتروز و افسردگی جلوگیری می کند شما می توانید با مصرف گردو اسکی بروید، قلاب بافی کنید و در اوج پیری با صدای بلند بخندید.


گردوی امریکایی
این نوع گردو شامل خواص غذایی بیشماری می باشد: استروئید، زینک، ویتامین E ، فسفر از انواع آنها می باشد.

فواید
شاید نتوانند از شکسته شدن قلب شما جلوگیری کنند اما می توانند از آن محافظت کنند. استروئید موجود در آن به کاهش کلسترول خون کمک می کند. بر اساس تحقیقاتی که در دانشگاه نیومکزیکو انجام شده مصرف ¾ این ماده به طور روزانه کلسترول بد خون را به طور قابل توجهی پایین اورده و خون را تصفیه می کند. زینک موجود در آن شما را در مقابل انواع عفونت ها مصون می کند. ویتامین مانع بروز سرطان است و ویتامین A صورت شما را باز و بشاش می کند.


ماکادمیا
مانند سایر انواع آجیل ها 85% در صد آنرا چربی های اشباع نشده تکی تشکیل میدهد و دارای پتاسیم و منیزیم نیز می باشند.

فواید
میزان زیاد چربی های اشباع نشده حاکی از توانایی بالا در رفع لخته های خونی در شریان های قلبی می باشد. منیزیم و پتاسیم نیز برای سایر قسمت های بدن مفید هستند و برای ماهیچه های، سیستم عصبی، عملکرد قلب، حفظ تعادل آب بدن، سطح کلی انرژی و فعال کردن ویتامین های B ضروری می باشند.


فندوق
فندوق میوه ای شبیه به بلوط می باشد و با اینکه بسیار کوچک است منبع مناسبی از مواد غذایی و به ویژه ویتامینE و سلنیم می باشد.

فواید
اگر همراه با شکلات های خوشمزه مصرف نشوند، می توانند فواید بیشماری را برای حفظ سلامت بدن شما به همراه داشته باشند. سلنیم مانع پیری زودرس و فرسایش بافتها می شود و ویتامین E نیز در تولید گلبول های سفید و قرمز خون موثر است.


جوز برزیلی
شامل پروتیین، سلنیم، نیاسین، منیزیم، مواد فیبردار و ویتامین E می باشد.

فواید
سلنیم و ویتامین E به بدن در مبارزه با رادیکال های آزاد (ملکول هایی که به راحتی می توانند دیواره های سلولی را تخریب کنند) کمک می کنند. مواد فیبردار فرایند گوارش را روان می سازند و منیزیم انرژی زیادی را به بدن می دهد.


بلوط
بر خلاف سایر آجیل ها داخل بلوط سفت و سخت نبوده و نرم و آبدار می باشد. به این دلیل که دارای مقداری تانیک اسید هستند، نمی توانید آنرا نپخته مصرف کنید زیرا ممکن است دچار ناراحتی های مزاجی شوید. می توانید آنرا به صورت پخته و یا بو داده مصرف کنید.

فواید
شامل ویتامین C,B6 می باشد. ویتامین C حاوی آنتی اکسیدان می باشد که بروز سرماخوردگی و عفونت جلوگیری می کند. ویتامین B6 نیز به تولید پروتیین، هورمون و سلول های جدید کمک می کند. پتاسوم نیز عملکر سیستم عصبی و جریان خون را بهبود می بخشد.


میوه درخت کاج
میوه کاج به طور کلی به عنوان آجیل شناخته نمی شود اما به عنوان یک دانه، دارای خواص بسیار زیادی است. اما اجازه ندهید تا ظاهر کوچک آنها شما را فریب دهد. این دانه های کوچک مغذی می باشند و شامل: ویتامین A,C,D می باشند.

فواید
دارای چربی های اشباع نشده هستند و راه شما را در جلوگیری از ابتلا به بیماری های قلبی-عروقی هموار می سازند. ویتامین D با جذب کلسیم، داندان ها و استخوان های سالم تری را برای شما درست می کند. ویتامین A,C نیز بینایی شما را تقویت می کنند و سیستم دفاعی بدن را نیز تقویت می کنند.



در رژیم غذایی خود آجیل را بگنجانید
بهترین راه استفاده از آجیل این است که آنها را در غذاهایی که مصرف می کنید بریزید و یا از آن به جای میان وعده های ناسالمی مثل چیپس و یا شیرینی استفاده کنید.

چند دستورالعمل که ما را تشنه مصرف آجیل می کند:

استفاده از گردو در سالاد سبزیجات ( به اندازه یک مشت).
می توانید از میوه درخت کاج به همراه نعناع و ریحان و کمی روغن غذای خوشمزه ای درست کنید.
بادام زمینی و کاشو را به همراه مقداری رشته فرنگی در آب بخیسانید، مقداری سس،آبلیمو، تن ماهی، سبزی تازه به آن اضافه کنید و تفت دهید. می توانید برای خوشمزه تر شدن، روی آن مقداری آجیل پودر شده بپاشید.
گردوی آمریکایی را به همراه سیب زمینی و شکر بپزید و بعد میل کنید.
مرغ، کاشو، زنجبیل: مرغ را به صورت لایه های نازک در آورید و سپس زنجبیل و کاشوی خرد شده را به آن اضافه کنید و سرخ کنید. برای طعم بهتر می توانید مقداری سس سویا و عسل نیز به آن اضافه کنید.
بادام را می توانید به همراه کرن فلکس برای صبحانه میل کنید.
بالکارا: نوعی دسر یونانی است که با گردو تهیه می شود.
پلو به همراه سالاد پسته.
با استفاده از تمام آجیل هایی که ذکر کردیم و مقداری کشمش و سایر میوه های خشک کرده و بادام زمینی یک دسر خوشمزه درست کنید.

چه زمان نباید آجیل مصرف کرد ؟
با اینکه تمام انواع آجیل ها دارای چربی های اشباع نشده می باشند اما پس از اینکه به کارخانه می روند عملیاتی برای خوش طمع شدن بروی آنها انجام می شود که درصد شکر، سدیم و چربی آنها را تا حد زیادی کاهش می دهد، از نگهدارنده های شیمایی نیز برای دوام بیشتر بر روی آنها استفاده می کنند. از خوردن آجیل شور و یا عسلی خود داری کنید چراکه دارای مقدار زیادی چربی می باشند و می توانند به راحتی فشار خون را افزایش داده و سایز شما را نیز زیاد کنند.

باید مراقب باشید که تبلیغات کاکائو ها و شکلات های فندقی و گردویی شما را فریب ندهد. شکر؛ چربی و مواد نگه دارنده ای که در شکلات ها وجود دارد تمام خواص آجیل را از بین می برد.

نکته دیگر این است که در حدود 1% از کل مردم به آجیل حساسیت دارند. اگر شما تصور می کنید که جزئی از آن افراد هستید پس بهتر است طرف آجیل نروید. برخی افراد به درخت این میوه ها آلرژی دارند و سایرین به خود آجیل. اما عده ای نیز هستند که نسبت به هر دو آلرژی دارند. در هر صورت هر تحریکی ممکن است بیماری را حاد تر کرده و سلول های عصبی واکنش شدیدتری از خود نشان دهند و بیمار دچار مرگ شود.


حقایق جذاب
میدانم که تا این لحظه بسیار متعجب شده اید اما اگر 5 بار در هفته یک مشت آجیل میل کنید از تمام خواصی که برایتان ذکر کردیم بهرمند خواهید شد. و ریسک ابتلا به بیماری های قلبی و دیابت در شما تا حد زیادی کاهش پیدا می کند. مصرف مقدار ذکر شده باعث اضافه وزن نمی شود و جلوی اشتهای شما را نیز می گیرد.

حالا که از فواید آجیل آگاه شدید شاید از خود بپرسید که طرز نگهداری آنها به چه صورت است؟ اگر برایتان مقدور می باشد باید آنها را با پوست درون ظرف های دربسته نگهداری کنید. در این حالت نباید بیش از 6 ماه در یخچال قرار بگیرند، اما می توانید آنها را برای 1 سال به حالت فریز شده نگهداری کنید. اگر آنها را از پوستشان جدا کنید چیزی بیش از دو هفته تازه نمی مانند و باید در محل خشک و خنک قرار داده شوند.


دست به کار شوید و آجیل بخورید!
اگر می دانید که نسبت به آجیل حساسیت ندارید، شروع کنید و سرخودتان را با خوردن آن گرم کنید. شاید کوچک باشند اما توانایی های زیادی دارند. شامل مواد بسیار مغذی می باشند که ریسک سکته قلبی را کاهش می دهند، مانع بروز سرطان هستند و عمر را طولانی تر می کنند. این موارد کافی است که شما را جذب خوردن آجیل کنید.
+ نوشته شده در  دوشنبه یکم مهر 1387ساعت 18:5  توسط علی بیات | 
 
صفحه نخست
پروفایل مدیر وبلاگ
پست الکترونیک
آرشیو
عناوین مطالب وبلاگ
درباره وبلاگ
برای آنها که مرا نمی شناسند همین قدر کافیست که بدانید من علی بیات هستم همین و بس و برای آنان که مرا می شناسند علی بیات بودن کافیست !

نوشته های پیشین
هفته دوم آبان 1388
هفته چهارم دی 1387
هفته سوم دی 1387
هفته اوّل دی 1387
هفته چهارم آذر 1387
هفته سوم آذر 1387
هفته دوم آذر 1387
هفته دوم آبان 1387
هفته اوّل آبان 1387
هفته اوّل مهر 1387
هفته چهارم شهریور 1387
هفته دوم شهریور 1387
هفته چهارم مرداد 1387
هفته سوم مرداد 1387
هفته اوّل مرداد 1387
هفته چهارم تیر 1387
هفته سوم تیر 1387
هفته سوم اسفند 1386
هفته دوم اسفند 1386
هفته اوّل اسفند 1386
آرشیو موضوعی
پرورش اندام
ازدواج وبررسي مسائل جنسي و زناشويي
تغذيه وسلامتي
ورزش
مد و مسائل روز
اطلاعات جديد برنامه نويسي
پیوندها
آموزش ساخت وبلاگ در 30 دقیقه
فیلتر شکن,هک,برنامه نویسی و...
مثل آبی ، مثل دریا
عشق شیرین دوست داشتنی
همسر و ازدواج
کویر پر ستاره
اطاق
عكس بازيگران
 

 RSS

POWERED BY
BLOGFA.COM