آموزش کار با اینترفیس IDisposable در سی شارپ

تعداد ویدئو 30
زمان دوره 02:15:56
مترجم مرتضی گیتی
ناظر ترجمه مرتضی گیتی
دوبلر مرتضی گیتی
ناظر دوبلاژ مرتضی گیتی
سایت منتشر کننده پلورال سایت

آموزش کار با اینترفیس IDisposable در سی شارپ یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، کار با قابلیت های اینترفیس IDisposable در سی شارپ است که با نام اصلی IDisposable Best Practices for C# Developers از شرکت Pluralsight منتشر شده است

منابع غیر مدیریت شده و یا unmanaged resource ها چه هستند؟

اولین موضوعی که باید در رابطه با آن صحبت کنیم، مفهوم منابع غیر مدیریت شده و یا unmanaged resource می باشد. تقریباً تمامی اپلیکیشن ها از منابعی از قبیل file system و دیتابیس ها و web service ها استفاده می کنند. مصرف کردن این resource ها و یا منابع به معنی آن است که از سیستم عامل و API ها و سرویس های سطح پایین استفاده می شود. به همین دلیل نیاز به مفهوم از بین بردن یا dispose کردن آبجکت ها داریم. برای اینکه موضوع را بهتر درک کنید مثالی را ارائه می دهیم.

IDisposable-Best-Practices-for-C-Developers-Snapshot

فرض کنید که یک فایل را باز کرده و سپس با آن کار می کنید. برای انجام این کار نیاز به یک instance از کلاس FileStream دارید. اما به صورت درونی چه اتفاقی می افتد؟ به صورت درونی فایل مورد نظر با استفاده از API های ویندوز و همچنین API های سطح پایین موجود که می تواند با یک file handle کار کنند استفاده می شود. در محیط دات نت، این file handle یک عدد ساده است که کلاس StreamReader می تواند از آن استفاده نماید. حال اگر کلاس FileStream را dispose نکنید، این handle از فایل مورد نظر در برنامه شما باقی خواهد ماند. پس از مدتی instance ایجاد شده از FileStream توسط garbage collector و فرآیند garbage collection که هدفش آزادسازی حافظه سیستم می باشد جمع آوری شده اما سیستم عامل نمی تواند متوجه بشود که فایلی که باز کرده است، می تواند هم اکنون بسته و یا close بشود. برای آزادسازی کردن و release کردن unmanaged resource های اختصاص داده شده توسط کلاس هایمان می بایست از مکانیزم dispose کردن استفاده کنید.

اینترفیس IDisposable

تمامی کلاس هایی که از مفهوم از بین بردن و یا disposable استفاده می کنند، اینترفیس IDisposable را پیاده سازی می نمایند. اینترفیس IDisposable شامل یک متد تک به نام Dispose می باشد. علیرغم سادگی بسیار زیاد این اینترفیس، نقش کلیدی آن در کار کردن با منابع غیر مدیریت شده بسیار کلیدی است. برای مثال فرض کنید زمانی که در حال استفاده کردن از یک فایل هستید کهیک exception رخ می دهد. این موضوع ممکن است باعث بشود که صدا زدن متد Dispose از اینترفیس IDisposable را فراموش کنیم.

استفاده کردن از Using-block ها

یکی از روش های استفاده کردن از آبجکت هایی که قابل از بین بردن و یا dispose کرددن هستند، استفاده از using می باشد. کلمه کلیدی using در زبان برنامه نویسی سی شارپ وجود دارد. با استفاده از این کلمه کلیدی، متد dispose همواره بر روی آبجکت قابل از بین بردن و یا disposable صدا زده خواهد شد. با استفاده کردن از این روش، دیگر نیازی نیست که صدا زدن متد dispose را به یاد داشته باشیم. چرا که سی شارپ، خودش این متد را به صورت خودکار صدا خواهد زد.

سرفصل مطالب آموزش ویدئویی کار با اینترفیس IDisposable در سی شارپ

فصل اول: مقدمه دوره آموزشی

  • مقدمه دوره آموزشی

فصل دوم: معرفی کردن IDisposable

  • درک کردن IDisposable
  • استفاده کردن از آبجکت های IDisposable
  • آموزش عملی: کار کردن با آبجکت های IDisposable
  • آموزش عملی: استفاده بیش از حد از Resource ها و Disposable نکردن
  • Best Practice شماره یک
  • آموزش عملی: مصرف کردن Resource ها بدون Dispose کردن آنها
  • آموزش عملی: معذلات Functional ایجاد شده از Dispose نکردن
  • جمع بندی

فصل سوم: زمانی که Garbage Collector اجرا می شود چه اتفاقی می افتد؟

  • معرفی کردن Garbage Collector
  • Garbage Collector چه موقع و چه زمانی اجرا می شود؟
  • آموزش عملی: درک کردن Garbage Collection
  • آموزش عملی: Memory Profiling و Object Profiling
  • مدیریت کردن حجم کار Garbage Collector’s
  • آموزش عملی: پیاده سازی IDisposable
  • آموزش عملی: الگوی کامل Dispose
  • Garbage Collector چگونه از Finalizer ها استفاده می کند؟
  • آموزش عملی: IDisposable ها و Finalizer ها
  • آموزش عملی: Cleaning up کردن Unmanaged Resource ها
  • جمع بندی

فصل چهارم: اگر عملیات Dispose را انجام ندهید چه اتفاقی می افتد؟

  • روش های مربوط به پیدا کردن و حل کردن مشکلات Disposable ها
  • آموزش عملی: پیدا کردن مشکلات مربوط به Lifetime های آبجکت ها
  • حل کردن مشکلات با استفاده از Static Analysis و Profiling
  • استفاده کردن از Static Analysis برای پیدا کردن مشکلات مربوط به IDisposable
  • آموزش عملی: مدیریت کردن Lifetime های آبجکت ها در اچلیکیشن های مدرن
  • آموزش عملی: حل کردن مشکلات Lifetime ها با استفاده از Dependency Injection
  • بررسی آبجکت های Disposable و موارد خاص در Dependency Injection
  • استفاده کردن از IAsyncDisposable به همراه Asynchronous Stream ها
  • جمع بندی

فصل پنجم: فقط Best Practice ها

  • کارهایی که می بایست انجام بدهید، کارهایی که باید انجام بدهید و کارهایی که بهتر است انجام بدهید و موارد لبه ای و یا Edge Case ها

نقد و بررسی‌ها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین کسی باشید که دیدگاهی می نویسد “آموزش کار با اینترفیس IDisposable در سی شارپ”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته های محصولات

افزودن به سبد خرید