تبليغاتX
Bit Torrent
 
   
     
 
 
  سلام

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

یه تشکر ویژه از تمام نویسندگان این وبلاگ که تو این مدت همه جوره کمکم کردن .

بیت تورنت جان تولدت مبارک.



علی یارتون ، حق نگهدارتون
 
 
   |    نوشته شده توسط جمشید
 
 
 

المپیک ۲۰۰۸ پکن، از دیروز هشت آگوست آغاز شد و نبردی هولناک برای به چنگ آوردن ۳۰۲ نشان برتر آغاز شد. در این میان گوگل هم بی کار ننشسته است و انواع و اقسام سرویسهای مختلف را برای این مسابقات تهیه کرده است. در ادامه نگاهی داریم به این سرویسهای هیجان انگیز.

 

 

صفحات ویژه گوگل

http://blogoscoped.com/files/google-china-olympics-home-small.jpg

گوگل برای شروع بسته به کشورهای مختلف شروع به طراحی و ارائه یک صفحه ویژه کرد. مثلا این صفحه که برای خود چین طراحی شده است. طبیعتا ایران از این صفحه ها ندارد :)

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

 

کانال ویژه ای در یوتیوب و ماجرای جالب ایران

http://blogoscoped.com/files/beijing-youtube-channel.jpg

مسئولین برگزاری المپیک تصمیم گرفتند یک حالی هم به کاربران یوتیوب در جهان بدهند. آن هم به این صورت بود که یک کانال یوتیوب برای این مورد در یوتیوب راه انداختند. مساله جالب کجاست؟
سایت یوتیوب در ایران مسدود است. اگر هم بخواهید از فیــلترشکن استفاده کنید هم چون کاربر کشوری غیر از ایران محسوب می شوید خود سایت یوتیوب این اجازه را به شما نمی دهد. یک بار هم که آنها می خواهند به ایران حالی بدهند مسئولین مخابرات نمی گذارند :)

لوگوهای ویژه المپیک

http://blogoscoped.com/files/google-olympics-logo-homepage.png

به نظر می رسد که گوگل برنامه ویژه ای دارد! گوگل المپیک را با یک لوگوی ویژه آغاز کرد که در آن ۵ عروسک ویژه المپیک پرچم و مشعل المپیک را حمل می کنند.

 

 
لوگوی روز دوم مسابقات 

 

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

 

البته گوگل یک جفت آواتر هم برای پلیس چین تهیه کرد اما آن مربوط به المپیک نبود ( برای جزئیات به زبان انگلیسی ببینید )

 

قابلیت های ویژه در موتور جستجو

می خواهید ببینید ایران چند مدال در المپیک گرفته است؟ اینجا کلیک کنید تا ببینید ایران چند تا مدال گرفته است و ببینید برای این که هر کشوری را بتوانید پیدا کنید چطوری باید بگردید.

می خواهید ببینید بازی ها یک رشته خاص مثل فوتبال چطوری دارد پیش می رود؟ اینجا را کلیک کنید تا ببینید نتایج فوتبال را به صورت خلاصه و این که بفهمید چطوری باید دنبال نتایج یک رشته خاص بگردید.

 

نتایج در گوشی موبایل شما

http://blogoscoped.com/files/google-olympics-sms-alerts-small.png

گوگل یک صفحه اصطلاحا آلرت هم دارد که شما می توانید مشترک اخبار گوگل بشوید. کافی است شماره تلفن خود را وارد کنید. اگر چینی بلدید البته :)

 

بناهای المپیک را سه بعدی ببینید

http://blogoscoped.com/files/olympics-stadium-sketchup.jpg

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

http://www.youtube.com/watch?v=0p2cEQCsBuY

 

ویجت مخصوصا iGoogle

http://blogoscoped.com/files/igoogle-summer-games-2008-gadget.png

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

iGoogle مخصوص زبان چینی با ظاهری ویژه

 

بخش خبری گوگل ویژه المپیک

http://blogoscoped.com/files/google-news-beijing-2008.png

گوگل در ضمن یک پرتال هم برای پوشش اخبار المپیک تهیه کرده است. فقط می توانم بگویم از نظر پوشش اخبار خیره کننده است. همین :)

 

المپیک در گوگل دسکتاپ

http://blogoscoped.com/files/google-summer-games-2008-desktop-gadget.png

اهل نرم افزار دوست داشتنی گوگل دسکتاپ هستید؟ پس حواستان کجاست. گجت ویژه المپیک از دستتان نرود!

 

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




منبع : یک فتحی

لینک اصلی مطلب

 
 
   |    نوشته شده توسط جمشید
 
 
 

 



ردیف نام کتاب پسوند توضیح کتاب حجم
1 visualbasicdotnet.pdf pdf کتاب فارسی آموزشی ویژوال بیسیک دات نت

2651 kb

2 dev.ir.chm chm کلیه مقالات سایت dev.ir شامل آموزش اکثر زبانهای برنامه نویسی

1350 kb

3 amozeshe tamami zabanhaye barname nevisi.rar rar آموزش تمام زبانهای برنامه نویسی

1149 kb

4 String in CSharp.zip zip کار با رشته ها در سی شارپ

مترجم و مولف: محمد بشیری

700 kb

5 Socket Programming.pdf pdf برنامه نویسی سوکت با زبان برنامه نویسی سی

537 kb

6 PHP_farsi_Ebook.zip zip کاملترین مرجع فارسی php

مولف: محمد بشیری

1372 kb

7 JavaTut.zip zip کاملترین مرجع آموزشی جاوا

تعداد صفحه 203

1.29 mb

8 JavaScript.ir.chm chm آموزش جاوا اسکریپت

کلیه مقالات سایت javascript.ir

562 kb

9 HTML Learning.chm chm آموزش جامع html

2509 kb

10

[bashiry] ASP.NET Complete Reference.zip

zip مرجع فارسی ASP.NET

تعداد صفحه: 546 صفحه

گردآورنده: محمد بشیری

2.74 mb

11 ASP.NET - Basics.rar rar کاملترین مرجع آموزشی ASP.NET همراه با مثالهای آموزش داده شده

سطح مقدماتی

3.22 mb

12 ASP.NET - Advanced.rar rar کاملترین مرجع آموزشی ASP.NET همراه با مثالهای آموزش داده شده

سطح پیشرفته

3.49 mb

13 xml.zip zip آشنایی با xml

ترجمه لیلا خلیلی در 7 صفحه

133 kb

14 VB_NET_Functions.rar rar آموزش کاربردی توابع

 Visual Basic.NET

در 65 صفحه

نویسنده: بهروز راد

64 kb

15 vb in n+1 day.rar rar آموزش ویژوال بیسیک در n+1 روز

نوشته: سید امیر احسانی

تعدا صفحه:68

844 kb

16 Registry in vb.NET.zip zip مروری مختصر بر استفاده از رجیستری در VB.NET

127 kb

17 INTRODUCE PHP.zip zip معرفی php

نوشته: مهدی علیدوست

تعداد صفحه: 34

428 kb

18 Network_Programming in vb.zip zip برنامه نویسی شبکه و اینترنت در vb

تعداد صفحه: 22

348 kb

19 pascal.zip zip آموزش پاسکال +

مقایسه برنامه نویسی سی و پاسکال +

نحوه نوشتن یک dll در پاسکال

از شرکت پویشگران جوان

تعداد کل صفحات: 40

331 kb

20 VB and windows API.pdf pdf ویژوال بیسیک و API ویندوز

نوشته شده توسط: حامد احمدی

تعداد صفحه: 9

235 kb

21 Ostadonline HTML Learning.CHM chm آموزش HTML از سایت استاد آنلاین

سایت به صورت کامل و در قالب یک فایل

2.44 mb

22 Amozesh-JavaScrip.pdf pdf آموزش جامع جاوا اسکریپت

تعداد صفحات: 100

(لاهیج سیستم)

527 kb

23 ACTIVEX.PDF pdf تکنیک های پیشرفته در ویژوال بیسیک

ساخت ابزارهای ActiveX

در 17 صفحه

120 kb

24 API.PDF pdf تکنیک های پیشرفته در ویژوال بیسیک

توابع Api

در 22 صفحه

168 kb

25 MENU.PDF pdf تکنیک های پیشرفته در ویژوال بیسیک

کار با منوها

در 30 صفحه

191 kb

26 multimedia.pdf pdf تکنیک های پیشرفته در ویژوال بیسیک

چند رسانه ای

در 19 صفحه

138 kb

27 TEXTBOX.PDF pdf تکنیک های پیشرفته در ویژوال بیسیک

ابزار TextBox

در 14 صفحه

105  kb

28 WINDOW.PDF pdf تکنیک های پیشرفته در ویژوال بیسیک

کار با پنجره ها

در 30 صفحه

180  kb

29 CSHARP_farsi.pdf PDF آموزش سی شارپ

تعداد صفحه: 81 صفحه

توسط حمید نصیری

566 kb

30 CSHARP.pdf PDF 7 مقاله در مورد سی شارپ

در 16 صفحه به زبان فارسی

مهدی عسگری

220 kb

31 IranASP.NET.chm chm کلیه مقالات سایت IranAsp.net در قالب یک فایل با فرمت chm

1.93 mb

32 IranPHP.net.chm chm کلیه مقالات سایت IranPHP.net در قالب یک فایل با فرمت chm

243kb

 
 
   |    نوشته شده توسط جمشید
 
 
 
 

        Microsoft .NET Framework 3.0 که قبلا" با نام WinFX شناخته می شد، مدل جدیدی از برنامه نویسی مدیریت یافته برای Windows می باشد.

        این مدل جدید ترکیبی است از NET Framework 2.0. به همراه چند تکنولوژی جدید، که برای ساخت برنامه های کاربردی که واسط گرافیکی پیشرفته، ارتباط یکپارچه با سایر تکنولوژیها و قابلیت پشتیبانی از بازه وسیعی از پروسه های پر اهمیت را دارا می باشند، ایجاد شده است.

        NET Framework 3.0. بعنوان جزئی از Windows Vista عرضه می شود ولی در عین حال ویرایش جداگانه آن که قابل نصب بر روی Windows XP SP2 و Windows Server 2003 SP1 می باشد نیز موجود است.

        در اینجا به توضیح مختصری در مورد برخی تکنولوژیهای موجود در NET Framework 3.0 می پردازیم.

        WPF: این تکنولوژی که پیشتر از این با اسم رمز Avalon شناخته می شد، مجموعه ای از کلاسهای مرتبط به هم را شامل می شود که برای ایجاد نسل بعدی برنامه های smart-client که مدل جدیدی از UI را نیز در بر دارد بکار می رود.

        WCF: این تکنولوژی یک مدل برنامه نویسی یکپارچه و runtime را برای ساخت برنامه های کاربردی که با برنامه های دیگر در ارتباط هستند را معرفی می کند. می توان گفت برنامه های مبتنی بر این مدل که پیشتر با اسم رمز Indigo شناخته می شد، برنامه هایی سرویس گرا هستند به این معنی که چند سرویس مختلف توسط متدهای موجود برای ارتباط نرم افزاری مثل سرویسهای وب ، NET Remoting. و Message Queuing با هم در ارتباط هستند.

        WF: این تکنولوژی متشکل از یک مدل برنامه نویسی به همراه موتور و ابزارهایی جهت ساخت برنامه های کاربردی با قابلیت مدل کردن پروسه ها و رویه های پر اهمیت می باشد.

        Windows CardSpace: این خصیصه جدید که پیش از این InfoCard نامیده می شد، تکنولوژی جدیدی را بوجود آورده است که توسط آن ایمنی فعالیتهای online که برپایه اطلاعات شخصی می باشد، علاوه بر ساده شدن، بهبود نیز یافته است.

        تمام کلاسهایی که این کامپوننتهای جدید (CardSpace, WCF, WF, WPF) را در بر می گیرند، قسمتی از فضای نام System می باشند. لذا سایر کلاسهای پایه و کلیدی در NET Framework. مانند CLR و CBL بدون تغییر باقی مانده اند.

        شکل زیر دیاگرام مربوط به ساختار NET Framework 3.0. را نشان می دهد.

        



         

        تقابل NET Framework 3.0. با NET Framework 2.0. و ویرایشهای قدیمی تر

        در NET Framework 3.0. تنها مجموعه ای از تکنولوژیهای جدید به NET Framework 2.0. اضافه شده است که این باعث شده NET Framework 3.0. تافته جدا بافته از NET Framework 2.0. نباشد. می توان NET Framework 3.0. را بعنوان یک افزودنی برای NET Framework 2.0. برشمرد که کاملا" بر NET Framework 2.0. منطبق و سازگار می باشد. بنابراین برنامه های مبتنی بر NET Framework 2.0. بدون هیچگونه اصلاح و تغییری می توانند به کار خود ادامه دهند. اما چنین چیزی برای برنامه های نوشته شده بر پایه NET Framework 1.0. و یا NET Framework 1.1. میسر نیست و برای ارتقاء این برنامه ها به برنامه های مبتنی بر NET Framework 3.0. نیاز به اعمال تغییراتی می باشد.

        شرکت مایکروسافت اعلام کرده است که مطابق سیاست پیشین خود در قبال پشتیبانی از NET Framework 2.0. به این پشتیبانی ادامه خواهد داد. کاربرانی که در حال حاضر از NET Framework 2.0. در برنامه های خود استفاده می کنند این اختیار را دارند که برروی همین ویرایش از NET Framework. باقی مانده و از بروزرسانی هایی که در دسترس  قرار می گیرند استفاده کنند. کامپوننتهایی که بعنوان بخشی از NET Framework 3.0. عرضه می شوند تنها برروی پلاتفورمهایی که توسط NET Framework 3.0. پشتیبانی می شوند ارتقاء پذیر هستند. برای کسب اطلاعات بیشتر در این زمینه به آدرس زیر مراجعه کنید.

        http://msdn2.microsoft.com/en-us/library/aa480198.aspx

         

        نصب NET Framework 3.0.

        همانطور که گفته شد NET Framework 3.0. از قبل بر روی Windows Vista نصب شده است. برای نصب جداگانه آن بر روی  Windows XP و Windows Server 2003 می توان از فایل قابل نصب آن استفاده کرد. با نصب NET Framework 3.0. آن دسته از کامپوننتهای NET Framework 2.0. که قبلا" بر روی سیستم نصب نشده اند، نصب خواهند شد. اگر NET Framework 2.0. از قبل نصب باشد برنامه نصب NET Framework 3.0. تنها کامپوننتهای مربوط به WCF, WF, WPF و Windows CardSpace را نصب خواهد کرد.

        در هنگام نصب NET Framework 3.0. کامپوننتهایی که با NET Framework 2.0. در مسیر زیر نصاب می شوند:

        %windir%\Microsoft.NET\Framework\V2.0.50727

        کامپوننتهایی که مختص NET Framework 3.0. می باشند در مسیر زیر قرار می گیرند:

        %windir%\Microsoft.NET\Framework\V3.0

        و اسمبلی های مرجع برای NET Framework 3.0. در مسیر زیر قرار می گیرند:

        %programfiles%\Reference Assemblies\Microsoft\Framework\v3.0

        حذف (NET Framework 3.0  (Uninstall. ، کامپوننتهای مشترک با NET Framework 2.0. را حذف نخواهد کرد. لذا برای حذف این کامپوننت ها می بایست ابتدا NET Framework 3.0. را حذف کرده سپس بطور جداگانه نسبت به حذف NET Framework 2.0. اقدام کرد.


          نویسنده: مجید شهاب فر

        منبع : http://www.persiadevelopers.com

 
 
   |    نوشته شده توسط جمشید
 
 
 

مقدمه :

در تاريخ 19 نوامبر 2007، مايکروسافت به طور رسمي نسخه  ASP.NET 3.5 و Visual Studio 2008 را منتشر کرد.

در نسخه  ASP.NET 3.5 در مقايسه با نسخه 2.0 خصوصيات جديدي به آن اضافه شده است ولي کلاس هاي پايه نسخه 2.0 تغيير اساسي نکرده اند. در نتيجه برنامه هايي که با نسخه 2.0 نوشته شده اند براحتي قابل ارتقا به نسخه 3.5 مي باشند.

بر خلاف نسخه هاي قبلي VS که مربوط به Framework خاصي بودند (مانند VS 2003 که مربوط به ASP.NET 1.1 بود و VS 2005 که مربوط به  ASP.NET 2.0 بود)، نسخه VS 2008 چند منظوره (multi-targeted) مي باشد و با آن مي توان برنامه هايي که با نسخه هاي 2.0 و 3.0 و 3.5 نوشته مي شوند را ايجاد نموده و يا برنامه هاي موجود را توسعه داد.

نماي Designer مربوط به VS 2008 بسيار بهبود يافته و امکانات جديدي به آن اضافه شده است. خصوصيات Intellisense و JavaScript Debugging نيز بهبود بسياري يافته اند.

وقتي نسخه جديدي از ASP.NET منتشر مي شود، اين بدين معنا است که نسخه جديدي از DotNet Framework ارائه شده است. علاوه بر ويژگي هاي جديدي که مربوط به ASP.NET مي باشد، خصوصيات بسيار زياد ديگري نيز وجود دارد که مورد استفاده برنامه نويسان وب نمي باشد. مانند ويژگي هاي مربوط به Windows Application و غيره.

در اينجا خصوصيات جديد را به سه دسته تقسيم مي کنم :

  1. ويژگي هاي جديد نسخه 3.5 که مخصوص برنامه نويسان  ASP.NET مي باشد. اين ويژگي ها به طور کليدي مخصوص ASP.NET مي باشند. مثلا هنگام انتشاره نسخه 2.0 ، کنترل هايي همچون GridView و کنترل هاي مقيد سازي ديتا مانند SqlDataSource و ObjectDataSource و غيره، که به  ASP.NET اضافه شدند.
  2. ويژگي هايي که مي توانند در ASP.NET به کار گرفته شوند و در ساير انواع برنامه ها مانند برنامه هاي Windows و Console نيز به کار مي روند. مانند جنريک ها (Generics) وAnonymous Types و strongly-typed DataSets .
  3. خواص جديدي که قابل استفاده در ASP.NET نمي باشند. خواصي که بندرت و يا هرگز در ASP.NET استفاده نمي شوند. مانند کلاس هاي موجود در فضاي نامي System.Windows.Forms .

در ادامه اين مقاله، مروري بر ويژگي هاي موجود در دو قسمت اول مي پردازم.

در شکل زير نموداري از خصوصيات جديد اضافه شده به هر نسخه از DotNet Framework را مشاهده مي نماييد.

نگاهي به ويژگي هاي جديد اضافه شده به  ASP.NET :

3 ويژگي مهم اضافه شده، عبارتند از :

  1. نسخه ASP.NET AJAX که با VS 2008 مجتمع شده است (Integrated)

  2. کنترل ListView

  3. کنترل DataPager

در نسخه  ASP.NET 2.0 جهت استفاده از ASP.NET AJAX بايد Extension آن را به طور مجزا دانلود نموده و نصب مي کرديم، در حاليکه در نسخه 3.5 ، به طور پيش فرض اين ويژگي در VS موجود است و در نتيجه سهولت بيشتري جهت استفاده از آن وجود دارد.

کنترلListView در حقيقت بروزرساني شده از دو کنترل Repeater و DataList مي باشد که قابليت نمايش مجوعه اي از رکورد ها را همراه با عملکرد هايي همچون کنترل GridView دارا مي باشد. ListView داراي انعطاف پذيري زيادي در استفاده از تمپليت ها مي باشد.

کنترل DataPager جهت ايجاد يک اينترفيس براي کاربر، جهت Paging مي باشد. به طور مثال اين کنترل مي تواند يک اينترفيس داراي دکمه هاي next و previous و last و first باشد. اين کنترل بايد به يک DataControl مقيد شود.

توجه داشته باشيد که DataPager تنها با کنترل هايي کار مي کند که اينترفيس IPageableItemContainer interface را پياده سازي کرده باشند که در حال حاضر فقط کنترل ListView داراي اين خصوصيت مي باشد.

در مقالات آينده کنتر هاي DataList و DataPager را به صورت دقيق تر و با جزييات کامل تشريح خواهم نمود.

مروري بر خصوصيات جديد اضافه شده در نسخه 3.5 که مي توانند در ASP.NET مورد استفاده قرار گيرند:

ويژگي جديد بسيار جالب اضافه شده، چيزي نيست به جز LINQ که مخفف عبارت Language Integrated Query مي باشد. و داراي ساختاري شبيه به زبان SQL مي باشد. LINQ  به ما اجازه مي دهد که با زبان هاي VB و #C کوئري هاي خود را بنويسيم.

قطعه کد زير،  يک مثال در مورد استفاده ازLINQ مي باشد.


// C# example...
List productNames = from p in products
                            where p.CategoryID = 1
                            select p.ProductName;

در حقيقت LINQ زباني براي کار با ديتا مي باشد. يک  Object Relational Mappers  تعبيه شده وجود دارد که در پشت صحنه، يک  Framework جهت توليد عبارات LINQ، جهت کار با ديتابيس و XML و يا يک Object Layer به وجود مي آورد.

آقاي Scott Guthrie چندين مقاله ارزشمند جهت نحوه استفاده و کاربرد LINQ دارد که مطالعه آنها به شما پيشنهاد مي شود.  using the LINQ to SQL ORM implementation

LINQ  توسط VS 2008 به طور کامل توسط IntelliSense پشتيباني مي شود.

ويژگي هاي LINQ به علت خواص جديدي است که به #C و VB اضافه شده است. شامل automatic properties و extension methods و lambda expressions.

خصوصيات جديد در VS 2008 :

محيط توسعه نرم افزارVS 2008 بهبود بسيار زيادي يافته است. ويرايش کدهاي CSS و ديباگ پيشرفته جاوا اسکريپت از جمله اين بهبود ها مي باشند. همانطور که قبلا ذکر شد، VS 2008 چند منظوره مي باشد و قابليت توسعه نرم افزار با نسخه هاي 2.0 و 3.0 و 3.5 مي باشد.

در نسخه هاي قبلي VS،  داراي نماهاي Design View و Source View بود که در نسخه 3.5 يک نماي ديگر به نام Split اضافه شده است. افرادي که با Microsoft Front Page 2003 کار کرده باشند، با اين ويژگي آشنا هستند.

VS 2008 هم به صورت in-line و هم به صورت يک فايل خارجي (با پسوند js) از جاوا اسکريپت با IntelliSense  حمايت مي کند.

همانطور که Scott Guthrie در مقاله  VS 2008 JavaScript IntelliSense شرح داده است، حتي مي توان به کدهاي جاوا اسکريپتي که مي نويسيم خاصيت hint را اضافه نماييم. اين کار توسط کامنت هاي XML قابل پياده سازي مي باشد. (همانطور که در #C و VB امکان پذير مي باشد)

Scott Guthrie مقاله اي در مورد ديباگ کردن کدهاي جاوا اسکريپت دارد که مطالعه آن نيز به شما پيشنهاد مي شود.  JavaScript debugging capabilities در آينده مقالات بيشتري در مورد عناوين ذکر شده در اين مقاله خواهم نوشت.

يک پوستر بسيار مفيد توسط آقاي Paul Andrew تهيه شده است که از لينک بالاي مقاله قابل دريافت مي باشد.

اين پوستر علاوه بر اينکه تعداد بسيار زيادي از فضاهاي نامي و کلاس هاي موجود در 3.5 را نمايش داده است، به طور واضحي دو چيز را بيان نموده است.

  1. مشخص نموده است که چه مقدار از DotNet Framework 3.5 قابل استفاده در  ASP.NET مي باشد.

  2. ويژگي هاي جديد اضافه شده به نسخه 3.5 را مشخص نموده است.

موفق باشيد.

منبع : 4guysfromrolla

 
 
   |    نوشته شده توسط جمشید
 
 
  NET Framework. يک محيط اجرا با نام Common Language Runtime را ارائه كرده که مسئوليت مديريت اجرای کد و تامين سرويس های لازم بمنظور پياده سازی نرم افزار را  برعهده دارد. CLR، زيرساخت مستحکمی را بمنظور ايجاد انواع نرم افزار در اختيار پياده کنندگان قرار می دهد. يک برنامه ASP.NET، يک برنامه فرم های ويندوز، يک سرويس وب، يک برنامه مختص موبايل، يک برنامه توزيعی و يا يک برنامه که چندين مدل از برنامه های فوق را با يکديگر ترکيب می نمايد، نمونه هائی از برنامه هائی می باشند که می توان آنها را بر اساس زيرساخت ارائه شده ، پياده سازی نمود.  CLR، دارای مزايای متعددی بمنظور پياده سازی سريع و آسان نرم افزار با قابليت مهم ارتباط و يکپارچگی بين کدهای نوشته توسط زبانهای متفاوت برنامه نويسی است.
 

CLR ، ابزاری ( Engine) است که دستورالعمل های IL)Intermediate Language) را بعنوان ورودی اخذ و در ادامه آنها را به دستورالعمل های زبان ماشين ترجمه و در نهايت آنان را اجراء می نمايد. موضوع فوق ، بدين معنی نيست که CLR ، دستورالعمل ها را  تفسير می نمايد. عبارت فوق ، بدين دليل بيان شده است که بنوعی به اين موضوع اشاره گردد  که CLR ، محيط لازم بمنظور اجرای کد IL را فراهم می نمايد. بمنظور نيل به اهداف مورد نظر خصوصا" : کارآمدی کدها و قابليت حمل آنان ، هسته اجرائی می بايست، شرايط ومحيط  لازم بمنظور ايجاد کد  با  لحاظ نمودن اهداف موردنظر ( کارآمد ،  قابليت حمل)  را ارائه نمايد.  کارآمدی کدها ، يکی از مسائل کليدی در رابطه با محيط اجراء خواهد بود. اگر کد، با سرعت قابل قبول اجراء نگردد ، تمام ويژگی های ديگر موجود در سيستم ، تحت الشعاع  قرار خواهند گرفت .
 قابليت حمل ، امکان استفاده از نرم افزار را مستقل از نوع پردازنده و دستگاه فراهم می نمايد. بنابراين افزايش تعداد پردازنده ها و دستگاههائی که
CLR  می تواند بر روی آنها اجراء گردد، همواره دارای اهميت خاص خود خواهد بود. ماکروسافت و اينتل برای مدت زمان زيادی ، دارای همکاری مناسبی  در عرصه تجارت بودند. ماکروسافت  کم و بيش از خط پردازنده های اينتل بمنظور اجراء نرم افزارهای خود ، استفاده می کرد.بدين ترتيب ، ماکروسافت ، بدون وجود نگرانی ( حمايت از معماری چندين پردازنده ای و دستورالعمل های مربوطه ) ، اقدام به ايجاد و پياد ه سازی  نرم افزار می نمود. شرکت ماکروسافت هرگز نگران ارائه يک نسخه خاص از محصولات خود برای يک نسخه خاص از پردازنده های Motoral 68XXX ، نبود ، چراکه اصولا" آنها را حمايت نمی کرد . بروز محدوديت در حمايت از پردازنده ها در زمان انتقال از برنامه ها یمبتنی بر Win16 به Win32، بعنوان يک مسئله مهم ،مطرح گرديد. ( ما عملا" دارای API با نام Win16 نبوده ايم ، ولی می توان اين واژه را برای API قبل از Win32 استفاده کرد) . ماکروسافت اگر می خواهد همچنان بعنوان يکی از شرکت های فعال در زمينه توليد و طراحی نرم افزار در سطح جهان مطرح باشد ، می بايست تدابير لازم در خصوص قابليت حمل نرم افزارهای پياده سازی شده خود را بر روی محيط های متفاوت فراهم نمايد. باتوجه به تغييرات بنيادين و مهم در طراحی و پياده سازی برنامه های مبتنی بر وب طی ساليان اخير  و ضرورت استفاده از دستگاههای متعدد بمنظور ارتباط به اينترنت و در نهايت استفاده از خدمات برنامه های موجود ، ما با واقعيت بزرگ ديگری نيز مواجه هستيم و آن اينکه هر يک از دستگاههای موجود ( تلفن های موبايل ، کامپيوترهای hand-held ، tablet ، ) دارای معماری و پردازنده اختصاصی خود می باشند. با توجه به وضعيت موجود، می بايست تمهيدات و تدابير خاصی در رابطه با طراحی و پياده سازی انديشيده گردد که ماحصل آن قابليت حمل نرم افزار از يک معماری خاص به معماری ديگر باشد .
 ماکروسافت نيز در صدد حضوری فعال تر و ارائه نرم افزار در رابطه با دستگاه های فوق ، است ، بديهی است می بايست اقدامی صورت می گرفت که پاسخگوی واقعيت های جديد صنعت نرم افزارباشد . ماکروسافت در پاسخ به محدوديت های موجود، خواسته های جديد و حل مشکل قابليت حمل به ساير پردازنده ها ، تصميم به ايجاد يک محيط اجراء و يا
CLR نمود ه  است .
در ادامه اين مقاله ، قصد داريم بدون درگير شدن به جزيئات مربوطه ، به بررسی محيط اجراء پرداخته  امکانات آن را در رابطه با اجرای برنامه های
managed
، بررسی نمائيم .

مروری بر  Runtime 
قبل از دات نت، يک برنامه اجرائی معمولا" بصورت يک فايل با انشعاب
exe. ارائه می گرديد ( برنامه  صرفا" شامل يک فايل بود) . بمنظور اجراء کارآمد تمامی سيستم ، برنامه می بايست از کدهائی استفاده نمايد که بصورت اشتراکی باشند ( معمولا" يک فايل با انشعاب dll. ) اگر در زمان استفاده از کد مشترک ، مسائلی ايجاد می گرديد، می توان  از يک کتابخانه وارداتی استفاده و يا  يک DLL را در زمان اجراء ، load کرد ( با استفاده از LoadLibrary,LoadLibraryEx و GetProcAddress

در دات نت ، واحد اجراء و بکارگيری ، اسمبلی (Assembly ) است . فرآيند اجراء، همواره با يک اسمبلی که  دارای  انشعاب exe . می باشد ، آغاز می گردد . برنامه می تواند  از کد اشتراکی بکمک  Importing  اسمبلی که شامل کد مشترک بهمراه يک مرجع صريح است ، استفاده نمايد ( برای اضافه نمودن مرجع ، می توان  از AddReference در ويژوال استوديو دات نت استفاده کرد )  برنامه ها همچنين می توانند با استفاده از  Assembly.Load و يا Assembly.loadForm  ، اقدام به استقرار يک اسمبلی در حافظه  نمايند .
در ادامه  ، لازم است با برخی از اصطلاحات آشنا و تعريف مناسبی از آنها را ارائه نمائيم  .

  •  اسمبلی(Assembly ) . اسمبلی واحد اوليه بکارگيری نرم افزار در فريمورک دات نت است .يک اسمبلی می تواند شامل مراجعی به ساير اسمبلی ها و ماژول ها باشد .

  • ماژول( Module )  . ماژول، فايلی شامل محتويات اجرائی است . يک اسمبلی می تواند يک و يا بيش از يک ماژول را کپسوله نمايد.  يک ماژول بدون اينکه يک اسمبلی به آن مراجعه ای  داشته باشد ، Stand alone  نمی گردد . کلاسی در کنابخانه کلاس پايه ( System) ، مسئوليت کپسوله نمودن اکثر ويژگی های يک " ماژول " را برعهده دارد ( مشابه اسمبلی ).  اين کلاس Module ، نام دارد.

  • APPDomain ،  بعنوان يک  پردازه کم حجم ( سبک )  در نظر گرفته می شود.قبل از دات نت ، ايزولاسيون  از طريق جداسازی  پردازش ها  از يکديگر و بکمک سيستم عامل انجام می گرديد. اگر پردازه ای ، عمليات نامشحص و تعريف نشده ای  را  انجام   که باعث بروز مشکل برای ادامه حيات خود می گرديد ، حرکت وی باعث بروز اختلال در تمام سيستم  نشده  و صرفا" مشکل بوجود آمده در ارتباط با پردازه  خواهد بود . با توجه به اينکه "نوع ها"  ،بصورت کاملا" هدايت شده توسط فريمورک دات نت کنترل می گردند ، می توان از روش هائی بمنظورپياده سازی سطح مشابهی  ايزولاسيون در ارتباط با  يک پردازه استفاده کرد . اين روش Application Domain ويا AppDomain ناميده می شود. همانند اسمبلی و ماژول ، يک کلاس در کتابخانه کلاس فريمورک دات نت ، اکثر ويژگی ها و پتانسيل های  مربوط به يک Application Domain را کپسوله می نمايد. کلاس فوق ، AppDomain ناميده شده و در namespace با نام System قرار دارد .

  • IL  يا MSIL .  واژه IL از Intermediate Language و MSIL از Microsoft Intermediate Language ، اقتباس شده اند . IL  ، زبانی است که  اسمبلی ها  توسط آن نوشته شده و شامل مجموعه ای از دستورالعمل هائی است که کد مربوط به برنامه را ارائه می نمايند. به زبان فوق بدين دليل بدين دليل " ميانی " ( Intermediate )  ، اطلاق می گردد ، چون هنوز  بصورت native code  درنيامده است . در زمان مورد نطر ، کدهای IL توسط کمپايلر JIT به native code ، ترجمه خواهند شد .

  • JIT . واژه JIT از کلمات Just-In-Time اقتباس شده است . از کمپايلر فوق ، بمنظور ترجمه کدهای IL به native code استفاده می شود.

 پس ازاستقرار کد در حافظه ( Loading ) ، امکان اجرای آنان فراهم می گردد . از اين مرحله به بعد ( آغاز عمليات اجراء کد ) ، تفاوت محسوسی را بين  برنامه های قديمی ( قبل از دات نت ) و برنامه های جديد ( دات نت ) ، شاهد خواهيم بود . در حالت کد غيرمديريت يافته ( Unmanaged) ، کمپايلر و linker  بر روی کدهای مربوطه عمليات خود را آغاز و آنها را به native code تبديل می نمايند . بدين ترتيب  ،دستورالعمل ها می توانند بلافاصله اجراء گردند. لازم است به اين نکته مهم اشاره گردد که در صورتيکه قصد استفاده از برنامه نوشته شده بر روی محيط های متفاوت ( ساير پلات فرم ها ) وجود داشته باشد ، می بايست برای هر يک نسخه ای جداگانه را کمپايل کرد. در برخی حالات ، امکان ايجاد و ترجمه نسخه های متعدد بمنظور اجراء بر روی محيط های متفاوت ، امری مطلوب بنظر نمی رسد ، در چنين مواردی سعی می گردد ، صرفا" يک نسخه ارائه گردد. نسخه فوق ، بگونه ای طراحی و پياده سازی می گردد که بتواند با محيط های متفاوت سازگار باشد . بدين ترتيب ، امکان اجراء نرم افزارهای توليدی در محيط های متفاوت ، فراهم خواهد شد . وجود پتانسيل در بطن يک دستگاه سخت افزاری يک موضوع است و ارائه برنامه ای که زمينه بهره برداری از پتانسيل های مربوطه را فراهم  و برنامه ای که از پتانسيل های دستگاه فوق ، در نهايت استفاده می نمايد ، موضوعات ديگری است . مثلا" امروز ما کمتر شاهد ارائه نرم افزار از طرف شرکت های توليد کننده ای می باشيم که تاکيد و اصرار بر استفاده از يک محيط سخت افزاری  نظير وجود يک " شتاب دهنده گرافيک " ، داشته باشند . در چنين موارد علاوه بر اينکه توليد کننده " شتاب دهنده گرافيک " ، می بايست برای هر " کارت شتاب دهنده گرافيک " ، برنامه ای خاص را ارائه نمايد ، بلکه همچنين پياده کنندگان می بايست از برناهه های مجزائی برای هر يک از کارت ها ی عرضه  شده ، استفاده نمايند . " شتاب دهنده گرافيک " ، صرفا" يک نمونه در اين رابطه بوده و می توان به مواردی ديگر نظير :  disk cache,memory cache ، شبکه های با سرعت بالا ،   سيستم های مبتنی  بر چندين پردازنده  و  سخت افزارهای خاص بمنظور پردازش تصاوير، اشاره کرد .

يکی از اولين مراحلی که CLR  در ارتباط  با اجراء يک برنامه انجام می دهد ، بررسی متدی است که می بايست اجراء گردد ( آيا  به native code ،تبديل شده است ؟) . در صورتيکه متد به native code ، تبديل نشده باشد ، کد موجود در متد بصورت  JITd) Just - In - time compild) خواهد بود . تاخير در ترجمه يک متد ،  دارای دو مزيت است :

  • يک شرکت می تواند نسخه ای از نرم افزار توليد ی خود را براحتی بر روی محيط مورد نظر خود منتقل ( در محيط فوق نسخه ای از CLR نصب شده است ) و از CLR   بمنظور مديريت و سفارشی نمودن  کدها،  متناسب با محيط سخت افزاری مربوطه ، استفاده نمايد .

  •  کمپايلرهای JIT قادر به استفاده از مزايای بهينه سازی می باشند . بدين ترتيب ، امکان  اجراء سريعتر يک برنامه نسبت به يک برنامه همه منظور( نسخه unmanaged برنامه )  ، فراهم می گردد . سيستم هائی که دارای پردازنده های 64 بيتی می باشند ، دارای يک مد " سازگاری "  خواهند بود  که به برنامه های سی و دو بيتی   اجازه می دهد بدون اعمال تغييرات  بر روی يک پردازنده 64 بيتی اجراء گردند .اگر برنامه ای به IL ترجمه گردد ، می تواند از مزايای پردازش 64 بيتی بهره مند گردد (موتور JIT ، قادر به target نمودن پردازنده جديد 64 بيتی است) .

فرآيند استقرار يک متد در حافطه ( Loading )  و ترجمه آن ، در صورت نياز تکرار  تا زمانيکه تمام متدها ی موجود در برنامه ترجمه  و يا برنامه متوقف گردد .

شروع يک متد
CLR ، درارتباط با هر متد به اطلاعات زير نياز خواهد داشت . تمامی اطلاعات مورد نياز CLR  از طريق  متاديتا  ( Metadate)  موجود در هر اسمبلی در دسترس و ارائه خواهد شد .

  • دستورالعمل ها . CLR ، نيازمند ليستی از دستورالعمل های MSIL است . هر متد دارای اشاره گری به مجموعه دستوراتی است که بعنوان بخشی از متا ديتا ی مورد نظری است که به آن مرتبط شده است.

  • Signature .  هر متد دارای يک Signature است و CLR نيازمند استفاده از يک signature برای هر متد است . signature ،  برگرداندن نوع ، تعداد پارامتر و نوع پارامترها  را تشريح می نمايد.

  • Exception Handling Array .  دستورالعمل خاصی از IL که مربوط به برخورد با exception باشد ، وجود ندارد . در اين رابطه از  دايرکتيوهائی خاص در مقابل دستورالعمل های IL ، استفاده می گردد . در مقابل دستورالمل های Exception-handling ، اسمبلی دارای  ليستی از exceptions است . ليست فوق،  شامل نوع exception ، يک آدرس offest به اولين دستورالعمل پس از بلاک exception try   ، طول مربوط به بلاک try  ، است . ليست فوق ، همچنين شامل آفست  به handler code ، طول handler code ، و يک token  که مسئول تشريح کلاسی  است که از آن بمنظور کپسوله نمودن exception استفاده می گردد .

  • اندازه Evaulation stack . داده فوق ، از طريق متا ديتا اسمبلی قابل دسترس خواهد بود. می توان آن را از طريق  maxstack  x در ليست ILDASM مشاهده نمود. مقدار  x  ، اندازه پشته مورد نظر است . اندازه منطقی پشته  که توسط  x  ، مشخص شده است ، حداکثر  آيتم هائی را که می توان در پشته ، مستقر ( Push ) نمود ، مشخص می نمايد. اندازه فيزيکی آيتم ها و پشته  به CLR  واگذار تا در زمان اجراء آن را مشخص نمايد (زمانيکه  متد JITd است ) .

  • تشريح بردارهای محلی . هر متد نيازمند تعريف و  ذخيره سازی محلی آيتم های مورد نياز است.  evaluation stack ،(  برداری منطقی از آيتم ها  بهمراه  نوع هر آيتم)  و استفاده از يک flag در متاديتا بمنظور  مشخص نمودن ضرورت  مقداردهی اوليه ( مقدارصفر )  متغيرهای محلی در ابتدای فراخوانی يک متد ، نمونه هائی در اين زمينه می باشند.

با استفاده از اطلاعات فوق ، CLR ، قادر به ايجاد يک abstraction از چيزی خواهد بود که native stack frame است. عموما" هر پردازنده و يا ماشين يک stack frame را شکل که شامل آرگومانها ( پارامترها ) و يا مرجع به آرگومانها ی مربوط به متد است . در وضعيتی مشابه ، متغيرهای برگردانده شده در stack frame بر اساس  فراخوانی که وابسته به يک پردازنده و يا ماشين خاص است ، ذخيره می گردند. اولويت پارامترهای ورودی و خروجی در رابطه با  يک ماشين خاص ، مشخص می گردد . با توجه به اينکه تمام اطلاعات مورد نياز برای هر متد در دسترس است ، CLR  ، قادر به تشخيص وضعيت مورد نظر  stack frame ، در زمان اجراء است .
فراخوانی يک متد بگونه ای انجام خواهد شد که CLR دارای حداقل کنترل در رابطه با اجراء متد و حالت آن باشد .زمانيکه CLR ، يک متد را فرامی خواند ، متد  و حالت آن تحت کنترل CLR  خواهد بود ( Thread of control ) .

منبع: http://www.srco.ir/Articles/DocView.asp?ID=132

 

 
 
   |    نوشته شده توسط جمشید