با تشکر فراوان از استقبال بی نظیر و محبت فراوان دوستان نسبت به بنده و این کتاب در نسخه ی قبلی (ASP.NET MVC 4.0)، در ویرایش جدید سعی شده است که تمامی انتقادات و پیشنهادات دوستان لحاظ شود.
در این نسخه، تمامی مطالب و تصاویر با توجه به Visual Studio 2013 بازنویسی و بسیاری مطالب جدید تا کوچکترین امکانات اضافه شده به ASP.NET MVC تا نسخه ی 5.2 که در حال حاضر آخرین نسخه از ASP.NET MVC است پوشش داده شده است.
امید که مورد رضایت دوستان قرار بگیرد.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
نام کتاب: مرجع کامل ASP.NET MVC 5.2
ترجمه و تالیف: بهروز راد
ناشر: پندار پارس
نوبت چاپ: اول، شهریور 1393
تعداد صفحات: 720
قیمت: 37800 تومان
مطالعه ی قسمتی از کتاب...
در این کتاب می خوانید:
بخش نخست: معرفی ASP.NET MVC
فصل 1: ایده ی اصلی
تاریخچهی مختصری از توسعهی برنامههای مبتنی بر وب
- ASP.NET Web Forms
- مشکلات ASP.NET Web Forms چیست؟
جایگاه توسعهی وب در زمان حال
- استانداردهای وب و REST
- Agile و توسعهی تست محور
- Ruby on Rails
- Sinatra
- Node.js
مزایای اصلی ASP.NET MVC
- معماری MVC
- توسعه پذیری
- کنترل کامل بر HTML و HTTP
- تست پذیری
- سیستم مسیریابی قدرمند
- ساخته شده بر مبنای بهترین قسمتهای ASP.NET
- API پیشرفته
- ASP.NET MVC، متن باز است
- عدم وابستگی الزامی به فایلهای فیزیکی موجود در سیستم
- امکان مدیریت بهتر قسمتهای مختلف سایت در پوشههای جداگانه
- کنترل بهتر بر روی اعتبارسنجی اطلاعات دریافتی
- امکان استفاده از فرمهای و Viewهای Razor بجای موتور وب فرمها
- امکان تعریف بیش از یک فرم در صفحه
- امکان Refactoring بهتر کدهای تکراری در ASP.NET MVC به کمک مفهوم فیلترها
چه کسی باید از ASP.NET MVC استفاده کند؟
- مقایسه با ASP.NET Web Forms
- مهاجرت از ASP.NET Web Forms به ASP.NET MVC
- مقایسه با Ruby on Rails
- مقایسه با MonoRail
نتیجه گیری
فصل 2: آمادگی برای شروع
آماده سازی سیستم توسعه
- نصب Visual Studio 2013
- نصب ASP.NET MVC 5
- نصب ابزارهای اختیاری
- کدهای ASP.NET MVC
- IIS Express
- SQL Server Management Studio Express
آماده سازی سرور
- نصب IIS
- نصب ابزارهای اضافه
منابع بیشتر برای یادگیری
نتیجه گیری
فصل 3: نخستین پروژهی ASP.NET MVC
ایجاد یک پروژهی جدید ASP.NET MVC
- قالب Empty
- قالب Web Forms
- قالب MVC
- قالب Web API
- قالب Single Page Application
- قالب Facebook
- قالب Visual Studio 2012
- Bootstrap در پروژه های VS 2013
- پشتیبانی از چند فریمورک در پروژه
- روش های تصدیق هویت در قالب های پیش فرض
- گزینه ی No Authentication
- گزینه ی Individual User Accounts
- گزینه ی Organizational Accounts
- گزینه ی Windows Authentication
- اضافه کردن نخستین کنترلر
- آشنایی با Routeها
- پردازش در صفحات وب
- ایجاد یک View
- اضافه کردن خروجی پویا
- ایجاد یک پروژهی ساده برای کار با دادهها
- آماده سازی
- طراحی مدل دادهها
- افزودن یک کلاس برای مدل
- ارتباط بین متدهای اکشن
- ایجاد یک متد اکشن
- ایجاد یک View نوع دار
- ایجاد ساختار View
- مدیریت فرمها
- استفاده از Model Binding
- نمایش Viewهای دیگر
- افزودن تعیین اعتبار
- مشخص کردن کنترلهای نامعتبر
- ایجاد ظاهر زیبا
- استفاده از NuGet برای نصب Bootstrap
- ایجاد ظاهر زیبا برای Index View
- ایجاد ظاهر زیبا برای RsvpForm View
- ایجاد ظاهر زیبا برای Thanks View
- تکمیل پروژه
نتیجه گیری
فصل 4: معماری MVC
تاریخچهی MVC
مفهوم الگوی MVC
- آشنایی با Domain Model
- پیاده سازی معماری MVC در ASP.NET
- مقایسهی MVC با الگوهای دیگر
- آشنایی با الگوی Smart UI
- آشنایی با معماری Model-View
- آشنایی با معماری سه لایهی کلاسیک
- آشنایی با اَشکال مختلف الگوی MVC
- آشنایی با الگوی Model-View-Presenter
- آشنایی با الگوی Model-View-View Model
متدولوژی Domain Driven Design
- مدلکردن یک Domain
- زبان یکپارچه
- Aggregate و Simplification
- ایجاد Repositoryها
ایجاد بخشهای تفکیک شده
- استفاده از تزریق وابستگی (Dependency Injection)
- مثالی از تزریق وابستگی در ASP.NET MVC
- استفاده از Dependency Injection Container
شروعی برای آزمایش واحد خودکار
- آشنایی با Unit Testing
- استفاده از TDD و منطق Red-Green-Refactor
- به سوی آیین TDD بشتابید!
- آشنایی با Integration Testing
نتیجه گیری
فصل 5: قابلیت های کلیدی زبان
قابلیتهای کلیدی C#
- استفاده از Automatic Properties
- استفاده از Object Initializer و Collection Initializer
- استفاده از Extension Methods
- اِعمال Extension Method به یک Interface
- ایجاد Extension Methodها برای فیلترکردن
- استفاده از عبارتهای لامبدا
- شکلهای دیگر عبارتهای لامبدا
- استفاده از Type Inference
- استفاده از Anonymous Type
- استفاده از LINQ
- آشنایی با مفهوم کوئری های با تأخیر در LINQ
- استفادهی دوباره از یک کوئری با تأخیر
- LINQ و اینترفیس IQueryable<T>
- استفاده از متدهای Async
- استفاده از کلمات کلیدی async و await
آشنایی با سینتکس موتور Razor
- ایجاد پروژه
- ایجاد Model
- ایجاد کنترلر
- ایجاد View
- تنظیم مسیر پیش فرض
- بررسی یک View ساده در Razor
- کار با شیء Model
- استفاده از کد در Razor
- تعریف یک بلاک کد در Razor
- انتقال مقادیر به View با استفاده از شیء ViewBag
- کار با قالبها
- کار بدون قالبها
- تفسیر خودکار عبارت "~/" توسط موتور Razor
- صفت های شرطی HTML در موتور Razor
نتیجه گیری
فصل 6: ابزارهای مهم برای ASP.NET MVC
استفاده از Ninject
- ایجاد پروژه
- اضافه کردن Ninject
- شروع کار با Ninject
- ایجاد زنجیرهای از وابستگیها
- تعیین مقادیر خصیصه ها و پارامترها
- استفاده از Self-Binding
- برگشت نوع مشتق شده
- استفاده از شرط در معرفی کلاسها
استفاده از Ninject در ASP.NET MVC
آزمایش واحد با Visual Studio
- ایجاد پروژه
- ایجاد آزمایشهای واحد
- اجرای آزمایشهای واحد و مواجه شدن با خطا
- پیاده سازی قابلیت
استفاده از Moq
- افزودن Moq به پروژه
- ایجاد یک Mock با Moq!
- استفاده از قابلیت انتخاب متد توسط Moq
- تعیین مقدار برای پارامتر متدها توسط Moq
- برگشت یک نتیجه
- آزمایش واحد با Moq
- تایید با Moq
نتیجه گیری
بخش دوم: بررسی کامل ASP.NET MVC
فصل 7: نمای کلی پروژه های ASP.NET MVC
کار با پروژههای ASP.NET MVC
- آشنایی با مفهوم قراردادها در ASP.NET MVC
- قوانین نامگذاری کلاسهای کنترلر
- قوانین نامگذاری Viewها
- قوانین نامگذاری برای قالبها
دیباگ پروژههای ASP.NET MVC
- ایجاد پروژه
- اجرای دیباگر Visual Studio
- توقف دیباگر در Breakpoint
- استفاده از Breakpointها
- توقف دیباگر در زمان رخ دادن خطا
- استفاده از قابلیت Edit and Continue
- فعالسازی قابلیت Edit and Continue
- اصلاح پروژه
- Edit and Continue
- استفاده از قابلیت اتصال مرورگر
- دیباگ آزمایشهای واحد
استفاده از تزریق وابستگی در کل پروژه
نتیجه گیری
فصل 8: آدرس ها، مسیریابی و Areaها
معرفی سیستم مسیریابی
اسمبلی سیستم مسیریابی
ایجاد پروژهی مسیریابی
آشنایی با URL Patterns
ایجاد و معرفی یک Route ساده
تعریف مقادیر پیش فرض
ایجاد URL Patternهای ثابت
حق تقدم Routeها
تعریف متغیرهای Segment سفارشی
استفاده از متغیرهای Segment سفارشی به عنوان پارامترهای یک متد اکشن
تعریف متغیرهای Segment اختیاری
تعریف مسیرهای با طول متغیر
اولویت بندی کنترلرها به وسیلهی فضاهای نام
ایجاد قید برای Routeها
ایجاد قید با استفاده از عبارتهای باقاعده
ایجاد قید برای یک Route بر مبنای چند مقدار
ایجاد قید برای یک Route با استفاده از متدهای HTTP
استفاده از قیدهای نوع و مقدار
تعریف یک قید سفارشی
مسیریابی بر مبنای صفت
- مسیریابی قرارداد محور در مقایسه با مسیریابی بر مبنای صفت
- فعال سازی و استفاده از قابلیت مسیریابی بر مبنای صفت
ایجاد Routeها با متغیرهای Segment
ادغام قیدها
استفاده از پیشوند برای مسیر
رفتار Routeها با فایلهای موجود بر روی فایل سیستم
دور زدن سیستم مسیریابی
ایجاد آدرسهای خروجی
چه کاری نباید انجام دهیم؟ تعریف دستی آدرسها!
آماده سازی پروژه
ایجاد آدرسهای خروجی در Viewها
آشنایی با نحوهی تطبیق Route برای ایجاد آدرس خروجی
تعیین کنترلر دلخواه در ایجاد آدرس خروجی
پاس دادن مقادیر اضافه
آشنایی با مفهوم «استفادهی دوباره از متغیرهای Segment»
کار با صفتهای HTML
ایجاد آدرسهای کامل برای لینکها
ایجاد آدرسها (و نه لینکها)
ایجاد لینکها و آدرسها با استفاده از اطلاعات Route
ایجاد آدرسهای خروجی در متدهای اکشن
ایجاد آدرس از یک Route مشخص
نقطه ضعف استفاده از نام Routeها
سفارشیسازی سیستم مسیریابی
- ایجاد رفتار تطبیقی سفارشی برای Routeها
- سفارشی سازی سیستم مسیریابی برای آدرسهای ورودی
- سفارشی سازی سیستم مسیریابی برای ایجاد آدرسهای خروجی
- ایجاد یک مدیر Route سفارشی
کار با Areaها
- ایجاد یک Area
- کار با یک Area
- حل مشکل تداخل نام کنترلرها
- ایجاد لینک برای متدهای اکشن در Areaها
طراحی مناسب آدرسها
- آدرسهای خود را ساده و کاربرپسند طراحی کنید
- GET و POST: انتخاب صحیح
نتیجه گیری
فصل 9: کنترلرها و اکشن ها
معرفی کنترلر
- آماده سازی پروژه
- ایجاد یک کنترلر با استفاده از اینترفیس IController
- ایجاد یک کنترلر با ارث بَری از کلاس Controller
دریافت ورودی
- استخراج دادهها از اشیاء Context
- استفاده از پارامترها در متد اکشن
- آشنایی با نحوهی پُرشدن پارامترهای متد اکشن
- آشنایی با پارامترهای اختیاری و اجباری
- تعیین مقدار پیش فرض برای پارامتر
تولید خروجی
- آشنایی با نتایج اکشن
- بر گشت نتیجه در قالب HTML با ارسال یک View
- آزمایش واحد: پردازش یک View
- تعیین یک View با استفاده از مسیر آن
- انتقال دادهها از یک متد اکشن به یک View
- آماده سازی یک مدل برای یک View
- آزمایش واحد: مدل برای View
- انتقال دادهها با ViewBag
- آزمایش واحد: ViewBag
- انتقال دادهها با ViewData
- آزمایش واحد: ViewData
هدایت کاربر به آدرسی دیگر
- الگوی POST/REDIRECT/GET
- هدایت کاربر به یک آدرس واقعی
- آزمایش واحد: هدایت کاربر به یک آدرس واقعی
- هدایت کاربر به مسیری ثبت شده در سیستم مسیریابی
- آزمایش واحد: مسیرهای ثبت شده در سیستم مسیریابی
- هدایت کاربر به یک متد اکشن
- نگهداری دادهها در هنگام هدایت کاربر
- برگشت دادههای متنی
- آزمایش واحد: نتایج حاصل از فراخوانی متد Content
- برگشت دادهها با فرمت XML
- برگشت دادهها با فرمت JSON
- ارسال فایلها و دادههای باینری
- ارسال یک فایل
- ارسال آرایهای از بایتها
- ارسال دادهها در قالب Stream
- آزمایش واحد: نتایج حاصل از فراخوانی متد File
- برگشت خطاها و کدهای HTTP
- ارسال یک کد HTTP مشخص
- برگشت نتیجهی 404
- برگشت نتیجهی 401
- آزمایش واحد: کدهای HTTP
- ایجاد یک نتیجهی اکشن سفارشی
نتیجه گیری
فصل 10: فیلترها
استفاده از فیلترها
- Attributeها در .NET : یادآوری
- معرفی چهار نوع فیلتر
- اِعمال فیلترها به کنترلرها و متدهای اکشن
- فیلترهای مرتبط با اِعطای مجوز دسترسی به منبع
- ایجاد یک فیلتر مرتبط با اِعطای مجوز دسترسی به منبع
- استفاده از فیلتر موجود مجوز دسترسی به منبع
- ایجاد منطق سفارشی برای دسترسی به منابع
- ایجاد منطق سفارشی، هنگام نداشتن مجوز دسترسی به منبع
- فیلتر AllowAnonymous
- استفاده از فیلترهای مدیریت خطا
- ایجاد یک فیلتر مدیریت خطا
- استفاده از فیلتر موجود مدیریت خطا
- استفاده از فیلترهای Action و Result
- پیاده سازی متد OnActionExecuting
- پیاده سازی متد OnActionExecuted
- پیاده سازی یک فیلتر Result
- استفاده از فیلتر موجود Action و Result
- استفاده از قابلیتهای دیگر فیلترها
- استفاده از فیلترها بدون Attributeها
- استفاده از فیلترهای Global
- ترتیب اجرای فیلترها
- استفاده از فیلترهای موجود
- استفاده از فیلتر RequireHttps
- استفاده از فیلتر OutputCache
نتیجه گیری
فصل 11: سفارشی سازی کنترلرها
اجزای دخیل در روند اجرای درخواست
ایجاد یک Controller Factory
- ایجاد یک Controller Factory سفارشی
- ثبت یک Controller Factory سفارشی
کار با Controller Factory موجود
- ایجاد حق تقدم برای فضاهای نام
- سفارشی سازی فرایند ایجاد کنترلر در DefaultControllerFactory
- استفاده از Dependency Resolver
- استفاده از یک Controller Activator
- Override کردن متدهای کلاس DefaultControllerFactory
ایجاد یک Action Invoker سفارشی
استفاده از Action Invoker موجود
- استفاده از یک نام متد اکشن سفارشی
- استفاده از Action Method Selection
- ایجاد یک Action Method Selector سفارشی
- مکانیزم کارکرد Action Method Selector
- مدیریت متدهای اکشنی که وجود ندارند
- استفاده از Action Method Selectorها برای پشتیبانی از سرویسهای REST
- معرفی افعال HTTP به روشی دیگر
- معرفی افعال HTTP به روشی دیگر در یک فرم ASP.NET MVC
افزایش کارایی با کنترلرهای خاص
- استفاده از کنترلرهای Sessionless
- مدیریت Sessionها از طریق IControllerFactory سفارشی
- مدیریت Sessionها با استفاده از DefaultControllerFactory
- استفاده از کنترلرهای نامتقارن
- ایجاد یک کنترلر نامتقارن
- عملیات پشت صحنه و Threadهای بلاک شده
- ایجاد متدهای Async و Completed
- شروع عملیات نامتقارن
- پایان عملیات نامتقارن
- پاس دادن مقادیر از متد Async به متد Completed
- مدیریت حداکثر زمان مجاز برای اجرای عملیات نامتقارن
- توقف عملیات نامتقارن
- استفاده از الگوی برنامه نویسی نامتقارن .NET
- چه هنگام باید از کنترلرهای نامتقارن استفاده نمود؟
نتیجهگیری
فصل 12: Viewها
ایجاد یک View Engine سفارشی
- ایجاد یک IView سفارشی
- ایجاد یک پیاده سازی از اینترفیس IViewEngine
- معرفی یک View Engine سفارشی
- بهبود سرعت نمایش صفحات با حذف View Engineهای اضافی
- استفاده از View Engineهای دیگر
کار با موتور Razor
- آشنایی با نحوهی پردازش View توسط موتور Razor
- استفاده از الگوی DI برای Viewهای Razor
- پیکربندی مکان های جستوجوی Viewها
افزودن محتویات پویا به Viewهای موتور Razor
- استفاده از Inline Code
- Inline Code و اصل جداسازی لایهها
- معرفی فضای نام به یک View
- استفاده از دستور @using در یک View
- معرفی فضای نام در فایل Web.config
- آشنایی با مفهوم کدگذاری HTML در موتور Razor
- استفاده از Viewهایی با نوع dynamic به عنوان Model
استفاده از HTML Helperها
- ایجاد یک HTML helper Inline
- ایجاد یک HTML helper External
- استفاده از HTML Helperهای موجود
- ایجاد تگ form
- ایجاد فرمهایی که به خودشان ارسال میشوند
- استفاده از Input Helperها
- استفاده از متدهای HTML helper با نوع Strongly Typed
- اضافهکردن صفتها به تگ HTML
- ایجاد تگ select
- ایجاد لینکها و آدرسها
- استفاده از WebGrid Helper
- استفاده از Chart Helper
- استفاده از Helperهای دیگر موجود
استفاده از Sectionها
- بررسی وجود Sectionها (روش نخست)
- بررسی وجود Sectionها (روش دوم)
استفاده از Partial Viewها
- ایجاد یک Partial View
- استفاده از Partial Viewهای Strongly Typed
استفاده از Child Actionها
- ایجاد یک متد Child Action
- فراخوانی متد Child Action
نمایش Viewها بر اساس نوع دستگاه درخواست کننده
- انتخاب View در زمان اجرا با قابلیت DisplayModes
- استفاده از حالت Mobile قابلیت DisplayModes
- تست دستی قابلیت DisplayModes برای دستگاه های مختلف
- ایجاد DisplayModeهای سفارشی
- خلاقیت با قابلیت DisplayModes
- دادن اختیار به کاربر برای تغییر DisplayModeها
نتیجه گیری
فصل 13: قالب های مدل
استفاده از Templated View Helpers
- استفاده از CSS در HTML تولیدی
- استفاده از Model Metadata
- استفاده از Metadata برای کنترل ویرایش و رؤیت
- مستثنا کردن یک خصیصه از تولید کد HTML برای آن
- استفاده از Metadata برای تگ <label>
- استفاده از Metadata برای مقادیر
- استفاده از Metadata برای انتخاب قالب نمایش
- اِعمال Metadata به یک کلاس Buddy
- کار با خصیصه هایی از نوع Complex
سفارشی سازی سیستم تولید کدهای HTML
- ایجاد یک قالب سفارشی برای حالت ویرایش
- آشنایی با ترتیب جستوجوی قالب
- ایجاد یک قالب سفارشی برای حالت نمایش
- ایجاد یک قالب عمومی
- جایگزینی قالبهای موجود
- استفاده از خصیصهی ViewData.TemplateInfo
- توضیحی در ارتباط با فرمت دادهها
- کار با پیشوندهای تولیدی برای تگ های HTML
- فراهم کردن اطلاعات اضافی برای یک قالب
آشنایی با سیستم Metadata Provider
- ایجاد یک Model Metadata Provider سفارشی
- سفارشی سازی Data Annotations Model Metadata Provider
نتیجه گیری
فصل 14: Model Binding
آشنایی با Model Binding
استفاده از Model Binder پیش فرض
- Model Binding برای انواع دادههای ساده
- حساسیت Model Binding به قوانین زبان
- Model Binding برای نوعهای Complex
- ایجاد کدهای HTML برای Model Binding آسان
- تعیین پیشوندهای سفارشی
- انتخاب خصیصه های مورد نظر برای Binding
- Binding برای آرایهها و مجموعهها
- Binding برای مجموعهای از انواع دادههای سفارشی
- Binding برای مجموعهها با اندیس های غیر ترتیبی
- Binding برای نوع دادهی Dictionary
فراخوانی Model Binding با کدنویسی
- محدود کردن فرایند Model Binding به منبعی مشخص
- مدیریت خطاها در فرایند Model Binding
استفاده از Model Binding برای دریافت فایلهای آپلودی
سفارشی سازی سیستم Model Binding
- ایجاد یک Value Provider سفارشی
- ایجاد یک Model Binder با الگوی DI
- ایجاد یک Model Binder سفارشی
- ایجاد Model Binder Providerها
- استفاده از صفت ModelBinder
نتیجه گیری
فصل 15: Model Validation
ایجاد پروژه
تعیین اعتبار یک مدل به شکل صریح
- ایجاد ظاهر مناسب برای Check Boxها
نمایش پیغامهای خطای مرتبط با تعیین اعتبار مقادیر
- نمایش پیغامهای خطای در سطح خصیصه
تکنیکهای دیگر تعیین اعتبار مقادیر
- تعیین اعتبار مقادیر از طریق Model Binder
- تعیین قوانین تعیین اعتبار دادهها از طریق Metadataها
- ایجاد یک Attribute سفارشی برای تعیین اعتبار در سطح خصیصه
- ایجاد یک Attribute سفارشی برای تعیین اعتبار در سطح مدل
- ایجاد مدلهایی که خود را تعیین اعتبار میکنند
- ایجاد یک Validation Provider سفارشی
- معرفی یک Validation Provider سفارشی
تعیین اعتبار در سمت کلاینت
- فعال سازی/غیر فعال سازی تعیین اعتبار در سمت کلاینت
- آشنایی با CDN
- استفاده از یک CDN برای کتابخانههای JavaScript
- استفاده از قابلیت تعیین اعتبار دادهها در سمت کلاینت
- آشنایی با نحوهی کارکرد فرایند تعیین اعتبار در سمت کلاینت
- قابلیت درونی ASP.NET MVC برای تعیین اعتبار در سمت کلاینت در مقایسه با کتابخانهی jQuery Validation
- سفارشی سازی فرایند تعیین اعتبار در سمت کلاینت
- ایجاد مستقیم صفتهای مرتبط با تعیین اعتبار در کدهای HTML
- ایجاد صفتهایی که از تعیین اعتبار سمت کلاینت پشتیبانی میکنند
- ایجاد قوانین تعیین اعتبار سفارشی در سمت کلاینت
آشنایی با Remote Validation
نتیجه گیری
فصل 16: AJAX
استفاده از قابلیت Unobtrusive AJAX در ASP.NET MVC
- ایجاد پروژه
- فعال سازی/غیرفعال سازی Unobtrusive AJAX
- استفاده از فرمهای Unobtrusive AJAX
- آشنایی با نحوهی کارکرد قابلیت Unobtrusive AJAX
تنظیمات AJAX
- اصل «تنزل مطبوع» (Graceful Degradation)
- آگاه سازی کاربر در هنگام ایجاد یک درخواست AJAX
- تأیید کاربر، پیش از ارسال درخواست AJAX
ایجاد لینکهای AJAXیی
- اصل «تنزل مطبوع» برای لینکهای AJAXیی
کار با Callbackها در AJAX
کار با JSON
- افزودن پشتیبانی از فرمت JSON به کنترلر
- پردازش دادههای JSON در مرورگر
- تشخیص درخواستهای AJAX در متد اکشن
- ارسال دادهها با فرمت JSON به سرور
نتیجه گیری
فصل 17: jQuery
ایجاد پروژه
ارجاع به jQuery
- مدیریت نسخههای مختلف jQuery
نوشتن کدهای jQuery
- اجرای jQuery در یک محیط ایزوله
- استفاده از Firefox
- استفاده از Chrome
مبانی jQuery
- آشنایی با Selectorهای jQuery
- نکتهای در ارتباط با Id هر تگ
- استفاده از چند Selector به طور همزمان
- استفاده از Attribute Selectorها
- استفاده از فیلترها در jQuery
- استفاده از فیلترهای محتوا
- استفاده از فیلترهای فرم
- آشنایی با متدهای jQuery
- انتظار برای بارگذاری صفحه
- متدهای مرتبط با کار با CSS در jQuery
- کار با DOM
استفاده از رویدادها در jQuery
استفاده از جلوههای بصری در jQuery
استفاده از jQuery UI
- ارجاع به کتابخانهی jQuery UI
- استفاده از ابزار ThemeRoller
- ایجاد دکمههایی با ظاهری زیباتر
- استفاده از کامپوننت Slider
نتیجه گیری
بخش سوم: ادامه ی توانایی های پروژه های ASP.NET MVC
فصل 18: امنیت و آسیب پذیری
تمامی ورودیهای برنامه میتوانند جعل شوند!
- HTTP چگونه کار میکند؟
- یک درخواست GET ساده
- یک درخواست POST همراه با کوکی ها
- جعل درخواستهای HTTP
Cross-Site Scripting و HTML Injection
- آشنایی با حملات XSS
- کدگذاری HTML از طریق موتور Razor
- تعیین اعتبار درخواست
- غیر فعال سازی قابلیت تعیین اعتبار درخواست
- کدگذاری مقادیر رشتهای برای JavaScript
Session Hijacking
- محافظت از طریق بررسی آدرس IP درخواست دهنده
- محافظت با تنظیم خصیصهی HttpOnly کوکی ها
حملات Cross Site Request Forgery
- حمله
- دفاع
- جلوگیری از حملات CSRF در ASP.NET MVC
SQL Injection
- حمله
- دفاع با استفاده از کوئری های پارامتردار
- دفاع با استفاده از ORMها
استفادهی امن از ASP.NET MVC
- متدهای اکشن را سهوا در معرض دسترسی قرار ندهید
- اجازه ندهید Model Binding، مقادیر خصیصه های حساس را تغییر دهد
نتیجه گیری
فصل 19: تصدیق هویت و مجوز دسترسی به منابع
استفاده از تصدیق هویت Windows
استفاده از روش تصدیق هویت بر اساس فرمها
- تنظیمات Forms Authenticarion
- مدیریت لاگین
- استفاده از Forms Authentication، بدون کوکی
استفاده از سیستم عضویت، نقشها و پروفایلها
- پیکربندی و استفاده از سیستم عضویت
- استفاده از SqlMembershipProvider با SQL Server نسخهی Express
- آماده سازی دستی SQL Server
- مدیریت سیستم عضویت
- ایجاد یک Provider سفارشی برای سیستم عضویت
- پیکربندی و استفاده از نقشها
- پیکربندی SqlRoleProvider
- مدیریت نقشها
- ایجاد یک Provider سفارشی برای سیستم نقشها
- پیکربندی و استفاده از پروفایلها
- پیکربندی SqlProfileProvider
- پیکربندی، خواندن و نوشتن دادههای پروفایل
- ایجاد پروفایلهای Anonymous
- ایجاد یک Provider سفارشی برای سیستم پروفایل
چرا نباید مجوزهای دسترسی به منبع را بر اساس آدرس آن تعیین کنیم؟
محدودکردن دسترسی با استفاده از آدرسهای IP و دامنهها
- خطرهای محدودکردن دسترسی با استفاده از آدرسهای IP و دامنهها
نتیجه گیری
فصل 20: قرار دادن پروژه بر روی سرور
آماده سازی پروژه برای انتشار
- تشخیص خطا در Viewها، پیش از انتشار پروژه
- پیکربندی کامپایل پویا
- انتشار پروژه بر روی سرور با استراتژی Bin Deployment
- تغییر Web.config، با توجه به حالت کامپایل
- آشنایی با ساختار تبدیل
- قرار دادن تگ های مربوط به پیکربندی
- حذف تگ های مربوط به پیکربندی
- مقداردهی و حذف صفتها
- جایگزینی تگ ها
- استفاده از صفت Locator
- قراردادن پایگاه دادهی پروژه بر روی سرور
آشنایی با مبانی IIS
- آشنایی با مفهوم «وب سایتها»
- آشنایی با مفهوم Virtual Directory
- آشنایی با مفهوم Application Pool
- تنظیمات Binding مختلف برای سایتها
آماده سازی سرور برای انتشار
- سایت خود را باید کجا مستقر کنم؟
انتشار یک پروژه
- انتشار پروژه با کپیکردن فایلهای آن
- انتشار پروژه با قابلیت Deployment Package
- ایجاد Deployment Package
- استفاده از Deployment Package
- انتشار پروژه با قابلیت One-Click Publishing
نتیجه گیری
بخش چهارم: قابلیت های پیشرفته
فصل 21: Bundleها
آماده سازی مثال نمونه
- اضافه کردن بسته های NuGet
- ایجاد مدل و کنترلر
- ایجاد Master Page و View
- رهگیری بارگذاری فایل های جاوا اسکریپت و CSS
- استفاده از Bundleهای Script و Style
- تعریف Bundleها
- اِعمال Bundleها
- بهینه سازی فایل های جاوا اسکریپت و CSS
نتیجه گیری
فصل 22: ASP.NET Web API
Web API چیست؟
- چرا Web Api؟
- تفاوت Web API و WCF
ایجاد یک پروژه ی Web API
- اضافه کردن مدل
- اضافه کردن کنترلر
- فراخوانی Web API از طریق مرورگر
- فراخوانی Web API با استفاده از کتابخانه ی jQuery
- بازیابی فهرستی از محصولات
- بازیابی یک محصول با استفاده از مشخصه ی آن
- اجرای پروژه
آشنایی با مفهوم مسیریابی در Web API
مشاهده ی درخواست ارسالی و پاسخ دریافتی
مدیریت کدهای وضعیت در Web API
- بازیابی رکورد
- ایجاد رکورد
- آپدیت رکورد
- حذف یک رکورد
نتیجه گیری
فصل 23: Web API و برنامه های تک صفحه ای
مفهوم برنامههای تک صفحهای (Single-page Application)
- آمادهسازی پروژه ی نمونه
- ایجاد مدل
- افزودن کتابخانه ها از طریق NuGet
- افزودن کنترلر
- افزودن Master Page و Viewها
- تعیین نقطه ی آغاز پروژه و تست برنامه
- استفاده از Web API
- ایجاد کنترلر Web API
- آزمایش صحت عملکرد کنترلر API
- آشنایی با نحوهی عملکرد کنترلر API
- آشنایی با روش انتخاب متد اکشن مناسب توسط کنترلر API
- تناظر متدهای HTTP به متدهای اکشن
- استفاده از Knockout برای برنامه های تک صفحه ای
- افزودن کتابخانه های جاوا اسکریپت مورد نیاز به Master Page
- پیادهسازی بخش نمایش نوبتهای رزرو شده
- تعریف توابع AJAX
- تعریف مدل
- تعریف انقیادها
- پردازش انقیادها
- تست انقیادها
- بهبود قابلیت حذف
- عادت به استفاده از سینتکس Knockout
- اصلاح مدل
- ایجاد المان های تعاملی
- مدیریت رویدادها
- تست قابلیت ثبت نوبت جدید
- تکمیل پروژه
- ساده سازی کنترلر Home
- مدیریت رویت محتوا
نتیجه گیری
فصل 24: ASP.NET MVC 5.1 & 5.2
نصب ASP.NET MVC 5.1 & 5.2
پشتیبانی از مقادیر شمارشی (Enums) در Viewها
بهبود قابلیت مسیریابی بر مبنای صفت
- یادآوری تعریف قید برای مسیر
- قیدها در مسیریابی بر مبنای صفت
- ایجاد یک قید سفارشی برای مسیریابی
پشتیبانی از کلاس های فریمورک Bootstrap در قالب های ویرایشی (Editor Templates)
پشتیبانی از تعیین اعتبار نامحسوس (Unobtrusive) در سمت کلاینت برای صفت های MinLength و MaxLength
پشتیبانی از کلمه ی کلیدی this در Unobtrusive AJAX
اینترفیس IDirectRouteProvider
گروه بندی گزینه های کنترل های DropDownList و ListBox
بهبود متدهای نمایش خطا
امکان پاس دادن صفت های HTML به متد EditorFor با استفاده از شی Dictionary
نتیجه گیری
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
نحوه ی خرید:
این کتاب را می توانید فقط به صورت آنلاین از طریق سایت انتشارات پندار پارس به آدرس http://www.pendarepars.com/book/ASP-DOT-NET-MVC تهیه بفرمایید.
موفق باشید.