فروش ویژه پاییز 1400
دوره جامع ASP NET Core کدهک با تخفیف ویژه 50 درصد برای مدت محدود عرضه میشود.
سر فصل ها :
آموزش پروژه محور ASP NET Core
کارگاه تخصصی Domain Driven Design
کارگاه تخصصی Microservice
دوره کامل EF Core 5.0
کد تخفیف : aban
https://codehaks.com/gallery/more/10
دوره جامع ASP NET Core کدهک با تخفیف ویژه 50 درصد برای مدت محدود عرضه میشود.
سر فصل ها :
آموزش پروژه محور ASP NET Core
کارگاه تخصصی Domain Driven Design
کارگاه تخصصی Microservice
دوره کامل EF Core 5.0
کد تخفیف : aban
https://codehaks.com/gallery/more/10
در سی شارپ String به صورت Immutable کار میکند. در این ویدیو به اثر این موضوع را در دات نت بررسی می کنیم و به معرفی و مقایسه استفاده از StringBuilder می پردازیم.
https://youtu.be/b1dTOkHjV4U
https://youtu.be/b1dTOkHjV4U
آشنایی با GUID
مقدار GUID یک عدد 128 است که به صورت 32 کاراکتر در مبنای 16 نمایش داده میشود و شامل 4 خط تیره است. نسخه های و ویرایش مختلفی از آن ارائه شده که در عدد ساخته شده درج میشود.
از GUID یا Globally Unique Identifier برای ایجاد کلید اصلی جداول دیتابیس استفاده میشود.
شانس تکراری بودن مقدار GUID صفر نیست اما مقدار تصادفی که ایجاد میشود آنقدر بزرگ است که شانس تکراری شدن آن حتی بعد از تولید هزاران میلیارد رکورد باز هم نزدیک به صفر است.
در دهه 80 میلادی از GUID در سیستم عامل Apollo ناسا استفاده میشد. بعد در سیستم عامل ویندوز و شبکه (آدرس MAC) مورد استفاده قرار گرفت.
مزیت اصلی GUID این است که بدون مراجعه به دیتابیس و بررسی سایر رکوردها می توان یک کلید غیر تکراری ایجاد کرد. این مسئله در معماری میکروسرویس و دیتابیس های توزیع شده کاربرد زیادی دارد.
دیتابیس SQL Server و فریم ورک دات نت مستقیما از این نوع داده پشتیبانی میکنند.
مقدار GUID یک عدد 128 است که به صورت 32 کاراکتر در مبنای 16 نمایش داده میشود و شامل 4 خط تیره است. نسخه های و ویرایش مختلفی از آن ارائه شده که در عدد ساخته شده درج میشود.
از GUID یا Globally Unique Identifier برای ایجاد کلید اصلی جداول دیتابیس استفاده میشود.
شانس تکراری بودن مقدار GUID صفر نیست اما مقدار تصادفی که ایجاد میشود آنقدر بزرگ است که شانس تکراری شدن آن حتی بعد از تولید هزاران میلیارد رکورد باز هم نزدیک به صفر است.
در دهه 80 میلادی از GUID در سیستم عامل Apollo ناسا استفاده میشد. بعد در سیستم عامل ویندوز و شبکه (آدرس MAC) مورد استفاده قرار گرفت.
مزیت اصلی GUID این است که بدون مراجعه به دیتابیس و بررسی سایر رکوردها می توان یک کلید غیر تکراری ایجاد کرد. این مسئله در معماری میکروسرویس و دیتابیس های توزیع شده کاربرد زیادی دارد.
دیتابیس SQL Server و فریم ورک دات نت مستقیما از این نوع داده پشتیبانی میکنند.
Forwarded from برنامه نویس
🔈🤑 تخفیف 30% کلیه پکیج های آموزش ویدئویی برنامه نویس - ویژه جمعه سیاه
کد تخفیف: BF21
تاریخ انقضای کد تخفیف فوق: جمعه، ۵ آذر ۱۴۰۰، ساعت 12 شب
لازم به ذکر است، آموزش های ارائه شده در پکیج های آموزش ASP.NET Core، بدون هیچ تغییری در ASP.NET Core 6.0 نیز قابل استفاده است.
با تقدیم احترام
#مهدی_کرامتی
#تخفیف
@barnamenevis_net
کد تخفیف: BF21
تاریخ انقضای کد تخفیف فوق: جمعه، ۵ آذر ۱۴۰۰، ساعت 12 شب
لازم به ذکر است، آموزش های ارائه شده در پکیج های آموزش ASP.NET Core، بدون هیچ تغییری در ASP.NET Core 6.0 نیز قابل استفاده است.
با تقدیم احترام
#مهدی_کرامتی
#تخفیف
@barnamenevis_net
آشنایی با JWT
مکانیزم JWT یک روش برای Authorization تحت وب است به این صورت که کلاینت نام کاربری و رمز ورود خود را به سرور ارسال میکند و سرور در صورت درست بودن اطلاعات (Authenticate) کدی با محتوای base64 تولید میکند و آن را به کلاینت ارسال میکند.
از اینجا به بعد کلاینت برای دریافت اطلاعات از سرور فقط کافی است کد (نشان) دریافت شده را درون Header قرار دهد و در هر درخواست به سرور ارسال کند. سرور از روی الگوریتم داده ها را به امضای دیجیتال تبدیل میکند و آن را با امضای نشان مطابقت میدهد.
نشان JWT شامل سه بخش است :
بخش اول Header که نوع الگوریتم تولید امضا را مشخص میکند.
بخش دوم Payload که محتوای اطلاعات شامل نام کاربری، آی دی یا سمت و ... است.
بخش سوم Signature که یک امضای دیجیتال است که از روی الگوریتم رمزگذاری و اطلاعات بخش دوم تهیه میشود تا اطمینان حاصل شود محتوای نشان تغییر نمیکند.
هر بخش با نقطه از هم تفکیک میشود.
این روش گاهی Bearer token هم خوانده میشود.
اطلاعات توکن با فرمت Base64 جابجا میشود و رمزنگاری نشده است و توسط هر کس قابل خواندن است مگر اینکه از روشهایی مثل JWS یا JWE استفاده شود.
مکانیزم JWT یک روش برای Authorization تحت وب است به این صورت که کلاینت نام کاربری و رمز ورود خود را به سرور ارسال میکند و سرور در صورت درست بودن اطلاعات (Authenticate) کدی با محتوای base64 تولید میکند و آن را به کلاینت ارسال میکند.
از اینجا به بعد کلاینت برای دریافت اطلاعات از سرور فقط کافی است کد (نشان) دریافت شده را درون Header قرار دهد و در هر درخواست به سرور ارسال کند. سرور از روی الگوریتم داده ها را به امضای دیجیتال تبدیل میکند و آن را با امضای نشان مطابقت میدهد.
نشان JWT شامل سه بخش است :
بخش اول Header که نوع الگوریتم تولید امضا را مشخص میکند.
بخش دوم Payload که محتوای اطلاعات شامل نام کاربری، آی دی یا سمت و ... است.
بخش سوم Signature که یک امضای دیجیتال است که از روی الگوریتم رمزگذاری و اطلاعات بخش دوم تهیه میشود تا اطمینان حاصل شود محتوای نشان تغییر نمیکند.
هر بخش با نقطه از هم تفکیک میشود.
این روش گاهی Bearer token هم خوانده میشود.
اطلاعات توکن با فرمت Base64 جابجا میشود و رمزنگاری نشده است و توسط هر کس قابل خواندن است مگر اینکه از روشهایی مثل JWS یا JWE استفاده شود.
در ASP NET Core ابزار IoC Container از سه روش Scoped و Transient و Singleton پشتیبانی می کند. در این ویدیو اثر استفاده از هرکدام را بررسی می کنیم
https://youtu.be/OhcYyK-w5Mg
https://youtu.be/OhcYyK-w5Mg
شمارش خودکار ارجاع یا ARC روشی است که در زبانهایی مانند Objective-C و Swift برای مدیریت حافظه استفاده میشود.
در این روش پاکسازی حافظه یک شی زمانی انجام میشود که دیگر هیچ رفرنسی به آن داده نشده باشد.
در GC که #C و Java از آن استفاده میکنند پاکسازی حافظه در بازه های زمانی اتفاق می افتد و باعث مکث در برنامه میشود. همچنین هنگامی که حافظه سیستم پر میشود باید GC در بازه های زمانی کوتاهتر اجرا شود.
در ARC رفرنس های داده شده به شی یا گرفته شده از آن شمارش میشود و زمانی که تعداد آنها به صفر میرسد حافظه شی تخلیه میشود. این روش نیاز به الگوریتم ساده تری دارد و جایی که منابع حافظه محدود است (موبایل) کارایی بیشتری دارد.
اما ARC قادر به مدیریت Reference Cycle نیست یعنی زمانی که شی A فقط به شی B وابسته باشد و برعکس تعداد رفرنس ها هیچوقت صفر نمیشود و نیاز به مکانیزم بیرونی برای تشخیص و پاکسازی بوجود می آید در غیر این صورت Memory Leak پیش می آید.
همچنین دفعات زیاد رفرنس دهی یا حذف رفرنس از شی در ARC غیر بهینه عمل میکند. در حالی که در GC تاثیر نمیگذارد.
در iOS از نسخه 5 به بعد از ARC استفاده میشود.
در این روش پاکسازی حافظه یک شی زمانی انجام میشود که دیگر هیچ رفرنسی به آن داده نشده باشد.
در GC که #C و Java از آن استفاده میکنند پاکسازی حافظه در بازه های زمانی اتفاق می افتد و باعث مکث در برنامه میشود. همچنین هنگامی که حافظه سیستم پر میشود باید GC در بازه های زمانی کوتاهتر اجرا شود.
در ARC رفرنس های داده شده به شی یا گرفته شده از آن شمارش میشود و زمانی که تعداد آنها به صفر میرسد حافظه شی تخلیه میشود. این روش نیاز به الگوریتم ساده تری دارد و جایی که منابع حافظه محدود است (موبایل) کارایی بیشتری دارد.
اما ARC قادر به مدیریت Reference Cycle نیست یعنی زمانی که شی A فقط به شی B وابسته باشد و برعکس تعداد رفرنس ها هیچوقت صفر نمیشود و نیاز به مکانیزم بیرونی برای تشخیص و پاکسازی بوجود می آید در غیر این صورت Memory Leak پیش می آید.
همچنین دفعات زیاد رفرنس دهی یا حذف رفرنس از شی در ARC غیر بهینه عمل میکند. در حالی که در GC تاثیر نمیگذارد.
در iOS از نسخه 5 به بعد از ARC استفاده میشود.