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

nHibernate یا EntityFramework مسئله این است!

با سلام.
در پروژه های نرم افزاری ، کار با اطلاعات موجود در دیتابیس بخش اصلی پروژه رو تشکیل میده و حدود 30 تا 40 درصد زمان پروژه ها نیز صرف نوشتن کدهای این بخش می شود، حال آنکه بخش اعشم این کدها یک روال تکراری را دنبال می کنند (همانند نوشتن یک سری کلاس که دارای یک سری پراپرتی می باشند و نوشتن متدهای معروف   Select-Add-Update-Delete و ...)
حال آنکه یک ORM می تواند همه این کدهای زمان بر و خسته کننده را به راحتی و بصورت خیلی بهینه و تمیز برای شما بنویسند

nHibernate و Entityframework دو عدد ORM بسیار معروف هستند که اولی بصورت سورس باز می باشد و دومی متعلق به شرکت مایکزوسافت است.

nHibernamte بسیار قدیمی تر از  Entityframework است و چندین سال قبل از بوجود آمدن Entityframework بوجود آمده است و برنامه نویسان قدیمی اکثرا با این ORM کار می کردند و لایه های DataAccess خود را با آن می نوشتند ...

کار کردن با nHibernate نیاز به تجربه و علم بیشتری دارد و یکم سخت تر هم هست ولی کار با Entityframework بسیار راحت است ، بطوری که بچه 5 ساله هم می تونه باهاش کار کنه!

حال برخی به NH اعتقاد دارند و برخی به EF و همیشه سر این دو گروه جنگ و دعوای بسیار بوده است ...

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

باز اگر لینک خوبی پیدا کردم ؛ توی همین پست قرار میدم ....

دوستان توجه داشته باشند که من از خودم هیچی نگفتم ، چون با NH کار نکردم که بتونم نظر خودم رو بگم و دو لینکی که گذاشتم از دو شخص با تجربه است که هر دو با EF و NH کار کرده اند

یا حق

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


آشنایی با NuGet

برای امروز یک مطلب جانانه برای برنامه نویسان سی شارپ و asp.net از سایت بسیار عالی «دات نت تیپس» براتون میزارم که نوشته جناب آقای می باشد.
این سایت یکی از بهترین مراجعه علمی برای قدم برداشتن در جهت برنامه نویسی حرفه ای می باشد و بنده به شخصه اطلاعات بسیار خوبی از این وب سایت کسب کرده ام.
به دوستانی که برنامه نویسی رو می خوان تازه شروع کنن سایت جناب علی دلشاد رو پیشنهاد می کنم (how2learnasp.net) که مدتی است سایت ایشون قطع شده ولی دعا می کنم که هر چه زودتر مجددا بالا بیاد تا علاقمندان بتونن از این منبع اطلاعاتی بسیار عالی بهره ببرند.

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

NuGet چیست؟

روش متداول استفاده از کتابخانه‌های موجود دات نتی در Visual studio‌ عموما به این صورت است: مراجعه به سایت مربوطه، دریافت بسته مورد نظر، باز کردن آن و سپس افزودن ارجاعی به اسمبلی‌های آن کتابخانه. در این حالت زمانیکه نسخه‌ی جدیدی از کتابخانه‌ی مورد استفاده ارائه ‌شود (و عموما تا مدت‌ها شاید از آن بی‌اطلاع باشیم) تمام این مراحل باید از ابتدا تکرار شوند و همینطور الی آخر.
برای رفع این نقیصه، تیم ASP.NET، افزونه‌ای سورس باز و رایگان را به نام NuGet جهت VS.Net 2010 طراحی کرده‌اند که کار مدیریت بسته‌های کتابخانه‌های مورد استفاده را بسیار ساده کرده است. امکانات این افزونه پس از نصب، در دو حالت استفاده از رابط گرافیکی کاربری آن و یا با استفاده از خط فرمان PowerShell ویندوز در دسترس خواهد بود. این افزونه در زمان بارگذاری، با مراجعه به فید سایت مرکزی خود، لیست بسته‌های مهیا را در اختیار علاقمندان قرار می‌دهد. درب این سایت مرکزی به روی تمام توسعه‌ دهنده‌ها جهت افزودن بسته‌های خود باز است.
و ... فراگیری کار با NuGet برای تمام برنامه نویسان دات نت لازم و ضروری است! از این جهت که پیغام "این بسته تنها برای NuGet عرضه شده است" کم کم در حال متداول شدن می‌باشد و دیگر سایت‌های مرتبط، لینک مستقیمی را جهت دریافت کتابخانه‌های خود ارائه نمی‌دهند. حتی خبر به روز شدن محصولات خود را هم شاید دیگر به صورت منظم ارائه ندهند؛ زیرا NuGet کار مدیریت آن‌ها را به عهده خواهد داشت.

نوشته شده در تاریخ شنبه 19 بهمن 1392    | توسط: ح.م    | طبقه بندی: آموزش mvc، آموزش ASP.NET،     | نظرات()


آموزش نحوه پر کردن گرید ویو با ado.net

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

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

نوشته شده در تاریخ یکشنبه 15 دی 1392    | توسط: ح.م    | طبقه بندی: آموزش ASP.NET،     | نظرات()


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

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

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

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

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

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


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

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

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

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

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

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

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

یا حق

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

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


آموزش تغییر مقدار انتخاب شده در دراپ داون لیست (DropdownList) از طریق مقدار

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

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

برای این کار خیلی راحت توسط کد زیر می توانیم این کار را انجام دهیم:


به همین سادگی شما می توانید دسته بندی کنونی خبر مورد نظر را درون دراپ داون لیست نمایش دهید (مقدار انتخاب شده ی دراپ داون لیست بر روی دسته بندی کنونی تنظیم می شود)
موفق باشید.

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


آموزش ساخت تکست باکسی که فقط بشه توش فارسی بنویسیم در asp.net

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

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

خوب برای این کار باید از کنترل Expression Validator ای اس پی دات نت استفاده کنیم :


به همین سادگی ...
موفق باشید ...
در مقالات آموزشی بعدی کارهای بهتری با جی کوئری خواهیم کرد و جی کوئری ای جکس (jquery ajax) رو هم با هم فرا خواهیم گرفت.
فکر کنم وقتی قدرت و سرعت جی کوئری ای جکس رو ببینین دیگه سراغ روش های سرور ساید نرین و تمام پروژه هاتونو full ajax بزنین

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


آموزش ساخت تکست باکسی که ارقام (اعداد) رو سه رقم سه رقم جدا کنه با جی کوئری

با سلام، فرم ها بخش مهمی از سایت ها می باشند . در سایت های فروشگاهی و مالی - حسابداری که با ارقام سرو کار دارند، با گذاشتن تکست باکسی که ارقام رو سه رقم سه رقم جدا کنه می تونین لذت کار با سایت رو به مشتریاتون هدیه بدید :)

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

خوب طبق روال ابتدا باید کتابخونه جی کوئری رو به پروژتون اضافه کنین (اگر با این مورد آشنا نیستید به بخش موضوعات و گزینه "آموزش جی کوئری" مراجعه کنین)

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


به همین سادگی ...
دقت کنین که اگر به جای input دارین از کنترل TextBox خود asp.net استفاده می کنین ، باید حتما خصوصیت ClientIDMode اونو برابر با Static قرار بدین تا آی دی طرف کلاینت همون آی دی طرف سرور بشه. (وگرنه آی دی طرف کلاینتتون ممکنه به چیزی شبیه به Content_NetNic یا یه چیز عجیب تر تبدیل بشه!)

در آموزش بعدی نحوه ایجاد تکست باکس فارسی (فقط بشه توش فارسی بنویسیم) با ASP.Net Expression Validator رو یاد میدم...
موفق باشید

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


آموزش کامل انواع روش های واکشی اطلاعات در سی شارپ و asp.net - بخش سوم

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

3- با استفاده از Entity Framework عزیز دلم

البته به زودی یک تالار مخصوص Entity Framework باز می کنم و بصورت کامل کامل این تکنولوژی عزیز و دوست داشتنیمو آموزش میدم.


در این روش ابتدا شما باید Add New Item بزنین و بعد یک فایل از نوع ADO.Net Entity Data Model به پروژتون اضافه می کنین و اون رو روی دیتابیستون تنظیم می کنین و Next میزنین تا آخر.
(اول کانشکن جهت اتصال به دیتابیس رو می گیره و بعد لیست تمامی جداول و پروسیجر های دیتبایستون رو میاره که همه رو تیک میزنین و تمام)

* دریافت یه عالمه دیتا (چندین سطر) از دیتابیس:

با فرض اینکه من مدلم رو با نام MyModel ساخته ام و entity خودمو هم با نام MyEntities ساخته ام، داریم:

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

سپس در رویداد لود داریم :

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


* دریافت یک رکورد (یک سطر) از دیتابیس:

شایان ذکر است که کدهای Entity Framework رو به دو صورت میشه نوشت :

1- با دستورات LINQ
2- با دستورات Lambda


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


* دریافت یه مقدار واحد از دیتابیس:

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

در روش اول من پروپرتی مورد نظر رو فقط از دیتابیس گرفته ام؛ این دستور موجب اجرای دستور SQL ای "SELECT Name FROM Members" رو دیتابیس میشه

در روش دوم من همه پروپرتی ها رو از دیتابیس گرفته ام و بعد فقط از Name اون استفاده کرده ام؛ این دستور موجب اجرای دستور SQL ای "SELECT * FROM Members" رو دیتابیس میشه

مسلما روش اول بهینه تره.

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

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