کتابی که در دست دارید، ویرایش ششم کتاب Pro ASP.NET Core MVC است. در جلد نخست کتاب، در فصلهای 1 تا 3 کتاب در مورد تکامل برنامهنویسی سمت سرور مایکروسافت، از پروژههای وب ASP.NET تا چرخش مثبتی که به سمت پروژههای MVC ایجاد شد و در پایان منجر به پروژههای Core MVC شد، توضیح جامعی داده شد. همچنین، با تشریح مفاهیم پایهی MVC، به پیادهسازی یک پروژهی کامل پرداختیم. خوانندگانی که از پیش با برنامهنویسی فرمهای وب آشنایی داشتهاند، با مشکلات این پروژهها و دردسرهای آنها در پیادهسازی پروژههای بزرگ و سازمانی، دست و پنجه نرم کردهاند.
در جلد دوم (این کتاب)، به تشریح جزئیات مباحث گفته شده در جلد یکم و تحکیم مبانی تئوریک آن پرداخته شده است. هر فصل، با پیادهسازی یک پروژه، به تشریح مباحث آن فصل میپردازد که این، موجب کاربردی شدن کتاب برای خوانندهای که قصد فراگیری کامل MVC را دارد، خواهد شود.
خوشبختانه برای یادگیری معماری جدید Core MVC با خواندن این کتاب، نیاز به آشنایی با واسطهای برنامهنویسی قدیمی وب، که به آنها اشاره شد ندارید. به عنوان تنها پیشنیاز لازم، آشنایی با مفاهیم وب به همراه توانایی کار با HTML و CSS، زبان C# به همراه Entity Framework و نوشتار کوئریهای LINQ، کافی است. معنی این گفته این است که میتوانید برنامهنویسی سمت سرور وب را از ابتدا با همین کتاب شروع کنید.
نظرات کاربران
ثبت نظر تنها براي اعضا میسر است. در صورتی که مایل به ثبت نظر هستید ابتدا برای خود حساب کاربری ایجاد کنید و اگر قبلاً حساب کاربری دارید لطفاً ابتدا وارد سیستم شوید.
فصل سیزدهم؛ پیکربندی پروژهها 305
1-13 آمادهسازی پروژه 308
2-13 فایلهای پیکربندی JSON 309
1-2-13 پیکربندی سالوشن 311
2-2-13 پیکربندی پروژه 313
1-2-2-13 تنظیمات بخش dependencies 314
2-2-2-13 تنظیمات بخش tools 315
3-13 آشنایی با کلاس Program 316
4-13 آشنایی با کلاس Startup 318
1-4-13 کارکرد کلاس Startup 319
2-4-13 آشنایی با سرویسهای ASP.NET 321
1-2-4-13 آشنایی با سرویسهای MVC 324
3-4-13 آشنایی با میانافزارهای MVC 324
1-3-4-13 میانافزار تولید محتوا 325
2-3-4-13 کاربرد سرویس در میانافزار 327
3-3-4-13 میانافزار میانبر 328
4-3-4-13 میانافزار ویرایش درخواست 330
5-3-4-13 میانافزار ویرایش پاسخ 333
4-4-13 چگونگی فراخوانی متد Configure() 335
1-4-4-13 استفاده از Application Builder 335
2-4-4-13 استفاده از اطلاعات میزیانی 337
3-4-4-13 استفاده از Logging factory 340
1-3-4-4-13 ایجاد سیستم لاگ شخصی 343
5-4-13 سایر میانافزارهای مهم 344
1-5-4-13 فعال کردن مدیریت خطاها 344
2-5-4-13 فعال کردن لینک مرورگر 347
3-5-4-13 فعال کردن محتوای استاتیک 349
6-4-13 کاربرد دادههای پیکربندی 350
1-6-4-13 خواندن دادههای پیکربندی 351
2-6-4-13 استفاده دادههای پیکربندی 354
3-6-4-13 دادههای پیکربندی در میانافزارهای پیشساخته 355
5-13 پیکربندی سرویسهای MVC 356
6-13 پیکربندیهای پیچیده 358
1-6-13 ایجاد فایلهای خارجی پیکربندی 358
2-6-13 ایجاد متدهای پیکربندی 359
3-6-13 ایجاد کلاسهای پیکربندی 361
فصل چهاردهم؛ مسیریابی در MVC 365
1-14 آمادهسازی پروژه 366
1-1-14 کلاس مدل 367
2-1-14 ایجاد کنترلر 368
3-1-14 ایجاد نما 369
2-14 آشنایی با الگوهای آدرس 371
1-2-14 ایجاد و ثبت یک مسیر 372
3-14 تعریف مقادیر پیشفرض 374
4-14 بخشهای استاتیک آدرس 377
5-14 تعریف متغیرهای شخصی 382
1-5-14 متغیرهای شخصی در متد اکشن 385
2-5-14 تعریف بخش دلخواه در مسیر 386
3-5-14 تعریف مسیرهایی با تعداد بخشهای متغیر 388
6-14 محدود کردن مسیرها 390
1-6-14 محدودسازی مسیر با عبارت دلخواه 394
2-6-14 کاربرد قیود نوع و مقدار 396
3-6-14 ترکیب قیدها 397
4-6-14 تعریف قیدهای شخصی 398
7-14 مسیریابی به وسیلهی صفات 401
1-7-14 کاربرد مسیردهی صفات 402
2-7-14 تغییر نام متد اکشن 403
3-7-14 مسیرهای پیچیدهتر 404
4-7-14 قیدهای مسیر 406
فصل پانزدهم؛ مسیریابی پیشرفته 407
1-15 آمادهسازی پروژه فصل پانزدهم 407
2-15 آدرسهای خروجی در نماها 408
1-2-15 دسترسی به کنترلرهای دیگر 411
2-2-15 ارسال مقادیر به متغیرهای مسیر 413
3-2-15 ایجاد آدرسهای کامل 416
4-2-15 ایجاد آدرس از مسیر مشخص 417
3-15 ایجاد مستقیم آدرس، نه لینک 418
1-3-15 ایجاد آدرس در متدهای اکشن 419
4-15 شخصی کردن سیستم مسیریابی 420
1-4-15 تغییر پیکربندی سیستم مسیریابی 420
5-15 ایجاد کلاسی برای مسیریابی 422
1-5-15 مدیریت آدرسهای ورودی 423
1-1-5-15 کاربرد کلاس شخصی مسیر 426
2-1-5-15 آدرسدهی کنترلرها 427
2-5-15 ایجاد آدرسهای خروجی 431
6-15 کار با ناحیهها 434
1-6-15 ایجاد یک ناحیه 434
2-6-15 ایجاد مسیر برای ناحیه 435
3-6-15 کنترلرها و نماهای ناحیه 436
4-6-15 ایجاد لینک به اکشن در ناحیه 439
فصل شانزدهم؛ کنترلرها و متدهای اکشن 441
1-16 ایجاد پروژهی فصل 442
1-1-16 آماده کردن نما 443
2-16 بررسی کنترلرها 446
1-2-16 ایجاد کنترلر 447
1-1-2-16 ایجاد کنترلرهای POCO 447
2-1-2-16 کاربرد کلاس پایهی Controller 449
3-16 دریافت دادههای context 450
1-3-16 استخراج دادهها از اشیاء context 451
2-3-16 دادههای context در کنترلر POCO 453
3-3-16 پارامترهای متد اکشن 456
4-16 تولید پاسخ 458
1-4-16 ایجاد پاسخ با شئ context 458
2-4-16 کار با Action Result 459
3-4-16 ایجاد پاسخ HTML 461
1-3-4-16 فرآیند جستوجوی نما 463
2-3-4-16 ارسال دادهها از اکشن به نما 464
3-3-4-16 استفاده از ViewBag 467
4-4-16 هدایت مشتری به آدرس مشخص 468
1-4-4-16 هدایت صریح 469
2-4-4-16 هدایت به آدرسی در سیستم مسیریابی 470
3-4-4-16 هدایت مشتری به متد اکشن 471
4-4-4-16 الگوی Post/Redirect/Get 472
5-4-4-16 استفاده از TempData 473
5-16 انواع محتوای خروجی متد اکشن 474
1-5-16 ایجاد پاسخ JSON 475
2-5-16 ایجاد پاسخ توسط اشیاء 476
6-16 خروجی فایل به عنوان پاسخ 477
7-16 خطاها و کدهای HTTP به عنوان پاسخ 479
1-7-16 برگشت دادن کد وضعیت مشخص 480
فصل هفدهم؛ تزریق وابستگی 481
1-17 آمادهسازی پروژهی فصل 17 482
1-1-17 ایجاد مدل و مخزن دادهها 483
2-1-17 ایجاد نما و کنترلر 485
3-1-17 ایجاد پروژهی آزمایش واحد 487
2-17 مرتبط کردن اجزای پروژه 488
1-2-17 عناصر وابسته 488
1-1-2-17 جداسازی عناصر وابسته 490
2-1-2-17 کاربرد کلاس تایپ بروکر 491
3-17 معرفی تزریق وابستگی در ASP.NET 495
1-3-17 آمادهسازی پروژه برای تزریق وابستگی 495
2-3-17 پیکربندی ارئه دهندهی سرویس 497
3-3-17 آزمایش واحد کنترلر 499
4-3-17 وابستگی زنجیری 500
5-3-17 تزریق وابستگی برای کلاسهای C# 503
4-17 چرخهی عمر سرویس 505
1-4-17 چرخهی عمر گذرا 506
2-4-17 متد AddScoped() 511
3-4-17 متد AddSingleton() 512
5-17 وابستگی در متد اکشن 513
6-17 تزریق خصوصیت 514
7-17 درخواست شئ مورد وابستگی 515
فصل هجدهم؛ فیلترها 517
1-18 آماده کردن پروژهی فصل 518
1-1-18 فعال کردن SSL 519
2-1-18 ایجاد کنترلر و نما 520
2-18 استفاده از فیلترها 522
3-18 فهم کارکرد فیلترها 525
1-3-18 دادههای Context 526
4-18 استفاده از فیلترهای اعتبارسنجی 527
1-4-18 ایجاد فیلتر اعتبارسنجی 527
5-18 فیلترهای اکشن 529
1-5-18 ایجاد فیلتر اکشن 530
2-5-18 فیلتر اکشن غیرسنکرون 532
6-18 کاربرد فیلتر Result 533
1-6-18 ایجاد فیلتری از نوع Result 534
2-6-18 فیلتر Result غیرسنکرون 536
3-6-18 فیلترهای ترکیبی 537
7-18 فیلترهای Exception 540
1-7-18 ایجاد فیلتری از نوع Exception 541
8-18 تزریق وابستگی و فیلترها 543
1-8-18 روش مدیریت context 543
2-8-18 مدیریت چرخهی عمر فیلتر 548
9-18 فیلترهای سراسری 551
10-18 ترتیب اجرای فیلترها 553
1-10-18 تغییر ترتیب اجرای فیلترها 556
فصل نوزدهم؛ کنترلرهای API 557
1-19 ایجاد پروژهی فصل 19 557
1-1-19 ایجاد کنترلر و نما 559
2-1-19 پیکربندی پروژه 562
1-2-1-19 تنظیم درگاه HTTP 563
2-19 نقش کنترلرهای RESTful 564
3-19 معرفی REST و کنترلرهای API 566
1-3-19 ایجاد کنترلر API 567
1-1-3-19 تعریف مسیر 568
2-1-3-19 تعریف وابستگیها 568
3-1-3-19 تعریف متدهای اکشن 569
4-1-3-19 تعریف خروجی متدهای اکشن 570
2-3-19 کنترلرهای API در مرورگر 570
4-19 فرمت محتوا 573
1-4-19 سیاست قالبگذاری پیشفرض 574
2-4-19 شناسایی قالب 575
1-2-4-19 فعال کردن قالب XML 576
3-4-19 تعیین قالب پاسخ در اکشن 578
4-4-19 قالب پاسخ در مسیر و Query String 579
5-4-19 گفتگوی محتوا 581
6-4-19 دریافت چندین قالب مختلف 583
فصل بیستم؛ نماها 585
1-20 آماده کردن پروژهی فصل 586
2-20 ایجاد موتور نمای شخصی 588
1-2-20 ایجاد نمونهای از IView 590
2-2-20 ایجاد نمونهی IViewEngine 591
3-2-20 ثبت موتور نمای شخصی 592
4-2-20 آزمایش موتور نما 593
3-20 موتور نمای Razor 595
1-3-20 ایجاد پروژه 596
2-3-20 کارکرد نماهای Razor 598
1-2-3-20 نام کلاس 599
2-2-3-20 آشنایی با کلاس پایه 599
3-2-3-20 نمایش نما 601
4-20 محتوای پویای نمای Razor 602
1-4-20 کاربرد بخشها 603
1-1-4-20 آزمایش وجود بخش در نما 606
2-1-4-20 نمایش انتخابی بخشها 607
2-4-20 نماهای جزئی 609
1-2-4-20 ایجاد نمای جزئی 609
2-2-4-20 استفاده از نمای جزئی 610
3-2-4-20 نمای جزئی مقید شده به مدل 611
3-4-20 محتوای JSON در نماها 612
5-20 پیکربندی Razor 614
6-20 انتخاب نما برای درخواست 617
فصل بیست و یکم؛ کامپوننتهای نما 621
1-21 آماده کردن پروژهی فصل 621
1-1-21 ایجاد مدل و مخزن دادهها 623
2-1-21 ایجاد کنترلر و نماها 625
3-1-21 پیکربندی پروژه 628
2-21 آشنایی با کامپوننتهای نما 629
3-21 ایجاد کامپوننت 630
1-3-21 ایجاد کامپوننت POCO 630
2-3-21 کلاس پایهی ViewComponent 632
3-3-21 آشنایی با نوع ViewComponentResult 634
1-3-3-21 ایجاد نمای جزئی 634
2-3-3-21 خروجی HTML 637
4-3-21 دریافت دادههای context 639
1-4-3-21 دادههای context از نمای اصلی 642
5-3-21 کامپوننتهای غیرسنکرون 645
4-21 ایجاد فایلهای ترکیبی کنترلر/کامپوننت 647
1-4-21 ایجاد نماهای ترکیبی 649
2-4-21 کاربرد کلاس ترکیبی 650
فصل بیست و دوم؛ تگهای کمکی 653
1-22 آمادهسازی پروژهی فصل 22 653
1-1-22 ایجاد مدل و مخزن دادهها 655
2-1-22 ایجاد نما و کنترلر 656
3-1-22 پیکربندی پروژه 658
2-22 ایجاد یک تگ کمکی 660
1-2-22 ایجاد کلاس تگ کمکی 660
1-1-2-22 دریافت اطلاعات عنصر HTML 661
2-1-2-22 تولید خروجی 662
2-2-22 ثبت تگ کمکی 663
3-2-22 کاربرد تگ کمکی 663
4-2-22 مدیریت ناحیهی کارکرد تگ کمکی 664
1-4-2-22 محدود کردن ناحیهی دید تگ کمکی 665
2-4-2-22 گسترش ناحیهی کارکرد تگ کمکی 667
3-22 ویژگیهای پیشرفته تگهای کمکی 669
1-3-22 ایجاد عناصر شخصی HTML 669
2-3-22 جایگذاری تگ کمکی در محل مشخص 671
3-3-22 دسترسی به اطلاعات درخواست و مدل نما 675
4-3-22 کار با مدل نما 678
5-3-22 اشتراک دادهها بین تگهای کمکی 681
6-3-22 جلوگیری از نمایش عناصر HTML 683
فصل بیست و سوم؛ تگهای کمکی فرم 685
1-23 آمادهسازی پروژهی فصل 685
1-1-23 تغییر وضعیت ثبت تگهای کمکی 685
2-1-23 تغییر نماها و Layout 686
2-23 کار با عناصر فرم 688
1-2-23 تعیین کنترلر و اکشن هدف 688
2-2-23 ویژگی anti-forgery 689
3-23 کار با عناصر input 691
1-3-23 پیکربندی عنصر input 692
2-3-23 فرمت مقادیر دادهها 694
4-23 عنصر label 698
5-23 کار با عناصر select 700
1-5-23 منبع دادههای select 702
1-1-5-23 مدل به عنوان منبع عناصر option 703
6-23 کار با عنصر TextArea 708
فصل بیست و چهارم؛ مقیدسازی مدل 711
1-24 آمادهسازی پروژهی فصل 711
1-1-24 ایجاد مدل و مخزن دادهها 712
2-1-24 ایجاد کنترلر و نما 714
3-1-24 پیکربندی پروژه 716
2-24 آشنایی به مقیدسازی مدل 717
1-2-24 مقادیر پیشفرض در مقیدسازی مدل 719
2-2-24 مقیدسازی انواع ساده 721
3-2-24 مقیدسازی انواع پیچیده 722
1-3-2-24 تعریف پیشوندهای شخصی 728
2-3-2-24 مقیدسازی خصوصیات انتخاب شده 731
4-2-24 مقیدسازی آرایه و کلکسیون 733
1-4-2-24 مقیدسازی آرایهها 734
2-4-2-24 مقیدسازی کلکسیونها 736
3-4-2-24 کلکسیونی از انواع پیچیده 737
3-24 منبعی برای مقیدسازی مدل 741
1-3-24 انتخاب منبع دادهی استاندارد 742
2-3-24 هدر درخواست به عنوان منبع مقیدسازی 743
3-3-24 بدنهی درخواست به عنوان منبع مقیدسازی 747
تصحیحات
ثبت تصحيح تنها براي اعضا میسر است. در صورتی که مایل به ثبت تصحيح هستید ابتدا برای خود حساب کاربری ایجاد کنید و اگر قبلاً حساب کاربری دارید لطفاً ابتدا وارد سیستم شوید.