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

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

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


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


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

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


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

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

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

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

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


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




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