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


🆔 @dotnetcode
Download Telegram
یکی از مسائلی که اکثر برنامه نویسان با آن رو به رو می‌شوند مفهومی است تحت عنوان Refactor که به معنی بازنویسی کدهایی است که پیش از این نوشته شده اند. تجربیاتی که یک برنامه نویس پس از چند سال کدنویسی کسب می‌کند قابل مقایسه با زمانی نیست که وی تازه شروع به کار کرده و مسلماً پس از چند صباحی که به کدهای خود نگاه کند، حالش از سبک کدنویسی خود به هم خواهد خورد و تصمیم می‌گیرد تا کدهای نوشته شده ی خود را اصطلاحاً Refactor کند.
♨️گوگل Currents از ماه آینده جایگزین گوگل پلاس می‌شود
شبکه اجتماعی گوگل پلاس از ماه آوریل ۲۰۱۹ به کار خود پایان داد و تنها کاربران جی سوییت به آن دسترسی محدودی داشتند. حالا از ماه آینده قرار است گوگل Currents به طور رسمی جایگزین این برنامه‌ی شکست خورده شود.
حدود یک سال پیش بود که گوگل رسما اعلام کرد قصد دارد به کار شبکه اجتماعی گوگل پلاس پایان دهد و به کاربران کمی فرصت داد تا اطلاعات و محتوای مورد نظر خود را از روی این شبکه اجتماعی بردارند. اما حتی تا همین حالا هم برای کاربران G Suite این شبکه اجتماعی قابل دسترسی بوده است. اما از ماه آینده سرانجام قرار است گوگل پلاس به کار خود پایان دهد و گوگل Currents به عنوان جایگزین آن معرفی شده است.
در ابتدای معرفی، گوگل پلاس به عنوان یک ایده جذاب به شمار می‌رفت و بعد از مدتی کاربران دیگر علاقه چندانی به فعالیت در آن نشان ندادند و گوگل تصمیم به متوقف کردن این پروژه گرفت. کشف یک باگ امنیتی و لو رفتن اطلاعات شخصی ۵۰۰ هزار کاربر این سرویس باعث شد که پروژه متوقف کردن گوگل پلاس سرعت بیشتری بگیرد و کمی بعد از آن نیز Google Currents به طور رسمی معرفی شد. هدف کمپانی سازنده از انتشار گوگل کارنتس این بود که کاربران بتوانند در محیط‌های کاری و با دیگر کارمندان ارتباط موثری برقرار نماید.
https://www.phonearena.com/news/Google-Currents-replacing-Google-Plus-next-month_id125146
This media is not supported in your browser
VIEW IN TELEGRAM
💥ایلان ماسک از صفر شروع کرد. مهاجری بود با یک دلار در روز درآمد.

در آمریکا درس خواند، ارتباطات جدید ساخت، کسب و کار خودش را راه انداخت و رویاهایش را دنبال کرد. اسپیس ایکس از دل یک پروژه دولتی آغاز نشد بلکه از یک انگیزه فردی برخواست؛ انگیزه ایلان برای رفتن به مریخ.

برای رفتن به مریخ به راکت نیاز بود.قیمت راکت در آمریکا حدود ۶۵ میلیون دلار بود. ایلان می دانست که قیمت تمام شده راکت فقط ۲ درصد این رقم است اما بوروکراسی دولتی و نبود رقابت اجازه نمیداد یک کنشگر اقتصادی مثل ایلان به رویای خود برسد. پس ایلان تصمیم گرفت راکت را خود بسازد. راکتی که ساخته شد و تاریخ را برای همیشه عوض کرد. اسپیس ایکس، شرکت خصوصیِ ایلان ماسک دیروز با پرتاب فالکن ۹ به اولین شرکت خصوصی در جهان تبدیل شد که توانست انسانی را به فضا ببرد.

💡برای من قسمت شگفت انگیز داستان فقط ماجراجویی شخصی ایلان ماسک نیست بلکه سیستمی است که چنین چیزی را ممکن میسازد. سیستم اقتصادی، اجتماعی و سیاسی که یک انسان را از یک دلار در روز به فتح مریخ می‌رساند شاید شگفت انگیزترین دستاورد بشر تا به امروز باشد.
❇️ کنترل سطح دسترسی پویا و Permission-based

چند وقت پیش یکی از دوستان سوال پرسیده بودند که چطور میتونیم سطح دسترسی کاربر رو به اکشن های دلخواه، محدود کنیم. اتفاقا چند سال پیش همین نیاز رو خودمم داشتم و به این صورت هندلش کردیم که :

هر کاربر میتونه N تا Role داشته باشه و هر Role هم N تا پرمیژن داره
پرمیژن ها در واقع Fullname اکشن هایی هستند که کاربر بهشون دسترسی داره مثلا
MyProject.HomeController.Index
مشخص میکنه کاربر به این اکشن دسترسی داره و وجود نام کامل متد باعث میشه مشکل هم نام بودن اکشن ها و کنترولر ها در پروژه های Microservice رو هم نداشته باشیم

مدیریت این قضیه هم کاملا توسط Reflection و Caching خیلی شیک انجام میشد و نیازی پرفرمنس بسیار خوبی هم داشت با توجه به اینکه تعداد کاربرانمونم زیاد بود، ضمن اینکه هیچ گونه کد نویسی ویا چک کردن سطح دسترسی لازم نبود توسط برنامه نویس انجام بشه و همگی در یک ActionFilter سراسری هندل میشد

قابلیت دیگه ای هم که نیاز بود و بهش اضافه کردیم بحث Group کردن اکشن های مرتبط بود. مثلا کاربری که دسترسی به ویرایش یک سند داره عملا به 3 اکشن Detail, Edit(Get) , Update(Post) x باید دسترسی داشته باشه، درنتیجه میتونستیم با اضافه کردن یک پرمیشن، 3 اکشن رو دسترسی داشته باشه

حتی واسه نیاز های پیچیده تر میتونین بحث Include و Exclude کردن یک یا چند پرمیژن رو از یک Role هم اضافه کنید. مثلا یک کاربر نقش Writer داره ولی... به یک اکشن از Report هم دسترسی داره (Include) و یا به یک اکشن خاص از نقش Writer نباید دسترسی داشته باشه (Exclude)
سلوشن بالا تمامی نیاز های مارو به خوبی برطرف کرد و کاملا راضی بودیم، برای پیاده سازیش هم میتونین از Identity یا هر پیاده سازی دلخواه برای احراز هویت استفاده کنید

🔸در کل ما 3 نوع کنترل سطح دسترسی داریم
سطح Api level (کنترل دسترسی به یک action/api خاص)
سطح Operation level (کنترل دسترسی به یک فرایند/بیزنس لاجیک خاص)
سطح Data level (کنترل دسترسی برای دیتای دریافتی از دیتابیس)

روش بالا برای کنترل دسترسی در سطح Action (همون Api level) هست و برای نیاز های دیگه کنترل دسترسی مثل کنترل دسترسی به یک فرایند خاص (Operation level) میتونین از مکانیزم ACL (مخفف access control list) استفاده کنید
برای کنترل دسترسی در سطح Data (همون Data level) برای کوئری گرفتن هم از Global Query Filter خود EF Core استفاده کنید
https://long2know.com/2017/05/entity-framework-multitenancy/
https://trailheadtechnology.com/entity-framework-core-2-1-automate-all-that-boring-boiler-plate/

🔹یه رویکرد دیگه که به نظر اصولی تر هم هست ولی یه کم تخصصی تره
بحث کنترل دسترسی در سطح Service ها توسط تکنیک AOP هست

مثلا این مقاله با CastleWindsor اومده قبل از اجرا شدن متد های سرویس، دسترسی کاربر رو چک کرده
https://lukemerrett.com/aop-in-castle-windsor/

از مزایای این روش میشه به این اشاره کرد که شما میتونین لایه سرویس (همون منطق تجاری پروژه) رو توی پروژه های دیگه هم به صورت مستقل استفاده کنید و نگران سطح دسترسی نباشید چون همش تو همون لایه داره چک میشه

🔸مدیریتش تو لایه Repsitory هم یک روش مرسوم هست
عملا استفاده از روش repository و Global Query Filter داره یک کار رو انجام میده
هر دو با شرط گذاشتن روی کوئری ها، دسترسی رو چک میکنن تنها تفاوت بینشون اینه که Global Query Filter این کار رو به صورت اتوماتیک انجام میده و دیگه لازم نیست موقع کوئری نوشتن حواسمون باشه که شرط فیلتر رو هم بگذاریم

و مزیتش دیگه اش هم اینه که موقع Explicit Loading (همون Include) و
حتی موقع Eager Loading (توسط LoadCollection و LoadReference) هم این موضوع به صورت خودکار چک میشه. توی EF 6 نبود این ویژگی. توی EF Core 2.0 اضافه شد

🔰این سری مقاله رو هم پیشنهاد میکنم بخونین، توضیحات خوبی در مورد روش های کنترل سطح دسترسی داده

Part 1: A better way to handle authorization in ASP.NET Core
https://bit.ly/2KaAo0q

Part 2: Handling data authorization in ASP.NET Core and Entity Framework Core
https://bit.ly/2KbA9SG

Part 3: A better way to handle ASP.NET Core authorization – six months on
https://bit.ly/2K8Z6hU

Part 4: Building a robust and secure data authorization with EF Core
https://bit.ly/2K885zH

#سطح_دسترسی #permission
___________________
بعد از عرضه مرورگر اج و با توجه به ارتقای کیفیت آن، گوگل نگران کاهش استفاده از مرورگر کروم شده و برای کاربران اج پیام‌های هشداردهنده امنیتی ارسال می‌کند. در حقیقت هشدار گوگل به کاربران Gmail که با مرورگر Edge کار می کنند نشان می دهد که مایکروسافت با اج کرومیوم راه درست را در پیش گرفته است.
This media is not supported in your browser
VIEW IN TELEGRAM
♨️ آموزش: استفاده از RepositionTransition در Xamarin.Forms(UWP ONLY) برای Layout ها

در پروژه ی UWP خود فایل App.Xaml را باز کرده
و کد زیر را در تگ Application کنار بقیه xmlns ها وارد کنید:

xmlns:uwp="using:Xamarin.Forms.Platform.UWP"

سپس کد زیر را وارد کنید


<Application.Resources>
<Style TargetType="uwp:LayoutRenderer">
<Setter Property="Transitions">
<Setter.Value>
<TransitionCollection>
<RepositionThemeTransition/>
</TransitionCollection>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
وقتی در آخرین نتایج Techempower فریم ورک ASP NET Core در ربته اول آزمون Plaintext قرار گرفت برای خیلی ها جای تعجب داشت که چطور سی شارپ می تواند سریعتر از Rust یا ++C خروجی دهد. حتی اگر این نتیجه فقط برای یک آزمون آن هم یکبار اتفاق افتاده باشد باز هم اهمیت زیادی دارد.

مکث هایی که GC ایجاد میکند یکی از مهمترین عوامل افت پرفومنس اپلیکیشن های تحت وب است. زبانهای Rust و ++C بدون GC کار می کنند و Golang هم ساختار داده ای ساده تری دارد و انتظار میرود GC در آن سریعتر و سبکتر عمل کند.

اما برای تیم توسعه دات نت اما این یک اتفاق نبود. فریم ورک ASP NET Core دو سال پیش در ردیف 11 قرار داشت. در این مدت قابلیت های زیادی به زبان سی شارپ اضافه شد. ابزاری مثل Span یا استفاده از SIMD در RyuJIT نیاز به چند سال برنامه ریزی و توسعه داشت.

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

قرار گرفتن در رتبه نخست آزمون Plaintext نتیجه یک هدف گذاری مشخص بود که امروز هم با صرف وقت و هزینه زیاد ادامه دارد. نتیجه این هدف گذاری خودش را Composite Score به خوبی نشان داده است.
❇️با Mayhem آشنا شوید؛ باتی که باگ‌های نرم‌افزاری را برای پنتاگون شکار می‌کند
در دنیای نرم افزار آسیب‌پذیری‌های زیادی وجود دارند که می‌توان از آن‌ها سوءاستفاده و به سیستم‌های مختلف حمله کرد. در همین راستا توسعه ابزاری که بتواند این آسیب‌پذیری‌ها را شناسایی کند، اهمیت بالایی دارد. یک بات با نام «Mayhem» که توسط استارتاپ «ForAllSecure» توسعه پیدا کرده، چنین وظیفه‌ای را در پنتاگون برعهده دارد.
شاید تا به امروز نام «دف کان»، یکی از بزرگترین کنفرانس‌های هکرها که سالانه در لاس وگاس برگزار می‌شود، به گوشتان خورده باشد. رقابت هکرها با یکدیگر یکی از بخش‌های دف کان را تشکیل می‌دهد که در سال ۲۰۱۶ تیم خالق Mayhem توانست جایزه «Cyber Grand Challenge» دارپا را در این مسابقات تصاحب کند.
این تیم حضور کمرنگی روی صحنه داشت و داوران با ۷ سرور روبه‌رو شدند که هریک از آن‌ها حاوی بات‌هایی برای کشف باگ‌ها در سرورهای دیگر بودند و علاوه بر شکار آن‌‌ها، باگ‌های خود را نیز برطرف می‌کردند. پس از ۸ ساعت این بات که تیمی از آزمایشگاه امنیت دانشگاه «کارنگی ملون» وظیفه توسعه آن را برعهده داشت، توانست جایزه ۲ میلیون دلاری را برنده شود.
https://arstechnica.com/information-technology/2020/06/this-bot-hunts-software-bugs-for-the-pentagon/
♨️افزایش بی سابقه کاربران و درآمدهای زوم به خاطر دنیاگیری کووید ۱۹
اپلیکیشن زوم در دوران پاندمی کووید ۱۹ به محبوب ترین سرویس ویدیو کنفرانس در سراسر دنیا بدل شد و شاید تعجب نداشته باشد اگر بگوییم این اپ در بازه زمانی سه ماهه گذشته بالغ بر ۳۲۸ میلیون دلار درآمد داشته است. این رقم بیشتر از دو برابر مقدار درآمدهای زوم در بازه مشابه سال قبل است (۱۲۲ میلیون دلار) و به مراتب بالاتر از درآمد ۲۰۰ میلیون دلاری است که مدیران این شرکت برای سه ماهه اخیر پیش بینی کرده بودند.
زوم اعلام نکرده که در فصل گذشته چند نفر از سرویس آن استفاده کرده اند اما در گزارش خود مدعی شده که «تعداد غیرقابل پیش بینی از مشارکت کنندگان» از جمله ۱۰۰ هزار مدرسه به سرویس آن ملحق شده اند. در مجموع زوم حالا ۲۶۵۴۰۰ کاربر دارد ؛ رقمی که به تعبیر مدیران آن افزایشی ۳۵۴ درصدی را نشان می دهد.
اما افزایش استفاده کاربران از سرویس زوم به معنای افزایش قابل توجه هزینه های آن هم هست چراکه طبق گزارش اخیر این هزینه ها با رشد سال به سال دوبرابری به رقم ۲۰۱ میلیون دلار رسیده اند.
https://dgto.ir/1q0o
مایکروسافت قصد دارد محدودیت تعداد شرکت کنندگان در چت ویدیویی تیمز را از ۲۵۰ به ۳۰۰ نفر افزایش دهد.

افزایش روزانه تقاضا برای ابزارهایی مانند تیمز از شرکت مایکروسافت یا اپلیکیشن های مشابه از شرکت های دیگر باعث افزایش رقابت بین این شرکت ها شده به طوری که هر کدام سعی می کنند ویژگی های جدیدی را برای کاربران خود به ارمغان بیاورند و به این وسیله برتری خود نسبت به دیگران را حفظ کنند.
https://timevpn.com/

VPN اختصاصی
L2TP
PPTP
IKEV2
Socks5 proxy
OPENVPN
Shadowsocks
در سایت ثبت نام کرده و سپس ایمیل خود را تایید کنید.مطابق نیاز خود می توانید از سه روش vpn یا پروکسی یا شادوساکس استفاده کنید.
دارای شادوساکس اختصاصی مخصوص تلگرام با سرعت عالی
برنامه شادوساکس ویندوز( نسخه جدید را از گیت هاب دریافت کنید)
شادوساکس اندروید
نمونه اکانت فعال شده pptp

Server: nl.timevpn.com
Username: 012968_sr
Password: vqrAqLv

ID: APPXAP
❇️احتمال رونمایی از نسل بعدی آی مک در WWDC؛ طراحی جدید و سخت‌افزار قوی‌تر
بر اساس گفته‌های یکی از افشاگران دنیای فناوری، اپل نسل جدید آی مک را با ظاهر جدید در کنفرانس WWDC رونمایی می‌کند.
یکی از افشاگران دنیای فناوری با نام کاربری «Sonny Dickson» در توییتر می‌گوید نسل جدید آی مک مشابه اپل دیسپلی XDR حاشیه باریکی خواهد داشت و به تراشه امنیتی T2 مجهز شده است. علاوه بر این در مدل جدید هارددیسک مکانیکی جای خود را به حافظه پرسرعت SSD داده است.
افشاگر یاد شده می‌گوید سخت افزار نسل جدید آی مک نیز دست خوش تغییرات گسترده شده و از مجهز شدن آن به پردازنده گرافیکی جدید سری Navi و همچنین حذف هارددیسک مکانیکی و فیوژن درایو خبر داده است. وی می‌گوید نسل جدید آی مک برای اولین بار به تراشه T2 مجهز شده که سرعت خواندن و نوشتن بسیار سریع را فراهم کرده و امنیت دستگاه را نیز ارتقا می‌دهد.
ظاهر آی مک سالهاست دست نخورده باقی مانده است. اپل آخرین بار سال ۲۰۱۲ شاسی این دسکتاپ را با ضخامت ۵ میلیمتری معرفی کرد که با نگاه کردن از کناره دستگاه قابل شناسایی بود. به غیر از این مورد، طراحی جلوی آی مک نزدیک به یک دهه دست نخورده باقی مانده است.
به نظر می‌رسد کنفرانس WWDC امسال حاوی خبرهای بزرگی برای طرفداران اپل باشد. گزارش شده اپل در این کنفرانس جایگزینی پردازنده‌های اینتل با ARM را رسما اعلام می‌کند. علاوه بر این انتظار می‌رود نسخه‌های جدید سیستم عامل این شرکت یعنی iOS 14, watchOS 7, macOS 10.16 و tvOS 14 معرفی شوند.
https://9to5mac.com/2020/06/09/new-imac-wwdc-bezels/
اکنون زمان فوق العاده‌ ای برای ورود به دنیای تکنولوژی است، زیرا تکنولوژی در ۱۰ سال آینده بیش از ۵۰ سال گذشته تغییر خواهد کرد.
#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/
____________________