کدهک
1.93K subscribers
1.3K photos
7 videos
1 file
675 links
آموزشگاه تخصصی دات نت

https://codehaks.com

لینکدین :
https://www.linkedin.com/in/codehaks

یوتیوب:
https://www.youtube.com/@codehaksfa

ارتباط با مدیر :
Admin: @codehak
Email: ghods.hakim@hotmail.com
call: 09380146555
Download Telegram
پایان عمر dotnet core 1.0 و 1.1

نسخه های دات نت Core با ورژن 1.0 و 1.1 امروز رسما از پشتیبانی مایکروسافت خارج شدند و هیچ آپدیت جدیدی برای آنها ارائه نمیشود.
مقایسه Nodejs و dotnet core از نظر پرفورمنس در یک مجموعه ویدیوی سه قسمتی - یویتوب

https://tinyurl.com/cdhks-dotnet-node
آموزش ASP NET Core MVC

درس اول 12 قسمت در یوتیوب

https://tinyurl.com/cdhks-first-lesson
آموزش Async & Await در ASP NET Core

مدت : 48 دقیقه
تعداد : 18 ویدیو

https://tinyurl.com/cdhks-async-p2
وقتی RegEx اینترنت را از کار انداخت!

هفته ی گذشته هزاران سایت مربوط به شرکتهای بزرگ و معتبر از دسترس خارج شدند. سرویس هایی مثل AT & T و Discord از کار افتادند و به نظر میرسید حمله ی DDos در مقیاس جهانی روی داده داست. اما ظاهرا مشکل مربوط به باگ در سرویس CloudFlare میشد.

سرویس ClouldFlare یک CDN و Proxy است و به عنوان فایروال جلوی حملات DDos را میگیرد. سایتهای زیادی از این سرویس استفاده می کنند.

حالا تیم فنی CloudFlare اعلام کرده است که علت مشکل بوجود آمده یک RegEx بوده که باعث میشده مصرف CPU تا صد در صد پر شود و سرور را از کار بیاندازد.

در واقع نبود تست های کافی و مناسب باعث شده هنگام پابلیش باگ کشف نشود و این ضربه ی سنگین را به اعتبار CloudFlare وارد کند.
کلاس تخصصی ASP NET Core برگزار میشود

این دوره با آموزش مباحث پیشرفته در سی شارپ شروع میشود. سپس به آموزش کامل Clean Architecture و نحوه ی پیاده سازی Design Patterns می پردازیم.

می خواهیم با تکنیک های پیشرفته ی Caching و استفاده از Redis آشنا شویم همچنین نحوه ی پیاده سازی میکرو سرویس ها را فرا بگیریم.

همچنین برنامه نویسی Real-time با SignalR و نحوه ی استفاده از Docker در این دوره آموزش داده میشود.

اگر قصد دارید دانش خود را در زمینه ی ASP NET Core ارتقا دهید این دوره مخصوص شماست.

این دوره به مدت 30 ساعت و به صورت اینترنتی برگزار میشود و می توانید از هرجایی که هستید در آن شرکت کنید.

ساعت کلاس مطابق با زمان دانشجویان تنظیم میشود.

جهت کسب اطلاعات بیشتر با آی دی @codehak یا شماره 09380146555 تماس بگیرید

شروع کلاس ها از 22 تیرماه
کاربران اشتراک وِیژه و دانشجویان 25 درصد تخفیف
فیلم دوره در پایان قابل دانلود است

مشاهده سرفصلها :

https://tinyurl.com/cdhks-expert
آموزش ASP NET Core MVC

درس اول

قسمت های 13 تا 17 اضافه شد.

https://tinyurl.com/cdhks-first-lesson
Forwarded from کدهک
اپ فال حافظ که در ASP Core با تکنیک PWA پیاده شده:

برنامه به صورت آفلاین هم کار میکنه
به هوم اسکرین گوشی اضافه میشه
بدون مرورگر اجرا میشه

https://codehaks.com/yalda
Forwarded from کدهک
در این ویدیو به معرفی اپ فال حافظ می پردازیم که با تکنیک Progressive web app تهیه شده و می توانید آن را به هوم اسکرین گوشی اضافه کنید و به صورت آفلاین استفاده کنید.

https://goo.gl/fwJd5d
آشنایی با LLVM
در واقع LLVM مجموعه ای از ماژولها و ابزار است که عملیات کامپایل کردن سورس کد به زبان ماشین را آسان میکند.

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

در گذشته وقتی میخواستید یک زبان برنامه نویسی جدید بسازید باید همه ی فرآیند خوانش کد و تبدیل آن به زبان ماشین را خودتان پیاده میکردید. مشکل این است که پردازنده های سخت افزاری متعددی در بازار وجود دارد و ساز و کار x86 با ARM و PowerPC و ... متفاوت است.

شما باید کامپایلری بسازید که قادر باشد از روی سورس برنامه نوشته شده توسط برنامه نویس کد ماشین برای انواع پردازنده تولید کند. در غیر این صورت عملا محدودیت های زیادی در استفاده از زبان برنامه نویسی بوجود می آید.

این مشکلی است که LLVM به خوبی حل می کند. LLVM مجموعه ای از ابزار با API های ماژولار در اختیار شما قرار میدهد تا بتوانید سورس کد را به زبانی میانی یا Intermediate Representation تبدیل کنید. فقط کافی است کدهای مربوط به Front-End را بنویسید و به LLVM ارسال کنید.

این Front-End ارتباطی با جاوا اسکریپت ندارد! بلکه بخشی از کامپایلر است که وظیفه ی Parse کردن و تشخیص خطاهای Syntax را به عهده دارد. بعد از اینکه کد شما به IR تبدیل شد LLVM می تواند آن را برای انواع مختلف سخت افزار آماده کند و کد ماشین مورد نیاز را تولید کند.

ابزار LLVM کمک کرده فرآیند طراحی زبان های برنامه نویسی جدید آسانتر شود و در نتیجه زبانهایی مثل Kotlin و Rust و Swift در کوتاهترین زمان جای خود را بین برنامه نویسان باز کرده اند.
در زبان سی شارپ کامپایلر Roslyn وظیفه ی Parse کردن و اعلام خطاهای Syntax را به عده دارد. در ادامه بهینه سازی انجام میدهد و کد میانی یا Intermediate Language را تولید می کند. این همان فایل dll یا exe برنامه ی شماست.

سپس در هنگام اجرا بسته به اینکه از چه پردازنده ای استفاده می کنید Just In Time Compiler دات نت که به RyuJIT معروف است شروع به کار میکند و در لحظه اجرای برنامه کد ماشین را تولید می کند.

استفاده از JIT کمک می کند برنامه به سخت افزار وابستگی مستقیم نداشته باشد و مجبور نباشیم برای هر سیستم عامل و سخت افزار جدا فایل جداگانه ای تولید کنیم.

در بعضی برنامه ها برای بالا بردن پرفورمنس از دستورات برداری استفاده میشود. چنانچه پردازنده از این دستورات پشتیبانی نکند برنامه خیلی کندتر از حالت بدون بردار اجرا میشود.

یکی از مشکلاتی که RyuJIT حل میکند بهینه سازی SIMD است. این ابزار می تواند بر اساس قابلیت های پردازنده کدهای برداری را به کدهای معمولی تبدیل کند تا حداکثر پرفورمنس بدست آید.
Forwarded from کدهک
کلاس تخصصی ASP NET Core برگزار میشود

این دوره با آموزش مباحث پیشرفته در سی شارپ شروع میشود. سپس به آموزش کامل Clean Architecture و نحوه ی پیاده سازی Design Patterns می پردازیم.

می خواهیم با تکنیک های پیشرفته ی Caching و استفاده از Redis آشنا شویم همچنین نحوه ی پیاده سازی میکرو سرویس ها را فرا بگیریم.

همچنین برنامه نویسی Real-time با SignalR و نحوه ی استفاده از Docker در این دوره آموزش داده میشود.

اگر قصد دارید دانش خود را در زمینه ی ASP NET Core ارتقا دهید این دوره مخصوص شماست.

این دوره به مدت 30 ساعت و به صورت اینترنتی برگزار میشود و می توانید از هرجایی که هستید در آن شرکت کنید.

ساعت کلاس مطابق با زمان دانشجویان تنظیم میشود.

جهت کسب اطلاعات بیشتر با آی دی @codehak یا شماره 09380146555 تماس بگیرید

شروع کلاس ها از 22 تیرماه
کاربران اشتراک وِیژه و دانشجویان 25 درصد تخفیف
فیلم دوره در پایان قابل دانلود است

مشاهده سرفصلها :

https://tinyurl.com/cdhks-expert
چگونه یک سرور دانلود بسازیم؟

آموزش مفهوم Range در HTTP
کار با FileResult
بدست آوردن حجم دانلود با Head
دانلود فایل با HttpClient

تماشا در یوتویب :

https://tinyurl.com/cdhks-dwnld-server
شروع کار با SignalR Core

در این مجموعه 8 قسمتی و در 30 دقیقه به آموزش برنامه نویسی Real-time در ASP NET Core می پردازیم.



تماشا در یوتیوب :

https://tinyurl.com/cdhks-signalr-core
Forwarded from کدهک
به نظر شما در #C کدام روش سریعتر است؟
Final Results
47%
حلقه با for
38%
حلقه با foreach
15%
فرقی ندارند
چرا foreach کندتر است؟

در نظر سنجی کدهک بیش از 50 درصد کاربرها اعتقاد داشتند که for-each سریعتر از for-loop است یا فرقی با آن ندارد. در اینجا این موضوع را بررسی می کنیم.

اگر با آرایه هایی کار می کنید که ابعاد مشخصی دارند فرقی بین for-loop و for-each وجود ندارد. از آنجا که در پس زمینه کامپایلر سی شارپ بجای حلقه ی for-each حلقه ی for-loop جایگزین می کند.

اما این تنها در صورتی است که آرایه را به IEnumerable تبدیل نکنید. کلاس IEnumerable برای پردازش آرایه از توابع Current و MoveNext استفاده می کند که در هر بار اجرای حلقه موقعیت جاری را چک می کند و شامل بک فرآیند try-catch هم میشود. این مسئله یک سربار روی حافظه و پردازش ایجاد می کند و منجر به کندتر شدن پردازش می شود. حتی اگر آرایه ابعاد ثابتی داشته باشد از آنجا که به IEnumerable تبدیل شده در پس زمینه قابل تبدیل به for-loop نیست.

پس به طور کلی for-each کندتر از for-loop است. در مواردی که پرفورمنس حلقه اهمیت زیادی پیدا می کند بهتر است آن را با for-loop جایگزین کنید.
آشنایی با Casting

در سی شارپ وقتی نوع یک متغیر را به نوع دیگری تبدیل می کنید عملیات Casting روی میدهد.

بعض از Casting ها به صورت Implicit انجام میشود و نیاز به نوشتن کد ندارد. مثلا تبدیل int به long نیاز به Convert ندارد.

نوع دیگر Casting که باید به صورت Explicit انجام شود تبدیل یک Object به Object دیگر است. برای اینکار از پرانتز یا کلمه ی کلیدی As استفاده می شود.

نکته ی دیگه اینکه تبدیل یک شی به شی فرزند زحمت زیادی برای کامپایلر و Runtime ندارد اما تبدیل به شی والد پردازش بسیار بیشتری نیاز دارد. (به دلیل جستجوی درختی)

هر چند استفاده از Interface باعث میشود معماری بهتری داشته باشیم اما سخت ترین نوع Casting هنگام تبدیل به اینترفیس اتفاق می افتد. به همین دلیل بهتر است Property درون کلاس یا پارامترهای ورودی متد اینترفیس نباشد.
Forwarded from کدهک
اسکریپت نویسی با سی شارپ

https://goo.gl/ZqC2yT
امروز مایکروسافت اعلام کرد که شاخه ی اصلی سورس دات نت به 5.0 تغییر نام داده شده و توسعه ی نسخه ی بعدی دات نت شروع شده است.

چند ماه پیش در کنفرانس بیلد اعلام شد که NET Core با نسخه ی 4.0 نخواهیم داشت تا با نسخه های قدیمی تداخل پیش نیاد. همچنین در نسخه ی 5.0 دات نت Core و نسخه های قبلی دات نت ادغام میشوند.