<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>پست‌های انتشارات آموزش برنامه نویسی و طراحی وب</title>
        <link>https://virgool.io/CodeCell/feed</link>
        <description>کدسل یک پلتفرم آموزشی در حوزه برنامه نویسی و طراحی وب است.هدف کدسل بالا بردن سطح علمی علاقه مندان به این حوزه است. https://codecell.ir</description>
        <language>fa</language>
        <pubDate>2026-04-15 04:34:57</pubDate>
        <image>
            <url>https://files.virgool.io/upload/publication/pfpd8daybzur/q9lpwa.png</url>
            <title>آموزش برنامه نویسی و طراحی وب</title>
            <link>https://virgool.io/CodeCell</link>
        </image>

                    <item>
                <title>آموزش Web API در Asp.net Core 7</title>
                <link>https://virgool.io/CodeCell/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-web-api-%D8%AF%D8%B1-aspnet-core-7-fqh7llhc2aou</link>
                <description>آموزش Web API در Asp.net Core 7Web API چیست؟اولین سوالی که به ذهن می رسد این است که &quot;API چیست&quot;؟API مخفف Application Programming Interface است. API یک عامل نرم افزاری میانی است که به دو یا چند برنامه اجازه می دهد تا با یکدیگر تعامل داشته باشند.حال سوال بعدی این است: “Web API چیست؟”به زبان ساده می توان گفت که web API یک رابط برنامه نویسی کاربردی برای یک برنامه وب یا وب سرور است و از پروتکل HTTP برای برقراری ارتباط بین کلاینت و وب سایت ها برای دسترسی به داده ها استفاده می کند.Asp.net core web API یک web API چند پلتفرمی است.چرا Web API مورد نیاز است؟کاربران می خواهد از دستگاه های مختلف مانند موبایل، مرورگر، دستگاه های گوگل و غیره به برنامه دسترسی داشته باشد. در این صورت Web API می تواند مفید باشد.دستگاه های مختلف به Web API درخواست می دهند و Web API در قالب JSON پاسخ خواهد داد. اکثر دستگاه ها قادر به درک خروجی JSON هستند.ASP.NET Core Web API چیست؟ASP.NET Core Web API یک چارچوب قابل توسعه برای ساخت سرویس های مبتنی بر HTTP است که در پلتفرم های مختلف مانند وب، ویندوز، موبایل و غیره قابل دسترس است. Asp.net Core Web API کمابیش مانند برنامه وب ASP.NET Core MVC عمل می کند  با این تفاوت که به جای html،  داده ها را به عنوان پاسخ ارسال می کند. Asp.net Core Web API مانند یک وب سرویس یا سرویس WCF است اما فقط از پروتکل HTTP پشتیبانی می کند.تفاوت بین API و REST API چیست؟همه API ها REST نیستند، اما همه سرویس های REST،  API هستند. بنابراین بین API و REST API تفاوت های وجود دارد:API مخفف (Application Program Interface) و REST مخفف (Representational State Transfer) است.وظیفه API اتصال یک برنامه به برنامه دیگر است. می توان گفت که یک رابط بین دو برنامه است. از طرف دیگر، REST API با استفاده از پروتکل های URL و HTTP ارتباط بین کلاینت و سرور را ایجاد می کند.API های REST به طور گسترده برای تبادل داده بین سیستم ها یا برنامه ها استفاده می شوند. API خدماتی را برای برقراری ارتباط با سایر خدمات بدون نیاز به دانستن نحوه پیاده سازی آنها ارائه می دهد.API مجموعه ای از توابع و رویه هایی است که به یک برنامه اجازه می دهد تا به ویژگی های برنامه دیگر دسترسی پیدا کند.API از عملیات CRUD (Create Read Update Delete) پشتیبانی می کند زیرا با HTTP verb های  GET، PUT، POST و DELETE کار می کند.REST API یک سرویس وب است که فقط از پروتکل HTTP پشتیبانی می کند در حالی که API از پروتکل HTTP/HTTPS پشتیبانی می کند.وب سرویس از XML پشتیبانی می کند در حالی که API از XML و JSON پشتیبانی می کند.تفاوت gRPC و REST چیست؟سرویس های REST از یک مدل درخواست و پاسخ ارتباطی استفاده می کنند که معمولاً بر روی HTTP 1.1 ساخته شده است، اما gRPC  چارچوبی برای پیاده سازی API های RPC از طریق HTTP/2 است که نسبت به HTTP 1.1 هم سریع تر و هم ایمن تر است.برای آشنایی بیشتر با gRPC دوره آموزش gRPC در Asp Core را مشاهده کنید.سر فصل های دوره آموزش asp.net core 7 Web APIما در این دوره Web API را در قالب یک پروژه todo از مقدماتی تا پیشرفته با .net7 به شما آموزش خواهیم داد. برخی از موضوعات مهمی که در این دوره به آن‌ ها خواهیم پرداخت عبارتند از:معماری تمیزایجاد دیتابیس با روش کد فرست با استفاده از EF Core 7استفاده از FluentApiاعتبارسنجی داده ها با استفاده از FluentValidation در asp.net core Web APIاستفاده از AutoMapper در asp.net core Web APIاستفاده از الگوی CQRS در asp.net core Web APIآموزش الگوی Unit of Work در asp.net core Web APIاحراز هویت JWT در asp.net core Web APIمستندسازی API ها با استفاده از swagger در asp.net core Web APIاستفاده از Memory Caching در asp.net core Web APIورژن بندی API ها در asp.net core Web APIکانفیگ Json در asp.net core Web APIمدیریت خطا در asp.net core Web APIکار با Filter ها در asp.net core Web APIکار با Postmanجهت شرکت در دوره آموزش مقدماتی تا پیشرفته Web API در Asp.net Core لینک زیر را دنبال نمایید:آموزش جامع Web API در Asp.net Core</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Mon, 09 Jan 2023 08:48:30 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش asp.net core mvc</title>
                <link>https://virgool.io/CodeCell/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-aspnet-core-mvc-vmld9ia1ljvl</link>
                <description>آموزش asp.net coreAsp Core MVC چیست؟ASP.NET Core MVC یک فریمورک غنی برای ساخت برنامه های وب و API با استفاده از الگوی طراحی Model-View-Controller است. Asp Core MVC به ما کنترل کامل بر markup را می دهد، از توسعه مناسب TDD پشتیبانی می کند و از آخرین استانداردهای وب استفاده می کند.الگوی MVC چیست؟الگوی معماری Model-View-Controller (MVC) یک برنامه کاربردی را به سه گروه اصلی از اجزاء تقسیم می کند: Models، Views و Controllers. این الگو به دستیابی به اصل Separation of concerns یا تقسیم کردن حوزه های مختلف نرم افزار کمک می کند.با استفاده از این الگو، درخواست‌ های کاربر به یک کنترلر هدایت می‌شوند که مسئول کار با مدل برای انجام اقدامات کاربر و یا بازیابی نتایج جستجوها است. کنترلر View مربوطه را برای نمایش به کاربر انتخاب می کند و هر مدلی داده ای را که نیاز دارد در اختیار آن قرار می دهد.مسئولیت های Model در الگوی MVCمدل در یک برنامه MVC نشان دهنده وضعیت برنامه و هر منطق تجاری یا عملیاتی است که باید توسط آن انجام شود. ویوهای Strongly-typed معمولاً از انواع ViewModel استفاده می کنند که حاوی داده هایی برای نمایش در آن ویو هستند. کنترلر این نمونه های ViewModel را از طریق Model ایجاد و پر می کند.مسئولیت های View در الگوی MVCView ها وظیفه ارائه محتوا از طریق رابط کاربری را بر عهده دارند. آنها از موتور نمایش Razor برای جاسازی کد دات نت در نشانه گذاری HTML استفاده می کنند. باید حداقل منطق در view ها وجود داشته باشد و هر منطقی در آن ها باید به ارائه محتوا مربوط شود. اگر برای نمایش داده‌ ها از یک مدل پیچیده نیاز به اجرای منطق زیادی در فایل‌های View داریم، باید از View Component، ViewModel یا View Template برای ساده‌ سازی view استفاده کنیم.مسئولیت های Controller در الگوی MVCکنترلرها اجزایی هستند که تعامل کاربر را مدیریت می کنند، با مدل کار می کنند و در نهایت یک view را برای ارائه انتخاب می کنند. در یک برنامه MVC وظیفه View فقط نمایش اطلاعات است. کنترلر ورودی و تعامل کاربر را کنترل می کند و به آن پاسخ می دهد. در الگوی MVC، Controller نقطه ورود اولیه است و مسئول انتخاب نوع Model و رندر کردن View است.سرفصل های دوره آموزش Asp Core 7 Mvcما در این دوره آموزشی فریمورک Asp Core MVC را با استفاده از dotnet 7 و در قالب یک پروژه فروشگاهی به صورت کامل و جامع به شما آموزش خواهیم دارد.شما در پایان این دوره قادر به طراحی یک وب سایت حرفه ای از صفر تا صد با استفاده از Asp Core 7 MVC خواهید بود.سرفصل ها و ابزارهای مورد استفاده در دوره آموزش Asp Core MVC به شرح زیر است:آموزش Clean Architecture یا معماری تمیزآموزش استفاده از gitآموزش code first در Asp Core MVCآموزش fluent api در Asp Core MVCآموزش AutoMapper در Asp Core MVCآموزش FluentValidation در Asp Core MVCآموزش Identity و JWT در Asp Core MVCآموزش WebAPI در Asp Core MVCآموزش مدیریت خطا و logger در Asp Core MVCآموزش Google Recaptchaآموزش الگوی Mediator در Asp Core MVCآموزش پیاده سازی درگاه بانکی در Asp Core MVCآموزش BackgroundService ها در Asp Core MVCآموزش SignalR در Asp Core MVCآموزش Bootstrap 5آموزش Saas در Asp Core MVCآموزش Stimulsoft در Asp Core MVCآموزش Kendo UI در Asp Core MVCآموزش plesk و نحوه پابلیش کردن پروژه Asp Core MVC روی هاست ویندوزیبرای شرکت در این دوره آموزشی لینک زیر از وب سایت آموزش برنامه نویسی کدسل را دنبال نمایید:آموزش asp.net core mvc با .net7 از مقدماتی تا پیشرفته</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Sun, 18 Dec 2022 16:06:07 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش استفاده از Redis در Asp Core با استفاده از داکر</title>
                <link>https://virgool.io/CodeCell/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-redis-%D8%AF%D8%B1-asp-core-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%AF%D8%A7%DA%A9%D8%B1-g6xrtvbqjmpq</link>
                <description>redis در asp coreRedis چیست؟Redis که مخفف Remote Dictionary Server است یک منبع ذخیره Open source و in-memory یا درون حافظه ای به صورت key-value است که توسط میلیون ها توسعه دهنده به عنوان پایگاه داده، حافظه کش توزیع شده، موتور استریم و Message Broker استفاده می شود.پایگاه داده in-memory  یا درون حافظه ای چیست؟پایگاه داده in-memory  یا درون حافظه ای، پایگاه داده ای است که کل مجموعه داده را در RAM نگه می دارد. این بدان معناست که هر بار که یک پایگاه داده را پرس و جو می کنید یا داده ها را در یک پایگاه داده به روز می کنید، فقط به حافظه اصلی دسترسی دارید. بنابراین، هیچ دیسکی در این عملیات دخیل نیست. و این عالی است، زیرا حافظه اصلی بسیار سریعتر از هر دیسکی است.Message Broker چیست؟Message Broker نرم افزاری است که برنامه ها، سیستم ها و سرویس ها را قادر می سازد با یکدیگر ارتباط برقرار کرده و اطلاعات را تبادل کنند. مسیج بروکر این کار را با ترجمه پیام ها بین پروتکل های پیام رسانی رسمی انجام می دهد.پایگاه داده key-value چیست؟پایگاه داده key-value یک الگوی ذخیره سازی داده است که برای ذخیره، بازیابی و مدیریت آرایه های انجمنی طراحی شده است و ساختار داده ای که امروزه بیشتر به عنوان dictionary یا hash table شناخته می شود به صورت key-value است.Redis ساختارهای داده‌ ای مانند رشته ها، هش ‌ها، لیست ها، set ها،bitmap ها، هایپرلاگ ها، ایندکس های مکانی و استریم ها را فراهم می ‌کند. Redis دارای تکثیر داخلی، اسکریپت ‌نویسی Lua، تراکنش ‌ها و سطوح مختلف پایداری روی دیسک است و دسترسی بالایی را از طریق Redis Sentinel و پارتیشن‌ بندی خودکار با Redis Cluster فراهم می ‌کند.بنابراین Redis را می توان به صورت منولوتیک، سیستم توزیع شده یا به عنوان یک کلاستر از گره ها با تقسیم بندی استفاده کرد.Redis چگونه کار می کند؟همه داده‌های Redis برخلاف پایگاه‌های داده مانند PostgreSQL، SQL Server و سایر اطلاعات که بیشتر داده‌ها را روی دیسک ذخیره می‌کنند، در حافظه اصلی سرور قرار دارند. در مقایسه با پایگاه‌های داده سنتی مبتنی بر دیسک که در آن بیشتر عملیات ‌ها نیاز به یک رفت و برگشت به دیسک دارند، ذخیره‌ سازی داده ‌های درون حافظه مانند Redis متحمل چنین رفت و برگشی نمی باشد. بنابراین، Redis می تواند از یک مرتبه عملیات بیشتر و زمان پاسخ سریعتر پشتیبانی کنند و نتیجه آن عملکرد سریع و فوق العاده با میانگین عملیات خواندن یا نوشتن کمتر از یک میلی ثانیه و پشتیبانی از میلیون ها عملیات در ثانیه است.انواع persistence یا ماندگاری یا در RedisRDB (Redis Database): ماندگاری RDB اسنپ شات های لحظه ‌ای از مجموعه داده‌ های شما را در فواصل زمانی مشخص انجام می‌دهد.AOF (Append Only File): ماندگاری AOF هر عملیات نوشتن دریافت شده توسط سرور را ثبت می کند، که در راه اندازی سرور دوباره اجرا می شود و مجموعه داده اصلی را بازسازی می کند. دستورات با استفاده از همان فرمت خود پروتکل Redis و به روش append-only ثبت می شوند. Redis می‌تواند لاگ ها را زمانی که خیلی بزرگ می شوند در پس ‌زمینه بازنویسی کند.بدون ماندگاری: در صورت تمایل، اگر می ‌خواهید تا زمانی که سرور در حال اجرا است، داده‌های شما وجود داشته باشند، می ‌توانید ماندگاری را به طور کامل غیرفعال کنید.RDB + AOF: امکان ترکیب هر دو AOF و RDB در یک نمونه وجود دارد. توجه داشته باشید که در این مورد، هنگامی که Redis راه اندازی مجدد می شود، از فایل AOF برای بازسازی مجموعه داده اصلی استفاده می شود زیرا تضمین می شود که کامل ترین است.سرفصل های دوره آموزش Redis در Asp Core 6 با داکر:آموزش راه اندازی Redis در داکر(Docker)آموزش تنظیمات Redis Container در داکرآموزش تنظیمات ذخیره سازی با روش RDB در Redis Container در داکرآموزش تنظیمات ذخیره سازی با روش AOF در Redis Container در داکرآموزش استفاده از Redis-cli در Dockerایجاد یک پروژه Asp Core 6 و اتصال آن به Redisبررسی انواع  Data Type های اصلی Redis و کار با آن ها در Asp Coreآموزش استفاده از Pub/Sub و ایجاد Message Broker در Redis و استفاده از آن در Asp Coreنحوه ایجاد و تنظیم فایل docker-copmose.yml و داکرایز کردن پروژهبرای مشاهده این آموزش می توانید لینک زیر را در کدسل دنبال نمایید:آموزش Redis در Asp Core با Docker</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Sun, 13 Nov 2022 08:11:33 +0330</pubDate>
            </item>
                    <item>
                <title>ایجاد دسترسی داینامیک و احراز هویت Jwt در Asp Core</title>
                <link>https://virgool.io/CodeCell/%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%AF%D8%A7%DB%8C%D9%86%D8%A7%D9%85%DB%8C%DA%A9-%D9%88-%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2-%D9%87%D9%88%DB%8C%D8%AA-jwt-%D8%AF%D8%B1-asp-core-sxnhjbv1gqfc</link>
                <description>ایجاد دسترسی داینامیک و احراز هویت Jwt در Asp CoreAuthentication در Asp Core چیست؟Authentication یا احراز هویت در Asp Core فرآیندی است که در آن مشخص می شود کاربر چه کسی است.Authorization یا مجوز در Asp Core چیست؟Authorization در Asp Core به فرآیندی اشاره دارد که تعیین می کند کاربر مجاز به انجام چه کاری است. به عنوان مثال، یک کاربر ادمین مجاز است یک سند ایجاد کند، سند را ویرایش کند و آن را حذف کند ولی یک کاربر عادی  فقط مجاز به خواندن اسناد است.وب سایت آموزش برنامه نویسی کدسل با استفاده از Policy-based Authorization و requirement ها در Asp Core به پیاده سازی یک مکانیسم ایجاد دسترسی داینامیک پرداخته استآنچه در این دوره آموزشی یاد خواهید گرفت به شرح زیر خواهد بود:شخصی سازی و افزودن Identity به Asp Core 6آشنایی با انواع Authorization در Asp Core 6آشنایی با مفاهیم requirement ها و handler های Authorization در Asp Core 6پیاده سازی ماکانیسم دسترسی داینامیک در Asp Core 6پیاده سازی احراز هویت Jwt در Asp Core 6 با قابلیت Refresh Tokenبرای مشاهده این ویدیوی آموزش می توانید لینک زیر از وب سایت آموزش برنامه نویسی کدسل را دنبال نمایید:آموزش ایجاد دسترسی داینامیک در Asp Core</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Wed, 07 Sep 2022 09:56:08 +0430</pubDate>
            </item>
                    <item>
                <title>ارسال web push notification در Asp Core</title>
                <link>https://virgool.io/CodeCell/%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-web-push-notification-%D8%AF%D8%B1-asp-core-sttmtprqtqq8</link>
                <description>ارسال web push notification در Asp Coreweb push notification چیست؟web push notification ها notification هایی هستند که می توانند از طریق وب دسکتاپ و وب موبایل برای کاربران ارسال شوند. web push notification پیام‌های سبک notification هستند که بسته به سیستم عامل، در گوشه سمت راست بالا یا پایین صفحه دسکتاپ قرار می‌گیرند و یا در دستگاه های تلفن همراه به روشی تقریباً مشابه با notification های ارسالی از برنامه‌ ها ظاهر شود. web push notification بر روی صفحه دسکتاپ یا تلفن همراه کاربر هر زمان که مرورگر او باز است - خواه کاربر در وب ‌سایت باشد یا نباشد، ارائه می‌شود.تفاوت web push notification و app push notificationتنها چیزی که برای ارسال web push notification مورد نیاز است، وب‌ سایتی است که در آن کد های web push notification پیاده سازی شده باشد. این بدان معناست که برندهایی که اپلیکیشن ندارند، می‌توانند از بسیاری از مزایای push notification (ارتباطات هم ‌زمان، شخصی ‌سازی شده، realtime) استفاده کنند، حتی اگر اپلیکیشنی نداشته باشند. ولی app push notification ها از طریق کد قرار داده شده در یک app ارسال می‌شوند.ساختار web push notificationعنوان notification: برخی از برندها به سادگی از نام خود در اینجا استفاده می کنند.محتوای notification: پیام ارسال شده. تعداد کاراکترهای محتوا بین مرورگرها و سیستم عامل ها متفاوت است. هرچه طول آن کوتاه تر باشد بهتر است.دامنه notification: دامنه ای که web notification را ارسال می کند.آیکن notification: این آیکن می تواند یک لوگو یا هر تصویری باشد.آیکن مرورگر: لوگوی مرورگر ارسال کننده notification. این آیکن در notification ‌های ارسال شده به کامپیوترهای رومیزی یا لپ ‌تاپ اپل گنجانده شده است و نمی توان آن را تغییر داد یا حذف کرد.تصویر notification (معروف به &quot;big image&quot; یا &quot;large image&quot;): برخی از مرورگرها و سیستم عامل ها از گنجاندن یک تصویر بزرگ در web notification علاوه بر آیکن notification پشتیبانی می کنند.نحوه عملکرد web push notificationهر شرکتی که یک وب‌ سایت دارد، می‌تواند در وب ‌سایت خود به راحتی web push notification ارسال کند و برای این کار نیاز به هیچ برنامه ای نیست. کاربران دریافت کننده notification با کلیک کردن یا ضربه زدن بر روی یک web notification، به یک URL از پیش تعیین شده توسط  ارسال کننده web notification هدایت می شوند.فرآیند Opt-In درweb push notificationweb push notification یک کانال بازاریابی مبتنی بر مجوز هستند. یعنی کاربران قبل از دریافت web push notification، باید به مروگر مجوز نمایش web push notification را بدهند. برندها می‌توانند فرآیند و زمان بندی Opt-In را به روش‌های مختلف مدیریت کنند.Opt-in یک روش بازاریابی است که درآن کاربر باید رضایت خود را مبنی بر دریافت اطلاعات محصول، خدمات و اخبار آن شرکت، یا دادن اطلاعات شخصی و اطلاعات تماس به شخص سوم (مؤسسات و شرکت های دیگر همکای یا طرف قرارداد با آن شرکت) اعلام نماید.مرورگرها و دستگاه های سازگار با web push notificationمرورگرهای Chrome ، Firefox ، Opera و Safari در حال حاضر از web push notification پشتیبانی می‌کنند. web push notification روی هر کامپیوتر یا لپ‌ تاپی که از مرورگرهای پشتیبانی ‌شده استفاده می‌کند، اعم از PC یا Mac، کار می‌کند.با این حال، همه دستگاه های تلفن همراه نمی توانند web push notification را دریافت کنند. دستگاه‌ های همراه iOS (اپل) در حال حاضر از web push notification پشتیبانی نمی‌کنند، اگرچه اپل اعلام کرده است که در سال 2023 پشتیبانی می‌شود. این به این معنی است که حتی اگر یک آیفون یا آی ‌پد یک مرورگر پشتیبانی ‌شده مانند Chrome نصب کرده باشد، کاربران نمی‌توانند web push notification را دریافت کنند. دستگاه‌های تلفن همراه اندروید از web push notification برای کاربرانی که Chrome، Firefox و Opera دارند، پشتیبانی می‌ کنند.سرفصل های دوره آموزش ارسال web push notification در Asp Coreما در این دوره آموزشی با استفاده از SignalR و Notifications API مرورگر، به پیاده سازی و ارسال web push notification در Asp Core خواهیم پرداخت.با ارسال نوتیفیکیشن در Asp Core می توانید به اهدافی نظیر بازریابی،جذب مخاطب بیشتر،اطلاع رسانی و غیره جامه عمل بپوشانید.جهت آشنایی بیشتر با SignalR می توانید دوره آموزش SignalR را از لینک زیر به صورت رایگان دنبال نمایید:آموزش SignalR در Asp Coreجهت مشاهده این ویدیوی آموزشی می توانید آن را از لینک زیر به صورت رایگان دنبال نمایید: آموزش ارسال Notification در Asp Coreدریافت سورس پروژه آموزش ارسال نوتیفیکیشن در Asp Core</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Wed, 10 Aug 2022 09:08:49 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش اصول SOLID در سی شارپ</title>
                <link>https://virgool.io/CodeCell/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B5%D9%88%D9%84-solid-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-prv0x2e5x1od</link>
                <description>آموزش اصول SOLID در سی شارپاصول Solid چیست؟اصول Solid در سی شارپ از اصول اولیه طراحی هستند. SOLID مجموعه ای از توصیه های طراحی برای ایجاد نرم افزار قابل اعتماد، قابل درک، انعطاف پذیر و قابل نگهداری است.اصول SOLID توسط مربی و نویسنده علوم کامپیوتر رابرت سی. مارتین (گاهی اوقات &quot;عمو باب&quot; نامیده می شود) در سال 2000 توسعه یافت و به سرعت به یکی از اصلی ترین اجزای طراحی مدرن شی گرا (OOD) تبدیل شد. مخفف SOLID زمانی رایج شد که این اصول در دنیای برنامه نویسی محبوبیت گسترده ای پیدا کردند. در حال حاضر، SOLID هم در توسعه چابک و هم در توسعه نرم افزار تطبیقی پذیرفته شده است.SOLID مخفف پنج اصل زیر است:Single Responsibility Principle (اصل مسئولیت واحد)Open closed Principle (اصل باز و بسته بودن)Liskov substitution principle (اصل جایگزینی لیسکوف)Interface Segregation Principle (اصل جداسازی اینترفیس)Dependency Inversion Principle (اصل وارونگی وابستگی)توسعه دهندگان نرم افزار از اصول SOLID برای نوشتن کد تمیز استفاده می کنند.مشکلات نرم افزاری رایجاشکال زدایی کلاس ها با مسئولیت های بیش از حد آن ها سخت است. اتصال تنگاتنگ بین کلاس ها، افزودن ویژگی های جدید را به یک چالش تبدیل می کند و باعث نوشتن کدهای تکراری می شود.راه حل های رایجانتخاب معماری تمیز مناسب برای برنامه، به عنوان مثال MVC، 3-tier، Onion، MVP و غیره.پیروی از اصول طراحی SOLID.استفاده از الگوهای طراحی مناسب.مزایای اصول SOLID چیست؟قابلیت نگهداری(Maintainability)تست پذیری(Testability)انعطاف پذیری(Flexibility)توسعه چابک(Agile development)اصل Single Responsibility Principle یا مسئولیت واحد (SRP) در Solidرابرت سی مارتین تعریف اصل Single Responsibility Principle یا مسئولیت واحد در SOLID را در کتاب توسعه نرم افزار چابک، اصول، الگوها و شیوه ها ارائه کرد و بعداً در نسخه سی شارپ کتاب اصول، الگوها و تمرینات چابک در سی شارپ دوباره منتشر شد.اصل Single Responsibility Principle یا مسئولیت واحد در SOLID توصیه می کند که &quot;هر ماژول نرم افزاری باید تنها یک دلیل برای تغییر داشته باشد&quot;. این بدان معنی است که هر کلاس یا ساختار مشابه در کد شما فقط یک کار برای انجام دارد و نباید مانند یک چاقوی سوئیسی چند کار را انجام دهد. وقتی کلاس‌ها کوچک‌تر هستند و حاوی کدهای پاک‌تر هستند، نگهداری آن آسان‌تر است و اگر یک قسمت از سیستم خود را تغییر دهیم، نیازی به ایجاد چندین تغییر دیگر نداریم، زیرا بخشی که تغییر داده‌ایم تنها مسئول یک واحد است. چیز.در اصطلاح عامیانه، این بدان معنی است که یک کلاس نباید با مسئولیت های متعدد بارگذاری شود و یک مسئولیت واحد نباید در چندین کلاس پخش شود یا با مسئولیت های دیگر مخلوط شود. دلیل آن این است که تغییرات بیشتری در آینده درخواست می شود و در کلاس باید تغییرات بیشتری اعمال شود.اگر یک کلاس فقط یک مسئولیت داشته باشد، احتمالاً بسیار قوی خواهد بود و بررسی عملکرد آن طبق منطق تعریف شده آسان است. همچنین تغییر در کلاس آسان است زیرا مسئولیت واحد دارد.اصل  Single Responsibility Principle در SOLID یک مزیت دیگر را به همراه دارد. کلاس‌ها، اجزای نرم‌افزار و ماژول‌هایی که فقط یک مسئولیت دارند، توضیح، پیاده‌سازی و درک آن ها بسیار آسان‌ تر از آنهایی هستند که برای همه چیز راه‌ حل می‌دهند.این همچنین تعداد باگ ها را کاهش می دهد و سرعت توسعه را بهبود می بخشد و از همه مهمتر زندگی توسعه دهنده را بسیار آسان تر می کند.مشکلات رایج  عدم استفاده از اصل Single Responsibility Principle یا مسئولیت واحد (SRP) در Solid چیست؟درک و حفظ کد دشوار استتست عملکردها دشوار است و توسعه تست محور را تسهیل نمی کنداحتمال تکرار کد بالامزایای استفاده از اصل Single Responsibility Principle یا مسئولیت واحد (SRP) در Solid چیست؟اگر یک عملکرد واحد خراب شود، به راحتی می دانیم که کدام کلاس دارای اشکال است.درک و پیاده سازی کلاس ها بسیار ساده تر از کلاس هایی با چند عملکرد خواهد بود.ما به راحتی می توانیم رفتار یک تابع را با ویرایش تک کلاسی که مسئول آن است تغییر دهیم.اصل Open closed Principle یا اصل باز و بسته(OCP) در Solid چیست؟اصل Open closed Principle یا اصل باز و بسته بودن در SOLID توصیه می کند که &quot;یک ماژول یا کلاس نرم افزار باید برای توسعه باز و برای اصلاح بسته باشد&quot;. این بدان معناست که برای نیازهای جدید، ماژول های نرم افزار را با رفتارهای جدید گسترش می دهیم و نباید کد موجود را به جز رفع اشکال تغییر دهیم.برتراند مایر عموماً به دلیل ابداع تعریف اصل باز و بسته بودن در SOLID در کتاب ساخت نرم افزار شی گرا شناخته می شود.این اصل نشان می دهد که کلاس باید به راحتی گسترش یابد اما نیازی به تغییر پیاده سازی های اصلی آن نیست.برنامه یا نرم افزار باید برای تغییر انعطاف پذیر باشد. نحوه اجرای مدیریت تغییر در یک سیستم تأثیر بسزایی در موفقیت آن برنامه/نرم افزار دارد. OCP بیان می کند که رفتارهای سیستم را می توان بدون نیاز به تغییر پیاده سازی موجود آن گسترش داد.یعنی ویژگی های جدید باید با استفاده از کد جدید پیاده سازی شوند، نه با تغییر کد موجود. مزیت اصلی پایبندی به OCP در SOLID این است که به طور بالقوه نگهداری کد را ساده می کند و خطر شکستن پیاده سازی موجود را کاهش می دهد.مشکلات رایج عدم استفاده از اصل Open closed Principle یا اصل باز و بسته بودن در Solid چیست؟افزودن ویژگی‌های جدید می‌تواند باگ‌هایی را ایجاد کند و نیاز به تست مجدد برنامه موجود و همچنین ویژگی‌های جدید دارد.پیاده سازی تمام ویژگی ها در یک کلاس، تعمیر و نگهداری کلاس را بسیار سخت می کند.تغییراتی که در بسیاری از ماژول‌های برنامه وجود دارد.مزایای استفاده از اصل Open closed Principle یا اصل باز و بسته بودن در Solid چیست؟نگهداری کد آسان تر است زیرا ریسک شکست اجرای موجود را کاهش می دهد.احتمال کمتری برای بروز مشکلات در پایگاه کد وجود دارد.اطمینان حاصل می کنید که تغییرات جدید روی والد یا هر کلاس مشتق شده دیگری تأثیر نخواهد گذاشت.اصل Liskov substitution یا جایگزینی لیسکوف(LSP) در Solid چیست؟اصل جایگزینی لیسکوف (LSP) در SOLID بیان می کند که &quot;شما باید بتوانید از هر کلاس مشتق شده به جای کلاس والد استفاده کنید و از آن بخواهید بدون تغییر به همان شیوه رفتار کند&quot;. توصیه می کند که هر کلاس مشتق شده باید کاملاً با کلاس والد قابل تعویض باشد. &quot;قابلیت جایگزینی هر نمونه ای از یک کلاس والد با نمونه ای از یکی از کلاس های فرزند آن بدون عوارض جانبی منفی&quot;.اصل جایگزینی لیسکوف (LSP) تعریفی از یک رابطه فرعی است که زیرمجموعه رفتاری نامیده می‌شود و اولین بار توسط باربارا لیسکوف در سخنرانی یک کنفرانس در سال 1987 با عنوان انتزاع داده‌ها و سلسله مراتب معرفی شد.LSP بیان می کند که کلاس فرزند باید کاملاً قابل جایگزینی برای کلاس والد آنها باشد. اگر کلاس C از P مشتق شده باشد، C باید جایگزین P شود.ما می توانیم با استفاده از LSP بررسی کنیم که وراثت در کد ما به درستی اعمال شده است یا خیر.LSP یک اصل اساسی از اصول SOLID است و بیان می کند که اگر برنامه یا ماژول از کلاس پایه استفاده می کند، کلاس مشتق شده باید بتواند کلاس پایه خود را بدون تغییر پیاده سازی اصلی خود گسترش دهد.مشکلات رایج عدم استفاده از اصل Liskov substitution یا جایگزینی لیسکوف در Solid چیست؟شکست پلی مورفیسم کد مشتق شده غیر قابل تعویضمعمولاً کد کلاینت انتظار دارد که کلاس های فرزند قابل جایگزینی با کلاس های پایه خود باشنداستفاده از دستورهای if-then یا switch برای حل مشکلات قابلیت جایگزینی ، تعمیر و نگهداری را سخت تر می کندمزایای استفاده از اصل Liskov substitution یا جایگزینی لیسکوف در Solid چیست؟کد غیر قابل جایگزینی چندریختی یا پلی مورفیسم را نقض می کندامکان استفاده صحیح از پلی مورفیسم را فراهم می کنداصل Interface Segregation Principle یا جداسازی اینترفیس ها(ISP) در Solid چیست؟اصل تفکیک اینترفیس یا Interface Segregation Principle در Solid بیان می کند که کلاینت ها نباید مجبور به پیاده سازی اینترفیس هایی شوند که استفاده نمی کنند. بنابراین به جای اینترفیس های بزرگ، بهتر است چندین اینترفیس کوچک ایجاد کنید تا به بهترین شکل ممکن از آنها استفاده شود.اصل ISP در SOLID اولین بار توسط رابرت سی مارتین در حین مشاوره برای زیراکس استفاده و فرموله شد.اصل تفکیک اینترفیس برای حل مشکل طراحی برنامه مورد نیاز است. وقتی همه کارها توسط یک کلاس انجام می شود یا به عبارت دیگر تقریباً در همه کلاس های کاربردی از یک کلاس استفاده می شود، آنگاه آن کلاس به یک کلاس سنگین تبدیل می شود. به ارث بردن از چنین کلاسی منجر به داشتن متدهای می شود که مربوط به کلاس های مشتق شده نیستند اما در کلاس پایه وجود دارند تا در کلاس مشتق شده ارث بری کنند.با استفاده از ISP، ما می توانیم برای هر عملیات یا به جای داشتن یک کلاس واحد برای انجام همان کار، اینترفیس های جداگانه ایجاد کنیم.مشکلات رایج عدم استفاده از اصل Interface Segregation Principle یا جداسازی اینترفیس ها در Solid چیست؟وابستگی بیشتر به معنای کوپلینگ بیشتر، کد شکننده تر و تست بیشتر استنقض تفکیک اینترفیس ها منجر به کلاس هایی می شود که به چیزهایی بستگی دارند که آنها به آنها نیاز ندارند.باعث کاهش انعطاف پذیری هنگام افزودن ویژگی های جدید و قابلیت نگهداری می شودمزایای استفاده از اصل Interface Segregation Principle یا جداسازی اینترفیس ها در Solid چیست؟Abstraction با نشان دادن ضروری ترین جزئیات یک شی از طریق یک اینترفیس، امنیت برنامه را افزایش می دهدیک کلاس می تواند چندین اینترفیس را که با کاما از هم جدا می شوند را پیاده سازی کندیک اینترفیس به عنوان یک قرارداد عمل می کند که کلاس ها را مجبور به پیاده سازی تمام متد ها می کند.اصل Dependency Inversion Principle یا وارونگی وابستگی(ِDIP) در Solid چیست؟اصل Dependency Inversion Principle یا وارونگی وابستگی (DIP) در Solid بیان می‌کند که ماژول‌ها/کلاس‌های سطح بالا نباید به ماژول‌ها/کلاس‌های سطح پایین وابسته باشند. هر دو باید به انتزاعات بستگی داشته باشند. ثانیاً، انتزاعات نباید به جزئیات بستگی داشته باشند. جزئیات باید به انتزاعات بستگی داشته باشد.این اصل می گوید که ماژول های سطح بالا باید به انتزاع بستگی داشته باشند، نه به جزئیات یا ماژول های سطح پایین. به عبارت ساده، این اصل می گوید که نباید بین اجزای نرم افزار کوپلینگ محکمی وجود داشته باشد و برای جلوگیری از آن، اجزا باید به انتزاع بستگی داشته باشند.اصطلاحات تزریق وابستگی (DI) و وارونگی کنترل (IoC) معمولاً به جای یکدیگر برای بیان یک الگوی طراحی استفاده می‌شوند. این الگو در ابتدا IoC نامیده می شد، اما مارتین فاولر (معروف به طراحی نرم افزار سازمانی) نام آن را DI پیش بینی کرد زیرا همه فریمورک ها زمان اجرا کنترل را به نوعی معکوس می کنند و او می خواست بداند کدام جنبه از کنترل معکوس شده است.Inversion of Control (IoC) تکنیکی برای پیاده سازی Dependency Inversion Principle در سی شارپ است. وارونگی کنترل را می توان با استفاده از یک کلاس انتزاعی یا اینترفیس پیاده سازی کرد.. این تکنیک وابستگی بین موجودیت ها را حذف می کند.مزایای استفاده از اصل Dependency Inversion Principle یا وارونگی وابستگی در Solid چیست؟Abstraction با نشان دادن ضروری ترین جزئیات یک شی از طریق یک اینترفیس، امنیت برنامه را افزایش می دهدیک کلاس می تواند چندین اینترفیس را که با کاما از هم جدا می شوند را پیاده سازی کند.سرفصل های دوره آموزش رایگان اصول SOLID در سی شارپآموزش و پیاده سازی عملی اصل Single Responsibility Principle یا مسئولیت واحد(SRP) از SOLID در سی شارپآموزش و پیاده سازی عملی اصل Open closed Principle یا اصل باز و بسته بودن(OCP) از SOLID در سی شارپآموزش و پیاده سازی عملی اصل Liskov substitution یا جایگزینی لیسکوف (LSP) از SOLID در سی شارپآموزش و پیاده سازی عملی اصل Interface Segregation Principle یا جداسازی اینترفیس ها(ISP) از SOLID در سی شارپآموزش و پیاده سازی عملی اصل Dependency Inversion Principle یا وارونگی وابستگی(ِDIP) از SOLID در سی شارپنتیجه گیریپنج اصل Solid که در این آموزش مورد بحث قرار گرفته برای طراحی شی گرا خوب است. بیشتر اصول درگیر، اضافه کردن یک لایه انتزاع بین کلاس‌ها است. همیشه توصیه می شود هنگام نوشتن کد جدید اصول Solid را در نظر داشته باشید.ما در این آموزش به صورت عملی نحوه استفاده از اصول SOLID در سی شارپ را به شما آموزش خواهیم داد و در پایان شما قادر خواهید بود با رعایت اصول SOLID در سی شارپ کدهای تمیزتر، قابل انعطاف تر و تست پذیر با قابلیت نگهداری بالا بنویسید.لینک دوره: آموزش رایگان اصول SOLID در سی شارپ  کدسل- مرجع تخصصی آموزش برنامه نویسی</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Sat, 23 Jul 2022 13:50:49 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش استفاده از Serilog در asp core</title>
                <link>https://virgool.io/CodeCell/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-serilog-%D8%AF%D8%B1-asp-core-qduupiedscvk</link>
                <description>آموزش استفاده از Serilog در asp coreلاگ گیری یا Logging چیست؟امروزه لاگ گرفتن از سیستم یکی از اساسی ترین مواردی است که هر اپلیکیشنی به آن نیاز دارد. برای عیب یابی هر گونه مشکل در سیستم استفاده از logger امری ضروری است. Logger برای ایجاد فایل های خطای سفارشی شده یا رویدادهای سیستم استفاده می شود.با کمک logging نه تنها می‌ توانیم آنچه را که در برنامه اتفاق می‌افتد ردیابی کنیم، بلکه به ردیابی هر نوع exception نیز کمک می‌کند. این exception در واقع زمانی مفید است که متد دقیق و شماره خط را با جزئیات پیام مناسب نشان دهد. بنابراین با کمک log، توسعه دهندگان می توانند به راحتی بفهمند که خطای واقعی چیست.Serilog چیست؟Serilog یک کتابخانه logging ساختاری برای Microsoft.Net است و به کتابخانه logging ترجیحی برای برنامه‌های .Net تبدیل شده است. کتابخانه های logging ، ارسال لاگ های خود را به مکان‌ های مختلف از طریق پیکربندی‌ های ساده آسان می‌کنند. Serilog از آنچه (سینک)sink نامیده می شود استفاده می کند تا لاگ های ما را به یک فایل متنی، پایگاه داده یا مکان های دیگر ارسال کند. مانند بسیاری از کتابخانه های دیگر برای دات نت، Serilog امکان ثبت لاگ درون فایل، محیط کنسول، دیتابیس و جاهای دیگر را فراهم می کند. راه اندازی Serilog بسیار آسان است و قابل استفاده در اکثر پلتفرم های دات نت می باشد. الگوهای پیام Serilog یک DSL ساده است که فرمت رشته های .NET را گسترش می دهد. پارامترها را می ‌توان نام ‌گذاری کرد و مقادیر آن‌ ها به‌ عنوان ویژگی‌ روی event برای انعطاف ‌پذیری باور نکردنی در جستجو و مرتب ‌سازی serialize می‌شوند.var position = new { Latitude = 25, Longitude = 134 };
var elapsedMs = 34;
log.Information(&amp;quotProcessed {@Position} in {Elapsed:000} ms.&amp;quot, position, elapsedMs);این مثال دو ویژگی Position و Elapsed را به همراه رویداد log ثبت می کند. ویژگی های ثبت شده در مثال، در قالب JSON، به صورت زیر ظاهر می شوند:{&amp;quotPosition&amp;quot: {&amp;quotLatitude&amp;quot: 25, &amp;quotLongitude&amp;quot: 134}, &amp;quotElapsed&amp;quot: 34}عملگر @ در جلوی Position به Serilog می‌گوید که به جای تبدیل آن با استفاده از ToString، شیء ارسال شده را serialize کند.بخش :000 در Elapsed یک فرمت رشته ستاندارد دات نت است که بر نحوه رندر شدن ویژگی تأثیر می گذارد. sink کنسول همراه با Serilog پیام فوق را به صورت زیر نمایش می دهد:09:14:22 [Information] Processed { Latitude: 25, Longitude: 134 } in 034 ms.Sink(سینک) ها در SerilogSerilog برای نوشتن لاگ رویدادها در قالب های مختلف ذخیره سازی sink هایی را ارائه می دهد. این sink ها توسط جامعه گسترده Serilog توسعه یافته و پشتیبانی می شوند. از معروف ترین sink های Serilog می توان به موارد زیر اشاره کرد:ConsoleFileSQL ServerSeqلیست کامل sink های Serilog را از اینجا ببینید.چرا باید از Serilog استفاده کنیم؟اکوسیستم وسیع Serilog متشکل از صدها انجمن است که کنسول، فایل، صف پیام، Seq، جستجوی الاستیک، مرکز رویداد Azure و غیره را پوشش می‌دهد.API ساده و آسان برای توسعه دارد.قابلیت تعویض یکپارچه فرمت خروجی به متن ساده یا Json.راه اندازی آن بسیار آسان است.آموزش نحوه استفاده از Serilog در Asp Coreما در این دوره آموزشی ابتدا یک پروژه Asp Core 6 MVC ایجاد خواهیم کرد و سپس Serilog را برای انجام عملیات Logging به آن اضافه خواهیم کرد. در ادامه نحوه استفاده از سینک های Console، File، SQLServer و Seq در Serilog را در Asp Core 6 آموزش خواهیم داد.برای مشاهده آموزش، لینک زیر از سایت آموزش برنامه نویسی کدسل را  دنبال نمایید:آموزش استفاده از Serilog در asp core</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Wed, 29 Jun 2022 15:38:12 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش نصب و استفاده از CKEditor 5 در Asp Core</title>
                <link>https://virgool.io/CodeCell/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%86%D8%B5%D8%A8-%D9%88-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-ckeditor-5-%D8%AF%D8%B1-asp-core-bygpsraozuni</link>
                <description>ckeditor 5 در aspCKEditor چیست؟CKEditor یک ویرایشگر متن قدرتمند و فوق مدرن جاوا اسکریپتی با معماری MVC است. آخرین نسخه از CKEdiotr نسخه 5 آن یعنی CKEditor 5 است.CKEditor 5، رویکردی متفاوت و مدرن نسبت به نسخه قبلی خود دارد که از ابتدا در ES6 نوشته شده است. به جز نام و مجموعه کاملی از ویژگی ها، شباهت زیادی با نسخه قبلی خود ندارد. CKEditor 5 دارای یک موتور مبتنی بر MVC با مدل داده سفارشی و DOM مجازی است. معماری ماژولار و مبتنی بر پلاگین آن قابل تنظیم است و دارای ادغام بومی با Angular، React، Vue.js، npm، webpack، Electron و غیره است.چگونه باید از CKEditor در Asp Core MVC استفاده و آن را شخصی سازی کنیم؟ما در این آموزش به صورت رایگان نحوه راه اندازی و استفاده از CKEditor 5 در Asp را به شما قدم به قدم خواهیم آموخت و آن را برای استفاده شخصی سازی خواهیم کرد. ما در این آموزش CKEditor را در یک پروژه Asp MVC Core 6 راه اندازی، شخصی سازی و سپس استفاده خواهیم کرد.سرفصل های دوره آموزش استفاده از CKEditor 5 در Asp Coreنحوه دانلود، نصب و راه اندازی CKEditor در  Asp Core MVCشخصی سازی Heading ها در CKEditorشخصی سازی و نحوه استفاده از فونت ها در CKEditorشخصی سازی اندازه فونت ها در CKEditorشخصی سازی نوار ابزار در CKEditorشخصی سازی لینک دهی در CKEditorآپلود تصویر و شخصی سازی ابزارهای تصویر در CKEditorشخصی سازی جدول در CKEditorبرای مشاهده این دوره آموزشی می توانید سایت آموزش برنامه نویسی کدسل را از طریق لینک زیر دنبال نمایید:آموزش CKEditor5 در Asp</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Mon, 20 Jun 2022 12:50:40 +0430</pubDate>
            </item>
                    <item>
                <title>بررسی طول عمر سرویس ها در تزریق وابستگی در Asp Core</title>
                <link>https://virgool.io/CodeCell/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%B7%D9%88%D9%84-%D8%B9%D9%85%D8%B1-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%AA%D8%B2%D8%B1%DB%8C%D9%82-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%DA%AF%DB%8C-%D8%AF%D8%B1-asp-core-ytf9dwnbqnfl</link>
                <description>طول عمر سرویس ها در تزریق وابستگیتزریق وابستگی یا Dependency injection چیست؟تزریق وابستگی (DI) الگویی است که می تواند به توسعه دهندگان کمک کند تا بخش های مختلف برنامه های خود را جدا کنند. هنگامی که یک سیستم برای استفاده از DI طراحی شده است، و بسیاری از کلاس‌ها وابستگی‌های خود را از طریق سازنده (یا ویژگی‌هایشان) درخواست می‌کنند، مفید است که کلاسی برای ایجاد این کلاس‌ها با وابستگی‌های مرتبط با آنها اختصاص داده شود. به این کلاس ها کانتینرها یا به طور خاص کانتینرهای وارونگی کنترل (IoC) یا ظروف تزریق وابستگی (DI) گفته می شود. کانتینر اساساً کارخانه ای است که مسئول ارائه نمونه هایی از انواع درخواستی از آن است.تزریق وابستگی(Dependency injection) در .Net CoreMicrosoft .NET Core شامل یک کانتینر داخلی ساده  است (توسط اینترفیس IServiceProvider ارائه  شده است) که از تزریق سازنده پشتیبانی می کند. فضای نام که تحت آن گنجانده شده است Microsoft.Extensions.DependencyInjection است.طول عمر وابستگیدر زمان ثبت سرویس، وابستگی ها نیاز به تعریف طول عمر دارند. طول عمر سرویس، شرایطی را که تحت آن یک نمونه جدید از سرویس ایجاد می شود را مشخص می کند. در زیر طول عمر تعریف شده توسط چارچوب .NET Core DI آمده استزریق وابستگی Transient یا گذراتزریق وابستگی Scoped یا محدوده شدهتزریق وابستگی Singleton یا یگانهبرای بررسی طول عمر سرویس ها به صورت عملی می توانید ویدیوی آموزش بررسی LifeTime یا طول عمر سرویس ها در تزریق وابستگی را از طریق سایت آموزش برنامه نویسی و طراحی وب کدسل مشاهده نمایید.دریافت سورس پروژه بررسی Service Lifetime  تزریق وابستگی در Asp core</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Sat, 18 Jun 2022 08:25:59 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش استفاده از Hosted Service ها در Asp Core</title>
                <link>https://virgool.io/CodeCell/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-hosted-service-%D9%87%D8%A7-%D8%AF%D8%B1-asp-core-v51i2lixzlnq</link>
                <description>کارهای پس زمینه در asp coreHosted Service چیست؟Hosted service ها در ASP.NET Core 3.1 معرفی شدند و روشی عالی برای اجرای وظایف پس زمینه یا Background Task ها هستند.Hosted service در دنیای NET Core در اصطلاح توسعه دهندگان به معنای وظایف پس ‌زمینه روزمره است. اگر در دنیای C# و حتی دنیای Azure زندگی می کنید، در واقع چند گزینه برای انجام کارهای سبک پس زمینه دارید. مشکلاتی که می‌توانید با استفاده از Hosted service حل کنید احتمالاً مشابه مشکلاتی هستند که در حال حاضر با استفاده از Windows Service ها یا Azure WebJobs حل می شوند.Background Task ها را می توان با استفاده از Hosted service در یک برنامه وب ASP.NET Core اجرا کرد. اگر بخواهیم در پس‌ زمینه چیزی را که بر همه کاربران تأثیر بگذارد اجرا کنیم استفاده از Hosted service ها بهترین گزینه ممکن است.از طرف دیگر، می توان Hosted service ها را با استفاده از یک الگوی Worker Service اجرا کرد. Hosted service ها برای اجرای یک تسک پس زمینه طراحی شده اند و می توانند به عنوان یک سرویس ویندوز نیز راه اندازی شوند.نحوه ایجاد یک Hosted service در asp coreبرای ایجاد یک Hosted service در asp core دو راه وجود دارد:استفاده از اینترفیس IHostedService برای ایجاد Hosted Service در Asp Coreاولین راهی که می توانیم انجام دهیم این است که اینترفیس IHostedService را پیاده سازی کنیم. کلاس پیاده کننده اینترفیس IHostedService باید متدهای StartAsync و StopAsync را پیاده سازی کند.ارث بری از کلاس BackgroundService برای ایجاد Hosted Service در Asp Coreدومین راه جایگزین، ارث بری از کلاس BackgroundService است. کلاس BackgroundService یک کلاس انتزاعی است که اینترفیس IHostedService را نیز به ارث می برد. یکی از مزایای استفاده از این روش این است که ما مجبور نیستیم متدهای StartAsync یا StopAsync را پیاده سازی کنیم. با این حال می توانیم آن ها را override کنیم. در کلاس BackgroundService یک متد انتزاعی به نام ExecuteAsync وجود دارد. از آنجایی که متد ExecuteAsync یک متد انتزاعی است، باید آن را برای اجرای Background Task های خود override کنیم.چرا باید از Background Task ها یا کارهای پس زمینه استفاده کنیم؟افزایش سرعتمنتظر نماندن کاربر جهت دریافت پاسخ و در نتیجه افزایش تجربه کاربریاجرای کارها طبق زمانبندی مشخصخودکار سازی کارها در پس زمینهبرای مشاهده این آموزش به وب سایت آموزش برنامه نویسی کدسل مراجعه نمایید:اجرای وظایف پس زمینه یا Background Task ها در Asp Core</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Tue, 14 Jun 2022 11:42:00 +0430</pubDate>
            </item>
                    <item>
                <title>تبدیل برنامه های Asp Core به PWA</title>
                <link>https://virgool.io/CodeCell/%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-asp-core-%D8%A8%D9%87-pwa-uj6r6jpk9vxn</link>
                <description>آموزش تبدیل برنامه های Asp.Net Core به PWA
PWA یا وب اپلیکیشن پیش رونده چیست؟PWA یا وب اپلیکیشن پیش رونده (Progressive Web Application) نوعی برنامه وب است که می تواند هم به عنوان صفحه وب و هم به عنوان برنامه تلفن همراه در هر دستگاهی کار کند. PWA یک راه حل عالی برای جبران UX برنامه های تلفن همراه است.PWA ها با جاوا اسکریپت، CSS و HTML نوشته می شوند. آنها دقیقاً مانند صفحات وب معمولی به نظر می رسند و رفتار می کنند (به این معنی که در مرورگرهای اینترنتی قابل جستجو هستند). با این حال، آنها عملکردهای یکسانی که توسط برنامه های تلفن همراه ارائه می شود را ارائه می دهند.نحوه تبدیل برنامه Asp Core به PWAبرای ایجاد PWA در برنامه های Asp Core می توان بوسیله پکیج WebEssentials.AspNetCore.PWA  یک پروژه Asp Core را به یک اپلیکیشن PWA تبدیل کرد.برای مشاهده این ویدیو آموزشی می توانید به لینک زیر در وب سایت آموزش برنامه نویسی کدسل مراجعه نمایید:آموزش تبدیل برنامه های Asp.Net Core به PWA</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Tue, 07 Jun 2022 15:37:20 +0430</pubDate>
            </item>
                    <item>
                <title>استفاده از پشته در سی شارپ</title>
                <link>https://virgool.io/CodeCell/%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D9%BE%D8%B4%D8%AA%D9%87-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-ssfnpi98kfjk</link>
                <description>پشته در سی شارپپشته در سی شارپ چیست؟پشته یا Stack در سی شارپ یک نوع خطی از ساختار داده است که قادر به ذخیره اشیاء است. پشته یک ساختار داده LIFO یا Last-In-First-Out است، به این معنی که آخرین موردی که در پشته قرار می گیرد اولین موردی است که از پشته خارج می شود.برای آشنایی بیشتر با پشته یا Stack در سی شارپ مقاله وب سایت  کدسل را دنبال نمایید:پشته در سی شارپ</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Mon, 06 Jun 2022 15:28:24 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش Fluent API در EF Core</title>
                <link>https://virgool.io/CodeCell/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-fluent-api-%D8%AF%D8%B1-ef-core-sujmjigjxfko</link>
                <description>آموزش Fluent API در EF CoreFluent API چیست؟در روش کد فرست یا Code First بصورت پیش فرض کلاس ها با استفاده از مجموعه ای از قراردادهای گنجانده شده در EF به جداول نگاشت می شود. به طور مثال بصورت پیش فرض در روش کد فرست در EF Core یک پراپرتی از نوع string به varchar(MAX) در دیتابیس نگاشت می شود.با این حال، گاهی اوقات نمی‌توانیم یا نمی‌خواهیم از آن قراردادها پیروی کنیم و نیاز داریم که موجودیت‌ها را به چیزی غیر از آنچه که قراردادها دیکته می‌کنند، نگاشت کنیم.برای آموزش Code First در EF Core می توانید از این لینک استفاده کنید.برای این که EF را به چیزی غیر از قراردادها پیکربندی کنیم دو راه وجود دارد:استفاده از annotation ها  در EF Coreاستفاده از  Fluent API در EF Coreچرا در روش کد فرست نباید از annotation ها در EF Core استفاده کنیم؟استفاده از annotation ها باعث کثیفی کد خواهند شداستفاده از annotation ها خوانایی کد را پایین می آورداستفاده از annotation ها توسعه و نگه داری کد را سخت خواهد کردچرا در روش کد فرست باید از Fluent API در EF Core استفاده کنیم؟استفاده از Fluent API ها خوانایی کد را بالا می برداستفاده از Fluent API ها باعث تسریع روند پروژه خواهد شداستفاده از Fluent API ها توسعه و نگه داری کد را آسان می کندانواع سناریوهای نگاشت را می توان با Fluent API انجام دادبه طور کل annotation ها فقط زیرمجموعه ای از عملکرد Fluent Api را پوشش می دهند، بنابراین سناریوهای نگاشتی وجود دارد که با استفاده از annotation نمی توان به آنها دست یافت که این سناریو ها باید با Fluent Api ها نگاشت شوند.سر فصل های آموزش Fluent API در EF Core نحوه ایجاد یک Fluent API و آشنایی با ساختار آنجداسازی پیاده سازی های Fluent API از contextبررسی انواع متدهای Fluent API و کاربردهای آنایجاد رابطه یک به یک(One-to- One) با استفاده از Fluent APiایجاد رابطه یک به چند(One-to-Many) با استفاده از Fluent APiایجاد رابطه چند  به چند(Many -to-Many) با استفاده از Fluent APiایجاد رابطه Self Relation با استفاده از Fluent APIانجام Seed Data در Fluent APIنحوه اعمال کردن ایندکس ها بوسیله  Fluent APIجهت مشاهده این آموزش به وب سایت آموزش برنامه نویسی کدسل در لینک زیر مراجعه نمایید:دوره آموزش Fluent API در EF Core</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Sat, 28 May 2022 08:46:40 +0430</pubDate>
            </item>
                    <item>
                <title>ایجاد دیتابیس با روش Code First در EF Core</title>
                <link>https://virgool.io/CodeCell/%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%A8%D8%A7-%D8%B1%D9%88%D8%B4-code-first-%D8%AF%D8%B1-ef-core-zyfwecitd5wp</link>
                <description>ایجاد دیتابیس با روش کد فرستروش کد فرست(Code First) در EFCore چیست؟روش کد فرست یا Code First تکنیکی است که به ما کمک می کند تا از طریق کد و مایگریشن یک دیتابیس را ایجاد و جداول آن را کانفیگ و نگهداری کنیم. در روش code first بصورت مستقیم دیتابیس و جداول مربوط به آن را از طریق  کد دات نت نگهداری می کنیم.مایگریشن چیست؟در روش کد فرست مایگریشن یا migration یک  راه پیشنهادی برای تکامل طرح پایگاه داده برنامه ما است. مایگریشن مجموعه‌ای از ابزارها را فراهم می‌کند که به کمک آن ها میتوانیم به موارد زیر دست یابیم:ایجاد یک پایگاه داده اولیه که با مدل EF ما کار کندایجاد مایگریشن برای پیگیری تغییراتی که در مدل EF خود ایجاد می کنیمبروز نگه داشتن پایگاه داده خود بوسیله این تغییراتکاربرد Fluent Api چیست؟در روش کدفرست بصورت پیش فرض کلاس ها با استفاده از مجموعه ای از قراردادهای گنجانده شده در EF به جداول نگاشت می شود. با این حال، گاهی اوقات نمی‌توانیم یا نمی‌خواهیم از آن قراردادها پیروی کنیم و نیاز داریم که موجودیت‌ها را به چیزی غیر از آنچه که قراردادها دیکته می‌کنند، نگاشت کنیم.برای این که EF را به چیزی غیر از قراردادها پیکربندی کنیم دو راه وجود دارد، استفاده از annotation ها یا EFs fluent API. استفاده از annotation ها فقط زیرمجموعه ای از عملکرد Fluent Api را پوشش می دهند، بنابراین سناریوهای نگاشتی وجود دارد که با استفاده از annotation نمی توان به آنها دست یافت که این سناریو ها باید با Fluent Api ها نگاشت شوند.آموزش کد فرست(Code First) در EF Core و Asp.Net Coreوب سایت آموزش برنامه نویسی و طراحی وب کدسل به صورت روان و ساده به آموزش استفاده از کد فرست در ef core و asp.net core 6 پرداخته است.جهت مشاهده این ویدیو آموزشی از لینک زیر استفاده نمایید:آموزش Code First در EF Core</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Wed, 25 May 2022 09:56:51 +0430</pubDate>
            </item>
                    <item>
                <title>صف (Queue) در سی شارپ</title>
                <link>https://virgool.io/CodeCell/%D8%B5%D9%81-queue-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-gbxfdba3ydtv</link>
                <description>صف (Queue) در سی شارپصف (Queue) در سی شارپ چیست؟صف در سی شارپ یک نوع خطی از ساختار داده است که قادر به ذخیره اشیاء است. Queue یک ساختار داده first-in-first-out یا FIFO است که به این معنی است که اولین مورد اضافه شده به صف اولین موردی است که حذف می شود.برای آشنایی بیشتر با صف در csharp مقاله وب سایت برنامه نویسی و طراحی وب کدسل را دنبال نمایید:صف در سی شارپ</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Sat, 21 May 2022 13:42:17 +0430</pubDate>
            </item>
                    <item>
                <title>تفاوت Hashtable و Dictionary در سی شارپ</title>
                <link>https://virgool.io/CodeCell/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-hashtable-%D9%88-dictionary-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-xnzrsem98ljr</link>
                <description>تفاوت Hashtable و Dictionary در سی شارپ
آشنایی با Dictionary در سی شارپدر سی شارپ، دیکشنری یک مجموعه generic است که معمولاً برای ذخیره جفت‌های Key/Value استفاده می‌شود. دیکشنری تحت فضای نام System.Collection.Generics تعریف شده است و ماهیت آن پویا است به این معنی که اندازه Dictionary  بر اساس نیاز رشد می کند.برای آشنایی بیشتر با دیکشنری ها می توانید مقاله Dictionary در سی شارپ را مطالعه فرمایید.آشنایی با Hashtable در سی شارپدر سی شارپ Hashtable مجموعه‌ای از جفت‌های Key/Value است که بر اساس کد هش کلید مرتب شده‌اند. یا به عبارت دیگر از Hashtable برای ایجاد مجموعه ای استفاده می شود که از جدول هش برای ذخیره سازی استفاده می کند. این نوع مجموعه non-generic است که در فضای نام System.Collections تعریف شده است. در Hashtable، اشیاء کلید تا زمانی که به عنوان کلید در Hashtable استفاده می شوند، باید تغییر ناپذیر باشند.برای آشنایی بیشتر با Hashtable ها می توانید مقاله Hashtable در سی شارپ را مطالعه فرمایید.تفاوت Dictionary و Hashtable در سی شارپهمان طور که در بالا گفته شد Hashtable و Dictionary هر دو عناصر را به عنوان جفت Key/Value ذخیره می کنند ولی تفاوت های با هم دارند.وب سایت آموزش برنامه نویسی و طراحی وب کدسل به بررسی تفاوت های Dictionary  و Hashtable در سی شارپ پرداخته است.</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Sun, 15 May 2022 08:59:23 +0430</pubDate>
            </item>
                    <item>
                <title>دیکشنری (Dictionary) در سی شارپ</title>
                <link>https://virgool.io/CodeCell/%D8%AF%DB%8C%DA%A9%D8%B4%D9%86%D8%B1%DB%8C-dictionary-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-by7m1uh96jdn</link>
                <description>Dictionary در سی شارپدیکشنری (Dictionary) در سی شارپ چیست؟از Dictionary می‌توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. تفاوت اصلی این است که یک Dictionary می تواند عناصر را به عنوان جفت Key/Value ذخیره کند.Key ها باید منحصر به فرد و نمی توانند null باشند. Value ها می توانند تکراری یا null باشند.دیکشنری ها در فضای نام دیکشنری (Dictionary) در سی شارپ قرار دارند.برای آشنایی بیشتر با Dictionary در سی شارپ به وب سایت آموزش برنامه نویسی کدسل مراجعه نمایید.لینک: استفاده از Dictionary در سی شارپ</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Sun, 08 May 2022 11:27:04 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش Ajax در Asp Core</title>
                <link>https://virgool.io/CodeCell/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-ajax-%D8%AF%D8%B1-asp-core-kf7qjy5vchz7</link>
                <description>آموزش Ajax در Asp Core                                                                                                                                                   Ajax چیست؟درواقع AJAX مخفف عبارت Asynchronous JavaScript And XML است.AJAX یک تکنیک جدید برای ایجاد بهتر،سریع و تعاملی تر برنامه های کاربردی وب با کمک XML، HTML، CSS و Java Script است.AJAX دوام‌ پذیرترین فناوری Rich Internet Application (RIA) تاکنون است. اما در عین حال، AJAX دارای ناسازگاری مرورگر است و توسط جاوا اسکریپت پشتیبانی می شود که نگهداری و اشکال زدایی آن را سخت می کند.چرا باید از Ajax استفاده کنیم؟براساس استانداردهای وب مانند HTML و CSS عمل میکند. داده ها در XML واکشی شده از سرور، ارسال، بازیابی و ذخیره می شوند.بدون لود کامل صفحه ،درخواست را به سمت سرور ارسال و سپس پاسخ را به کلاینت ارسال میکند.یک فناوری مرورگر وب مستقل از نرم افزار وب سرور است.با Ajax یک کاربر می تواند  در حالی که client اطلاعاتی را از سرور در پس زمینه درخواست می کند به استفاده از برنامه ادامه دهد.با AJAX، هنگامی که دکمه ارسال را فشار می دهید، جاوا اسکریپت درخواستی را به سرور ارسال ، نتایج را تفسیر و صفحه فعلی را بروز می کند. به معنای خالص، کاربر هرگز نمی داند که چه چیزی به سرور منتقل شده است.برای کار با Ajax نیاز به یک کتابخانه جاوااسکریپتی است که ارسال ajax را ممکن سازدشما میتوانید در سایت کدسل آموزش استفاده از Ajax در Asp.Net Core  را دنبال کنید</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>Ali Momeni</author>
                <pubDate>Sat, 07 May 2022 08:53:01 +0430</pubDate>
            </item>
                    <item>
                <title>کاربرد Hashtable در سی شارپ</title>
                <link>https://virgool.io/CodeCell/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-hashtable-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-klczoogfpj8i</link>
                <description>Hashtable در سی شارپاز Hashtable می‌توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. تفاوت اصلی این است که یک Hashtable می تواند عناصر را به عنوان جفت Key/Value ذخیره کند.Key ها باید منحصر به فرد و نمی توانند null باشند. Value ها می توانند تکراری یا null باشند.برای بررسی کامل Hashtable در CSharp می توانید مقاله سایت کدسل را دنبال کنید.کاربرد Hashtable در سی شارپ</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Fri, 06 May 2022 15:21:18 +0430</pubDate>
            </item>
                    <item>
                <title>روش های Redirect درخواست در asp core</title>
                <link>https://virgool.io/CodeCell/%D8%B1%D9%88%D8%B4-%D9%87%D8%A7%DB%8C-redirect-%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA-%D8%AF%D8%B1-asp-core-u493wzfzak1h</link>
                <description>در برنامه های ASP.NET Core برای تغییر مسیر  یا ریدایرکت به یک URL خاص روش های مختلفی وجود دارد.ممکن است دلایل زیادی برای Redirect و تغییر مسیر به صورت موقت یا دائم از URL فعلی به URL دیگر وجود داشته باشد. چندین نوع روش در ASP.NET Core  وجود دارد که با استفاده از آن ها می توانیم درخواست را در ASP.NET Core  تغییر مسیر دهیم. روش های موجود در ASP.NET Core برای تغییر مسیر به شرح زیر است:• Redirect • RedirectToAction • RedirectToPage • RedirectToRoute • LocalRedirectهر یک از روش‌های بالا دارای تفاوت هایی هستند. بررسی این روش ها و تفاوت های آن در وب سایت آموزش برنامه نویسی کدسل به خوبی شرح داده شده است.لینک مقاله در وب سایت آموزش برنامه نویسی کدسل:انواع روش های Redirect  یا ریدایرکت درخواست در asp core</description>
                <category>آموزش برنامه نویسی و طراحی وب</category>
                <author>CodeCell</author>
                <pubDate>Thu, 05 May 2022 10:54:56 +0430</pubDate>
            </item>
            </channel>
</rss>