DotNet | دات نت
1.12K subscribers
663 photos
229 videos
484 files
705 links
تو این روزا بهتره که همیشه علم خودمون رو بالا ببریم و بتونیم با سریع ترین راه ممکن خودمونو بروز نگه داریم.
- سعی کنیم از کمترین امکانات بیشترین بهره رو ببریم
منتظرت هستیم😉
دنیا رو جای بهتری برای یادگیری کنیم 🌹
#course #book


🆔 @dotnetcode
Download Telegram
اکنون زمان فوق العاده‌ ای برای ورود به دنیای تکنولوژی است، زیرا تکنولوژی در ۱۰ سال آینده بیش از ۵۰ سال گذشته تغییر خواهد کرد.
#Bill_Gates
وبینار انگولار پلتفرمی برای اپلیکیشن‌هایی با مقیاس بزرگ

👨‍🏫 ارائه
کننده: علی بدخشان، عضو ارشد تیم زیرساخت راهکاران همکاران سیستم
🗓 زمان: شنبه 24 خرداد، 19 تا 20:30

👈 ثبت نام رایگان در وبینار

در این وبینار به این موضوع می‌پردازیم که Angular چگونه می‌تواند به عنوان پلتفرمی برای توسعه اپلیکیشن‌های با مقیاس بزرگ استفاده شود.

محورهای اصلی این وبینار عبارتند از:

• تعریف اپلیکیشن با مقیاس بزرگ
• مفهوم مقیاس پذیری در Front-end
• چگونه Angular یک پلتفرم مناسب برای اپلیکیشن‌های با مقیاس بزرگ است؟

– TypeScript
– Opinionated Platform
– Component Based Architecture
– Modular Design
– Design Patterns
– Angular Elements
– Micro Frontends Readiness

• چند راهکار برای اینکه محصولی مقیاس‌پذیر داشته باشیم (مناسب برای اپلیکیشن‌های با مقیاس بزرگ)

– Separation of Service Abstraction & Implementation
– Template Inheritance or Containers
– Routing Strategy
– Element Strategy
– Micro Front-ends

👈 ثبت نام رایگان در وبینار
— — — — —
#وبینار #رویداد #خبر_خوب
❇️ عیب یابی و رفع مشکلات پرفرمنسی

در یکی از شرکت هایی که مشاور هستم از من خواسته شده تا مشکلات پرفرمنسی پروژه را پیدا کرده و مناسب ترین راه حل را به آنها پیشنهاد دهم

در هر پروژه ای احتمالا قسمت های زیادی قابل بهبود هستند (چه از لحاظ پرفرمنسی و چه از لحاظ معماری و کدنویسی تمیز و...) اما برای یافتن موثر ترین راه و البته کم هزینه ترین، باید ابتدا Bottleneck (گلوگاه) های سیستم را کشف کرده و سپس بر اساس «هزینه، زمان و منفعت» آنها را الویت بندی کنیم

برای کشف گلوگاه های سیستم (جاهایی که عامل اصلی افت پرفرمنس هستند) باید از ابزار های Profiler استفاده کنیم.
در کل پروفایلر های مختلفی وجود دارند که اکثرا پولی هستند در اینجا میخواهم بهترین آنها رو معرفی کنم

بهترین ابزار های Performance Profiler

1️⃣ برنامه ANTS Performance Profiler (محصول شرکت Redgate)
2️⃣ برنامه dotTrace (محصول شرکت JetBrains)
3️⃣ برنامه PerfView (محصولی "رایگان و سورس باز" از شرکت Microsoft)
4️⃣ برنامه CodeTrack (محصولی "رایگان و سورس باز")

هر چهار برنامه قابلیت های قوی و زیادی دارند از مهمترین شون میشه به موارد زیر اشاره کرد

🔸 قابلیت ثبت سلسله مراتب فراخوانی متد ها
توسط این قابلیت که اصلاحا بهش Call tree میگن میشه فهمید که چه متدی چه متد های دیگه ای رو فراخوانی کرده یا مثلا یک متد کلا چندبار صدا زده شده و هر متد چقدر به طول انجامیده (در قالب یک Timeline کامل) و ....

🔹 قابلیت ثبت تمام کوئری های اجرا شده بر روی دیتابیس
توسط این قابلیت میشه دید چه کوئری هایی و مثلا یک کوئری چندبار روی دیتابیس اجرا شده و هرکدوم چقدر زمان بره و...

🔸 قابلیت ثبت تمام Exception های رخ داده به همراه جزئیات و stacktrace

🔹 قابلیت نمایش تمام Thread های ایجاد شده و فرایند های انجام شده داخلش هر کدومشون و یا کلیه فرایند های انجام شده داخل یک Process

🔸 قابلیت پروفایل کردن همه برنامه ها از جمله
.NET Framework, .NET Core و ASP.NET, ASP.NET Core, Webservices, WCF, Windows Forms, Windows services, WPF ,IIS Website, IIS Express Website, Attach to a running process


❇️ این قابلیت ها برای عیب یابی به شدت مفید هستند چون توی یه سیستم با تراکنش بالا که بعضی مشکلات رو نمیشه پیش بینی کرد با این به راحتی میشه متد ها و یا کوئری های سنگین و اضافه ای که باعث افت پرفرمنس میشه رو پیدا کرد

❇️ هر دو برنامه ANTS و dotTrace پولی بوده و جز بهترین و محبوبترین برنامه های Performance Profiler هستند.
برنامه dotTrace یکپارچگی خوبی با Resharper داره و Visual Studio داره ولی شخصا با توجه به تجربه کاری با جفتشون، برنامه ANTS رو بیشتر می پسندم؛ کارکردن باهاش راحته و UX خوبی داره گزارشات و خروجی کاربردی تری نشون میده
ANTS Performance Profiler overview (ویدئو دمو برنامه)
https://www.youtube.com/watch?v=8mhC-Ji6-uU

❇️ برنامه PerfView هم تقریبا همین قابلیت ها رو داره ولی کارکردن باهاش سخت تره و UX خوبی نداره ولی چون رایگانه محبوبه
برنامه CodeTrack هم قابلیت هاش (نسبت به قبلی ها) کمتره ولی کارکردن باهاش راحته و UX متوسطی داره ونیز رایگانه

❇️ یه قابلیت خوبی که فقط dotTrace داره قابلیت Remote Profiling هست که توسط اون میتونین به برنامه هاتون روی یه سرور Remote دیگه متصل بشین و پرفایلش کنین

🔰در ادامه تصمیم دارم یه سری از مشکلات مهمی که توی اون پروژه مذکور پیدا و رفع میکنم رو با هشتگ زیر منتشر کنم
#PerformanceTuning
_______________
Media is too big
VIEW IN TELEGRAM
♨️ تریلر معرفی ظاهر پلی استیشن 5
❇️ پیاده سازی راحت تر درگاه های پرداخت با Parbad

پرباد یه کتابخونه کاربردی و راحت جهت پیاده سازی درگاه های پرداخت هست و از ASP.NET CORE و AS.PNET MVC و ASP.NET WebForms پشتیبانی میکنه
این کتابخونه از انواع درگاه های زیر پشتیبانی میکنه، همچنین یه درگاه پرداخت تستی هم براتون میسازه که در زمان توسعه بتونین راحت تر پرداخت هاتون رو تست کنین.
✔️Mellat
✔️Melli
✔️Saman
✔️Pasargad
✔️Parsian
✔️Iran Kish
✔️Asan Pardakht
✔️ZarinPal
✔️Pay.ir
✔️IDPay.ir
🔰اینم اموزش فارسیش
https://www.dotnettips.info/post/3009
https://www.dotnettips.info/post/3011
https://www.dotnettips.info/post/3012
https://www.dotnettips.info/post/3013

🗂البته داکیومنت خودش بروز تره
https://github.com/Sina-Soltani/Parbad/wiki

https://github.com/Sina-Soltani/Parbad
________
تست کد های #C به صورت آنلاین

توی پست قبلی در مورد C# Interactive توضیح داده بودم الان میخوام روش آنلاینش رو بررسی کنیم.
واسه اینکار سایت های زیادی هست که امکان Syntax Highlighter و Run کردن کد رو بهتون میدن. با این ابزار ها میتونین کد سی شارپ تون رو انلاین و راحت تست کنین و یا کدتون رو با بقیه به اشتراک بگذارین

🔸اول از همه بهترینشون و با اختلاف فاحش، سایت SharpLab هست. امکانات فوق العاده ای داره، Intellisense خیلی قوی ایی داره که در نوع خودش واقعا بی نظیره، امکان Decompile کردن کد خروجی به IL و #C و حتی Jit Assembly رو بهتون میده. UX خوب و روون ایی داره و خیلی سریع، در لحظه کد رو اجرا میکنه.
https://sharplab.io/

🔹این سایت برای ویرایشگرش اش از پلاگین جاوااسکریپتی CodeMirror استفاده میکنه که یک Code Editor و Syntax Highlighter قوی هست و از تموم زبان ها پشتیبانی میکنه
مثلا اگه خواستین قابلیت اسکریپت نویسی و اجرای کد داینامیک رو برای پروژه تون اضافه کنین میتونین از این پلاگین استفاده کنین
https://github.com/codemirror/CodeMirror
[Demo] https://codemirror.net/

🔸 این سایت برای اجرای کد ها از Roslyn و برای Decompile کردنشون از ILSpy استاده میکنه که قوی ترین برنامه Decompiler دات نت هست و ابزار های حرفه دیگه از از جمله dnSpy از رو همین ساخته شدن

🔹سازنده این سایت اومده کل پکیج Code Editor سی شارپیش رو که بر روی CodeMirror و Roslyn ساخته شده رو به صورت سورس پاز تو گیتهاب گذاشته
بدین صورت مثلا میتونین یه ویرایشگر کامل سی شارپی به همراه Autocomplete واسه اسکریپت نویسی داینامیک به پروژه تون اضافه کنین
https://github.com/ashmind/mirrorsharp

🔰تنها ایرادی که سایت sharplab.io داره اینه که که امکان اضافه کردن Nuget Package به کد هاتون رو نداره
واسه همین یه سایت دیگه به نام NET Fiddle. هست (که البته به خوبی اون نیست ولی بعضی امکانات اضافه تر مثل همین nuget package داره)
https://dotnetfiddle.net/
____________________
❗️چرا این تصویر باعث خرابی تلفن های اندرویدی می شود
چندین کاربر اندرویدی در رسانه های اجتماعی گزارش می دهند که Wallpaper با چشم انداز کوه ، ابر و دریاچه ای با رنگ های واضح دستگاه های آنها را خراب می کند. به نظر می رسد که این موضوع نه بر طیف خاصی از دستگاه ها بلکه گوشی های اکثر شرکت ها از جمله Google و سامسونگ تأثیر می گذارد. همچنین به نظر می رسد تعداد زیادی از دستگاههای دارای آخرین نسخه Android 10 را نیز تحت تأثیر قرار می دهد. با این حال ، مشخص شده است که اشکال تصویر زمینه هیچ تاثیری در دستگاههای دارایAndroid 11 ندارد.

این موضوع پس از آنكه یك کابر توییتر با نام مستعار Ice Universe تصویر مربوطه را منتشر نمود توجه کاربران را به خود جلب نمود. این کاربر به بقیه کاربران هشدار داد كه از این Wallpaper استفاده نكنند زیرا باعث خراب شدن دستگاه های آنها می شود. برخی از کاربران در Reddit نیز اخطار مشابهی ارسال کردند. با این حال ، ظاهراً چندین کاربر برعکس عمل کرده و نتیجه آن را در پاسخ به توییت اصلی گزارش دادند.
علت دقیق این مسئله هنوز یک رمز و راز است. با این حال ، اگر ما به آنچه کارشناسان معتقد هستند نگاه کنیم ، می تواند به دلیل اشکال در سیستم اندرویدی باشد که با طیف رنگهای این عکس مشکل دارند.
هشدار !!
هرگز این تصویر را به عنوان تصویر زمینه تنظیم نکنید ، به خصوص برای کاربران تلفن همراه سامسونگ!
این باعث خرابی گوشی شما می شود!

https://gadgets.ndtv.com/mobiles/news/android-phone-wallpaper-bug-crash-google-samsung-2239966
متوسط حقوق

موسسه کاریابی Vettery هر سال گزارشی از وضعیت حقوق و درآمد صنعت IT منتشر میکند. به تازگی گزارش 2019 این موسسه منتشر شده که در ادامه آمار مربوط به شهر سانفرانسیسکو آمده است.

شهر سانفراسیسکو در ایالت کالیفرنیا ی آمریکا مرکز فعالیت شرکتهای بزرگ تکنولوژی مثل فیس بوک ، گوگل ، اوبر و ... است.

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

برنامه نویسان Back-end بعد از سال اول نسبت به سایر تخصص ها درآمد بیشتری دارند.

اختلاف دستمزد در هیچ تخصصی چشمگیر نیست و متوسط درآمد به طور کلی بهم نزدیک است.

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

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

زبان Ruby در آمریکا همچنان پر طرفدار است و از نظر دستمزد بسیار نزدیک به پایتون پیش میرود.
اضافه حقوق بر مبنای مهارت

داشتن مهارت در برنامه نویسی Scala می تواند برای شما تا 15 هزار دلار در سال حقوق بیشتر داشته باشد.

محبوبت زبان Go و استفاده ی زیاد آن در معماری میکروسرویس هم باعث شده است دانستن آن شامل 11 هزار دلار اضافه حقوق باشد.

آشنایی با ابزاری مثل D3.js که در Data Visualization و تحلیل داده کاربرد دارد هم در بین شرکتهای آمریکایی یک مزیت مهم به شمار میرود.
💢جدیدترین آپدیت ویندوز ۱۰ استفاده از پرینتر را غیرممکن می‌کند
جدیدترین آپدیت ویندوز ۱۰ امنیت سیستم عامل مایکروسافت را افزایش می‌دهد، با این حال در این نسخه باگ‌هایی وجود دارد که امکان استفاده از پریتنر را غیرممکن می‌کند.
مایکروسافت از تاریخ ۲۰ خرداد شروع به انتشار بروزرسانی‌های KB4560960 و KB4557957 کرد و کاربران پس از دریافت آن‌ها، با مشکلاتی مواجه شدند. کاربران گزارش کرده‌اند که پس از نصب جدیدترین آپدیت ویندوز ۱۰ نمی‌توانند با تعدادی از پرینترهای شرکت‌های اچ‌پی، کانن، پاناسونیک، برادر و ریکو کار کنند. برخی از کاربران از عدم امکان پرینت‌ نرم افزاری فایل‌ها با فرمت PDF خبر داده‌اند.
مایکروسافت با انتشار اطلاعیه‌ای اعلام کرده که از این موضوع اطلاع دارد و آپدیت KB4557957 احتمالا عدم امکان پرینت فایل‌ها توسط برخی پرینترها را در پی دارد. این شرکت به کاربران هشدار داده که هنگام پرینت فایل موردنظر خود شاید با خطا روبه‌رو شوند و یا اینکه برنامه به صورت ناگهانی بسته شود و خروجی دریافت نکنند.
https://www.engadget.com/microsofts-windows-10-updates-printer-bugs-000112943.html
💡#آیا_میدانستید

آیا میدانستید حلقه for سریع تر از list.ForEach یا اصلاحا ForEach Lambda است؟

آیا میدانستید حلقه list.ForEach سریع تر از foreach است؟ زیرا list.ForEach داخل خود از for استفاده میکند ولی foreach داخل خود از مکانسیم Enumerator Iteration که به مراتب سنگین تر است، استفاده میکند.

آیا میدانستید حلقه for که مقدار count آن توسط یک متغیر خوانده شود سریع تر از حلقه for ایی است که مقدار count خود را از list.Count میخواند؟ زیرا سرعت خواندن متد get یک property زمانبر تر از خواندن مقدار یک متغیر است.
مثال :
var count = list.Count;
for (int i = 0; i < count ; i++) { }
از روش زیر سریع تر است
for (int i = 0; i < list.Count ; i++) { }
نتیجه :
در تست انجام شده، سرعت اجرای حلقه ها روی 100 میلیون آیتم به ترتیب زیر است
1- حلقه for که از متغیر count میخواند (زمان : 378 میلی ثانیه)
2- حلقه for که از خاصیت list.Count میخواند (زمان : 415 میلی ثانیه)
3- حلقه list.ForEach یا اصطلاحا ForEach Lambda (زمان : 650 میلی ثانیه)
4- حلقه foreach (زمان : 1136 میلی ثانیه)

همانطور که مشاهده میکنید تفاوت این ها آنقدر محسوس نیست که سرعت پروژه را کاهش دهد.
درنتیجه بهتر از کدی را بنویسید که «تمیز» تر است.
_______________
👍1
در پی جنبش "Black Lives Matter" که این روزها در ایالات متحده شدت گرفته نیل فریدمن مدیر عامل گیتهاب اعلام کرد این شرکت در حال تغییر عنوان پیشفرض "master" به "main" است.

شرکتهای دیگر فن آوری هم در حال حذف اصطلاح Master و Slave از کتابخانه ها و نرم افزارهایشان هستند.

گوگل اعلام کرده است عباراتی مثل Black List و White List را حذف می کند و کلماتی چون "Block List" و "Allow List" جایگزین می کند. اتفاقات مشابهی در PHP و Curl و Linkedin و سایر شرکتهای آی تی در جریان است.

تغییر دادن نام متغیرها، متدها یا کتابخانه ها دردسرهای پیش بینی نشده زیادی به همراه دارد و انتظار میرود کار پر هزینه ای باشد. اما به نظر میرسد این تصمیم گرفته شده و حذف عبارت هایی که ریشه در دوران برده داری دارند یا نژاد پرستانه هستند از همین حالا شروع شده است.
❇️ پیشنهاد نام دامنه وبسایت (Domain Name Generator)

هممون موقع انتخاب کردن نام دامنه یک سایت یا برند همیشه به مشکل میخوریم و نمیدونم چی انتخاب کنیم
شاید یه سری کلمات و ویژگی ها تو ذهنمون هست ولی نمیدونم چطور ترکیبش کنیم که خوب در بیاد، طولانی هم نشه و...

🔹امروز میخوام چندتا ابزار بهتون معرفی کنم که تو این زمینه میتونن کمکمون کنن.
طرز کارش اینطوریه که شما اسم یا اسم هایی که تو ذهنتون هست رو بهشون میدین و اونا بر اساس الگوریتم های مختلف زبانی (مثل مخفف کردن، ترکیب اسم ها و حذف حروف تکراری، افزودن پیشوند ها یا پسوند ها به اسم و...) ، اون کلمات رو با هم ترکیب میکنن و بر اساس ویژگی هاشون به شما پیشنهاد میدن.
همچنین خودشون هم چک میکنن که این دامنه آزاد هست یا خیر.

🔸مثلا وقتی کلمه dotnet رو بدی، پسوند ify و ly رو بهش میچسبونه و نام dotnetify و dotnetly رو بهتون پیشنهاد میده
یا مثلا وقتی کلمه docker رو بدی، پسوند me رو بهش میچسبونه و نام dockerme رو بهتون پیشنهاد میده
خلاصه میتونه کلی ایده بهتون بده که چطوری میتونین یه نام دامنه کوتاه و جذاب پیدا کنین

🔰چهارتا از بهترین هاشون :
https://www.panabee.com/
https://domainwheel.com/
https://www.namemesh.com/
https://namelix.com/
ماژول os در پایتون:

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

————————————————
#python #module #os
❇️استفاده از واتس اپ روی چند دیوایس سرانجام امکان‌پذیر می‌شود
استفاده از واتس اپ روی چند دیوایس مختلف به طور همزمان قابلیتی است که مدت‌ها کاربران انتظار آن را می کشیدند و حالا به نظر می‌رسد که در نسخه بعدی WhatsApp سرانجام قرار است شاهد رونمایی از این قابلیت باشیم.
سال‌های زیادی است که کاربران واتساپ از توسعه‌دهندگان این شبکه اجتماعی درخواست می‌کنند که قابلیت استفاده همزمان از این اپلیکیشن روی چند دیوایس را فراهم کنند، یعنی شما به طور مثال بتوانید به طور همزمان از واتس اپ روی گوشی و تبلت خود استفاده کنید. حالا طبق گزارش جدید، توسعه‌دهندگان این نرم‌ افزار در حال تست این قابلیت هستند و به زودی امکان استفاده از واتس اپ روی چند دیوایس فراهم خواهد شد.
در یک توییت جدید که توسط WABetaInfo منتشر شده نشان می‌دهد که قابلیت استفاده همزمان از اپ واتساپ تا چهار دیوایس مختلف به طور همزمان در حال توسعه است و به زودی از آن رونمایی خواهد شد. البته توجه داشته باشید که این ویژگی هنوز در حال توسعه است و به زودی در نسخه‌های بتا شاهد رونمایی از آن خواهیم بود؛ بنابراین مشخص نیست که آیا تا پایان سال جاری شاهد انتشار آپدیت عمومی با این ویژگی خواهیم بود یا خیر.
https://www.gizchina.com/2020/06/12/whatsapp-started-testing-multi-device-access-and-many-other-features/
Media is too big
VIEW IN TELEGRAM
🐳 آموزش نصب و راه اندازی داکر برروی ویندوز 10 نسخه 2004 ( WSL 2 )

در نسخه جدید ویندوز 10 قابلیت Windows Sub-system Linux بهبود یافته است و به نسخه 2 ارتقا یافته که عملکرد بهتری برای کار با لینوکس در ویندوز را می دهد.
در نسخه جدید داکر از قابلیت ادغام داکر با WSL 2 فراهم شده است که کار شما را برای استفاده از داکر در ویندوز را راحتر میکند.

پیش نیازها :

- ویندوز 10 نسخه 2004 ( باید ارتقا دهید یا دانلود و نصب کنید )
- ویندوز 64 بیتی باید باشد
- فایل آپدیت WSL
- دانلود آخرین نسخه داکر
- پشتیبانی CPU از قابلیت Virtualzation
- استفاده از پروکسی docker.ir برای رفع تحریم های داکر


کامندهای استفاده شده در ویدئو:

1. فعالسازی ویژگی WSL :

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

2. فعالسازی Virtual Machine Platform :

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

3. تنظیم نسخه 2 ویژگی WSL :

wsl --set-default-version 2

4. تنظیم نسخه 2 ویژگی WSL در Ubuntu دانلود شده از فروشگاه :

wsl --set-version ubuntu 2
چارچوب OKR را نخستین‌بار اندرو گرو (مدیرعامل وقت اینتل) مطرح و پس از آن به‌سرعت در بسیاری از سازمان‌های پیش‌رو دنیا مانند گوگل، توییتر، لینکدین و... به‌کار گرفته شد.

OKR مخفف عبارت Objectives and Key Results است که با استفاده از آن می‌توانیم اهداف تیم‌ها و افراد مختلف سازمان در تمام سطوح را به اهداف سطح بالای سازمان مرتبط کنیم. به این ترتیب شما در هر کجای سازمان و در هر پستی که باشید می‌دانید که هدف کاری و انتظار سازمان از شما در بازه‌های زمانی مختلف چیست. به‌علاوه‌ با به‌کارگیری OKR می‌توان میزان دستیابی سازمان و تیم‌های مختلف به اهداف تعیین شده را به‌طور کامل رصد کرد و به‌خوبی جلوی انحراف فعالیت افراد و تیم‌ها از مسیر اهداف سازمان را گرفت.