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


🆔 @dotnetcode
Download Telegram
#اطلاعیه_SciSharp

دوستان عزیز همانطور که میدانید زبان سطح بالای Python که دارای فریمورک های زیادی است و بیشتر این فریمورک ها مربوط به ( هوش مصنوعی و زیر مجموعه های آن مانند یادگیری ماشین - بینایی ماشین - و... ) است.


حالا یه تیمی از که طریق مایکروسافت وظیفه دارند تمامی این فریمورک هارو Port کنند در سی شارپ با حداقل ۹۹ درصد شباهت در کد ها و تابع ها و ....


این اکوسیستم SciSharp Stack نام دارد.
که تا الان چند فریمورک قوی مانند Tensorflow و Keras و NumPy و Catalyst NLP رو تا الان Portکردند، و هر اپدیتی که از طرف این فرویمورک های اصلی بشود، این پکیج های nuget هم آپدیت میشوند.

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

کتابخانه ها و فریمورک های دیگر هم در دست ساخت هستش مثل PyTorch و Pandas و Matplotlib و....

https://scisharp.github.io/SciSharp/


خوبیش اینه که ۹۹ درصد کدها شبیه هم هستند و برای مثال با دیدن یک آموزش Tensorflow در پایتون میتونید تو سی شارپ هم با Tensorflow کار کنید.( البته صد در صد به جبر خطی و ... نیاز دارید برای کارهای حرفه ای ).
👍2
مقایسه پرفرمنس gRPC و REST

طبق این بنچمارک میتونین ببینین که توی درخواست های سبک ( مثل یه GET ساده با دیتای کم حجم) gRPC و REST تفاوتی خاصی با هم ندارن

ولی توی درخواست های سنگین (که حجم دیتای انتقالی زیاد باشه) :

🔸توی حالت GET (دریافت اطلاعات) gRPC بیش از 7 برابر سریع تر از REST عمل میکنه

🔹وتوی حالت POST (ارسال اطلاعات) gRPC بیش از 11 برابر سریع تر از REST عمل میکنه

🔸دلیل اصلی این سرعت بسیار بالا اینه که gRPC از Protocol Buffers برای سریالایز و فشرده سازی اطلاعات استفاده میکنه و نیز به صورت پیشفرض از HTTP/2 و استفاده میکنه که اون هم یه مکانیزم فشرده سازی داره

🔹برای کار با gRPC در حالت عادی باید از CLI مخصوص اون "protoc" برای کامپایل و تولید کلاس های سرویس از روی فایل های "proto." استفاده کنید. ولی با Visual Studio میتونین همین کار رو کامپایلر built-in اش راحت تر انجام بدین

🔸جمع بندی اینکه gRPC میتونه گزینه بسیار خوبی برای ارتباطات بیین Micro-service ها باشه

لینک مقاله و ریپازیتوری گیتهاب این بنچمارک
Evaluating Performance of REST vs. gRPC
Github Repository
________________
❇️ اگه میخواین مفهوم Hash و Salt رو درک کنین
فیلم زیر از جادی خیلی باحال توضیحش میده

🔰 نقل قول از جادی :
"به نظر من، هش‌ها از قشنگی‌های دنیای کامپیوتر و برنامه نویسی. فانکشن‌هایی که می‌تونن اطلاعات رو به ترکیبی از بیت های دیگه با طول ثابت تبدیل کنن و نتیجه شون هم همیشه برای ورودی ثابت، ثابته. این ایده درخشان منتیج به نتایج خیلی جالبی هم شده. مثلا فرض کنین می خواین بدونین آیا فایلی که دانلود کردین سالمه یا نه. یا می خواین کلی دیتا رو جایی بریزین و سریع پیداشون کنین. یا از اون جالبتر، می خواین به یکی پشت تلفن بگین «یه عدد در نظر بگیر» و بعد عدد رو حدس بزنین و مطمئن باشین که تقلبی نمی تونه اتفاق بیافته یا حتی رمزارز بسازین. همه اینجاها، هش کار گشا است فهمیدنش برای یک برنامه نویس خوب واجبه. "

1️⃣ https://www.aparat.com/v/1YjmV/
2️⃣ https://www.aparat.com/v/PmYpu/
3️⃣ https://www.aparat.com/v/Yg02q/

___________
سلام دوستان
یه دوره بینظیر توی یودمی با موضوع طراحی وب که فریمورک محبوب جنگو رو هم پوشش داده امروز رایگانه
به اکانتتون اضافه کنین تا همیشه دسترسی داشته باشین
https://www.udemy.com/course/python-and-django-full-stack-web-development-for-beginners/?couponCode=27441EC3EACCB06FA8D5
This media is not supported in your browser
VIEW IN TELEGRAM
🔵تیزر معرفی سرفیس دئو

سرفیس دئو به طور رسمی معرفی شد!

مایکروسافت از تمامی آنچه که ما در مورد این دستگاه شگفت‌انگیز بایستی بدانیم رونمایی کرده است.

مایکروسافت تصمیم به عرضه این دستگاه با پردازنده کوالکام اسنپدراگون ۸۵۵، ۶ گیگابایت رم، ۱۲۸/۲۵۶ گیگابایت حافظه داخلی و برچسب قیمتی ۱۴۰۰ دلار گرفته است.

زمان عرضه در نظر گرفته شده، ۱۰ سپتامبر است اما پیش از آن علاقه‌منندان قادر به پیش‌خرید از طریق مایکروسافت استور با قیمت ۱۴۰۰ دلار برای نسخه ۱۲۸ گیگابایتی و ۱۵۰۰ دلار برای نسخه ۲۵۶ گیگابایتی خواهند بود. همچنین کاربران قادر به پیش‌خرید از طریق AT & T و Best Buy خواهند بود.
Media is too big
VIEW IN TELEGRAM
هنر تفکر ، اما با هم! صحبت در مورد مفهوم "الماس دوگانه" و اینکه چگونه می تواند به تفکر موثر در کنار هم کمک کند.
2020 نیاز به برقراری ارتباط چهره به چهره را مورد توجه قرار داد و نسخه آلفای مکالمات ویدیویی ما هم اکنون در اندروید موجود است و هرچه سریعتر به iOS می آید. می توانید یک تماس ویدیویی را از صفحه نمایه مخاطب خود شروع کرده و در هر زمان مکالمه ویدیویی را در طول تماس صوتی روشن یا خاموش کنید. مانند سایر محتوای ویدیویی در تلگرام ، مکالمات ویدیویی از حالت تصویر در تصویر پشتیبانی می کنند و به شما امکان می دهند ضمن حفظ ارتباط چشمی ، از طریق گپ ها و چند وظیفه حرکت کنید. همه تماسهای ویدیویی با رمزگذاری نهایی به پایان محافظت می شوند. برای تأیید ارتباط خود ، چهار ایموجی نشان داده شده روی صفحه را برای شما و شریک گفتگوی خود مقایسه کنید - در صورت تطابق ، تماس شما با رمزگذاری آزمایش شده از زمان تست شده و همچنین در گفتگوهای مخفی و تماس صوتی Telegram مورد استفاده قرار می گیرد. می توانید جزئیات بیشتری را در این صفحه پیدا کنید. برنامه های ما برای Android و iOS ساخته های قابل تکرار است ، بنابراین هر کسی می تواند رمزنگاری را تأیید کند و تأیید کند که برنامه آنها از همان کد منبع باز استفاده می کند که ما با هر به روز رسانی منتشر می کنیم.
This media is not supported in your browser
VIEW IN TELEGRAM
#فوری
🎥 تلگرام در آستانه هفتمین سالگرد تولد این شبکه اجتماعی و اطلاع رسانی، امکان تماس تصویری و کنفرانس ویدئو با کیفیت عالی را اضافه کرد.
🔹این خدمات همینک برای استفاده کنندگان از سیستم‌عامل اندروید در دسترس است و تا ساعاتی دیگر در اختیار کاربران IOS هم قرار خواهد گرفت.
❇️ آموزش عیب یابی و رفع مشکلات Performance ایی برنامه های ASP.NET Core (زبان اصلی زیر نویس دار)

از
پایین ویدئو گزینه [Subtitle/captions] میتوانید زیرنویس آن را فعال کنید

[04:10] - Introducing the demo
[06:03] - Performance Diagnostic tools
[08:37] - Collecting performance data with PerfCollect
[16:24] - Inspecting performance data with PerfView
[25:30] - Common ASP.NET Core Performance Issue
[28:49] - ASP.NET Core Performance Best Practices

Useful Links
PerfView
PerfCollect
ASP.NET Core performance best practices
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 آموزش: بهبود عملکرد برنامه های Xamarin.Forms و Xamarin.Android

🌐 لینک آموزش : Microsoft DevBlogs
افزایش امنیت JWT توسط Refresh Token در ASP NET Core

وقتی از Jwt واسه احراز هویت برنامه تون استفاده میکنین سوالی که پیش میاد اینه که زمانی که توکن کاربر Expire (منقضی) شد چی میشه؟!

1️⃣ آیا باید کاربر رو Logout کنیم و ازش بخوایم دوباره لاگین کنه؟ اگه وسط یه عملیات مهم باشه چی؟! همه چی از دست میره که! 🤔

2️⃣ شایدم باید مدت زمان توکن رو زیاد کنیم، مثلا 1 سال !! تا دیر به دیر منقضی بشه. که این عملا بدترین راه حل ممکن هست چرا که اگه توکن به سرقت بره، هکر تا یک سال میتونه هر کاری میخواد با توکن طرف (هویتش) بکنه 😕

3️⃣ یا اینکه یوزر و پسورد طرف رو بگیریم سمت خودمون ذخیره کنیم (مثلا توی localStorage توی وب) و هر موقع توکن اش منقضی شد، زیر پوستی خودمون یوزر پس طرف رو بفرستیم و توکن جدید بگیریم؟! اینم که ضعف امنیتی داره چون یوزر و پس طرف در معرض خطره 🤨

🔰پس راه حل چیه؟

🔸راه حل استفاده از Refresh Token هست. به این صورت که وقتی طرف برای بار اول میخواد احراز هویت بشه، یوزر و پس اش رو به ما میده و ما 2تا توکن بهش میدیم. یکی access_token که همون Jwt هست و دیگری یک refresh_token که عملا یه متن رندم (مثلا یه Guid) هست
این رفرش توکن (guid) توی دیتابیس ما ذخیره شده که به ازای چه کاربری و چه access_token ایی هست، در نتیجه وقتی طرف access_token اش منقضی میشه به جای اینکه لازم باشه 2مرتبه یوزر و پس برای ما بفرسته، با فرستادن refresh_token میتونه یه توکن جدید (شامل یه access_token جدید + یه refresh_token جدید) دریافت کنه که اینطوره ضریب امنیت بالا میره (چون یوزر پس اشو نمیفرسته)

🔹ضمن اینکه هر بار گرفتن access_token توسط refresh_token ، اون access_token قبلی رو غیرفعال میکنه، پس اگر access_token به سرقت بره، با Revoke کردنش توسط refresh_token، غیر قابل استفاده میشه و باز هم ضریب امنیت بالاتر میره

🔸این عملیات هم سمت فرانت یا کلاینت باید پشت پرده و زیر پوستی انجام بشه تا کاربر اصلا متوجه logout و login شدن مجددش نشه. مثلا توی Angular توسط HttpIncerceptor میتونیم قبل از Api Call ها چک کنیم که اگر access_token مون منقضی شده، ابتدا توسط refresh_token، یه توکن جدید بگیریم و بعد Api Call مون رو انجام بدیم

🔰خیلی از دوستان هم میپرسن مدت زمان انقضای access_token و refresh_token چقدر باید باشه؟

🔹هیچ بایدی وجود نداره و همه جوره زمان میدن بهش. درکل چیزی که مهمه اینه که مدت زمان access_token باید کم باشه و مدت زمان refresh_token بیشتر.
مثلا شخصا ترجیح میدم مدت زمان access_token بین 5 دقیقه تا نهایتا 1 ساعت باشه
و مدت زمان refresh_token بین 1 هفته تا نهایتا 1 ماه باشه

🔸هرچی کمتر باشه ضریب امنیت بیشتر میشه ولی تعداد ریکوئستا به سرور هم بیشتر میشه
البته یه مشکلی که هنگام استفاده از RefreshToken پیش میاد اینه که اگه کاربر توی مدت زمان refresh_token با سایت هیچ تعاملی نداشته باشه که توکن جدید دریافت کنه، مثلا بیشتر از 1 ماه به سایت ما سر نزنه، بعدش کلا logout میشه و باید دوباره توسط User و Pass لاگین کنه (که خب به نظرم منطقی هم هست)

❇️ از بین مقاله های زیادی که برای RefreshToken در ASP Core هست؛ این2تا رو براتون گلچین کردم که خیلی خوب توضیح دادند و اصولی پیاده سازی کردند

1️⃣ https://bit.ly/2ZZ2JwT
2️⃣ https://bit.ly/2ZWTk9o
❇️ #ویدئو آموزش معماری Microservice در ASP.NET Core (زبان اصلی زیر نویس دار)

از پایین ویدئو گزینه [Subtitle/captions] میتوانید زیرنویس آن را فعال کنید

[01:06] - Introducing the .NET application architecture website
[05:23] - Running the reference application
[06:33] - Understanding the target audience
[07:35] - Testing strategy
[09:11] - Exploring the technology stack
[13:25] - Managing the weight of the API gateway
[16:35] - Adopting the guidance
[21:33] - Communication patterns between microservices
[22:36] - Modeling challenges with microservices
[26:14] - Getting help with the reference application

Useful Links
GitHub repository for eShopOnContainers
.NET Microservices - Architecture e-book
.NET Application Architecture Guidance
قابلیت Decompile کد های #C در Visual Studio

قبلا در مورد اضافه شدن قابلیت Decompile کد های سی شارپ در VSCode (https://t.iss.one/DotNetZoom/944) توسط ILSpy گفته بودیم

این قابلیت برای Visual Studio هم وجود داره اما در حالت پیش نمایش هست و به صورت پیشفرض فعال نیست

جهت فعال سازی این قابلیت باید از منو Tools گزینه Options را انتخاب کرده و از قسمت Text Editor > C# > Advanced گزینه Enable navigation to decompiled sources رو تیک بزنین

بعد از فعال سازی روی کلاس/متدی که سورسش رو ندارین راست کلید و گزینه "Go to Definition" رو انتخاب کنین براتون Decompile کنه و کدشو نشونتون بده

این امکان هم توسط کتابخانه معروف ILSpy انجام شده و بار اولی که ازش استفاده کنین یه سوال (در مورد قبول License کتابخونه ILSpy) میپرسه که گزینه Yes رو باید بزنین

جهت استفاده از این قابلیت باید حداقل ویژوال استادیو 2019 نسخه 16.5 به بالا نصب داشته باشین (از منوی Help گزینه Check for Update میتونین چک کنین)
پروژه سورس باز فروش بیمه به صورت Microservices در NET Core.

🔰 تکنولوژی های استفاده شده
.NET Core 2.1
Entity Framework Core
#MediatR
#Marten
#Eureka
#Ocelot
#JWT Tokens
#RestEase
#RawRabbit
#NHibernate
#Polly
#NEST (#ElasticSearch client)
#Dapper
#SignalR
#MicroServices
DynamicExpresso

https://github.com/asc-lab/dotnetcore-microservices-poc
اگر در نوع کوئری زدن ها و واکشی داده از دیتابیس، تعداد Include های یک کوئری خیلی زیاد باشد یعنی ساختار دیتابس شما نباید Relational و SQL باشد و باید از NoSQL استفاده کنید.
رقابت بسیار نزدیک پرفورمنس gRPC در دات نت 5 در کنار RUST و ++C و Go

آدرس بنچمارک:
https://codehaks.com/go/ykn