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


🆔 @dotnetcode
Download Telegram
آپلود فایل های بسیار حجیم در ASP.NET Core

واسه فایل های نه چندان حجیم (مثلا تا 200 الی 300 مگابایت) میتونین از 2 آموزش زیر استفاده کنین که ترفنداشو بهتون میگه

https://www.binaryintellect.net/articles/612cf2d1-5b3d-40eb-a5ff-924005955a62.aspx

https://www.talkingdotnet.com/how-to-increase-file-upload-size-asp-net-core/

🔰 ولی اگه فایل هاتون خیلی حجیم هست (مثلا 500 مگ به بالا تاااااا چندین گیگابایت)
بهتره از روش Chunk (خرد کردن فایل حجیم به تکه های کوچیک تر و سپس آپلود این تیکه ها و نهایتا جمع کردنش سمت سرور) استفاده کنین

🔸سمپل زیر این قابلیت رو به خوبی پیاده سازی کرده
واسه این روش باید هم سمت سرور کدشو بنویسین و هم سمت کلاینت، از پلاگینی استفاده کنین که کار Chunk کردن رو براتون انجام بده (البته دستی هم میشه ولی با پلاگین راحت تره) مثلا این سمپل از پلاگین Resumable.js استفاده کرده

https://github.com/edsoncunha/chunked-file-upload-csharp
نکته : واسه اجرا حتما برنامه رو روی Kestrel اجرا کنین وگرنه در حالت IISExpress محدودیت هایی داره
_______________
هفته به هفته با برترین مقالات NET.

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

🔰لیست زیر گلچینی از بهترین سایت های خبرنامه های دات نتی هست. کافیه توش ثبت نام کنین یا با برنامه های فید خوان RSS اونا رو دنبال کنین

🔸https://csharpdigest.net/
🔹https://dotnet.libhunt.com/
🔸https://aspnetcore.news/
🔹https://dotnetkicks.com/
🔸https://discoverdot.net/
🔹https://www.dotnetweekly.com/
🔸https://www.alvinashcraft.com/
🔹https://olegkarasik.wordpress.com/
🔸https://dotnettips.info/ (آخرین لینک ها و خبر ها (https://www.dotnettips.info/newsarchive))
آشنایی با GUID

مقدار GUID یک عدد 128 است که به صورت 32 کاراکتر در مبنای 16 نمایش داده میشود و شامل 4 خط تیره است. نسخه های و ویرایش مختلفی از آن ارائه شده که در عدد ساخته شده درج میشود.

از GUID یا Globally Unique Identifier برای ایجاد کلید اصلی جداول دیتابیس استفاده میشود.

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

در دهه 80 میلادی از GUID در سیستم عامل Apollo ناسا استفاده میشد. بعد در سیستم عامل ویندوز و شبکه (آدرس MAC) مورد استفاده قرار گرفت.

مزیت اصلی GUID این است که بدون مراجعه به دیتابیس و بررسی سایر رکوردها می توان یک کلید غیر تکراری ایجاد کرد. این مسئله در معماری میکروسرویس و دیتابیس های توزیع شده کاربرد زیادی دارد.

دیتابیس SQL Server و فریم ورک دات نت مستقیما از این نوع داده پشتیبانی میکنند.
وب اسمبلی (WebAssembly) چیه؟ و چرا آینده Web هست؟!

وب اسمبلی (یا WASM مخفف WebAssembly) یک زبان low-level (سطح پایین) با فرمت Binary (دو-دویی) هست که توسط مرورگر اجرا میشه

🔸در اینجا چندتا نکته مهم وجود داره:
1️⃣ اول اینکه یه زبان سطح-پایین هست و با پرفرمنسی نزدیک به Native اجرا میشه (اصلا یکی از اهداف اصلی ایجاد WASM اجرا سریع تر کدها توی مروگر بود)

2️⃣ برخلاف js به جای اینکه فرمت متنی داشته باشه، فرمت باینری (دو-دویی) داره که باعث میشه کد حجم کمتری داشته باشه در نتیجه این به معنی بارگزاری سریع تر نیز هست
در واقع وقتی کدی قراره human-readable باشه حجم بیشتری میگیره تا اینکه باینری باشه. مشابه این اتفاق برای سریالایز کردن به json در مقایسه با binary formatter هایی مانند protobuf و message-pack هم اتفاق میافته. ضمن اینکه کدی که به صورت باینری باشه امکان فشرده سازی بیشتر و بهینه تری داره

3️⃣ علاوه بر حالت باینری، یه حالت متنی (به صورت S-expression) هم داره که human-readable هست و قابلیت دیباگ و خوانایی خوبی داره
این فرمت در قالب فایل های با پسوند wat. یا wast. ذخیره میشه که میتونین نمونه کدش رو اینجا ببینین (البته در گذشته این دو معادل هم بودند ولی جدیدا بیشتر wat. برای اینکار استفاده میشه)

4️⃣ گرچه در ابتدا WASM برای اجرا توی مروگر طراحی شده بود ولی بعد ها توی پلتفرم های دیگه هم مورد استقبال قرار گرفت و یه سری Runtime هایی (مانند wasmer و wasmtime) براش نوشته شد که این امکان رو میده که برنامه های WASM رو توی Desktop و IoT و Server و... اجرا بشن

5️⃣ این زبان در کنار خودش یه سری کامپایلر (از جمله emscripten و binaryen) ارائه داده تا زبان های low-level ایی همچون C و ++C و Rust بتونن کدشون رو به WASM کامپایل کنن
زبان های دیگه هم از جمله #C و Java و Python و Go به این سمت حرکت کردن و امکان اجرای کد هاشون رو توی مرورگر فراهم کردند
به عنوان مثال Blazor امکان اجرا کد های #C رو در مرورگر فراهم میکنه
مزیت این روش اینه که شما به زبون های دلخواه خودتون میتونین کدی بنویسین که توی مرورگر اجرا بشه. یعنی اصلا نیاز نیس زبان WASM رو بلد باشین.

🔹حالا سوال مهم اینه که این زبان جای JavaScript رو میگیره؟
جواب: نه، اصلا نمیتونه. WASM اومده که مکمل JS باشه و ضعف های اون رو برطرف کنه
زبان JS تو پلتفرم های زیادی استفاده میشه و جامعه بسیار بزرگی داره پس نه WASM نه هیچ زبان دیگه ای نمی تونه اون رو کنار بزنه (حداقل به این زودی ها نه)
در واقع تنها مزیت منحصر به فرد JS سمت Front بود که تنها پادشاه سمت مرورگر بود. ولی الان که امکان اجرای زبان های دیگه سمت مرورگر فراهم شده عملا راه برای ظهور پادشاه های دیگری هم فراهم شده
یکی از کارهای دیگری که در این زمینه انجام شده AssemblyScript هست که در واقع یک کامپایلر TypeScript به WASM هست که سینتکس کدش کاملا TS نیست ولی شبیه اونه و نهایتا کد های شما رو به WASM کامپایل میکنه

🔸در آخر نکته مهم اینه که که بدونین این تکنولوژی محکوم به اینه که آینده وب باشه!
یعنی حتی اگه این زبان از خودش هیچ آورده ای هم نداشته باشه بازم مسیر توسعه وب در آینده به سمت اون هدایت میشه (توسط دست های پشت پرده :دی) .
چرا؟ چون توسط بنیاد W3C (کنسرسیوم جهانی وب) به عنوان یه استاندارد شناخته شده و نیز شرکتای غولی همچون Google و Microsoft و Mozilla و Apple و Intel و Red Hat و... روش سرمایه گذاری شده
میگن اگه میخوای پیش گوی خوبی باشی، آینده رو پیش بینی نکن، اون رو بساز. و این ها در واقع کسانی هستند که مسیر توسعه وب رو پیش بینی نمیکنند بلکه اون رو خودشون میسازند
ارزش شرکت‌های بزرگ تکنولوژی 🚀
❇️ یه وایت بورد آنلاین خیلی خوب واسه کار های تیمی

🔸خیلی وقتا موقع کار تیمی لازم میشه با هم تیمی تون تعامل داشته باشین، روی وایت برد برای هم توضیح بدین، شکل رسم کنین و یا استیکی نوت بچسبونین
حالا که خیلی از برنامه نویسا به صورت ریموت کار میکنن وجود یه وایت بورد آنلاین خیلی میتونه کاربردی باشه

🔹سایت miro یه وایت برد آنلاین خیلی باحال و کاربردی هست که توش میتونین فلوچارت رسم کنین، با ماژیک شکل رسم کنین، Stiky Note بچسبونین و افراد مختلفی به اون متصل بشن و به صورت Real-time با هم دیگه تعامل کنن (البته پولیه ولی نسخه رایگانش تا محدودیت 3 تا بورد رو به شما میده)


🔰چند نمونه از کاربرد هاش برای تیم ها میتونه اینها باشه:
✔️ ترسیم فلوچارت و فرایند های بین فرم ها
✔️ ترسیم نیازمندی های پروژه
✔️ برنامه ریزی های گروهی
✔️ طوفان فکری و ایده پردازی جمعی
✔️ برگزاری رویداد های Event Storming جهت فهم بهتر دامنه
✔️ و...
https://miro.com/
This media is not supported in your browser
VIEW IN TELEGRAM


کنفرانس Tehran Dot NET Conf 2021

چهارمین کنفرانس متوالی مایکروسافت در ایران
این کنفرانس در Local Event مایکروسافت ثبت شده است.

پنجشنبه 18 دیماه ساعت 14 منتظر شما هستیم.
مکان: وبکست آنلاین و زنده
قیمت: رایگان

سایت ثبت نام:
https://nikamoozbuild.com

سایت رسمی:
https://www.dotnetconf.net/local-events
♨️♨️♨️گیت‌هاب دوباره در دسترس توسعه‌دهندگان ایرانی

🔸«نت فرایدمن»، مدیرعامل #گیت‌هاب اعلام کرد که این شرکت مجوزی از دولت آمریکا دریافت کرده تا خدماتش را به توسعه‌دهندگان ایرانی ارائه دهد.

🔸 سرویس‌های این شرکت اکنون می‌تواند در اختیار افراد یا سازمان‌ها، به شکل رایگان یا اشتراکی قرار گیرد.

🔸گیت‌هاب پیشتر در سال ۲۰۱۹ به دلیل تحریم‌های آمریکا ملزم شده بود تا دسترسی توسعه‌دهندگان ایرانی به پلتفرمش را محدود کند.
👍1
🔈 پشتیبانی رسمی از نمایش راست به چپ (RTL) در Bootstrap 5

اگر این روزها به صفحه رسمی Bootstrap مراجعه کنید خواهید دید که آخرین ورژن قابل دانلود در حال حاضر، ورژن 5.0.0-beta1 است.

نکته جالب این ورژن، افزوده شدن پشتیبانی رسمی RTL به این ورژن و ورژن های بعدی که ارائه خواهند شد است. بنابراین اگر این ورژن را از سایت رسمی آن دریافت کنید در لیست فایل های قابل دانلود، سری فایل هایی که کلمه rtl را در نام شان دارند خواهید دید.

البته، افزودن قابلیت راست به چپ، با کمک کتابخانه RtlCss (یک کتابخانه معروف مبتنی بر جاوا اسکریپت و NodeJS) انجام شده، و این مطلب نیز به وضوح در مستندات ورژن جدید بیان شده است. قبل از این نیز شخصا، هر وقت می خواستم قالب های وب سایت رو راست به چپ کنم به سایت rtlcss.com و بعدتر، از ابزار Command Line اش استفاده می کردم، اینها هم همین کار رو کرده اند و زحمت من را کمتر کرده اند.

قبلا برای فونت آیکون ها، من از ورژن رایگان و پولی FontAwesome استفاده می کردم. چند ماهی است تولید کنندگان بوت استرپ به فکر ارائه فونت آیکون های اختصاصی خودشان نیز افتاده اند (شکل گیری اولیه FontAwesome و شناخته شدن آن بین طراحان وب، بخاطر ارائه شدن ورژن 4.7 آن به صورت رایگان به همراه ورژن های قبلی بوت استرپ بود).
ورژن پولی کنونی FontAwesome در مجموع 7,865 فونت آیکون دارد، اما اگر دنبال یک معادل رایگان برای آن می گردید، استفاده از Bootstrap Icons که ورژن 1.3 آن (که اخیرا منتشر شده) هم اکنون 1200 فونت آیکون دارد و کاملا نیز رایگان هست نیز توصیه می شود.
طعنه مایکروسافت به واتس‌اپ: ما اطلاعات شخصی کاربران را نمی‌فروشیم
مایکروسافت نیز با انتشار پستی در توییر به سیاست جدید واتس‌اپ طعنه زد و کاربران را به مهاجرت به اسکایپ دعوت کرد. اسکایپ با انتشار پست جدیدی در توییتر اعلام کرد که از اطلاعات خصوصی کاربران محافظت کرده و آنها را با شرکت‌های شخص ثالث به اشتراک نمی‌گذارد:

«اسکایپ به حریم خصوصی شما احترام می‌گذارد. ما به خصوصی نگه داشتن داده‌های شما پایبند هستیم و آنها را به شرکت‌های شخص سوم نمی‌فروشیم.»

اسکایپ در این پست لینکی هم قرار داده که کاربر با کلیک کردن روی آن به صفحه قوانین حفظ حریم خصوصی مایکروسافت برده می‌شود که در آن توضیحاتی در مورد نحوه جمع‌آوری داده‌های کاربران و چگونگی استفاده از آن‌ها اشاره شده است. این صفحه حاوی نکات بسیاری است بنابراین اگر به خاطر نگرانی از حریم خصوصی واقعاً به فکر مهاجرت به اسکایپ هستید بهتر است تمام مطالب آن را با دقت مطالعه کنید.
This media is not supported in your browser
VIEW IN TELEGRAM
❇️ کدنویسی سریع تر و راحت تر در Visual Studio با این ترفند

🔶 توسط این قابلیت چیزایی که namespace شون رو using نکردین هم براتون توی IntelliSense میاره و زمانی که تایپ تون کامل بشه خودش namespace اش رو هم using میکنه. اینطوری دیگه لازم نیس نگران این باشین که فلان class یا extension method توی کدوم namespace بود (چیزی شبیه Resharper)

🔷 این قابلیت از قبل به Visual Studio 2019 اضافه شده ولی هنوز به صورت Experimental (آزمایشی) هست و به صورت پیشفرض فعال نیست

🔰 واسه فعال کردنش باید برین توی منوی Tools سپس گزینه Options رو انتخاب کنین و از قسمت زیر (یا سرچ کردن متن IntelliSense توی سرچ باکس)
▶️ TextEditor > C# > IntelliSense
و گزینه زیر رو "تیک کامل" بزنین.
Show items for unimported namespaces (experimental)
🔈📚📹 فهرست دوره های آموزشی علوم کامپیوتر بهمراه ویدئوهای آموزشی

سلام.
یک آدم خیرخواه یک فهرست نسبتا طولانی از دوره های آموزشی عمدتا رایگان علوم کامپیوتر و برنامه نویسی که اکثرا حاوی ویدئوهای آموزشی هستند رو در قالب یک ریپوزیتوری گیت هاب تهیه کرده و به اشتراک گذاشته است.

اگر شما هم مهارت شنیداری تون در زبان انگلیسی بالاست، توصیه می کنم حتما نگاهی به این لیست بیاندازید.
Media is too big
VIEW IN TELEGRAM

▪️تیزر کنفرانس Tehran Dot NET Conf 2021

برای دانلود فیلم کنفرانس به صورت رایگان به سایت زیر مراجعه کنید

https://nikamoozbuild.com/
افزایش Performance با شرط گذاری روی Include ها در EF Core

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

در این مقاله روش های مختلف شرط گزاری روی Include ها و بهینه سازی اونها رو بررسی میکنیم. همچنین روش های مختلف رو از نظر سرعت و میزانی memory allocation (تخصیص حافظه) مقایسه میکنیم

🔰لینک مقاله
https://vrgl.ir/JFkK4
__________
This media is not supported in your browser
VIEW IN TELEGRAM
کلیپی از قابلیت های برنامه Your Phone در ويندوز 10

برنامه Your Phone در حال حاضر فقط در پلتفرم اندروید در دسترس است. و انتظار می رود به زودی برای پلتفرم Ios نیز منتشر شود.با نصب و فعالسازی برنامه کاربردی Your Phone در دستگاه اندرویدی خود می توانید به آسانی عکس های خود را از تلفن اندرویدی خود به طور مستقیم بر روی کامپیوتر خود مشاهده کنید و به اشتراک بگذارید و همینطور نوتیفیکیشن ها و پیامک های خود را در ویندوز ۱۰ ببینید و حتی به آن پاسخ دهید و قابلیت مکالمه از طریق کامپیوتر نیز فراهم شده است. اخیرا،در به روزرسانی جدید این اپلیکیشن، امکان استریم برنامه های اندرویدی بر روی ویندوز ۱۰ نیز فراهم شده است. در این حال باید شما این ویژگی را در ویندوز ۱۰ فعال کنید.
استفاده از قابلیت های جدید EF Core 5 در ASP.NET Core Identity

-- استفاده از قابلیت جدید Skip Navigation در EF Core 5

-- استفاده از Query فوق العاده ساده برای ویرایش(آپدیت) روابط Many to Many بدون نیاز به چند Query مختلف

-- ایجاد ارتباط ضمنی بین IdentityUser و IdentityRole و یکپارچه سازی این ارتباط با EF Core 5

-- امکان ایجاد Query های مختلف توسط کلاس Context به جای استفاده از UserManager

سورس کد پروژه:
https://github.com/ArminShoeibi/ImplicitManyToManyIdentityCore