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

طراحی متفاوت، رمز اصلی درخشیدن در میان رقباست


گروه نرم افزاری آرتاراکس

با ما متفاوت باشید

  • طراحی و ساخت انواع وب سایت با طراحی های متفاوت
  • طراحی و اجزای انواع نرم افزار
  • مشاوره، طراحی و ساخت انواع ایده های شما در حوزه نرم افزار
  • طراحی و ساخت انواع بازی (موبایل، کامپیوتر، PS4 و XBOX)

گزیده ای از نمونه کارهای ما:

نمونه کار طراحی شده توسط گروه نرم افزاری آرتاراکس




نوشته شده در تاریخ دوشنبه 3 آبان 1395    | توسط: ح.م    |    | نظرات()


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

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

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

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


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


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

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


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

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

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

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

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


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




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


نمایش تاریخ شمسی در asp.net به کمک Extension Method

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

Extension Method یا متد الحاقی چیست ؟

متدهای الحاقی توابعی هستند که ما می توانیم از بیرون به یک کلاس اضافه نماییم.

بعنوان مثال کلاس زیر را در نظر بگیرید:




فرض کنید به کدهای داخل کلاس دسترسی نداریم (مثلا یک فایل DLL داریم که کلاس فوق درون آن است و به داخل آن دسترسی نداریم و یا در گذشته یک پروژه نوشته ایم که کلاس فوق در آن استفاده شده است و با تغییر در ساختار کلاس ممکن است مشکلی در پروژه بوجود آید و ...)

برای اینکه بتوانیم یک تابع (متد) به کلاس بالا اضافه نماییم ، داریم :


نکات مهم در متد الحاقی بالا public بودن و استاتیک بودن تابع و کلمه کلیدی this در ورودی تابع می باشد.

دقت نمایید که نام کلاسی که در ادامه کلمه کلیدی this در ورودی تابع می آید ، نشان می دهد که تابع به کدام کلاس الحاق می شود.

دقت نمایید که متدهای الحاقی باید درون یک کلاس با دسترسی public و از نوع static  قرار بگیرد.

جالبی کار در اینجاست که اگر ما یک نمونه (instance) از کلاس Person بسازیم ،به راحتی به متد الحاقی GetFullName دسترسی داریم !




ملاحظه می نمایید که به روش فوق با راحتی توانستیم یک متد را به کلاس Person الحاق نماییم.


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

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

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

نمایش تاریخ شمسی در asp.net به کمک Extension Method

برای این کار فقط کافی است یک متد به کلاس DateTime دات نت اضافه  (الحاق) نماییم :


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

فقط کافیه که :


این مورد در زمان استفاده از  Entity Framework خیلی بکارتون میاد ، وقتی که می خوایم لیستی از اطلاعات رو به همراه تاریخ شمسی نمایش بدیم.

مثلا:


ملاحظه می کنید که با کمک Entity Framework  و  Extension Method به چه سادگی توانستیم اطلاعات اشخاص را به همراه تاریخ عضویت آنها (بصورت شمسی) توی پروژمون نمایش بدیم.

موفق باشید.

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


آموزش استفاده از ادیتور متن ckeditor در پروژه های asp.net

با سلام،

آقا مسعود درباره استفاده از ادیتور قدرتمند و محبوب ckeditor توی پروژه asp.net سوال پرسیده بودند که آموزشش رو اینجا قرار میدم که بقیه دوستان هم استفاده کنن.

برای افزودن ckeditor به پروژه asp.net ابتدا باید فایل های اونو از لینک زیر دانلود کنین.

دانلود فایل های ckeditor

رمز فایل: NetNic.ir

لینک بالا شامل سه تا فایل است که باید اونارو توی پوشه Bin پروژتون بریزین و یک پوشه با نام ckeditor هم داره که باید دقیقا خود پوشه رو با همون نام توی روت سایتتون (پروژه asp.net تون) بریزین.

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

در پایان توی صفحه ای که قراره ckeditor استفاده بشه ، ابتدا دایرکتیو زیر رو به بالای صفحتون (توی بخش design یا همون فایل aspx. ) اضافه می کنین.


سپس کد زیر رو در محل مورد نظر قرار بدین.


به همین سادگی !
موفق باشید.

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


دانلود نرم افزار Cisco Packet Tracer V6.0.1

امشب بعد از مدتی اومدم پروژه پکت تریسر برای مشتریم انجام بدم که دیدم توی صورت مسئله اش از روتر 2911 استفاده کرده !
توی نسخه پکت تریسر 5.3.3 من همچین چیزی نبود و کلی تعجب کردم و .... پروژه رو با 2811 بستم ولی مشغول سیم کشی پروژه که شدم دیدم روی روترهاش اینترفیس Gig گفته که می خواد ولی هرچی گشتم توی لیست اینترفیس های پکت تریسر من همچین چیزی نبود!

توی اینترنت که گشتم دیدم .... بــــــــــلــــه .... نسخه 6 پکت تریسر اومده و من بی خبرم


گویا توی نسخه جدید کلی چیزای خوب خوب از جمله روتر 2911 و پورت (اینترفیس) گیگابایت اضافه شده که خوب خیلی خوبه
امیدوارم که ساپورت دستورات هم خیلی بیشتر شده باشه و دستوراتی که توی نسخه های قدیمی (مخصوصا توی بحث کانفیگ روتر ها در بحث WAN) ساپورت نمیشد ، توی این نسخه ساپورت بشه

نرم افزار شبیه ساز شبکه پکت تریسر 6.0.1 رو می تونین از لینک زیر دانلود کنین.

دانلود نرم افزار Cisco Packet Tracer V 6.0.1

حجم: 53 مگ


منبع لینک دانلود : ccsp.ir
موفق باشید

نوشته شده در تاریخ پنجشنبه 26 تیر 1393    | توسط: ح.م    | طبقه بندی: دانلود نرم افزارهای تخصصی،     | نظرات()


آموزش استفاده از رپیرترهای تو در تو (رپیتر تو رپیتر) _ بخش دوم

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

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


سپس یک تابع می نویسیم که رپیتر Person رو پر کنه و اونو توی Page_load صفحه فراخونی می کنیم:


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


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

در پایان کافی است در رویداد ItemDataBound آی دی شخصی که داره دیتاش توی رپیتر لود میشه رو بدست بیاریم و سپس رپیتر داخلی (rptContact)  رو Find می کنیم و توسط تابغ دومی که در بالا نوشتیم اونو پر می کنیم.


توضیح اینکه رپیتر رویدادی با نام ItemDataBound دارد که قبل از بایند شدن اطلاعات هر سطر از رپیتر اجرا می شود که می توان بصورت بالا به اطلاعات بایند شده دسترسی داشت و رپیتر داخلی را پر نمود...

به همین راحتی

فایل پروژه asp.net رو می تونین از اینجا دانلود کنین

رمز فایل : netnic.ir


موفق باشید

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


ارث بری در سی شارپ

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

امروز می خوام در مورد ارث بری در کلاس ها و اشیاء با همدیگه صحبت کنیم.
هر شیء (کلاس) در سی شارپ می تواند خصوصیات یا رفتاری را از یک شیء (کلاس) دیگر ارث ببرد، به این عمل ارث بری پدر و فرزندی می گویند.
فرض کنید که ما یک کلاس با نام Person برای انسانها و اشخاص ایجاد کرده ایم که دارای خصوصیات زیر است:
نام - نام خانوادگی - تاریخ تولد - شماره شناسنامه - کد ملی - قد - وزن


حال آنکه برای ایجاد یک کلاس با نام Employee برای کارمندان شرکتمان چه باید بکنیم ؟
حال آنکه می دانیم همه کارمندان ما خصوصیاتی مانند نام و نام خانوادگی و ..... را دارا می باشند.

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


ملاحظه می نمایید که بنده در جلوی نام کلاس یک : گذاشته ام و سپس اسم کلاسی که می خواهم ارث بری نمایم را نوشته ام.

اگر به کانستراکتور کامل توجه نمایید ، متوجه می شوید که کلاس Employee من تمامی خصوصیات کلاس Person را داراست و بنابراین من در کانستراکتورم همه این خصوصیات را نیز در نظر گرفته ام.

حال آنکه در بخش کانستراکتور نیز از ارث بری کانستراکتور ها استفاده نموده ام و بوسیله دستور : base مشخص کرده ام که برای مقادیر مشخص شده می بایست طبق کانستراکتور کلاس پدر عمل شود و بدین ترتیب دیگر کدهای داخل کانستراکتور Person را در کانستراکتور Employee ننوشته ام.

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

بنابراین اگر من یک نمونه از کلاس Employee بسازم ، نمونه من دارای تمامی خصوصیات کلاس Person نیز می باشد:


ملاحظه می نمایید که نمونه ای که من ساخته ام خصوصیات Name و Family را از کلاس Person به ارث برده است.

نکته مهم دیگری که در ارث بری داریم ، این است که اگر کلاس C از کلاس B ارث ببرد (C:B) و کلاس B از کلاس A ارث ببرد (B:A) ، می توانیم بگوییم که کلاس C از A  نیز ارث برده است (C:A).

این مورد مثل ریاضیات است که می گفتیم: اگر A = B = C باشد ، درنتیجه A= C نیز هست.

در مقاله آموزشی بعدی ، کاربردهای عملی ارث بری در طراحی وب با ASP.Net را آموزش خواهم داد تا به زیبایی های شی گرایی و ارث بری بیشتر آشنا شوید و دنیای زیبای شی گرایی را بیشتر درک نمایید.

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


آموزش آپلود همزمان چند فایل در asp.net به روشی کاملا حرفه ای

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

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


می بینید که حجم کد چقدر زیاده و بیشتر کدها هم تکراری است!
تازه این فقط برای آپلود همزمان 5 تا فایله ، اگر توی یه پروژه مشتری خواست که همزمان بتونه 10 تا فایل رو آپلود کنه چی ؟
اون موقع اگر بخواین به این روش کد بزنین ، باید یه خروار کد تکراری بنویسین که این یعنی زیاد شدن حجم کدهای سایت و صرف شدن کلی زمان و انرژی برای یه کار کوچیک !

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


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


ملاحظه می نمایید که به همین راحتی ما بدون نیاز به آی دی کنترل های فایل آپلود و همچنین بدون نیاز به دانستن تعداد کنترل های فایل آپلودی که توی صفحه وجود داره ، و حتی بدون نیاز به چک کردن تک تک کنترل های فایل آپلود داخل صفحه که آیا فایلی بوسیله هر کدوم انتخاب شده یا نه ؛ بدون دردسر همه فایل های ارسال شده به سرور رو داخل یک متغیر (شیء) از نوع کلاس HttpFileCollection ریختیم و بعد با یک عدد حلقه for ساده ، تک تک فایل ها رو روی هاست آپلود کرده ایم.
به همین راحتی!
این کد چه برای آپلود یک فایل و چه برای اپلود همزمان 1000 تا فایل کاربرد داره و فقط کافیه که به تعداد نیازتون کنترل فایل آپلود داخل صفحتون قرار بدین و در رویداد کلیک دکمه فرمتون ، از کد بالا استفاده کنین.

فایل پروژه رو می تونین از اینجا دانلود کنین

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

این پست بروز شده است

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


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

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

1- استفاده از دو عدد foreach تو در تو
2- استفاده از رپیترهای تو در تو

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

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

نام
شماره تماس 
   حمید رضا مراداف09197081078
09123334455
02634445566
وحید جلالی
09123334555
09935444566


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

رپیتر ها یک رویداد با نام  ItemDataBound دارند که این رویداد حین ایجاد هر سطر از رپیتر اجرا می شود.

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

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

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

فعلا تا همین جا رو داشته باشید تا بعدا بیام و با هم بریم تو کار کدنویسی و  مثال بالا رو بصورت عملی پیاده سازی کنیم.

پس با ما باشید.

یا حق

آموزش استفاده از رپیرترهای تو در تو (رپیتر تو رپیتر) _ بخش دوم

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