15a1

آموزش پروژه محور Blazor: Full stack Web UI

کدسل برنامه نویسی وب Blazor

لینک کوتاه https://codecell.ir/course/15a1
1٬650٬000تومان
مدرس: سهراب قیصری
تعداد ویدیوها: 52
مدت زمان دوره: 24:27:19
وضعیت دوره: به اتمام رسیده
آخرین بروزرسانی: 1403/02/18
به اشتراک گذاری
نظرات
33
دیگر آموزش های مدرس:
آموزش Blazor Full stack Web UI

آیا Blazor آینده همه تمام  وب است؟ 

گفتن اینکه Blazor آینده تمام وب است، یک جمله جسورانه است. با این حال، بسیاری از اتفاقات مهم با .NET 8 در حال رخ دادن است که مسیر آینده Blazor را تغییر می دهد. با انتشار .NET 8، مجموعه‌ای از ویژگی‌های جدید به Blazor اضافه شد که آن را به یک فریمورک  بسیار مدرن وب و حتی فراتر از آن می‌برد.

توسعه Full-Stack وب با Blazor

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

به جای متعهد شدن به یک مدل میزبانی واحد برای کل برنامه خود، اکنون می توانید بر اساس نیازهای صفحات خاص یا حتی کامپوننت های شخصی، ترکیب و مطابقت دهید. به عنوان مثال، یک صفحه استاتیک ممکن است از رندر سمت سرور برای عملکرد استفاده کند، در حالی که یک داشبورد بلادرنگ ممکن است از حالت WebAssembly برای استفاده از قابلیت‌های client-side استفاده کند. همه چیز در مورد دادن ابزارهایی به توسعه دهندگان برای اتخاذ بهترین تصمیمات معماری برای هر سناریو است.

قدرت و عملکرد سرور ASP.NET Core همراه با ویژگی‌های Blazor و اکوسیستم دات ‌نت، کاندیدای اصلی برای پروژه‌ های جدید برنامه‌های کاربردی وب به صورت Full-Stack است. برخلاف اکثر فریم ورک های وب، Blazor به طور کامل با فریم ورک سرور یکپارچه شده است و از یک سیستم و یک زبان استفاده می کند. از مجموعه ویژگی های اساسی فریمورک Blazor می توان به موارد زیر اشاره کرد:

  • مدل کامپوننت قدرتمند با قابلیت استفاده مجدد
  • مدریریت راحت رویدادهای UI
  • اتصال داده به صورت دو طرفه(Two-way data binding)
  • کامپوننت های داخلی برای فرم ها و اعتبارسنجی
  • نمایش مجموعه داده های بزرگ با استفاده از مجازی سازی
  • ایجاد برنامه های وب قابل نصب  با پشتیبانی از سناریوهای آفلاین
  • تجربه ابزاری غنی با Hot Reload
  • تنها C# بنویسید، در صورت نیاز با جاوا اسکریپت تعامل داشته باشید

Blazor اخیراً با استفاده از نقاط قوت سرور خود و ترکیب آخرین روندهای چارچوب وب، فراتر از اصول اولیه گسترش یافته است.

روندهای فریمورک وب

فناوری وب طی 30 سال گذشته از صفحات HTML ایستا به برنامه های بسیار تعاملی که به صورت real time بروز می شوند، تکامل یافته است. در طول این تکامل، معماری زیربنایی نیز تغییر کرده است.

در حال حاضر ما در حالت گذار به سمت ساده سازی هستیم. یک مثال خاص، علاقه مجدد به رندر HTML سمت سرور است. این را می توان با فریمورک های محبوب جاوا اسکریپت مانند Angular،React،Next.js و Svelte مشاهده کرد. Blazor همچنین میراث سرور خود را در .NET 8 پذیرفته است و برخی از مواردی را نیز برای آینده در نظر گرفته است.

اولین نسخه Blazor شامل تعامل با سرور و کلاینت بود. بعداً برای بهبود عملکرد برنامه های کلاینت، پیش رندر سمت سرور اضافه شد. رندر سمت سرور برای فناوری های وب مانند Blazor مهم است زیرا تجربه کاربری بهتر، زمان بارگذاری سریع تر و بهینه سازی موتور جستجو (SEO) را ارائه می دهد. با توجه به اینکه ASP.NET از سال 2002 به طور موثر از رندر سمت سرور استفاده می کند، روند انتقال چارچوب های وب به رندر سمت سرور بسیار جالب است.

با دات نت 8، Blazor به یک استراتژی رندر سمت سرور پیشرفته تبدیل شده است. این استراتژی به طور پیش فرض از تعاملات قبلی استفاده می کند و در عوض صفحات را به صورت ایستا رندر می کند. رندر استاتیک(Static Server-Side Rendering) نیازی به منابعی مانند Web Assembly (WASM) یا Web Sockets (SignalR) ندارد که باعث سریع تر و کارآمد تر شدن آن می شود. صفحات وب استاتیک برای صفحات بازاریابی، نمایش داده های فقط خواندنی و فرم های پست ساده ایده آل هستند.

Blazor Web App

اکنون Blazor سه حالت تعاملی رندر سمت سرور(Server-Side Rendering یا SSR)، رندر سمت کلاینت (Client-Side Rendering یا CSR) و رندر استاتیک سمت سرور(Static Server-Side Rendering یا Static SSR) را پشتیبانی می کند. همچنین در دات نت 8 Blazor از Auto Rendering که ترکیبی از SSR و CSR است نیز پشتیبانی می کند.

در تصویر زیر توضیحات حالت های رندر در Blazor آمده است:

blazor renders

ناوبری پیشرفته یا Enhanced Navigation

ناوبری پیشرفته توسط هر سه حالت تعاملی در NET 8 استفاده می شود. این ویژگی در Blazor درخواست را قطع می کند و یک درخواست fetch را به جای آن اجرا می کند. سپس محتوای پاسخ توسط Blazor در DOM صفحه ادغام می شود. ناوبری پیشرفته و مدیریت فرم Blazor نیاز به به روز رسانی کامل صفحه را از بین می برد و وضعیت صفحه را بیشتر حفظ می کند. این ویژگی معمولا منجر به بارگذاری سریعتر صفحه می شود و موقعیت اسکرول کاربر را در صفحه حفظ می کند. 

Streaming Rendering در Blazor

به این حالت به عنوان حد وسط بین رندر سرور و کلاینت فکر کنید. بیایید تصورکنیم که صفحه‌ای در برنامه‌های کاربردی داریم که نیاز به برقراری async call برای واکشی برخی داده‌ها داریم - چه از یک پایگاه داده یا یک API دیگر. اگر از حالت SSR استفاده کنیم، به این معنی است که باید قبل از بازگرداندن هر HTML به کلاینت منتظر بمانیم تا آن فراخوانی async تکمیل شود. این می تواند منجر به تاخیر در بارگیری صفحه شود. همچنین، هیچ تعامل دیگری در صفحه ما وجود ندارد، بنابراین استفاده از حالت سرور یا WebAssembly بیش از حد زیاد است. اینجا جایی است که Streaming Rendering وارد می شود.

هنگام استفاده از Streaming Rendering در بلیزر، HTML اولیه صفحه در سمت سرور با placeholder ها برای هر محتوایی که به صورت ناهمزمان واکشی می شود، ایجاد می شود. این پاسخ اولیه سپس به مرورگر فرستاده می شود تا رندر شود. با این حال، اتصال باز نگه داشته می‌شود و وقتی async call کامل شد، HTML باقی‌مانده تولید شده و از طریق اتصال باز موجود به مرورگر ارسال می‌شود. در کلاینت، Blazor محتوای placeholder را با HTML جدید جایگزین می‌کند.

همه چیز در مورد افزایش تجربه کاربر با به حداقل رساندن زمان انتظار است.

Blazor Stream Rendering

RenderMode ها در Blazor

همان طور که در بالا اشاره شد نسخه جدید Blazor در دات نت 8 از 4 حالت رندرینگ پشتیبانی می کند. در ادامه به بررسی آن می پردازیم.

Static Server-Side Rendering یا Static SSR

در این حالت ASP.NET درخواست های دریافتی را به هر Razor Component که دارای یک الگوی مسیر منطبق باشد هدایت می کند. سپس کامپوننت را رندر می کند و HTML حاصل را برمی گرداند.

برای چه سناریوهایی مناسب است؟

رندر استاتیک سمت سرور یا Static SSR به ویژه برای سایت هایی مفید است که نمایش اطلاعات در آنها کلیدی است، مانند صفحات لندینگ، صفحات محصول آنلاین، نمودارهای غیر تعاملی و غیره.

مزایا

رندر استاتیک سمت سرور یا Static SSR ساده و سریع هستند.

ASP.NET درخواست ورودی را مدیریت می کند، کامپوننت را رندر می کند، سپس فورا آن را dispose می کند. اگر به ساخت برنامه های وب با استفاده از Razor Pages یا MVC عادت دارید، با استفاده از کامپوننت های  Razorاین رویکرد بسیار شبیه به نظر می رسد.

مبادلات

از آنجایی که کامپوننت ها به ‌صورت ایستا رندر می‌شوند، نمی‌توانید کنترل‌ کننده‌های رویداد را به رویدادهای DOM متصل کنید، مانند وقتی که کاربر روی یک دکمه کلیک می‌کند.

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

در این حالت، برنامه شما به‌ عنوان یک برنامه تک صفحه‌ای (SPA) اجرا نمی‌شود، بنابراین نمی‌توانید برای هر دوره زمانی وضعیت را در بخش رابط کاربری برنامه خود نگه دارید. اجزای شما فقط تا زمانی که رندر و بازگرداندن HTML برای هر درخواستی طول می کشد زنده هستند.

Interactive Server

این حالت تا حد زیادی مانند Blazor Server همیشه کار می کند و از اتصالات سوکت برای مدیریت ارتباط بین مشتری (مرورگر) و سرور استفاده می کند.

برای چه سناریوهایی مناسب است؟

حالت Interactive Server یا رندرینگ سمت سرور یک راه آسان برای فعال کردن تعامل برای برنامه شما است.

گزارش‌های تعاملی،جداول، اسلایدرها و غیره همگی از طریق Interactive Server قابل مدیریت هستند.

مزایا

گرفتن یک کاپوننت موجود (که به صورت ایستا ارائه می شود) و تغییر آن برای استفاده از حالت Interactive Server آسان است. در بیشتر موارد به سادگی با استفاده از اتربیوت rendermode در آن کامپوننت قابل نجام است.

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

از  .NET 8، مدارهای سرور Blazor به طور خودکار در صورت عدم نیاز قطع می شوند. در این حالت، اگر ما به صفحه های مختلف که حالت Interactive Server ندارند و به صورت ایستا هستند پیمایش کنیم، اتصال سوکت پس از مدت کوتاهی قطع می شود و در نتیجه بار روی سرور کاهش می یابد.

مبادلات

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

این بدان معناست که سرور شما باید بتواند بارگذاری را مدیریت کند و اگر سایت شما محبوب‌ تر شود، به طور بالقوه باید روی منابع سرور بیشتری سرمایه‌گذاری کنید.

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

Interactive WebAssembly

وقتی کاربر صفحه ‌ای را درخواست می‌کند که دارای یک کاپوننت تنظیم شده برای اجرا در حالت Interactive WASM باشد، پاسخ اولیه شامل کل برنامه کلاینت (به علاوه فایل‌های مورد نیاز برای اجرای دات نت در مرورگر) می‌شود. معمولاً این فایل ها ذخیره می شود تا مشتری برای درخواست های بعدی نیازی به دانلود مجدد آن نداشته باشد.

هنگامی که مرورگر برنامه را داشته باشد، می تواند کامپوننت مربوطه (در این مورد بنر) را پیدا کند و آن را همانجا در مرورگر رندر کند.

سپس، زمانی که شخصی به طور مثال روی دکمه‌ ای کلیک می‌کند، رویداد onclick توسط کامپوننتی که در مرورگر اجرا می‌شود مدیریت می ‌شود. دات نت (در مرورگر) رویداد onclick را رهگیری می کند، آن را به کامپوننت مربوطه هدایت می کند، DOM را مجدداً ارائه می دهد و بر اساس آن بروز رسانی را انجام می دهد.

خبر خوب این است که دانلود بزرگ اولیه فقط باید یک بار انجام شود، صرف نظر از اینکه چه تعداد کامپوننت در برنامه شما با استفاده از Interactive WASM اجرا می شود.

برای چه سناریوهایی مناسب است؟

WASM توانایی اجرای در حالت نیمه قطع را دارد. (می تواند در مرورگر بدون اتصال مداوم به سرور اجرا شود).

همچنین برای فعال کردن تعامل در سایت ‌های consumer-facing و سایر سایت‌هایی که تعامل مورد نیاز است خوب است.

مزایا

پیروزی بزرگ با Interactive WASM این است که شما کامپوننت های کاملاً تعاملی را بدون نیاز به منابع سرور در برنامه خود دریافت می کنید. با اجرای این کاپوننت ها در مرورگر، به کاربران خود اجازه می‌دهید تا قدرت پردازش را بر عهده بگیرند.

در جایی که تعامل با یک کامپوننت ارائه شده با استفاده از Interactive Server ممکن است با تأخیر مواجه شود (زیرا ارسال درخواست ها به سرور و برگشت زمان می برد)، در اینجا همه چیز در مرورگر اتفاق می افتد و بنابراین تجربه برای کاربر بسیار روان تر است.

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

مبادلات

برای برخی از انواع برنامه‌ها، دانلود بزرگ اولیه .NET runtimeو برنامه شما می‌تواند چالش‌هایی را ایجاد کند، زیرا بارگذاری اولیه صفحه را به تأخیر می‌ اندازد.

از آنجایی که برنامه شما در مرورگر اجرا می شود، برای مدیریت تعاملات با منابع سرور، باید یک API داشته باشید (شما نمی توانید مستقیماً وارد شوید).

نیاز به ذخیره کامپوننت خود در یک پروژه جداگانه، پیچیدگی هایی را به برنامه شما اضافه می کند. همچنین ممکن است برای ذخیره مدل هایی که بین سرور و کلاینت به اشتراک گذاشته شده اند (به عنوان مثال DTO) به یک پروژه مشترک نیاز داشته باشید.

Auto Mode یا حالت خودکار

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

با این کار، کامپوننت شما می تواند در ابتدا از سرور Blazor استفاده کند (در حالی که فایل های Blazor Web Assembly در پس زمینه دانلود می شوند)، سپس از Blazor WASM می توانید برای درخواست های بعدی استفاده کنید.

اولین درخواست به صفحه ای با یک کاپوننت تنظیم شده برای اجرا در این حالت، از سرور Blazor استفاده می کند (حالت Interactive Server را در بالا ببینید).

در پس زمینه، مرورگر Blazor WebAssembly را دانلود و راه اندازی می کند.

دفعه بعد که کاربر شما از صفحه ای بازدید می کند که در آن کامپوننتی برای اجرا در حالت خودکار تعاملی تنظیم شده است، از Blazor WASM به جای سرور استفاده می کند (به حالت Interactive WebAssembly در بالا مراجعه کنید).

برای چه سناریوهایی مناسب است؟

این حالت برای فعال کردن تعامل برای اکثر انواع سایت ها، مانند صفحات لندیگ، برنامه های consumer-facing مناسب است.

مزایا

مزیت  بزرگ  این حالت در اینجا این است که می توانید از چالش منتظر گذلشتن کاربران خود به انتظار Blazor WASM اجتناب کنید (با استفاده از حالت سرور در ابتدا) اما همچنان از WASM برای بیشتر تعاملات پس از آن استفاده کنید.

نتیجه آن یک بار بسیار سبک تر برای سرور شما و یک UX سریع تر برای کاربران شما است.

مبادلات

هنگام طراحی کامپوننت ها شما برای اجرا در حالت خودکار، پیچیدگی ذاتی بیشتری وجود دارد. شما باید مطمئن شوید که آن ها می توانند هم روی سرور و هم در کلاینت اجرا شوند.

برای اطمینان از اجرا شدن آن در کلاینت، باید از یک Web API بین کامپوننت و منطق بکند خود استفاده کنید. اگر نمی‌خواهید از Web API در حالت سرور استفاده کنید، باید انتزاعی‌هایی ایجاد کنید تا دو روش مختلف تعامل با منابع سرور خود را مدیریت کنید.

سرفصل دوره Blazor Web App

در دوره Blazor Full stack Web UI می آموزید که چگونه هر برنامه ای را به صورت Full Stack از طریق ترکیب قدرت و عملکرد Asp.net Core و Blazor در یک پروژه واحد انجام دهید.

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

در دوره Blazor Full stack Web UI از معماری Vertical Slice و برای طراحی پنل ادمین از کتابخانه قدرتمند MudBlazor استفاده می کنیم. 

نتیجه گیری

با انتشار دات نت 8، Blazor از ارزشمندترین دارایی خود یعنی سرور ASP.NET Core استفاده کرده است. معرفی ویژگی های  مدرن وب، مانند Static Server-Side Rendering یا Static SSR و حالت های تعاملی خودکار یا Auto Rendering، Blazor را به سطح جدیدی ارتقا داده است.

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

اگر یک توسعه دهنده دات نت هستید، Blazor واقعاً «آینده تمام وب» است. اگر توسعه‌ دهنده دات‌ نت نیستید، شاید وقت آن رسیده است که آن را امتحان کنید.

فهرست ویدیوها
مدت زمان دوره: 24:27:19
01

بررسی ساختار و انواع RenderMode ها در Blazor web app

00:36:12
02

بررسی حالت Static SSR، Enhance Navigation و StreamRendering در Blazor

00:26:02
03

بررسی EditFrom در Blazor net8

00:24:43
04

StreamRendering در Blazor

00:26:00
05

آماده سازی و ایجاد ساختار پروژه فروشگاهی با Blazor net8

00:38:30
06

بخش بندی پروژه و ایجاد Layout اصلی فروشگاه

00:24:32
07

پیاده سازی صفحه Login و ایجاد کامپوننت انتخاب Layout

01:04:01
08

بررسی HttpContext، AntiForgeryToken و پیاده سازی عملیات Logout با استفاده از MinimalAPI در Blazor

00:35:30
09

بررسی Authorization و ایجاد صفحات AccessDenied، NotFound و AdminLayout

00:28:10
10

ایجاد AdminLayout با استفاده از MudBlazor و RTL کردن آن

00:26:35
11

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

00:33:19
12

نحوه شخصی سازی Typography، کار با Theme ها و Localization در MudBlazor

00:16:14
13

ایجاد دسته بندی کالا با استفاده از MudBlazor Dialog

01:00:55
14

ویرایش دسته بندی کالا و نحوه استفاده از DbContextFactory در Blazor

00:20:17
15

حذف دسته بندی کالا

00:11:27
16

نمایش لیست کالاها در MudGrid

00:29:50
17

نحوه ایجاد، ویرایش و حذف کالا در MudGrid با استفاده از MudDialog

00:23:31
18

نحوه استفاده از Rich Text Editor در Blazor

00:31:13
19

نحوه ایجاد Generic Validator برای فرم های MudBlazor

00:11:34
20

نحوه ایجاد Custom Filter در MudGrid

00:20:10
21

نمایش محصولات در سایت

00:44:00
22

مهارت در Blazor- ایجاد کامپوننت Tag Input بدون جاوااسکریپت

00:30:36
23

نحوه فیلتر کردن کالاها بر اساس دسته بندی کالا

00:39:07
24

نحوه فیلتر کردن کالاها بر اساس کالای موجود

00:23:13
25

نحوه فیلتر کردن کالاها بر اساس قیمت کالا

00:36:07
26

نحوه صفحه بندی کالاها در Blazor

00:18:55
27

پیاده سازی سبد خرید با استفاده از SectionOutlet، SessionStorage و CascadingValue ها در Blazor

00:39:36
28

بررسی و پیاده سازی Authentication در Blazor Auto Render Mode

00:44:05
29

پیاده سازی نمایش سبد خرید در Blazor

00:29:29
30

ایجاد کامپوننت Toast با استفاده از Modal بوت استرپ و بدون جاوااسکریپت در Blazor

00:20:58
31

نحوه تبدیل سبد خرید به سفارش

00:38:10
32

مهارت در Blazor- نحوه ایجاد کامپوننت پیشرفته SelectList

00:30:36
33

نحوه مدیریت سبد خرید سمت سرور

00:25:11
34

ایجاد صفحه مدیریت سفارشات

00:30:00
35

آشنایی با نحوه Unit Testing در Blazor

00:19:44
36

نمایش صفحه محصول به صورت Static SSR

00:28:11
37

مهارت در Blazor- ایجاد کامپوننت OwlCarousel

00:18:49
38

ایجاد کامپوننت کالاهای پیشنهادی با استفاده از کامپوننت OwlCarousel

00:18:50
39

ایجاد کامپوننت کالاهای ویژه

00:15:53
40

مدیریت بنرها

00:26:58
41

ایجاد کامپوننت نمایش بنرها در صفحه لندینگ فروشگاه

00:16:18
42

نحوه لاگین کاربر از طریق شماره موبایل و ورود به فروشگاه

00:32:18
43

پیاده سازی تخفیف کالا- قسمت اول

00:28:00
44

پیاده سازی تخفیف کالا- قسمت دوم

00:25:56
45

ایجاد داشبورد مشتریان

00:17:17
46

مدیریت سفارشات در داشبورد مشتریان

00:30:16
47

ایجاد کامپوننت کالاهای مشابه

00:37:14
48

ایجاد صفحه تماس با ما با استفاده از Auto Rendering

00:14:02
49

ایجاد فرم تماس با ما و تنظیمات Auto Rendering

00:39:24
50

افزودن مدیریت تماس با ما به پنل ادمین

00:17:45
51

رفع مشکل پنل ادمین در لود اولیه

00:12:44
52

ایجاد کامپوننت اختصاصی ImageInput

00:28:52

پرسش های متداول

عمده تغییرات Blazor در دات نت 8 Enhanced navigation یا ناوبری پیشرفته، مدیریت فرم ها، رندر خودکار و رندر استاتیک سمت سرور (Static SSR) است. در Static SSR معمولاً هر زمان که کاربر به صفحه جدیدی هدایت می‌شود یا فرمی را ارسال می‌کند، به‌روزرسانی کامل صفحه را انجام می‌دهد. در دات نت 8، Blazor می تواند با رهگیری درخواست و انجام یک درخواست واکشی، ناوبری صفحه و مدیریت فرم را بهبود بخشد.

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

Response Caching در ASP.NET Core

Response Caching یک مکانیزم ذخیره سازی پاسخ سرور توسط مرورگر یا سایر کلاینت ها است. با استفاده از Response Caching در Asp.net Core می توانیم عملکرد و کارایی سیستم را بالا ببریم.

303 0 1402/10/22

Output Caching در ASP.NET Core 8.0

Output Caching یک ویژگی جدید است که از زمان .NET 7 معرفی شده است. این ویژگی به ما این امکان را می دهد که به راحتی یک کش پاسخ برای Web API خود بدون پیاده سازی IMemoryCache راه اندازی کنیم.

353 0 1402/10/14

الگوی طراحی زنجیره مسئولیت در سی شارپ

الگوی زنجیره مسئولیت یا Chain of Responsibility Design Pattern یک الگوی طراحی رفتاری(behavioral design pattern) است که اجازه می‌دهد یک درخواست در امتداد زنجیره‌ای از کنترل‌کننده‌های بالقوه ارسال شود تا زمانی که درخواست مناسب برای پردازش آن را پیدا کند.

336 2 1402/10/01

ViewComponent در ASP.NET Core

در ASP.NET Core با استفاده از ViewComponent ها می توان اجزای ماژولار، قابل استفاده مجدد، قابل نگهداری و مقیاس پذیر برای ساخت برنامه های کاربردی وب ایجاد کرد. در این مقاله به نحوه ایجاد و فراخوانی ViewComponent در Asp.net core پرداخته ایم.

795 2 1402/05/15

تطبیق الگو در NET 7: ساده سازی تجزیه و تحلیل داده ها

تطبیق الگو یا Pattern Matching در net7 یک تکنیک قدرتمند برای تجزیه و تحلیل و دستکاری داده ها بر اساس ساختار آن ها است. تطبیق الگو یا Pattern Matching به توسعه دهندگان اجازه می دهد تا مقادیر را با یک الگوی خاص مطابقت دهند و اقدامات مربوطه را انجام دهند.

479 1 1402/04/05

تزریق وابستگی در ASP.NET Core

تزریق وابستگی (DI) یک الگوی طراحی نرم افزاری است که امکان ایجاد برنامه های کاربردی و ماژولار را فراهم می کند.. در .NET Core تزریق وابستگی یا Dependency injection یک ویژگی مهم است که می تواند برای ساده سازی توسعه برنامه، بهبود تست پذیری و کاهش پیچیدگی کد مورد استفاده قرار گیرد.

1٬161 1 1402/02/04

ضروری ترین کتابخانه های NuGet برای ASP.NET Core

در این مقاله مهمترین،ضروری ترین و پرکاربردترین کتابخانه های NuGet که هر توسعه‌ دهنده‌ ASP.NET Core باید برای توسعه بهتر و کاهش زمان مورد نیاز برای برنامه ‌های خود از آن استفاده کنند را مورد بررسی قرار داده ایم.

1٬113 1 1401/12/29

الگوی طراحی Factory در سی شارپ

الگوهای طراحی یکی از مهمترین جنبه های طراحی و معماری نرم افزار است. Factory Method یک الگوی طراحی ایجادی است که یک رابط برای ایجاد اشیاء در یک سوپر کلاس فراهم می‌کند. ما در این مقاله الگوی Factory Method Design در سی شارپ را بررسی می کنیم.

1٬139 1 1401/10/28

مقایسه List و Array در سی شارپ

آرایه و لیست در سی شارپ هر دو به عنوان مجموعه ای از مقادیر عمل می کنند، اما در نحوه ذخیره محتوای خود در حافظه و نحوه دسترسی به آنها متفاوت هستند. در این مقاله Benchmark و کارایی List<T> با سایز داینامیک، List<T> با سایز ثابت و Array ها را بررسی می کنیم.

1٬656 2 1401/09/01

LinkedList در سی شارپ

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

1٬592 0 1401/08/13

Garbage Collection در دات نت

به طور کلی، Garbage Collection (GC) یا جمع آوری زباله در .Net چیزی نیست جز به دست آوردن مجدد حافظه اختصاص داده شده به اشیایی که در حال حاضر در هیچ بخشی از برنامه ما استفاده نمی شوند. ما در این مقاله Garbage Collection را در سی شارپ بررسی خواهیم کرد.

2٬298 3 1401/03/30

.NET Core چیست؟

.Net (با تلفظ «دات نت») یک چارچوب نرم افزاری کامپیوتری مدیریت شده رایگان و منبع باز برای سیستم عامل های ویندوز، لینوکس و macOS است. این پروژه در درجه اول توسط کارمندان مایکروسافت از طریق دات نت توسعه یافته و تحت مجوز MIT منتشر شده است.

2٬082 2 1401/03/16

پشته(Stack) در سی شارپ

پشته یا Stack در سی شارپ یک نوع خطی از ساختار داده است که قادر به ذخیره اشیاء است. پشته یک ساختار داده LIFO یا Last-In-First-Out است، به این معنی که آخرین موردی که در پشته قرار می گیرد اولین موردی است که از پشته خارج می شود.

1٬776 0 1401/03/09

صف (Queue) در سی شارپ

صف (Queue) در سی شارپ یک نوع خطی از ساختار داده است که قادر به ذخیره اشیاء است. Queue یک ساختار داده first-in-first-out یا FIFO است که به این معنی است که اولین مورد اضافه شده به صف اولین موردی است که حذف می شود.

1٬780 0 1401/02/30

تفاوت Hashtable و Dictionary در سی شارپ

در سی شارپ از Hashtable و Dictionary می توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. با این تفاوت که Hashtable و Dictionary عناصر را به عنوان جفت Key/Value ذخیره می کنند.در این مقاله به تفاوت های Hashtable و Dictionary پرداخته شده است.

1٬511 1 1401/02/23

Dictionary در سی شارپ

در سی شارپ از دیکشنری ها (Dictionary) می‌توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. تفاوت اصلی این است که یک Dictionary می تواند عناصر را به عنوان جفت Key/Value ذخیره کند.Key ها باید منحصر به فرد و نمی توانند null باشند. Value ها می توانند تکراری یا null باشند.

1٬835 3 1401/02/17

Hashtable در سی شارپ

از Hashtable می‌توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. تفاوت اصلی این است که یک Hashtable می تواند عناصر را به عنوان جفت Key/Value به عنوان جایگزینی برای استفاده از Index ذخیره کند.

1٬475 5 1401/02/14

Redirect درخواست (ریدایرکت) در asp.net core

در برنامه های ASP.NET Core برای تغییر مسیر(ریدایرکت) و Redirect به یک URL خاص روش های مختلفی وجود دارد. در این مقاله با این تکنیک ها و کدهای مورد نیاز برای تغییر مسیر یک درخواست در ASP.NET Core آشنا می شویم.

2٬087 5 1401/02/12

تبدیل enum به لیست انتخابی در asp.net core

در این آموزش ما بوسیله Reflection ها در سی شارپ و asp.net core یک enum را به لیست انتخابی یا SelectListItem تبدیل خواهیم کرد و بوسیله تگ select در بوت استرپ 5 نمایش می دهیم.

1٬500 3 1401/02/03

نحوه ارسال ایمیل در asp و c#

امروزه ارسال ایمیل به امری ضروری در پروژه های وب تبدیل شده است.از ارسال ایمیل در asp می توان در بخش های تایید حساب کاربری،بازیابی رمز عبور،ایمیل مارکتینگ،ارسال خبرنامه و ... استفاده نمود.در این آموزش نحوه ارسال ایمیل در asp core و سی شارپ پیاده سازی گردیده است.

2٬118 5 1401/02/03
نظرات

برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید