ورود

View Full Version : کتاب به زبان پارسی: مرجع کامل ASP.NET MVC 5.2



Behrouz_Rad
سه شنبه 11 شهریور 1393, 10:46 صبح
با تشکر فراوان از استقبال بی نظیر و محبت فراوان دوستان نسبت به بنده و این کتاب در نسخه ی قبلی (ASP.NET MVC 4.0)، در ویرایش جدید سعی شده است که تمامی انتقادات و پیشنهادات دوستان لحاظ شود.

در این نسخه، تمامی مطالب و تصاویر با توجه به Visual Studio 2013 بازنویسی و بسیاری مطالب جدید تا کوچکترین امکانات اضافه شده به ASP.NET MVC تا نسخه ی 5.2 که در حال حاضر آخرین نسخه از ASP.NET MVC است پوشش داده شده است.
امید که مورد رضایت دوستان قرار بگیرد.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


نام کتاب: مرجع کامل ASP.NET MVC 5.2
ترجمه و تالیف: بهروز راد
ناشر: پندار پارس
نوبت چاپ: اول، شهریور 1393
تعداد صفحات: 720
قیمت: 37800 تومان

مطالعه ی قسمتی از کتاب... (http://www.pendarepars.com/book/pdf/108)

122997


در این کتاب می خوانید:

بخش نخست: معرفی 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 تهیه بفرمایید.

موفق باشید.