دریافت پوستر SQL Server 2008 System Views

اگر شما برنامه نویس یا مدیر SQL Server 2008 هستید، حتماً باید این پوستر را داشته باشید.

ms-sql-server-2008-system-views

منبع

شاید این مطالب هم برای شما خواندنی باشند :

اگر تمایل به دنبال کردن مطالب این وبلاگ دارید، می توانید مشترک فید فراسان شوید.

چطور مشترک شویم؟

ابتدا رابط کاربری را بسازید!

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

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

users

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

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

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

بیشتر بدانید :

شاید این مطالب هم برای شما خواندنی باشند :

اگر تمایل به دنبال کردن مطالب این وبلاگ دارید، می توانید مشترک فید فراسان شوید.

چطور مشترک شویم؟

آشنایی با وب فرم ها در ASP.NET

ASP.NET فریم ورک قدرتمند مایکروسافت برای ایجاد وب اپلیکیشن های تجاری و بزرگ است. این فریم ورک با پشتیبانی مایکروسافت و داشتن یک محیط قدرتمند و سریع توسعه به نام Visual Studio به یکی از محبوب ترین و قدرتمند ترین ابزارهای توسعه وب تبدیل شده است. در این نوشته قصد داریم مروری بر یکی از ویژگی های اساسی ASP.NET به نام Web Forms بپردازیم.

Web Forms پایه و اساس ASP.NET است. وب فرم ها قلب و روح ASP.NET هستند. وب فرم ها رابط کاربری وب اپلیکیشن شما را شکل می دهند و راه حلی مناسب برای توسعه ی آن به شما ارائه می کنند. وب فرم ها شبیه به ویندوز فرم ها دارای مشخصات، متدها و رویدادهای کنترل های داخلشان هستند. اجزای رابط کاربری داخل وب فرم ها بر اساس درخواستی که به آن ها فرستاده می شود، به زبان نشانه گذاری مناسب (مثل HTML) رندر می شوند.

وب فرم ها شامل دو قسمت هستند : قسمت بصری (فایل aspx)، و Code Behind که هر کدام در کلاس های جداگانه ای قرار می گیرند. فایل aspx کدهای مربوط به طراحی وب فرم ها را شامل می شود و Code Behind شامل کدهای منطق برنامه و رویدادهای مروبط به کنترل های سمت سرور است. Code Behind می تواند به زبان ویژوال بیسیک یا سی شارپ نوشته شود.

asp-dot-net-web-forms

از مزایای استفاده از وب فرم ها می توان به نکات زیر اشاره نمود :

  • جداسازی منطق برنامه از کدهای HTML
  • استفاده از مدل برنامه نویسی مبتنی بر رویدادها
  • کد کامپایل شده و پشتیبانی از چند زبان برنامه نویسی
  • مجموعه ای از کنترل های سمت سرور که قادر به شناسایی مرورگر کاربر هستند و بر اساس آن کد زبان نشانه گذاری (مثل HTML یا WML) را تولید می کنند
  • به شما اجازه می دهند تا کنترل های جدید با قابلیت های جدید به آن اضافه کنید
  • کد کمتری برای کارهای مختلف همچون بایند کردن داده های بانک اطلاعاتی به کنترل ها خواهید نوشت
  • زمان توسعه را به حداقل می رساند و بهره وری را افزایش می دهد

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

کنترل های HTML همانطور که از نامشان پیداست شامل همین کنترل های معمول HTML مانند Button, Text Field, Text Area, Dropdown هستند. اگر تا به حال از نرم افزارهای ویرایشگر HTML برای طراحی رابط کاربری وب استفاده کرده باشید، کاملاً با این کنترل ها آشنایی دارید. شما می توانید از کنترل های استاندارد HTML در وب فرم ها استفاده کنید. کنترل های HTML که در ویژوال استادیو یافت می شوند همان هایی هستند که در Front Page هم پیدا می شدند. این کنترل ها نیازی به پردازش تحت سرور ندارند و به سادگی توسط مرورگر رندر می شوند. هر چند شما می توانید با اضافه کردن runat=»server» به مشخصات هر یک از کنترل های HTML کاری کنید تا به رویدادهای تحت سرور هم پاسخ گوید.
کنترل های وب فرم روی سرور ساخته می شوند و پس از اینکه وظیفه ای که برایشان مشخص شده را به انجام رساندند، کد HTML متناظر را تولید کرده و به خروجی می فرستند. این کنترل ها برخلاف کنترل های استاندارد HTML، هوشمند هستند؛ یعنی قادر به تشخیص مرورگر کاربر و فرستادن کد زبان نشانه گذاری مناسب هستند. به طور مثال اگر مروگر کاربر فایرفاکس باشد، کد HTML مناسب با آن را تولید می کنند و اگر کاربر بوسیله یک گوشی هوشمند درخواستی فرستاده باشد، کد WML را به خروجی می فرستند. تمام کنترل های وب فرم از یک کلاس عمومی با نام System.Web.UI.WebControls مشتق می شوند. این کلاس پایه مجموعه ای از مشخصات عمومی را برای کنترل های وب فرم پیاده سازی می کند.

وب فرم ها چگونه کار می کنند؟

مانند ویندوز فرم ها، رویدادهایی به صورت پشت سر هم و یا بر اساس درخواست کاربر در وب فرم ها اتفاق می افتند. رویدادهایی مانند Load, Draw (Render) و Unload برای وب فرم ها اتفاق می افتد. در زمان این اتفاقات ممکن است روال های مختلفی صدا زده شوند یا اشیای مختلفی ایجاد شوند. در ابتدا رویداد Init مقداردهی های اولیه صفحه وب را بر اساس تگ های به کار رفته در فایل aspx انجام می دهد. بعد از این، رویداد Load برای صفحه اتفاق می افتد. رویداد Load جایی است که شما می توانید چک کنید که آیا صفحه برای اولین بار توسط کاربر بارگذاری شده یا توسط کلیک روی یک دکمه، صفحه وب به سرور وصل شده و به اصطلاح به خودش Post Back کرده است. در رویداد Load می توانید کاری کنید که برخی اعمال فقط برای اولین بارگزاری صفحه وب انجام شوند؛ مثل بایند کردن داده های دیتابیس به کنترل ها. سپس اگر صفحه Post Back شود، رویدادهای کنترل های روی وب فرم ها اتفاق می افتند. مثلاً هنگامی که روی یک دکمه کلیک می شود، صفحه وب اطلاعاتی را به سرور می فرستد و دوباره به صفحه بر می گردد. در این صورت رویداد کلیک برای دکمه فوق اتفاق افتاده و کدی که شما برای آن نوشته اید اجرا شده است.

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

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :

پ.ن : این مطلب در جهت معرفی ASP.NET نوشته شده و مقدمه ای بود در مورد ویژگی های آن. از این پس بیشتر در مورد ASP.NET مطلب خواهم نوشت. دوستان ایراد میگرفتن که چرا در این مطلب از PHP طرفداری کردم و از ASP.NET مطلبی نمی نویسم. از این به بعد از هر دو مطلب خواهم نوشت!

برنامه نویس; مرد یا زن!؟

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

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

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

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

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

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

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

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

کدامیک را استخدام کنیم!؟

businesswelcome_4_3

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

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

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

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

با فریم ورک های PHP هرچه سریعتر وب سایت بسازید!

برای برنامه نویسان PHP

php-logoبا فراگیر شدن وب و وب سایت های اینترنتی، ابزارهای گوناگونی برای تولید برنامه هایی مبتنی بر وب عرضه شد. یکی از ابزارهایی که در این چند سال اخیر توانست قسمت اعظمی از بازار تولید نرم افزارهای تحت وب را تسخیر کند بی شک PHP بوده است. PHP زبان اسکریپت نویسی ساده ای است که شامل کتابخانه ها و توابع نقریباً کاملی برای استفاده در برنامه های تحت وب است و کمتر نیازی در وب یافت می شود که با PHP نتوان آن را رفع نمود. PHP توانست در این چند سال علاقه مندان فراوانی را جذب خود کند و پروژه های بسیار قدرمتند و معروفی همچون وردپرس به این زبان نوشته شده اند.

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

Zend Framework : این فریم ورک که از طرف سازندگان PHP عرضه شده است، یکی از کاملترین فریم ورک های PHP است. دارای توابعی برای تامین امنیت وب سایت های شما و همچنین توابعی برای استفاده از سرویس های وب 2.0 مثل سرویس های گوگل، یاهو، آمازون و فلیکر است. این فریم ورک بر روی ساخت وب سایت های کاربردی و وب سرویس ها با رویکرد وب 2.0 تمرکز دارد.

zend-framework

CakePHP : یکی از قدرتمند ترین فریم ورک های PHP با روش استفاده آسان و پشتیبانی از مدل های طراحی MVC و ORM. این فریم ورک زمان توسعه و کدنویسی را به حداقل ممکن می رساند و کمک می کند تا برنامه های تحت وب قدرتمندتری بسازید.

Qcodo : فریم ورک اوپن سورس برای PHP 5 که به شما در ساخت وب سایت های کاربردی کمک بسیاری می کند. توسعه دهندگان به جای اینکه هفته ها وقت خود را صرف کارهای تکراری بکنند، می توانند به سادگی از توابع از پیش تعریف شده در این فریم ورک بهره ببرند. این فریم ورک کاملاً بر اساس برنامه نویسی شیء گرا پیاده سازی شده است و پلت فرمی برای ایجاد سریع برنامه های تحت وب فراهم می کند.

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

Seagull : فریم ورک اوپن سورس که با مجوز BSD توزیع شده است. به توسعه دهندگان PHP امکانات و ابزارهای مختلفی ارائه می کند تا برنامه های خود را هر چه سریع تر و کاراتر تولید کنند. همچنین این فریم ورک قابلیت های خوبی برای توزیع برنامه های PHP روی وب یا به صورت محلی (Local host) در اختیار برنامه نویسان قرار می دهد و دارای اجتماع کاربری مناسبی است.

Solar : فریم ورکی برای نوشتن سریع وب سایت هایی است که با PHP 5 ساخته می شوند. این فریم ورک از مدل های طراحی تجاری پشتیبانی می کند و به صورت توکار از بومی سازی (Localization) پشتیبانی می کند.

Prado : فریم ورکی است بر اساس کامپوننت که شما را قادر به ساختن برنامه های تحت وب به زبان PHP با قابلیت های برنامه نویسی شیء گرا می کند.

Codeigniter : یکی از قدرتمند ترین فریم ورک های PHP است که به توسعه دهندگان امکان ساخت وب سایت هایی با کارایی بالا را می دهد. این فریم ورک دارای آموزش های مناسب و مستندات بسیار است تا شما هر چه آسان تر نحوه ی کار با آن را یاد بگیرید.

AjaxAC : فریم ورک اوپن سورس برای استفاده از تکنولوژی Ajax در برنامه های مبتنی بر PHP است.

xAjax : کتابخانه ای از کلاس ها برای استفاده از تکنولوژی Ajax در زبان PHP است. با این کتابخانه کلاس می توانید با استفاده از جاوا اسکریپت، CSS، HTML و PHP برنامه های تحت وب  قدرتمند و با بازدهی بالا بنویسید.

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

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :

عملگر ؟؟ در سی شارپ

یکی از عملگر(=Operator)های جالب سی شارپ که شاید خیلی ها با آن آشنایی ندارند، عملگری است به نام «??» که جهت مشخص کردن یک مقدار پیش فرض برای انواع های داده ای nullable به کار می رود. این عملگر شبیه به دستوارت شرطی عمل می کند، بدین صورت که اگر مقدار سمت چپ آن null باشد، مقدار سمت راست را برمی گراند و در غیر این صورت مقدار سمت چپ را برمی گرداند. فکر می کنم با یک مثال کاملاً متوجه منظورم خواهید شد :

string A = null;
string B = A ?? "DefaultValue";

در مثال بالا متغیری به نام A از نوع string تعریف کردیم و مقدار پیش فرض آن را برابر null قرار دادیم. سپس در خط دوم متغیر دیگری به نام B تعریف کردیم تا کاربرد عملگر ?? را درک کنید. در این خط، متغیر B مقدار رشته ای Default Value را در خود ذخیره خواهد کرد، زیرا سمت چپ آن (که متغیر A است) مقدار null دارد.

البته متغیرهای string قابلیت پذیرش null را دارند و به اصطلاح به آن nullable type می گویند. سودمندی عملگر ?? وقتی معلوم می شود که شما می خواهید مقدار پیش فرض برای انواع non-nullable type مانند int تعریف کنید; وقتی احتمال می دهید که امکان دارد در این گونه متغیرها مقدار null ذخیره شود. شاید شما هم با این مشکل برخورد کرده باشید که برخی مواقع به طور ناخواسته مقدار null به یک متغیر non-nullable مانند int نسبت داده می شود که در این موقعیت یک خطای کامپایلری دریافت خواهید کرد. اگر در این موارد از توابع تبدیل (cast) استفاده کنید یک InvalidOperationException دریافت خواهید نمود که باید آن را handle کنید. البته به راحتی می توانید با یک if ساده این مشکل را حل کنید اما در اینگونه موارد بهترین راه حل استفاده از عملگر ?? خواهد بود. برای در این موضوع به مثال زیر توجه کنید :

int? A = null;
int B = A ?? 0;

توجه داشته باشید، شما به صورت صریح نمی توانید مقدار null به انواع داده ای non-nullable نسبت بدهید، بلکه بایستی مانند مثال بالا، پس از نوشتن data type مورد نظر خود کاراکتر ? را قرار دهید. در خط دوم، ابتدا مقدار A بررسی می شود، اگر برار null بود (در اینجا) مقدار پیش فرض صفر را بر می گرداند، در غیر این صورت مقدار A را بر خواهد گرداند.

عملگر ؟؟ راه بسیار خوبی برای نسبت دادن متغیرهای nullable به متغیرهای non-nullable است.

عملگر ؟؟ در MSDN

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :

Farsi.NET اولین زبان برنامه نویسی کاملاً فارسی برای دات نت

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

هر چند تا به حال زبان های غیر مایکروسافتی آنچنان که C#, C++ , Visual Basic در پلت فرم دات نت کاربرد دارند، مورد استفاده قرار نمی گیرند اما تقریباً برای بسیاری از زبان های معروف یک نسخه برای دات نت وجود دارد. لیستی کامل از زبان های موجود برای پلت فرم دات نت را می توانید در این صفحه ببینید.

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

برنامه ای ساده ببه زبان Farsi.NET

برنامه ای ساده به زبان Farsi.NET

عیبی ندارد اگر منظور برنامه ی بالا را متوجه نشدید، حتی یک برنامه نویس دات نت نیز نمی تواند با اولین نگاه از این برنامه سر در بیارد! در واقع اولین کاری که شما باید برای برنامه نویسی به زبان Farsi.NET انجام دهید یادگیری قواعد نحوی (Syntax) آن است، که این مشکل با خواندن راهنمای قواعد برنامه نوبسی Farsi.NET حل می شود. شاید با خودتان بگوئید «با وجود زبان های قدرتمندی مثل سی شارپ، دیگر چه احتیاجی به این زبان است!»، خب، برای جواب به این سئوال ابتدا تعریف طراح این زبان را خواهیم خواند :

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

قبل از هر پیش داوری در مورد این پروژه باید بدانید که Farsi.NET را یک دانشجوی جوان رشته نرم افزار به تنهایی طراحی و پیاده سازی کرده است. هدف سازنده هر چه بوده و هست، برای خودش با ارزش است و این حرکت او کاملاً جای تقدیر دارد. همان طور که انتظار می رفت خیلی ها این پروژه را بی فایده و بدون کاربرد دانسته اند (نمونه ای از این بحث را در سایت برنامه نویس ببینید). اما به نظر من و برخی دیگر، حداقل این پروژه می تواند به عنوان یک زبان آموزشی در محیط دات نت و در جهت آموزش مفاهیم شیء گرایی و مفاهیم دیگر برنامه نویسی مورد استفاده قرار گیرد.

نسبت به پروژه های دیگری که در فضای آکادمیک ما ارائه می شوند، Farsi.NET واقعاً جای تقدیر دارد. اگر به عنوان پروژه هایی که در دانشگاه های مختلف ما ارائه می شوند نگاهی بیندازید متوجه منظور من خواهید شد. جدا از فضای آکادمیک کشور، در بعضی موارد شرکت های مختلف نیز به بهانه ی پروژه های بومی (مثل این و این) از دولت پول های کلانی برای ادامه ی پروژه های ناقص شان می گیرند که هیچ وفت به ثمر نمی رسند. پس زود نتیجه گیری نکنید و منتظر خبرهای خوشایندی از پروژه Farsi.NET در آینده باشید.

برای آشنایی بیشتر با این پروژه و استفاده از آن :

همچنین قرار است کنفرانسی توسط سازنده ی Farsi.NET برای آشنایی بیشتر با این پروژه برگزار شود، که می توانید اسلایدهای آن را از اینجا دریافت کنید. البته می توانید در این کنفرانس هم شرکت کنید. زمان : سه شنبه چهاردهم آبان ماه، مکان : موسسه شهاب دانش قم، کلاس شماره 11. البته اگر قصد شرکت در این کنفرانس را دارید، به علت محدود بودن مکان ابتدا با من (توسط ایمیل) تماس بگیرید تا هماهنگی های لازم را انجام بدهم.

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :