Forwarded from FaraDars | فرادرس
💥۱۰ عنوان آموزشی رایگان شده حوزه برنامهنویسی، طراحی وب و علوم کامپیوتر در طرح «آموزش متوقف نمیشود»
🔸 لینک دسترسی به همه آموزشهای برنامهنویسی و طراحی وب:
🔗 fdrs.ir/5cb4
🔸 لینک دسترسی به همه آموزشهای:
🔗 fdrs.ir/yc9q
📋 لیست آموزشها:
🔗 روی عنوان آموزش مورد نظر خود کلیک کنید.
▫️ برنامهنویسی وب با جیکوئری
▫️ تبدیل قالب HTML به قالب وردپرس
▫️ معماری کامپیوتر با رویکرد حل مساله
▫️ مدارهای منطقی
▫️ یادگیری ماشین
▫️ امنیت شبکههای کامپیوتری
▫️ اصول نامگذاری در کدنویسی بر اساس مایکروسافت
▫️ مبانی ICT
▫️ نظریه گراف و کاربردها
▫️ هوش مصنوعی توزیع شده
👈 با به اشتراک گذاشتن این پست با دوستان و آشنایان خود، آنها را نیز از این فرصت ویژه یادگیری رایگان بهرهمند کنید.
___________________
📥 مشاهده و دریافت همه آموزشهای طرح «آموزش متوقف نمیشود»:
🔗 fdrs.ir/fredut99
❗️مهلت دریافت تا پایان روز دوشنبه، ۱۷ آذر ۱۳۹۹
📚 فرادرس
دانش در دسترس همه
همیشه و همه جا
@FaraDars — فرادرس
💥۱۰ عنوان آموزشی رایگان شده حوزه برنامهنویسی، طراحی وب و علوم کامپیوتر در طرح «آموزش متوقف نمیشود»
🔸 لینک دسترسی به همه آموزشهای برنامهنویسی و طراحی وب:
🔗 fdrs.ir/5cb4
🔸 لینک دسترسی به همه آموزشهای:
🔗 fdrs.ir/yc9q
📋 لیست آموزشها:
🔗 روی عنوان آموزش مورد نظر خود کلیک کنید.
▫️ برنامهنویسی وب با جیکوئری
▫️ تبدیل قالب HTML به قالب وردپرس
▫️ معماری کامپیوتر با رویکرد حل مساله
▫️ مدارهای منطقی
▫️ یادگیری ماشین
▫️ امنیت شبکههای کامپیوتری
▫️ اصول نامگذاری در کدنویسی بر اساس مایکروسافت
▫️ مبانی ICT
▫️ نظریه گراف و کاربردها
▫️ هوش مصنوعی توزیع شده
👈 با به اشتراک گذاشتن این پست با دوستان و آشنایان خود، آنها را نیز از این فرصت ویژه یادگیری رایگان بهرهمند کنید.
___________________
📥 مشاهده و دریافت همه آموزشهای طرح «آموزش متوقف نمیشود»:
🔗 fdrs.ir/fredut99
❗️مهلت دریافت تا پایان روز دوشنبه، ۱۷ آذر ۱۳۹۹
📚 فرادرس
دانش در دسترس همه
همیشه و همه جا
@FaraDars — فرادرس
❇️ مدیرمحصول یا مدیر پروژه یا مالک محصول یا اسکرام مستر؟!
یکی از اتفاقهایی که در چند سال اخیر در ایران رخ داده است پر کاربرد شدن عناوین شغلی جدیدی است که برای خیلی از افراد ناآشنا و غریب است. ناآشنا و غریب از چه لحاظ؟ از لحاظ اینکه نمی دانند فرق مدیر محصول (product manager) - مدیر پروژه (project manager)، مالک محصول (product owner) و اسکرام مستر (Scrum Master) در چیست. آیا اصولا این عناوین شغلی با هم فرقی دارند و یا اینکه صرفا عناوین جدیدی برای یک کار هستند؟ اگر شما هم این سوالات را دارید باید بدانید که این سوال افراد زیادی است و شما به هیچ وجه تنها نیستید. حتی من می خواهم یک گام هم فراتر بگذارم و بگویم تازه اگر کسی به واسطهی کار خود با افرادی با عناوین شغلی بالا برای مثال مدیر محصول همکار بوده است و به این وسیله با شرح شغلی عنوان مدیر محصول آشنا است، ممکن است وارد شرکت جدیدی شود و ببیند که مدیر محصول شرکت جدید کاری کاملا متفاوت از مدیر محصول شرکت قبل انجام میدهد! و دوباره این سوال برایش ایجاد شود که بلاخره مدیر محصول چه کاری انجام میدهد؟
اگر بخواهم اعتراف کنم باید بگویم خود من هم تا مدتها درگیر دستهبندی این عناوین شغلی در ذهنم بودم و همین شد که گفتم بهترین کار مکتوب کردن پاسخ این سوالات است، شاید برای افراد دیگری مفید واقع شود. قبل از خواندن این متن در یاد داشته باشیم که اختلاف عقاید زیادی در رابطه با تعاریف این عناوین شغلی وجود دارد و نوشتهی زیر ترکیبی از تعاریف راهنمای اسکرام و اجایل، بخش آموزشی لینکدین، منابع دیگر و تجربیات خودم میباشد.
ادامه ...
💎https://vrgl.ir/94KnA
یکی از اتفاقهایی که در چند سال اخیر در ایران رخ داده است پر کاربرد شدن عناوین شغلی جدیدی است که برای خیلی از افراد ناآشنا و غریب است. ناآشنا و غریب از چه لحاظ؟ از لحاظ اینکه نمی دانند فرق مدیر محصول (product manager) - مدیر پروژه (project manager)، مالک محصول (product owner) و اسکرام مستر (Scrum Master) در چیست. آیا اصولا این عناوین شغلی با هم فرقی دارند و یا اینکه صرفا عناوین جدیدی برای یک کار هستند؟ اگر شما هم این سوالات را دارید باید بدانید که این سوال افراد زیادی است و شما به هیچ وجه تنها نیستید. حتی من می خواهم یک گام هم فراتر بگذارم و بگویم تازه اگر کسی به واسطهی کار خود با افرادی با عناوین شغلی بالا برای مثال مدیر محصول همکار بوده است و به این وسیله با شرح شغلی عنوان مدیر محصول آشنا است، ممکن است وارد شرکت جدیدی شود و ببیند که مدیر محصول شرکت جدید کاری کاملا متفاوت از مدیر محصول شرکت قبل انجام میدهد! و دوباره این سوال برایش ایجاد شود که بلاخره مدیر محصول چه کاری انجام میدهد؟
اگر بخواهم اعتراف کنم باید بگویم خود من هم تا مدتها درگیر دستهبندی این عناوین شغلی در ذهنم بودم و همین شد که گفتم بهترین کار مکتوب کردن پاسخ این سوالات است، شاید برای افراد دیگری مفید واقع شود. قبل از خواندن این متن در یاد داشته باشیم که اختلاف عقاید زیادی در رابطه با تعاریف این عناوین شغلی وجود دارد و نوشتهی زیر ترکیبی از تعاریف راهنمای اسکرام و اجایل، بخش آموزشی لینکدین، منابع دیگر و تجربیات خودم میباشد.
ادامه ...
💎https://vrgl.ir/94KnA
ویرگول
مدیرمحصول یا مدیر پروژه یا مالکمحصول یا مستر اسکرام؟
حتما برای شما هم سوال است که آیا مدیرمحصول، مدیر پروژه، مالکمحصول و یا مستر اسکرام با هم یکی هستند؟ چه فرقی دارند؟ و شرح شغلی آنها چیست؟
✅ تامین امنیت دیتا های حساس و مهم در EF Core
در این پست به معرفی 2 راهکار (یک کتابخانه و دیگری یک مقاله) جهت تامین امنیت اطلاعات حساس و مهم در EF Core میپردازیم
🔸راهکار اول: توسط کتابخانه EntityFrameworkCore.DataEncryption میتونین اطلاعاتتون رو توی دیتابیس رمزنگاری کنین. این کار به سادگی قرار دادن یک اتریبیوت
مثلا برای مقایسه برابری (متد Equals یا دستور ==) مشکلی نداره ولی برای دستور Contains یا ... به مشکل میخورین
🔰ریپازیتوری گیتهاب پروژه + اطلاعات بیشتر
https://github.com/Eastrall/EntityFrameworkCore.DataEncryption
🔹راهکار دوم: فرض کنین شخصی که به دیتابیس دسترسی داره، به صورت دستی و مستقیم (نه از طریق اپلیکیشن ما)، مقداری رو تغییر میده بدون اینکه دسترسی لازم به لحاظ بیزینسی رو داشته باشه.
چطور میتونیم متوجه این قضیه بشیم؟ چطوری از صحت اطلاعات خودمون مطمئن بشیم؟ چطوری میتونیم اصالت اون ها رو تضمین کنیم؟
جواب این سوال رو میتونین توی مقاله زیر که توسط وحید نصیری نوشته شده و از روشی خلاقانه استفاده میکنه پیدا کنین
🔰 تشخیص اصالت ردیفهای یک بانک اطلاعاتی در EF Core
https://www.dotnettips.info/post/3100
نکته: هر دو راهکار بالا database-agnostic هستند یعنی فرقی نمیکنه شما از کدوم دیتابیس پشت EF Core استفاده میکنین؛ با هر دیتابیسی کار میکنه
_______________
در این پست به معرفی 2 راهکار (یک کتابخانه و دیگری یک مقاله) جهت تامین امنیت اطلاعات حساس و مهم در EF Core میپردازیم
🔸راهکار اول: توسط کتابخانه EntityFrameworkCore.DataEncryption میتونین اطلاعاتتون رو توی دیتابیس رمزنگاری کنین. این کار به سادگی قرار دادن یک اتریبیوت
[Encrypted]
بر پروپرتی های entity ها تون انجام میشه. در این روش اطلاعات شما موقع insert/update به صورت خودکار Encrypt شده و به صورت رشته توی دیتابیس ذخیره میشن و موقع واکشی هم به صورت خودکار Decrypt میشن لذا برای اعمال بعضی از دستورات شرطی ممکنه دچار مشکل بشین (به خاطر تفاوت مقدار encrypt شده که البته طبیعی هم هست و راه گریزی نیست)مثلا برای مقایسه برابری (متد Equals یا دستور ==) مشکلی نداره ولی برای دستور Contains یا ... به مشکل میخورین
🔰ریپازیتوری گیتهاب پروژه + اطلاعات بیشتر
https://github.com/Eastrall/EntityFrameworkCore.DataEncryption
🔹راهکار دوم: فرض کنین شخصی که به دیتابیس دسترسی داره، به صورت دستی و مستقیم (نه از طریق اپلیکیشن ما)، مقداری رو تغییر میده بدون اینکه دسترسی لازم به لحاظ بیزینسی رو داشته باشه.
چطور میتونیم متوجه این قضیه بشیم؟ چطوری از صحت اطلاعات خودمون مطمئن بشیم؟ چطوری میتونیم اصالت اون ها رو تضمین کنیم؟
جواب این سوال رو میتونین توی مقاله زیر که توسط وحید نصیری نوشته شده و از روشی خلاقانه استفاده میکنه پیدا کنین
🔰 تشخیص اصالت ردیفهای یک بانک اطلاعاتی در EF Core
https://www.dotnettips.info/post/3100
نکته: هر دو راهکار بالا database-agnostic هستند یعنی فرقی نمیکنه شما از کدوم دیتابیس پشت EF Core استفاده میکنین؛ با هر دیتابیسی کار میکنه
_______________
Telegram
Attach Files
✅ داشبورد مدیریت تسک ها برای Quartz .NET
کتابخانه Hangfire (مشابه Quartz) که قدرتمند ترین ابزار برای تسک های زمان بندی شده هست دارای داشبوردی برای مدیریت و نظارت بر تسک ها هست ولی کتابخانه Quartz .NET فاقد چنین داشبوردی هست
🔰اگر از Quartz برای تسک های زمان بندی شده خودتون استفاده میکنین میتونین از 2 کتابخونه کمکی زیر برای بهره مندی از یک داشبورد مدیریتی نظارتی استفاده کنین
🔸کتابخانه Quartzmin
https://github.com/jlucansky/Quartzmin
🔹کتابخانه CrystalQuartz
https://github.com/guryanovev/CrystalQuartz
کتابخانه Hangfire (مشابه Quartz) که قدرتمند ترین ابزار برای تسک های زمان بندی شده هست دارای داشبوردی برای مدیریت و نظارت بر تسک ها هست ولی کتابخانه Quartz .NET فاقد چنین داشبوردی هست
🔰اگر از Quartz برای تسک های زمان بندی شده خودتون استفاده میکنین میتونین از 2 کتابخونه کمکی زیر برای بهره مندی از یک داشبورد مدیریتی نظارتی استفاده کنین
🔸کتابخانه Quartzmin
https://github.com/jlucansky/Quartzmin
🔹کتابخانه CrystalQuartz
https://github.com/guryanovev/CrystalQuartz
https://telegram.org/blog/voice-chats
از سال 2013 ، ما تعریف گپ های گروهی را گسترش داده و ویژگی هایی مانند پاسخ ، ذکر با اعلان های هوشمند ، نظرسنجی های پیشرفته ، ابزارهای سرپرست ، آمار گروه را اضافه کرده ایم و به صدها هزار عضو در هر گروه اجازه می دهیم. بسیاری از این ویژگی ها بعداً در برنامه های دیگر گنجانده شد و نحوه ارتباط افراد را دوباره تعریف کرد. امروز ، گروه های تلگرامی با گفتگوی صوتی ابعاد جدیدی پیدا می کنند - تماس های مداوم کنفرانسی که اعضا می توانند به آنها ملحق شده و آنها را ترک کنند. به روز رسانی دوازدهم ما در سال 2020 ، آنها را به موقع برای آهنگ های کریسمس از راه دور به ارمغان می آورد. گفتگوی صوتی هر گروه تلگرامی اکنون می تواند به یک اتاق گفتگوی صوتی تبدیل شود که همیشه روشن است. گفتگوی صوتی به موازات متن موجود و ارتباطات مبتنی بر رسانه اجرا می شود و یک لایه زنده گفتگوی زودگذر را به گروه اضافه می کند. آنها می توانند به عنوان فضاهای اداری مجازی برای تیم ها یا سالن های غیر رسمی برای هر جامعه استفاده شوند. در حالی که گفتگوی صوتی تماس گروهی نیستند ، می توانند به اهداف مشابه برسند - در عین حال به جای برنامه ریزی مدرسه قدیمی ، انعطاف پذیری را ارائه می دهند. در گروههای بزرگتر ، آنها فرصتهای بسیار خوبی را برای گفتگو با مردم فراهم می کنند.
گروه هایی که دارای گفتگوی صوتی فعال هستند ، یک نوار ویژه در بالا دارند که نشان می دهد چه کسی در حال حاضر صحبت می کند (و حتی میزان صدا بودن آنها). این می تواند به شما کمک کند لحظه مناسب را برای عضویت انتخاب کنید - مانند توجه به اینکه دوستانتان به کولر می روند.
پس از پیوستن به یک چت صوتی ، شما می توانید در برنامه حرکت کنید ، به مکالمه ها بپردازید و پیام ارسال کنید. شما به گپ متصل می مانید و کنترل های میکروفون روی صفحه باقی می مانند تا بتوانید در هر زمان به سرعت خود را بی صدا و بی صدا کنید.
اگر از Android استفاده می کنید ، می توانید از تجربه کامل گفتگوی صوتی با یک ابزارک شناور در سطح سیستم لذت ببرید که کنترل های میکروفن شما را نشان می دهد و چه کسی در حال صحبت است ، حتی وقتی تلگرام در پس زمینه است. سانتا نیز در اندروید است - و او همیشه به ناوبری سورتمه خود نیاز دارد.
می توانید با هرکسی که آنلاین است گپ بزنید یا از طریق منوی مفید افراد بیشتری را دعوت کنید. گفتگوی صوتی می تواند چند هزار شرکت کننده را در خود جای دهد ، این بدان معناست که آنها برای مشاوره با اعضای خانواده در هنگام خرید برای یک رویداد بزرگ زنده برای همه کار خواهند کرد.
آخرین اما نه مهمتر ، گفتگوی صوتی انیمیشن های دیدنی و جذاب را نشان می دهد. برای درست کردن این موارد ، طراح ما مجبور شد روح خود را به شیطان بفروشد - و ما فکر می کنیم کاملاً ارزشش را داشت.
مانند گروه های تلگرامی پیش از آنها ، ما امیدواریم که گفتگوی صوتی نحوه همکاری و ارتباط مردم را تغییر دهد. در هفته های آینده ، آنها را بیشتر اصلاح خواهیم کرد ، به نظرات شما گوش خواهیم داد ، سرکوب صدا را بهبود می بخشیم و ویژگی های بیشتری مانند اشتراک گذاری ویدیو و صفحه اضافه می کنیم.
میانبرهای Push-to-Talk
در Telegram Desktop و در برنامه macOS بومی ، می توانید یک کلید push-to-talk را برای گفتگوی صوتی انتخاب کنید تا میکروفن خود را حتی در زمان تمرکز Telegram کنترل کنید. سرانجام ، ما برای کلید Caps Lock شما یک کاربرد پیدا کردیم.
از سال 2013 ، ما تعریف گپ های گروهی را گسترش داده و ویژگی هایی مانند پاسخ ، ذکر با اعلان های هوشمند ، نظرسنجی های پیشرفته ، ابزارهای سرپرست ، آمار گروه را اضافه کرده ایم و به صدها هزار عضو در هر گروه اجازه می دهیم. بسیاری از این ویژگی ها بعداً در برنامه های دیگر گنجانده شد و نحوه ارتباط افراد را دوباره تعریف کرد. امروز ، گروه های تلگرامی با گفتگوی صوتی ابعاد جدیدی پیدا می کنند - تماس های مداوم کنفرانسی که اعضا می توانند به آنها ملحق شده و آنها را ترک کنند. به روز رسانی دوازدهم ما در سال 2020 ، آنها را به موقع برای آهنگ های کریسمس از راه دور به ارمغان می آورد. گفتگوی صوتی هر گروه تلگرامی اکنون می تواند به یک اتاق گفتگوی صوتی تبدیل شود که همیشه روشن است. گفتگوی صوتی به موازات متن موجود و ارتباطات مبتنی بر رسانه اجرا می شود و یک لایه زنده گفتگوی زودگذر را به گروه اضافه می کند. آنها می توانند به عنوان فضاهای اداری مجازی برای تیم ها یا سالن های غیر رسمی برای هر جامعه استفاده شوند. در حالی که گفتگوی صوتی تماس گروهی نیستند ، می توانند به اهداف مشابه برسند - در عین حال به جای برنامه ریزی مدرسه قدیمی ، انعطاف پذیری را ارائه می دهند. در گروههای بزرگتر ، آنها فرصتهای بسیار خوبی را برای گفتگو با مردم فراهم می کنند.
گروه هایی که دارای گفتگوی صوتی فعال هستند ، یک نوار ویژه در بالا دارند که نشان می دهد چه کسی در حال حاضر صحبت می کند (و حتی میزان صدا بودن آنها). این می تواند به شما کمک کند لحظه مناسب را برای عضویت انتخاب کنید - مانند توجه به اینکه دوستانتان به کولر می روند.
پس از پیوستن به یک چت صوتی ، شما می توانید در برنامه حرکت کنید ، به مکالمه ها بپردازید و پیام ارسال کنید. شما به گپ متصل می مانید و کنترل های میکروفون روی صفحه باقی می مانند تا بتوانید در هر زمان به سرعت خود را بی صدا و بی صدا کنید.
اگر از Android استفاده می کنید ، می توانید از تجربه کامل گفتگوی صوتی با یک ابزارک شناور در سطح سیستم لذت ببرید که کنترل های میکروفن شما را نشان می دهد و چه کسی در حال صحبت است ، حتی وقتی تلگرام در پس زمینه است. سانتا نیز در اندروید است - و او همیشه به ناوبری سورتمه خود نیاز دارد.
می توانید با هرکسی که آنلاین است گپ بزنید یا از طریق منوی مفید افراد بیشتری را دعوت کنید. گفتگوی صوتی می تواند چند هزار شرکت کننده را در خود جای دهد ، این بدان معناست که آنها برای مشاوره با اعضای خانواده در هنگام خرید برای یک رویداد بزرگ زنده برای همه کار خواهند کرد.
آخرین اما نه مهمتر ، گفتگوی صوتی انیمیشن های دیدنی و جذاب را نشان می دهد. برای درست کردن این موارد ، طراح ما مجبور شد روح خود را به شیطان بفروشد - و ما فکر می کنیم کاملاً ارزشش را داشت.
مانند گروه های تلگرامی پیش از آنها ، ما امیدواریم که گفتگوی صوتی نحوه همکاری و ارتباط مردم را تغییر دهد. در هفته های آینده ، آنها را بیشتر اصلاح خواهیم کرد ، به نظرات شما گوش خواهیم داد ، سرکوب صدا را بهبود می بخشیم و ویژگی های بیشتری مانند اشتراک گذاری ویدیو و صفحه اضافه می کنیم.
میانبرهای Push-to-Talk
در Telegram Desktop و در برنامه macOS بومی ، می توانید یک کلید push-to-talk را برای گفتگوی صوتی انتخاب کنید تا میکروفن خود را حتی در زمان تمرکز Telegram کنترل کنید. سرانجام ، ما برای کلید Caps Lock شما یک کاربرد پیدا کردیم.
Telegram
Voice Chats Done Right
Today, Telegram groups get an entire new dimension with Voice Chats – persistent conference calls that members can join and leave as they please. Our 12th update in 2020 brings them to you just in time for remote Christmas carols.
DotNet | دات نت
https://telegram.org/blog/voice-chats از سال 2013 ، ما تعریف گپ های گروهی را گسترش داده و ویژگی هایی مانند پاسخ ، ذکر با اعلان های هوشمند ، نظرسنجی های پیشرفته ، ابزارهای سرپرست ، آمار گروه را اضافه کرده ایم و به صدها هزار عضو در هر گروه اجازه می دهیم. بسیاری…
This media is not supported in your browser
VIEW IN TELEGRAM
DotNet | دات نت
https://telegram.org/blog/voice-chats از سال 2013 ، ما تعریف گپ های گروهی را گسترش داده و ویژگی هایی مانند پاسخ ، ذکر با اعلان های هوشمند ، نظرسنجی های پیشرفته ، ابزارهای سرپرست ، آمار گروه را اضافه کرده ایم و به صدها هزار عضو در هر گروه اجازه می دهیم. بسیاری…
This media is not supported in your browser
VIEW IN TELEGRAM
DotNet | دات نت
https://telegram.org/blog/voice-chats از سال 2013 ، ما تعریف گپ های گروهی را گسترش داده و ویژگی هایی مانند پاسخ ، ذکر با اعلان های هوشمند ، نظرسنجی های پیشرفته ، ابزارهای سرپرست ، آمار گروه را اضافه کرده ایم و به صدها هزار عضو در هر گروه اجازه می دهیم. بسیاری…
This media is not supported in your browser
VIEW IN 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 محدودیت هایی داره
_______________
واسه فایل های نه چندان حجیم (مثلا تا 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 محدودیت هایی داره
_______________
Telegram
Attach Files
✅ هفته به هفته با برترین مقالات 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))
اگه علاقمند به مطالعه برترین مقالات دات نت و دنبال کردن اخبار روز دنیای دات نت هستین، بهترین راه اینه که تو سایت های خبرنامه هفتگی این حوزه ثبت نام کنین تا هر هفته، محبوب ترین مقالات و اخبار رو تو ایمیل خودتون دریافت کنین
🔰لیست زیر گلچینی از بهترین سایت های خبرنامه های دات نتی هست. کافیه توش ثبت نام کنین یا با برنامه های فید خوان 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 و فریم ورک دات نت مستقیما از این نوع داده پشتیبانی میکنند.
مقدار 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 و... روش سرمایه گذاری شده
میگن اگه میخوای پیش گوی خوبی باشی، آینده رو پیش بینی نکن، اون رو بساز. و این ها در واقع کسانی هستند که مسیر توسعه وب رو پیش بینی نمیکنند بلکه اون رو خودشون میسازند
وب اسمبلی (یا 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/
🔸خیلی وقتا موقع کار تیمی لازم میشه با هم تیمی تون تعامل داشته باشین، روی وایت برد برای هم توضیح بدین، شکل رسم کنین و یا استیکی نوت بچسبونین
حالا که خیلی از برنامه نویسا به صورت ریموت کار میکنن وجود یه وایت بورد آنلاین خیلی میتونه کاربردی باشه
🔹سایت miro یه وایت برد آنلاین خیلی باحال و کاربردی هست که توش میتونین فلوچارت رسم کنین، با ماژیک شکل رسم کنین، Stiky Note بچسبونین و افراد مختلفی به اون متصل بشن و به صورت Real-time با هم دیگه تعامل کنن (البته پولیه ولی نسخه رایگانش تا محدودیت 3 تا بورد رو به شما میده)
🔰چند نمونه از کاربرد هاش برای تیم ها میتونه اینها باشه:
✔️ ترسیم فلوچارت و فرایند های بین فرم ها
✔️ ترسیم نیازمندی های پروژه
✔️ برنامه ریزی های گروهی
✔️ طوفان فکری و ایده پردازی جمعی
✔️ برگزاری رویداد های Event Storming جهت فهم بهتر دامنه
✔️ و...
https://miro.com/
Forwarded from NikAmooz | نیک آموز
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
کنفرانس Tehran Dot NET Conf 2021
چهارمین کنفرانس متوالی مایکروسافت در ایران
این کنفرانس در Local Event مایکروسافت ثبت شده است.
پنجشنبه 18 دیماه ساعت 14 منتظر شما هستیم.
مکان: وبکست آنلاین و زنده
قیمت: رایگان
سایت ثبت نام:
https://nikamoozbuild.com
سایت رسمی:
https://www.dotnetconf.net/local-events