تبلیغات
مقالات آموزشی برنامه نویسی و شبکه

وقتی می‌گوییم توسعه دهنده نرم‌افزار، از چه کسی صحبت می‌کنیم؟


برای اینکه یک توسعه‌دهنده نرم‌افزار باشید و مسائل نرم‌افزاری را حل کنید مثل شرلوک هولمز به یک ذهن منضبط نیاز دارید،
البته استفاده از دخانیات توصیه نمی‌شود!

به طور کلی از یک توسعه‌دهنده نرم‌افزار انتظار می‌رود که:

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

نوشته شده در تاریخ دوشنبه 1 دی 1393    | توسط: ح.م    | طبقه بندی: اطلاعیه های مدیریت سایت،     | نظرات()


اصول اولیه برنامه نویسی تمیز!

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

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

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

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

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

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

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

اصول نامگذاری متغیرها شامل:
  • استفاده از نام های واضح و آشکار
  • اجتناب از نام های گمراه کننده
  • متمایز کردن معانی از یکدیگر
  • استفاده از نام های قابل تلفظ
  • استفاده از نام های قابل جستجو
  • اجتناب از رمزکردن نام ها
  • نشانه گذاری های مجارستانی
  • پیشوندهای اعضا

متن کامل مقاله رو از ایـــنـــجــــــا می تونید مطالعه کنید. (بهتره از منبع اصلی مقاله رو بخونین تا اینکه کپی شدشو از سایت من بخونین...)

نوشته شده در تاریخ جمعه 16 آبان 1393    | توسط: ح.م    | طبقه بندی: آموزش سی شارپ،     | نظرات()


آموزش تغییر اندازه (ریسایز) تصاویر در asp.net _ بخش دوم

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

در روش قبلی حجم تصاویر بند انگشتی (حدودا سایز 150 در 150) نزدیک به 30 کیلوبایت میشد ، حال می خواهیم این حجم را بدون افت کیفیت به حدود 5 الی 8 کیلوبایت برسانیم !

برای این کار می بایست تابعی بنویسیم که کار زیر را انجام دهد:

  1. ریسایز تصویر
  2. تغییر فرمت تصاویر به jpeg
  3. تغییر فرمت رنگ تصاویر به RGB
  4. تغییر رزولیشن تصویر
مقالات آموزشی دانشجویی برنامه نویسی و الکترونیک و شبکه

برای این کار کافی است به کمک امکانات GDI+ سی شارپ بصورت زیر عمل نماییم:

1- ابتدا می بایست طول و عرض جدید تصویرمان را محاسبه نماییم ، طوری که Scale تصویر (نسبت طول به عرضش) به هم نریزد.

2- سپس یک instance از کلاس Bitmap در اندازه های محاسبه شده در مرحله اول و با فرمت رنگی RGB می سازیم و به کمک کلاس Graphics تصویرمان را با کیفیت بالا روی آن ترسیم می نماییم (Draw)

(تصاویر CMYK به درد چاپ می خورند و دارای حجم رنگی بالایی نسبت به تصاویر RGB هستند.)

3- تصویر ساخته شده در مرحله 2 را با فرمت JPEG و با کیفیت مورد نظرمان در مسیر دلخواهمان (روی هارد) ذخیره می نماییم.

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

کد پایانی بصورت زیر می باشد:


ابتدا باید کتابخانه های زیر را درون فایل کلاس داشته باشیم (همه کتابخونه ها رو حذف و فقط همینا رو اضافه کنین)

سپس باید بصورت زیر عمل نماییم:


بعنوان مثال برای استفاده از کتابخانه دست سازمون می بایست بصورت زیر عمل نماییم:

ابتدا کتابخانه رو به صفحمون اضافه می کنیم :

سپس داریم :


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

خوب مسلما در پایان اگر مقدار متغیر flag1 برابر با مقدار true باشه یعنی تصویر با موفقیت ذخیره شده و د ر غیر اینصورت یعنی مشکلی در عملیات ذخیره سازی تصویر رخ داده که در اغلب موارد خروجی false به این دلیله که مسیری که دارین تصویر رو توش ذخیره میکنین دسترسی write نداره.

مقالات آموزشی دانشجویی برنامه نویسی و الکترونیک و شبکه


امیدوارم که از این کد و آموزش استفاده کنین و حالشو ببرین و سایت نت نیک یا آموزش رو هم از یاد نبرین
در روزهای آتی چند تا آموزش بهتر تر و خفن تر تر روی سایت قرار خواهم داد.
پس اگر برنامه نویس هستین و دنبال یاد گرفتن کد ها و تکنیک های جدید برنامه نویسی بخصصوی asp.net هستین
بهتره مرتب به ما سر بزنین :)
یا توی RSS سایت مشترک بشین ، اینطوری بدون نیاز به وارد شدن به سایت ، خیلی راحت می تونین برین توی منوی Bookmark مرورگرتون و خیلی راحت لیست آخرین مطالب سایت بنده رو ببینین و روی هر کدوم که خواستین کلیک کنین و مستقیم برین و مطلب مورد نظرتونو بخونین

سوالات خودتونو می تونین توی بخش نظرات بپرسین و جوابشو هم 5 تا 24 ساعت بعد همونجا بخونین.

یا حق

موفق باشید


نوشته شده در تاریخ چهارشنبه 22 مرداد 1393    | توسط: ح.م    | طبقه بندی: آموزش ASP.NET، آموزش سی شارپ،     | نظرات()


چطوری یک برنامه نویس وب می تونه پولدار بشه ؟

خیلی وقته که دارم به این موضوع فکر می کنم که چطوری یک برنامه نویس وب می تونه پولدار بشه ؟

چرا یکی با ساندویچ فروشیش باید مازراتی زیر پاش باشه ولی ما برنامه نویسان بیچاره که این همه زحمت می کشیم باید بوق هم نداشته باشیم ؟

مسلما با کار کارمندی و حقوقای خنده داری که دور و ور 1 تومنه هیچ برنامه نویسی نمی تونه پولدار بشه...

در ادامه مقاله نتیجه کلی فکرمو بیان کرده ام ، نمی دونم شاید شما بتونین راهکار بهتری ارائه بدین

چندین راه هست که یک برنامه نویس وب خوب بتونه درآمد مناسبی داشته باشه (بالای 5 تومن منظورمه)

مقالات آموزشی دانشجویی برنامه نویسی و الکترونیک و شبکه

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

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


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


3- تشکیل یک تیم خوب و کار پروژه ای
یکی دیگر از راه حل های پولدار شدن (کسب درآمد بالا) اینه که یک تیم خوب تشکیل بدین و بصورت پروژه ای با شرکت های بزرگ کار کنین.
تیم شما می تونه شامل یک تحلیلگر، چند برنامه نویس و یک مدیر پروژه بشه.
تحلیلگر روی جمع آوری داده ها ، آماده سازی UML ها ؛ نوشتن Task ها (اسکرام) و کلیه وظایف اسکرام مستر می تونه کار کنه.
برنامه نویسان هم که کارشون مشخصه (تحقیق و توسعه)
مدیر پروژه روی مسائل مالی و زمان بندی پروژه و کیفیت کدها می تونه کار کنه
البته در ابنجا شما باید ارتباطات قوی و افراد نفوذی مناسبی در ادارات ، سازمان ها و شرکت های بزرگ داشته باشید (دلال) تا بتونین پروژه های خوب و بزرگ بگیرید و انجام بدید.

من خودم مورد الف و ب رو بیشتر می پسندم ، چون دردسر و مسئولیت و فشار روانی کمتر و بعضا پول بیشتری دارن

شما اگر راه بهتری بلدی ، کامنت بذار :)

نوشته شده در تاریخ سه شنبه 7 مرداد 1393    | توسط: ح.م    | طبقه بندی: یادداشت های یک برنامه نویس خوش ذوق،     | نظرات()


چگونه یک سایت جذاب طراحی کنیم ؟

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

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

امروزه خلاقیت در طراحی قالب و ایجاد سایت های تک (سایتی که نیست در جهان باشد و نمونه ایرانی و خارجی نداشته باشه ) به یک آرزو برای مشتریان تبدیل شده ...

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

* امروزه استفاده از فضاسازی سه بعدی در وب سایت ها نیز بسیار کمرنگ شده است که این مورد در وب سایت های ایرانی تقریبا دیده نمی شود!
بعنوان نمونه ، وب سایت AhanAra.Com یک نمونه خوب از بکارگیری فضا سازی در طراحی وب سایت می باشد که توسط یکی از دوستان بنده طراحی شده است.

مقالات آموزشی دانشجویی برنامه نویسی و الکترونیک و شبکه

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

* امروزه طراحی دیزاین مترو (metro design) نیز بسیار باب شده است که نمونه ای از آن سایت  WmFa.ir می باشد که خودم طراحیش کرده ام :)
البته طراحی مترو انواع و اقسام دارد که مثال بالا نوع ساده آن می باشد که با توجه به سادگی استفاده از آن ، این طراح در ایران بیشتر مورد توجه قرار گرفته است. (سایر مدل های آن تقریبا همانند منوی ویندوز ، ویندوز 8 می باشند که یکم از نظر بنده گیج کننده و غیر کاربردی هستند بطوری که برای اولین بار که وارد سایت می شوید باید دقایقی را صرف کشف نحوه کار با سایت و حرکت بین منوهای سایت نمایید که یکم روح آدم رو آزرده می کنه و بجورایی کارکردن با سایت برای یک کاربر تازه کار سخته که این امر می تونه باعث فرار کاربران از سایت بشه )

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

* استفاده از تکنیک ajax نیز در جذب کاربران بسیار تاثیر گذار است که از جمله سایت های ایرانی موفق در این زمینه می توان به سایت های معروف دیجی کالا (DigiKala.com) و جی اس ام (gsm.ir) اشاره نمود. توضیح اینکه ajax تکنولوژی ای است که در آن با کلیک روی دکمه های مختلف درون سایت شاهد رفرش شدن صفحه نیستیم و اطلاعات مورد نظر بدون رفرش شدن صفحه در صفحه نمایان می گردد که اصطلاحا شاهد رفرش جزئی (بخشی از صفحه) صفحه خواهیم بود. البته استفاده از گرید رنگی خاکستری و سفید نیز بسیار به زیبایی سایت ها کمک می کند که این مورد در سایت دیجی کالا کاملا مشهود است.

موفق باشید.

نوشته شده در تاریخ یکشنبه 5 مرداد 1393    | توسط: ح.م    | طبقه بندی: یادداشت های یک برنامه نویس خوش ذوق،     | نظرات()


آموزش دست یابی به اطلاعات فایل dll در پروژه سی شارپ

در آموزش قبلی آموزش نحوه ساخت کتابخانه (فایل dll) در پروژه سی شارپ را آموزش دادم.
حال فرض کنید یک فایل dll از اینترنت دانلود کرده اید و هیچ اطلاعاتی از اشیاء و متدهای آن ندارید!
برای دست یابی به اطلاعات فایل dll در سی شارپ کافی است بصورت زیر عمل نمایید:

  1. وارد منوی ویندوز شده ، سپس وارد All Programs شوید.
  2. وارد بخش Visual Studio 2010 شوید.
  3. وارد بخش Visual Studio 2010 Tools شوید
  4. روی گزینه Visual Studio Command Prompt (2010) کلیک نمایید
  5. در محیط کنسول ویژوال استودیو عبارت ILDASM را تایپ نمایید.
  6. در نرم افزاری که برایتان باز می شود از طریق منوی file فایل dll مورد نظر خود را باز نموده و اطلاعات آن را مشاهده نمایید.
مقالات آموزشی دانشجویی برنامه نویسی و الکترونیک و شبکه

به همین سادگی.

سایت آموزشی دانشجویی نت نیک

موفق باشید


نوشته شده در تاریخ شنبه 4 مرداد 1393    | توسط: ح.م    | طبقه بندی: آموزش سی شارپ،     | نظرات()


آموزش رفع مشکل ابجاد اعداد تصادفی یکسان کلاس Random سی شارپ

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

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

برای رفع مشکل ابجاد اعداد تصادفی یکسان کلاس Random  بهتر است (توجه کنید که از کلمه بهتر است استفاده نموده ام ، بدین معنی که ممکن است راه حل های دیگری هم باشد ولی بنده این روش رو تست و جواب گرفته ام) از ورودی کانستراکتور کلاس استفاده نماییم.

کلاس رندوم (Random) سی شارپ یک ورودی در کانستراکتور (سازنده کلاس) می گیرد که از طریق آن می توان تولید عدد تصادفی را کنترل نمود.

این ورودی seed یا بذر نام دارد که در صورتی که در هر بار استفاده از این کلاس یک مقدار منحصر به فرد از نوع int بدهیم ، خیالمان راحت است که خروجی های یکسان برایمان تولید نخواهد نمود.

مقالات آموزشی دانشجویی برنامه نویسی و الکترونیک و شبکه

به نظر می رسد که این بار مشکلمان 2 تا شده است ،  سوال اینجاست که عدد منحصر به فرد از نوع int از کجا بیاریم ؟
پاسخ ساده است ، کلاس GUID سی شارپ برای همین مواقع است

کلاس GUID در پروژه های asp.net بسیار کاربرد دارد، این کلاس برای ایجاد یک عبارت منحصر به فرد می باشد که نمونه خروجی آن بصورت F41FA048-9B13-4421-99BF-6EF725B358D8 می باشد

حال سوالی که پیش می آید این است که چگونه از این عبارت عجیب غریب یک عدد int بدست آوریم ؟
نگران نباشید در کد زیر مثال کامل را می توانید ببینید و در پروژه asp.net خود استفاده نمایید.

نوشته شده در تاریخ جمعه 3 مرداد 1393    | توسط: ح.م    | طبقه بندی: آموزش ASP.NET، آموزش سی شارپ،     | نظرات()


ساخت عدد منحصر به فرد در سی شارپ

تولید عدد منحصر به فرد در پروژه های asp.net یکی از چالش های بزرگ برنامه نویسان وب است.
در سی شارپ کلاس GUID وظیفه تولید یک رشته منحصر به فرد را دارد که خروجی آن شبیه عبارت زیر می باشد.

F41FA048-9B13-4421-99BF-6EF725B358D8

عبارت بالا یک رشته تصادفی منحصر به فرد است که جهت تولید این عبارت منحصر به فرد در سی شارپ داریم:


و در SQL نیز داریم:


جهت نگهداری این داده در دیتابیس به فیلدی از نوع UniqueIdentifire نیاز داریم.

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


بعنوان مثال تولید کد سفارش برای درگاه بانک تنها بخشی از پروژه های asp.net است که در آن برنامه نویسان نیاز به یک عدد منحصر به فرد برای هر سفارش دارند.

مقالات آموزشی دانشجویی برنامه نویسی و الکترونیک و شبکه

برای این کار 2 روش وجود دارد: (البته روش های ابتکاری زیادی ممکن است وجود داشته باشد که بنده 2 مورد اصلی را بیان می نمایم)

در روش اول درون Application یک مقدار عددی می ریزیم و برای هر سفارش یک مقدار به آن اضافه می نماییم. (حتما باید از Application.Lock() و Application.Unlock() جهت جلوگیری از پردازش موازی استفاده نماییم تا بصورت همزمان یک عدد برای دو سفارش استفاده نشود)

این روش دردسرهای زیادی دارد که از جمله آن می توان به ریست شدن وب سرور (Down شدن لحظه ای سرور)   و ریست شدن مقدار عددی موجود در Application نام برد.


در روش دوم بصورت زیر عمل می کنیم و یک عدد منحصر به فرد خیلی کاربردی بدست می آوریم که خیلی ساده و بدون دردسر هم هست:




نوشته شده در تاریخ جمعه 27 تیر 1393    | توسط: ح.م    | طبقه بندی: آموزش سی شارپ،     | نظرات()