
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترآموزش ASP.NET

ASP.Net یک platform (بستر اجرای نرم افزار) ویژه ی توسعه ی وب می باشد که یک مدل برنامه نویسی ، یک زیرساخت نرم افزار جامع و سرویس های متنوعی برای ساخت نرم افزار های تحت وب کارامد و قدرتمند برای PC همانند موبایل ها ارائه می دهد.ASP.Net علاوه بر پروتکول HTTP از دستورات و سیاست های HTTP برای تنظیم یک ارتباط و همکاری دوطرفه از مرورگر به سرور استفاده می کند.
ASP.Net بخشی از بستر اجرای نرم افزار (platform) Microsoft.Net می باشد. اپلیکیشن های تحت ASP.Net کدهای ترجمه یا کامپایل شده ای هستند که از مولفه های (component) توسعه پذیر (extensible) و قابل استفاده ی مجدد موجود در.Net Framework استفاده می کند. این کدها می توانند از کلیه ی سلسله مراتب (hierarchy) کلاس ها در.Net Framework استفاده کنند.
ASP.NET



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

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

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

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

Control ها در واقع یکی از اجزای اصلی تشکیل دهنده رابط گرافیکی کاربری (graphical user interface) هستند، که شامل textboxها (کادر متن)، check boxها (کادر تیک)، buttonها (دکمه)، listboxها، label ها و چندین ابزار مختلف دیگر می شود. با استفاده از این ابزار، کاربر قادر خواهد بود داده های مورد نیاز را وارد کرده و انتخاب کند، همچنین تنظیمات دلخواه خود را اعمال کند.

کنترل های سرور HTML اساسا کنترل های اصلی HTML هستند اما برای فعال کردن پردازش سمت سرور اجرا می شوند. کنترل های HTML از جمله anchor tags، عناصر ورودی، به وسیله ی سرور پردازش نمی شوند بلکه برای نمایش به مرورگر فرستاده می شوند.

اسکریپت های سمت کاربر: که روی مرورگر اجرا می شود و در عوض اجرای پیج را سرعت می بخشد. به عنوان مثال اعتبارسنجی داده ی بخشکاربر که می تواند داده ی نامعتبر را بگیرد، و براین اساس بدون ورود به سرور هشداری برای کاربر باشد.


مسیرهای ASP.Net دستورالعمل هایی هستند برای مشخص کردن تنظیمات آپشنال از قبیل ثبت یک کنترل سفارشی و زبان پیج. این تنظیمات توصیف می کند که چگونه فرم های وب (.aspx) و کنترل های یوزر (.aspx) پیج ها به وسیله ی .Net framework پردازش می شوند.


کنترل های ASP.NET داده های ورودی کاربر (user input data) را اعتبار سنجی کرده تا از این طریق از ذخیره شدن داده های نامعتبر، بلااستفاده و مغایر جلوگیری شود.

ASP.Net فرایندهای پیچیده ی دسترسی به داده ها را مخفی می کند و گروه ها و آبجکت هایی با سطوح بالاتر ارائه می دهد که از طریق آنها داده ها به آسانی قابل دسترسی هستند. این گروه ها برنامه نویسی های پیچیده برای اتصال، بازیابی داده ها، جستجو و دستکاری داده را مخفی می کنند.

ADO.net بين هدف اوليه عملكردها و اهداف بعدي اطلاعاتي ارتباط ايجاد مي كند. آن دسته از مواردي كه داراي ADO.net هستند تمام اطلاعات در دست اجرا را به نمايش در آورده و دستورات براي انجام اين عملكردها در مقابل اين موارد عكس العمل نشان داده و اطلاعات را نمايان مي كنند از اين رو جزييات فرايندهاي اطلاعاتي نيز پنهان مي گردند.


کنترل AdRotator گرافیک های بنر را به طور تصادفی از یک لیست انتخاب می کند که در یک فایل XML خارجی مشخصشده است. این فایل خارجی، فایل تبلیغ نامیده می شود.

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

Multi view و کنترل های ویو به شما این اجازه را می دهد که محتویات یک صفحه را به گروه های مختلف تقسیم کنید، که تنها یک گروه را در یک زمان نشان می دهد. هر View control یک گروه از محتویات را مدیریت می کند و همه ی کنترل های ویو در یک کنترل Multiview نگهداری می شوند.

کنترل پنل مانند یک ظرف برای کنترل های دیگر روی صفحه عمل می کند. این کنترل ظاهر و قابلیت رویت بودن دیگر کنترل ها را چک می کند. این کنترل همچنین تولید دیگر کنترل ها را به طور برنامه ریزی شده ای می دهد.

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



کنترل های یوزر مانند صفحات مینیاتوری ASP.Net و یا فرم های وب عمل می کنند که می توانند به وسیله ی صفحات زیاد دیگری استفاده شوند. این ها از گروه System.Web.UI.UserControl استخراج شده اند. این کنترل ها دارای ویژگی هایزیر می باشند.





2 Authorization (اعطاء مجوز): فرایندی است که تعیین می کند آیا کاربری با هویت معین مجوز دسترسی به منبع مشخصی را دارد یا خیر؛ به فرایندی گفته می شود که طی آن نقش های مشخصی برای کاربرها تعریف شده سپس به آن ها تخصیص داده می شود.

Cachingها عبارتند از ذخیره سازی داده/اطلاعات پرکاربرد (اطلاعاتی که به طور مکرر مورد استفاده قرار می گیرند) در حافظه. تکنیک مزبور برای این پیاده می شود که در صورت نیاز پیدا کردن به اطلاعات پرکاربرد دیگر نیازی نباشد که داده ها مجددا توسط برنامه (application) ایجاد شود بلکه بتوان آن ها به طور مستقیم از حافظه بازیابی کرد.

یک web service در واقع یک قابلیت مبتنی بر وب است که از طریق پروتکل های وب قابل دسترسی می باشد. web service ها توسط application های تحت وب مورد استفاده قرار می گیرند

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

عملکرد ASP.NET application تا حد زیادی تحت تاثیر تنظیمات مختلفی است که در فایل های پیکربندی (configuration file) لحاظ می شود. این فایل ها عبارتند از:

این آموزش را Mike Pope نوشته و آن را FitzMacken برای Microsoft WebMatrix 3 آپدیت کرده است.

مسیریابی ASP.Net شما را قادر می سازد تا از URL هایی استفاده کنید که لازم نیست در یک فایل خاص در وب سایت طرح ریزی شوند. از آنجایی URL لازم نیست روی یک فایل طراحی شود، می توانید از URL ها در یک برنامه ی وب استفاده کنید

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

مجموعه ای از ویژگی هاست که در Visual Studio 2008 مطرح می شود. در طول زمان زبان های متفاوتی برای انواع منابع داده گسترش پیدا کرده اند، به عنوان مثال SQL برای دیتابیس های رابطه ای ( relational database) و XQuery برای XML. بنابراین توسعه دهنده ها باید یک زبان query جدید برای هر نوع منبع داده و یا فرمت داده ای که باید پشتیبانی شود، فرا بگیرند. LINQ با ارائه ی یک مدل منسجم برای کار با داده در مقابل انواع مختلف منابع داده و فرمت ها، این موقعیت را ساده می سازد. در یک LINQ query همیشه با آبجکت ها کار می کنید. شما از الگوهای کد گذاری مشابه برای query استفاده می کنید و در داکیومنت های XML، دیتابیس های SQL، ADO.NET Datasets،مجموعه های .NET، و هر فرمت دیگری که برای آن یک تامین کننده ی LINQ وجود دارد، داده را تبدیل می کنید.

1. وقتی نمونه ای از یک مجموعه ی جنریک مانند List<T> ایجاد می کنید، نوع آبجکت ها را که در لیست حفظ خواهند شد جایگزین T خواهید کرد. برای مثال لیستی از رشته ها با عنوانList<string> بیان شده اند و لیستی از آبجکت های Customer به عنوان List<Customer> بیان می شوند. یک لیست جنریک به طور جدی تایپ شده اند و مزایای زیادی برای مجموعه هایی که عناصر خود را به عنوان Object ذخیره می کنند، دارد. اگر سعی کنید یک Customer به یک List<string> اضافه کنید، در زمان کامپایل یک خطا دریافت خواهید کرد. استفاده از مجموعه های جنریک آسان می باشد، زیرا مجبور به اجرای run-time type-casting نیستید. 2. IEnumerable<T> اینترفیسی می باشد که گروه های جنریک را قادر می سازد تا با استفاده از عبارت foreach شمرده شوند. گروه های مجموعه ی جنریک از IEnumerable<T> تنها به عنوان گروه های مجموعه ی غیرعمومی (non-generic) پشتیبانی می کند، به عنوان مثال ArrayList که از IEnumerable پشتیبانی می کند.

نکته: اگر تقریبا با زبان query مانند SQL یا XQuery آشنایی دارید، میتوانید از قسمت های زیادی از این بخش بگذزید. در مورد "from clause" در بخش بعدی خواهید خواند تا در مورد نرنیب بندها در عبارات LINQ query یاد بگیرید.

تبدیل داده با LINQ: Language-Integrated Query (LINQ) تنها در مورد بازیابی داده نیست. بلکه یک ابزار قدرتمند نیز برای تبدیل داده می باشد. می باشد. با استفاده از LINQ queryمی توانید از ترتیب منبع به عنوان ورودی استفاده کنید و آن را به روش های زیادی برای ایجاد ترتیب خروجی جدید، اصلاح کنید. شما می توانید خود ترتیب را بدون بدون تغییر عناصر با مرتب کردن و گروه بندی کردن اصلاح کنید. اما شاید قویترین ویژگی query های LINQ توانایی در ایجاد انواع جدید می باشد. این امر در عبارت select تکمیل می شود. برای مثال می توانید عملکردهای زیر را اجرا کنید:

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

اکثر query ها در داکیومنتیشن مقدماتی Language Integrated Query (LINQ) با استفاده از ترکیب اعلانی LINQ نوشته می شوند. به هرحال وقتی که کد کامپایل می شود، ترکیب query باید به روش فراخوانی ها برای .NET common language runtime (CLR) ترجمه شود. این فراخوانی ها اپراتورهای استاندارد query را تقاضا می کند که دارای نام هایی مانند Where, Select, GroupBy, Join, Max, و Average می باشند. می توانید آنها را به طور مستقیم با استفاده از ترکیب متود به جای ترکیب query فرا بخوانید.

ویژگی های C# که LINQ را پشنیبانی می کنند: این بخش سازه های جدید زبان، معرفی شده در C# 3.0 را معرفی می کند. گرچه همه ی این ویژگی ها تا حدی با query های LINQ استفاده می شوند، اما به LINQ محدود نیستند و می توانند در هر کانتکستی که مفید هستند، استفاده شوند.

آموزش ADO.NET



در لیست 1، آبجکت SqlConnection در ساختارSqlCommandDemo نمونه گذاری می شود. این مسئله بسیار خوب است، زیرا خود آبجکت در هنگام اجرای CLR garbage collector تمیز خواهد شد. آنچه مهم است این است که ما اتصال را در هنگام اتمام استفاده از آن، می بندیم. این برنامه اتصال را در هر متود در یک try block باز می کند و در یک finally block می بندد. متود ReadData محتوای ستون CategoryName از جدول Categories را نشان می دهد. از آن بارها در متود Main برای نشان دادن وضعیت جاری جدول Categoriesاستفاده کردیم، که پس از هر فرمان insert، update و delete تغییر می کند. به خاطر این مسئله استفاده ی مجدد از آن مناسب می باشد تا تاثیرات پس از فراخوانی هر متود را به شما نشان دهیم.

آموزش ado.net،خواندن اطلاعات با استفاده از SqlDataReader

آموزش ado.net،Working with Disconnected Data - The DataSet and SqlDataAdapter


این درس چگونگی استفاده از برنامه های ذخیره شده را در کد دسترسی به داده (data access) نشان می دهد. در اینحا اهداف درس را مشاهده می کنید: · یادگیری چگونگی تغییر آبجکت SqlCommand برای از یک برنامه ی ذخیره شده. · درک چگونگی استفاده از پارامترها با برنامه های ذخیره شده.