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

دستور جادویی virtual در سی شارپ

اگر تا به حال برنامه نویسی سی شارپ انجام داده باشید و در حوزه برنامه نویسی فعال بوده باشید ، با احتمال زیاد نام دستور virtual را به کررات شنیده اید و حتی شاید از آن در برنامه های خود استفاده نیز کرده باشید ، ولی آیا به واقع می دانید که کاربرد اصلی آن چیست ؟
شاید دوستانی که MVC کار کرده باشند بیشتر با این دستور دست و پنجه نرم کرده باشند تا دوستانی که به شکل سنتی با ASP.Net WebFrom کار می نمایند ، البته شاید دوستان ناراحت بشن که من وب فرم را با عنوان روش سنتی یاد می کنم ، ولی خوب این دوستان اگر به ام وی سی مراجعه نمایند ، شوکه میشن که چقدر دستشون توی ام وی سی بازه و اینکه چقدر معماری قشنگی داره ...
در توضیح این مطلب باشد عرض کنم که مدت ها بود به این موضوع فکر می کردم که بخشی از کند بودن پروژه های وب فرم به دلیل رندر شدن کنترل های ASP.Net به تگ های HTML ای است که در ام وی سی تقریبا میشه گفت مهر تاییدی به فکر من زده شده و کلا دیگه خبری از کنترل های ASP.Net نیست

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

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

اینجاست که دستور Virtual به کمک شما می تونه بیاد.
کافی است شما تابع Event تون رو بصورت Virtual بنویسین:


در کد نمونه بالا مشاهده می نمایید که ما تابع Event مون رو بصورت Virtual ساخته ایم.

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


مشاهده می نمایید که بدین صورت همکار شما می تواند یک کلاس جدید بسازد ، سپس کلاس جدید را از کلاس شما ارث بدهد و سپس متد مورد نظر را Override نماید.
درون متد Override شده همکار شما می تواند به راحتی کدهای مورد نظر را قبل یا بعد از اجرا کد تابع اصلی (تابعی که Override شده است) اضافه نماید و در هر زمان که نیاز داشت به کمک دستور base می تواند تابع اصلی را اجرا نماید.
بدین صورت می توان نتیجه گرفت که دستور Virtual دو خاصیت جدید را به کلاس شما می دهد:
  1. امکان تغییر کامل رفتار تابع را به کلاس های فرزند می دهد. بدین صورت که در صورتی که در مثال بالا همکار شما درون تابع از دستور base استفاده ننماید ، در اصل همکار شما بصورت کامل رفتار تابع شما را تغییر داده است
  2. امکان تغییر جزئی رفتار تابع را به کلاس های فرزند می دهد. بدین صورت که به کلاس های فرزند این امکان را می دهد که یک سری کد در قبل یا بعد از اجرا تابع شما اجرا نمایند که در مثال بالا به عینه می توانید این موضوع را مشاهده نمایید که همکار شما بطور مثال کدهای ثبت لاگ را در قبل یا بعد از اجرای کدهای تابع شما (تابع کلاس پدر) اضافه نموده است.

دوستانی که MVC  یا Entity Framework Code First کار می کنن و بالاخص دوستانی که E.F Code First کار می کنن ، به کررات کلاس هایی مشابه کلاس زیر را ساخته اند و بیشتر موضوع این پست را لمس کرده اند.

در کد فوق مشاهده می نمایید که در کد نویسی Migration در E.F Code First نیز مایکروسافت بصورت Virtual تابع Seed را ساخته است که این امکان را به ما می دهد که بتوانیم کدهایی را درون این تابع اضافه نماییم.

(تابع Seed تابعی است که در زمان ساخت دیتابیس اجرا می شود که توضیح تفصیلی این تابع خارج از بحث پست ما می باشد)

امیدوارم از این آموزش لذت برده باشید

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


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

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

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

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

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

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

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

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

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

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

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


انواع سطوح دسترسی در سی شارپ

در سی شارپ دستوراتی داریم برای تنظیم نحوه دسترسی به توابع و متغیرهای برنامه مون.

در زیر این دستورات را مورد بررسی قرار می دهید.

 

- Public Access Modifier :

به این معنی كه هیچ گونه محدودیتی قائل نیستیم. وقتی من كلاس public تعریف می كنم به این معناست كه هر كسی چه داخل پروژه من و چه خارج از پروژه من امكان استفاده از كلاس من را دارد.

مثال : یک شخص که با بلند گو در یک مراسم صحبت میکند و همگان صدای او را میشنوند


-Protected Access Modifier :

وقتی درون یک کلاس مثل Person متغیر یا متدی را از نوع Protected تعریف کنیم فقط کلاس هایی که از person ارث بری دارن میتوانند از این متغیر ها یا متد ها استفاده کنند .

نکته : دقت داشته باشید كهProtected برای گروه آیتم های اول (كلاس ها و...) قابل استفاده نیست.

مثال : کلاس مهندسی نرم افزار را در نظر بگیرید ، اگر ثبت نام در این کلاس را به عنوان ارث بری فرض کنیم و ویدئو های ضبط شده در این کلاس را به عنوان متغیری از نوع protected در نظر بگیریم فقط افرادی که در کلاس مهندسی نرم افزار ثبت نام کرده اند قادر به استفاده و کپی از ویدئو ها میباشند


- Internal Access Modifier :

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

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


-Modifier Protected Internal Access :

تلفیقی از Protected و Internal است .یعنی اگر متغیری از این نوع تعریف شود فقط در پروژه جاری و فقط در کلاس جاری و گلاس های فرزند کلاس جاری قابل دسترسی است .


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

-: Private Access Modifier

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

نکته : دقت داشته باشید كهPrivate  برای گروه آیتم های اول (كلاس ها و...) قابل استفاده نیست.

مثال : اگر در کلاس Person یک متغیر از نوع Private تعریف کنیم فقط در کلاس Person قابل استفاده است

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


آموزش تغییر اندازه (ریسایز) تصاویر در 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، آموزش سی شارپ،     | نظرات()


آموزش دست یابی به اطلاعات فایل 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    | توسط: ح.م    | طبقه بندی: آموزش سی شارپ،     | نظرات()


آموزش ساخت کتابخانه (فایل dll) در سی شارپ

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

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

برای ساخت یک کتابخانه (فایل dll) کافی است درون ویژوال استودیو یک پروژه جدید از نوع Class Library بسازید و سپس همانند مثال زیر شیء مورد نظر خود را بسازید و در پایان پروژه خود را اجرا (run)  نمایید ...


پس از اجرای پروژه یک ارور مشاهده خواهید نمود که مهم نیست و بدین دلیل است که پروژه های از نوع Class Library امکان اجرا شدن را ندارند و با نمودن اجرای پروژه ، پروژه Build شده و فایل dll در مسیر پوشه debug ایجاد می شود که می توان فایل مورد نظر را از مسیر مذکور برداشت و به دوستان و همکاران تقدیم نمود

موفق باشید.
سایت آموزشی دانشجویی NetNic

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


آموزش رفع مشکل ابجاد اعداد تصادفی یکسان کلاس 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    | توسط: ح.م    | طبقه بندی: آموزش سی شارپ،     | نظرات()