Media is too big
VIEW IN TELEGRAM
ممنون از همه شما دوستانی که با کدهک همراه هستید.
سال نو مبارک
سال نو مبارک
Forwarded from DotNetZoom (Ali Abdolmaleki)
#سری_معرفی_وسایت_های_برتر
✅ معرفی 10 سایت برتر (سری ششم)
در مورد #C و NET Core. و ASP.NET Core
🔸توی این سری پست ها هربار 10 وبسایت برتر که از نظر سطح علمی و کیفیت محتوا، بروز و متنوع بودن بهترین هستند رو معرفی میکنم
اینا منابعی هستند که معمولا خودم دنبالشون میکنم
1️⃣ https://jimmybogard.com/
2️⃣ https://jonhilton.net/
3️⃣ https://rimdev.io/
4️⃣ http://josephwoodward.co.uk/
5️⃣ https://dotnetkicks.com/
6️⃣ https://www.mikesdotnetting.com/
7️⃣ https://blog.jeremylikness.com/
8️⃣ https://www.davideguida.com/
9️⃣ https://tyrrrz.me/blog
🔟 https://swimburger.net/
_____________
@DotNetZoom
✅ معرفی 10 سایت برتر (سری ششم)
در مورد #C و NET Core. و ASP.NET Core
🔸توی این سری پست ها هربار 10 وبسایت برتر که از نظر سطح علمی و کیفیت محتوا، بروز و متنوع بودن بهترین هستند رو معرفی میکنم
اینا منابعی هستند که معمولا خودم دنبالشون میکنم
1️⃣ https://jimmybogard.com/
2️⃣ https://jonhilton.net/
3️⃣ https://rimdev.io/
4️⃣ http://josephwoodward.co.uk/
5️⃣ https://dotnetkicks.com/
6️⃣ https://www.mikesdotnetting.com/
7️⃣ https://blog.jeremylikness.com/
8️⃣ https://www.davideguida.com/
9️⃣ https://tyrrrz.me/blog
🔟 https://swimburger.net/
_____________
@DotNetZoom
Forwarded from کدهک
تخفیف ویژه عید 1400
از امروز می توانید همه دوره های کدهک را با 40 درصد تخفیف تهیه کنید.
کد تخفیف : ta1400
جهت تهیه یکپارچه همه دوره های کدهک به مبلغ تنها 999 هزار تومان می توانید با @codehak یا شماره 09380146555 تماس بگیرید.
https://codehaks.com/shop
از امروز می توانید همه دوره های کدهک را با 40 درصد تخفیف تهیه کنید.
کد تخفیف : ta1400
جهت تهیه یکپارچه همه دوره های کدهک به مبلغ تنها 999 هزار تومان می توانید با @codehak یا شماره 09380146555 تماس بگیرید.
https://codehaks.com/shop
Forwarded from کدهک
کتابخانه Polly دارای قابلیت Circuit Breaker است که در صورت وجود خطا در سرویس از اجرای آن صرف نظر میکند. این قابلیت کمک می کند کدهایی با پایداری بالا داشته باشیم و در برابر خطاهای احتمالی پیش بینی های لازم را انجام دهیم.
https://codehaks.com/go/hwo
https://codehaks.com/go/hwo
Forwarded from کدهک
با استفاده از اینترفیس IActionResult میتوان در ASP NET Core نوع بازگشتی اختصاصی ایجاد کرد. در این ویدیو می بنیم که چطور یک کاکشن را به صورت فایل CSV در خروجی اکشن تولید کنیم.
https://codehaks.com/go/dyk
https://codehaks.com/go/dyk
Forwarded from Software Philosophy
اولین گپ تکنیکال «فلسفه نرمافزار»
با موضوع «Open Source and Community Driven Activity»
همونطور که میدونین تلگرام امکان Voice Chat رو اخیرا به کانالها اضافه کرده، امکانی که تجربه خیلی جالبی رو به تلگرام اضافه کرده که خیلی مشابه Clubhouse هست و باعث میشه بتونیم گپهای باحالی با هم بزنیم. انگار رفتیم و تو یه کافه نشستیم و با هم گپ تکنیکال میزنیم.
ما هم تصمیم گرفتیم اولین گپ تکنیکال رو از طریق همین ابزار برگزار کنیم.
تو این دورهمی مهران داودی، یاسر مرادی و محمد جواد ابراهیمی هم صحبت خواهند کرد.
امروز، یکشنبه، ۸ فروردین، ساعت ۸ منتظرتون هستیم. برای اینکه اون تایم یادتون نره میتونین کانال (@SoftwarePhilosophy) رو تو تلگرامتون پین کنین تا اون ساعت متوجه شروعش بشید.
@SoftwarePhilosophy
با موضوع «Open Source and Community Driven Activity»
همونطور که میدونین تلگرام امکان Voice Chat رو اخیرا به کانالها اضافه کرده، امکانی که تجربه خیلی جالبی رو به تلگرام اضافه کرده که خیلی مشابه Clubhouse هست و باعث میشه بتونیم گپهای باحالی با هم بزنیم. انگار رفتیم و تو یه کافه نشستیم و با هم گپ تکنیکال میزنیم.
ما هم تصمیم گرفتیم اولین گپ تکنیکال رو از طریق همین ابزار برگزار کنیم.
تو این دورهمی مهران داودی، یاسر مرادی و محمد جواد ابراهیمی هم صحبت خواهند کرد.
امروز، یکشنبه، ۸ فروردین، ساعت ۸ منتظرتون هستیم. برای اینکه اون تایم یادتون نره میتونین کانال (@SoftwarePhilosophy) رو تو تلگرامتون پین کنین تا اون ساعت متوجه شروعش بشید.
@SoftwarePhilosophy
یک فانکشن در SQL Server تعریف می کنیم و آن را در یک Computed Column استفاده می کنیم و سرعت اجرای آن را با Sub Query در EF Core مقایسه می کنیم.
https://youtu.be/uCASTdXdYMg
https://youtu.be/uCASTdXdYMg
Forwarded from کدهک
آموزش ایجاد Global Tools در دات نت
یک Global Tool در اصل یک برنامه کنسول است که میتوانید آن را از هر جایی در سیستم اجرا کنید. این ابزار شباهت زیادی به پکیج های گلوبال در NPM دارند و می توانید برای پیاده سازی ابزارهای برنامه نویسی و کارهای عمومی از آنها استفاده کنید.
https://codehaks.com/go/glb
یک Global Tool در اصل یک برنامه کنسول است که میتوانید آن را از هر جایی در سیستم اجرا کنید. این ابزار شباهت زیادی به پکیج های گلوبال در NPM دارند و می توانید برای پیاده سازی ابزارهای برنامه نویسی و کارهای عمومی از آنها استفاده کنید.
https://codehaks.com/go/glb
مایکروسافت اولین بیلد خودش از Open JDK جاوا را منتشر کرد.
جاوا در دو نسخه Oracle JDK و Open JDK عرضه میشود. برای استفاده از Oracle JDK در پروژه های تجاری باید حق لایسنس پرداخت شود اما نسخه Open JDK کاملا رایگان است.
مایکروسافت به واسطه Azure و کار با Big Data و سرویس هایی که در طول سالها خریداری کرده به طور گسترده از Open JDK و جاوا درون سازمانی استفاده میکند.
در 18 ماه گذشته مایکروسافت 50 پچ روی Open JDK پیاده و منتشر کرده است.
حالا مایکروسافت نسخه خودش را از Open JDK بیلد کرده و قرار است آن را برای بلند مدت پشتیبانی و آپدیت کند.
https://www.microsoft.com/openjdk
جاوا در دو نسخه Oracle JDK و Open JDK عرضه میشود. برای استفاده از Oracle JDK در پروژه های تجاری باید حق لایسنس پرداخت شود اما نسخه Open JDK کاملا رایگان است.
مایکروسافت به واسطه Azure و کار با Big Data و سرویس هایی که در طول سالها خریداری کرده به طور گسترده از Open JDK و جاوا درون سازمانی استفاده میکند.
در 18 ماه گذشته مایکروسافت 50 پچ روی Open JDK پیاده و منتشر کرده است.
حالا مایکروسافت نسخه خودش را از Open JDK بیلد کرده و قرار است آن را برای بلند مدت پشتیبانی و آپدیت کند.
https://www.microsoft.com/openjdk
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
✅ آموزش Cache در Asp.Net Core (قسمت دوم : EasyCaching)
در دنیای امروز برنامه نویسی ، پکیج ها و فریمورک ها نقش بسیار مهمی را ایفا میکنند بطوری که در بسیاری ازین موارد استفاده از این پکیج ها عمل عاقلانه تری نسبت به دوباره نویسی فیچر های مربوطه است.
برای عمل کشینگ در Asp.Net Core نیز پکیج های فوقالعاده ای وجود دارد که در این مقاله به بررسی و استفاده از پکیج EasyCaching، یک پکیج محبوب و کاربردی برای پیاده سازی کش در Asp.Net Core میپردازیم.
همچنین جهت افزایش Performance از کتابخانه EasyCaching.Extensions.EasyCompressor که یک افزونه بر روی EasyCaching هست، استفاده میکنیم .این پکیج اطلاعات را قبل از کش شدن فشرده سازی میکند و حجم اطلاعات را به طور محسوسی کاهش میدهد که میزان فضای اشغالی Ram را کم کرده و همچنین عمل جابجایی اطلاعات را نیز تسریع میبخشد.
#سجاد_کاردل
https://vrgl.ir/SJlkR
پ.ن:
شخصا پیشنهاد میکنم به جای IMemoryCache و IDistributedCache ماکروسافت برای Caching از کتابخانه EasyCaching و در کنارش از EasyCompressor توی پروژه هاتون استفاده کنین (محمدجواد ابراهیمی)
__________________
@DotNetZoom
در دنیای امروز برنامه نویسی ، پکیج ها و فریمورک ها نقش بسیار مهمی را ایفا میکنند بطوری که در بسیاری ازین موارد استفاده از این پکیج ها عمل عاقلانه تری نسبت به دوباره نویسی فیچر های مربوطه است.
برای عمل کشینگ در Asp.Net Core نیز پکیج های فوقالعاده ای وجود دارد که در این مقاله به بررسی و استفاده از پکیج EasyCaching، یک پکیج محبوب و کاربردی برای پیاده سازی کش در Asp.Net Core میپردازیم.
همچنین جهت افزایش Performance از کتابخانه EasyCaching.Extensions.EasyCompressor که یک افزونه بر روی EasyCaching هست، استفاده میکنیم .این پکیج اطلاعات را قبل از کش شدن فشرده سازی میکند و حجم اطلاعات را به طور محسوسی کاهش میدهد که میزان فضای اشغالی Ram را کم کرده و همچنین عمل جابجایی اطلاعات را نیز تسریع میبخشد.
#سجاد_کاردل
https://vrgl.ir/SJlkR
پ.ن:
شخصا پیشنهاد میکنم به جای IMemoryCache و IDistributedCache ماکروسافت برای Caching از کتابخانه EasyCaching و در کنارش از EasyCompressor توی پروژه هاتون استفاده کنین (محمدجواد ابراهیمی)
__________________
@DotNetZoom
ویرگول
آموزش Cache در Asp.Net Core (قسمت دوم : EasyCaching)
در قسمت اول درمورد سیستم Cache دیفالت موجود در AspNet Core و مزیت ها و معایبش گفتیم اگر قسمت اول رو نخواندید پیشنهاد میکنم در همین پروفای…
خروج Objective-C و بازگشت Fortran
گزارش ماهانه TIOBE نشان میدهد 6 سال پس از کنار گذاشته شدن Objective-C توسط Apple این زبان برنامه نویسی از جمع 20 زبان برنامه نویسی محبوب و پر استفاده خارج شده است.
بازگشت دوباره Fortran اما یک اتفاق جدید است. این زبان آخرین بار 10 سال پیش در جمع 20 تایی ها حضور داشت.
سی شارپ همچنان جایگاه پنجم خودش را حفظ کرده است و به نظر نمیرسد در آینده نزدیک تغییر خاصی در ردیف های بالای این جدول صورت گیرد.
گزارش TIOBE از بررسی تعداد برنامه نویسان، آمار موتورهای جستجو، آگهی های استخدام، تعداد کتاب ها و دورهه های آموزشی و ... تهیه میشود.
https://www.tiobe.com/tiobe-index
گزارش ماهانه TIOBE نشان میدهد 6 سال پس از کنار گذاشته شدن Objective-C توسط Apple این زبان برنامه نویسی از جمع 20 زبان برنامه نویسی محبوب و پر استفاده خارج شده است.
بازگشت دوباره Fortran اما یک اتفاق جدید است. این زبان آخرین بار 10 سال پیش در جمع 20 تایی ها حضور داشت.
سی شارپ همچنان جایگاه پنجم خودش را حفظ کرده است و به نظر نمیرسد در آینده نزدیک تغییر خاصی در ردیف های بالای این جدول صورت گیرد.
گزارش TIOBE از بررسی تعداد برنامه نویسان، آمار موتورهای جستجو، آگهی های استخدام، تعداد کتاب ها و دورهه های آموزشی و ... تهیه میشود.
https://www.tiobe.com/tiobe-index
Forwarded from DotNetZoom (Ali Abdolmaleki)
✅ لاگ کردن جزئیات Request ها به کمک Serilog و ActionFilter
بعضی وقتا پیش میاد لازم دارید اطلاعات هر درخواست ورودی Action هامون رو به همراه جزئیات کاملشون رو جهت عیب یابی یا بررسی های آتی ثبت و Log کنیم
در اینجا یک نمونه پروژه آماده کردم که این کار رو به راحتی قرار دادن یک اتریبیوت [LogRequest] بر روی اکشن های مورد نظر انجام میده یا میتونین روی Controller یا به صورت Global ثبت اش کنین تا همه اکشن ها رو Log کنه
🔸طرز کارش به این صورته که در درون ActionFilter مذکور (LogRequest)، جزئیات لازم رو قبل و بعد از اجرا شدن Action مورد نظر Log میکنه (بنا بر نیازتون میتونین هر دیتای دلخواه دیگه ای رو هم از request و response بهش اضافه کنین)
و نهایتا برای ذخیره سازی لاگ ها هم از Serilog و از SqlServer به عنوان Sinks استفاده میکنه (در صورت دلخواه میتونین تو هر Storage/Sink دیگه ای ذخیره کنین)
🔹مسلما لاگ کردن همه درخواست ها میتونه سربار داشته باشه و شخصا پیشنهاد نیمکنم همیشه و همه جا ازش استفاده کنین ولی نکته ای که در مورد Sink های Serilog وجود داره اینه که اکثرا از Async و PeriodicBatching استفاده میکنن به این صورت که در بازه های زمانی Log ها رو به صورت Bulk ایی Insert میکنن (اونم به صورت Async که Thread ایی رو بلاک نکنن) در نتیجه از نظر پرفرمنسی در حالت بهینه ای کار میکنن
🔰از جمله جزئیاتی که در هر درخواست Log میکنه:
1- آدرس URL درخواستی به همراه مقادیر QueryString
2- مقادیر Header های Request و Response
3- مقادیر ارسالی از سمت کاربر (آرگومان های Action)
4- وضعیت ModelState به همراه Error Message ها در صورت وجود
5- مقادیر Routing بسته به Route مچ شده
6- مقادیر شی User.Identity از جمله Claim ها، Name و IsAuthenticated
7- مقدار IP Address کاربر
8- مقدار Url Referrer (آدرس هدایت کننده قبلی به این صفحه)
9- مدت زمان پردازش درخواست جاری (Elapsed Time) و زمان ثبت درخواست
10- جزئیات Exception در صورت وقوع خطا
11- وضعیت Http Status Code درخواست
12- و...
https://github.com/dotnetzoom/RequestLogger-AspNetCore
____________________
@DotNetZoom
بعضی وقتا پیش میاد لازم دارید اطلاعات هر درخواست ورودی Action هامون رو به همراه جزئیات کاملشون رو جهت عیب یابی یا بررسی های آتی ثبت و Log کنیم
در اینجا یک نمونه پروژه آماده کردم که این کار رو به راحتی قرار دادن یک اتریبیوت [LogRequest] بر روی اکشن های مورد نظر انجام میده یا میتونین روی Controller یا به صورت Global ثبت اش کنین تا همه اکشن ها رو Log کنه
🔸طرز کارش به این صورته که در درون ActionFilter مذکور (LogRequest)، جزئیات لازم رو قبل و بعد از اجرا شدن Action مورد نظر Log میکنه (بنا بر نیازتون میتونین هر دیتای دلخواه دیگه ای رو هم از request و response بهش اضافه کنین)
و نهایتا برای ذخیره سازی لاگ ها هم از Serilog و از SqlServer به عنوان Sinks استفاده میکنه (در صورت دلخواه میتونین تو هر Storage/Sink دیگه ای ذخیره کنین)
🔹مسلما لاگ کردن همه درخواست ها میتونه سربار داشته باشه و شخصا پیشنهاد نیمکنم همیشه و همه جا ازش استفاده کنین ولی نکته ای که در مورد Sink های Serilog وجود داره اینه که اکثرا از Async و PeriodicBatching استفاده میکنن به این صورت که در بازه های زمانی Log ها رو به صورت Bulk ایی Insert میکنن (اونم به صورت Async که Thread ایی رو بلاک نکنن) در نتیجه از نظر پرفرمنسی در حالت بهینه ای کار میکنن
🔰از جمله جزئیاتی که در هر درخواست Log میکنه:
1- آدرس URL درخواستی به همراه مقادیر QueryString
2- مقادیر Header های Request و Response
3- مقادیر ارسالی از سمت کاربر (آرگومان های Action)
4- وضعیت ModelState به همراه Error Message ها در صورت وجود
5- مقادیر Routing بسته به Route مچ شده
6- مقادیر شی User.Identity از جمله Claim ها، Name و IsAuthenticated
7- مقدار IP Address کاربر
8- مقدار Url Referrer (آدرس هدایت کننده قبلی به این صفحه)
9- مدت زمان پردازش درخواست جاری (Elapsed Time) و زمان ثبت درخواست
10- جزئیات Exception در صورت وقوع خطا
11- وضعیت Http Status Code درخواست
12- و...
https://github.com/dotnetzoom/RequestLogger-AspNetCore
____________________
@DotNetZoom
ویژوال استودیو 2022 به طور کامل از پردازنده های 64 بیتی پشتیبانی میکند و محدودیت حافظه 4 گیگابایتی آن روی devenv.exe برطرف شده است. به این ترتیب امکان باز کردن سولوشن هایی با هزاران پروژه و چند صد هزار فایل ممکن شده است.
این نسخه قرار است از MAUI هم پشتیبانی کند وامکان پیاده سازی اپ های با UI یکسان در انواع پلتفرم ها را فراهم میکند.
پیش بینی میشود نسخه 22 به همراه دات نت 6 در اواخر سال جاری میلادی منتشر شود.
این نسخه قرار است از MAUI هم پشتیبانی کند وامکان پیاده سازی اپ های با UI یکسان در انواع پلتفرم ها را فراهم میکند.
پیش بینی میشود نسخه 22 به همراه دات نت 6 در اواخر سال جاری میلادی منتشر شود.
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
✅ پنجمین گفتگوی فنی #فری_تاک
با موضوع : تکنیک Caching و روش های مختلف آن
سه شنبه 7 اردیبهشت، ساعت 21:00
با حضور محمدجواد ابراهیمی و معین تاجیک
#فری_تاک یک گفتگوی فنی در مورد توسعه نرم افزار (بیشتر متمرکز بر دات نت) هست که هر هفته سه شنبه ها ساعت 21:00 برگزار میشه
این گفتگو صوتی هست و توسط قابلیت Voice Chat تلگرام (چیزی شبیه به Clubhouse یا Spaces توئیتر) در همین کانال برگزار میشه
ویس جلسات گفتگو ضبط شده و در آخر همینجا منتشر خواهد شد
جهت استفاده از قابلیت Voice Chat از آپدیت بودن تلگرامتون اطمینان حاصل کنین.
سه شنبه ساعت 21:00 منتظرتون هستیم
_______________
@DotNetZoom
با موضوع : تکنیک Caching و روش های مختلف آن
سه شنبه 7 اردیبهشت، ساعت 21:00
با حضور محمدجواد ابراهیمی و معین تاجیک
#فری_تاک یک گفتگوی فنی در مورد توسعه نرم افزار (بیشتر متمرکز بر دات نت) هست که هر هفته سه شنبه ها ساعت 21:00 برگزار میشه
این گفتگو صوتی هست و توسط قابلیت Voice Chat تلگرام (چیزی شبیه به Clubhouse یا Spaces توئیتر) در همین کانال برگزار میشه
ویس جلسات گفتگو ضبط شده و در آخر همینجا منتشر خواهد شد
جهت استفاده از قابلیت Voice Chat از آپدیت بودن تلگرامتون اطمینان حاصل کنین.
سه شنبه ساعت 21:00 منتظرتون هستیم
_______________
@DotNetZoom
پایان پشتیبانی از نسخه های قدیمی دات نت
مایکروسافت اعلام کرد نسخه های دات نت 4.5.2 و 4.6 و 4.6.1 یک سال دیگر (آپریل 2022) از پشتیبانی خارج میشوند.
مایکروسافت تصمیم گرفته است همه محتوایی که از سیستم رمز نگاری SHA-1 استفاده میکنند از استفاده خارج کند تا از نظر امنیتی با استانداردهای جدید سازگاری داشته باشد. از این جهت نسخه های قدیمی تر دات نت که از این سیستم استفاده میکنند به زودی از خط پشتیبانی خارج میکند. مشتریان می توانند به نسخه دات نت 6.2 و بالاتر آپدیت کنند.
آخرین نسخه دات نت 4.8 است که سال 2019 عرضه شده و هنوز تاریخ پایان برای آن در نظر گرفته نشده است.
دات نت نسخه 3.5 سرویس پک 1 تا پایان 2029 پشتیبانی میشود که تا به امروز طولانی ترین عمر برای یک نسخه دات نت محسوب میشود. این نسخه 2007 عرضه شده و قرار است به مدت 22 سال پشتیبانی شود.
پایان پشتیبانی فقط به این معنی است که دیگر آپدیت امنیتی برای محصول ارائه نمیشود. اما همچنان و برای همیشه امکان دانلود و استفاده از آن برای توسعه دهندگان و کاربران وجود خواهد داشت.
مایکروسافت اعلام کرد نسخه های دات نت 4.5.2 و 4.6 و 4.6.1 یک سال دیگر (آپریل 2022) از پشتیبانی خارج میشوند.
مایکروسافت تصمیم گرفته است همه محتوایی که از سیستم رمز نگاری SHA-1 استفاده میکنند از استفاده خارج کند تا از نظر امنیتی با استانداردهای جدید سازگاری داشته باشد. از این جهت نسخه های قدیمی تر دات نت که از این سیستم استفاده میکنند به زودی از خط پشتیبانی خارج میکند. مشتریان می توانند به نسخه دات نت 6.2 و بالاتر آپدیت کنند.
آخرین نسخه دات نت 4.8 است که سال 2019 عرضه شده و هنوز تاریخ پایان برای آن در نظر گرفته نشده است.
دات نت نسخه 3.5 سرویس پک 1 تا پایان 2029 پشتیبانی میشود که تا به امروز طولانی ترین عمر برای یک نسخه دات نت محسوب میشود. این نسخه 2007 عرضه شده و قرار است به مدت 22 سال پشتیبانی شود.
پایان پشتیبانی فقط به این معنی است که دیگر آپدیت امنیتی برای محصول ارائه نمیشود. اما همچنان و برای همیشه امکان دانلود و استفاده از آن برای توسعه دهندگان و کاربران وجود خواهد داشت.
Forwarded from کدهک
در این ویدیو یک Select با جستجوی افزایشی از طریق AJAX پیاده می کنیم که اطلاعات بیش از 4 میلیون ردیف را فیلتر میکند و سپس پرفورمنس SQL و Redis را مقایسه می کنیم.
https://codehaks.com/go/rds
https://codehaks.com/go/rds