داستان VSCode
ویرایشگر VSCode محبوبترین پروژه متن باز در گیتهاب است و تا به حال بیش از 19 هزار نفر در توسعه آن مشارکت کرده اند.
مایکروسافت این محصول را 5 سال پیش عرضه کرد و می توانید از آن برای کد نویسی انواع زبانهای برنامه نویسی در همه سیستم عامل ها استفاده کنید.
نرم افزار VSCode با تایپ اسکریپت و جاوااسکریپت پیاده شده است و برای اجرا در محیط دسکتاپ از Nodejs و Electron استفاده می کند.
فریم ورک Electron توسط گیتهاب توسعه داده میشود و اپلیکیشن های نوشته شده با HTML و CSS و JavaScript را بجای اجرا در مرورگر تبدیل به نرم افزار دسکتاپ میکند.
ویرایشگر ATOM هم از Electron استفاده میکند که محصولی از گیتهاب است.
مایکروسافت در سال 2018 گیتهاب را خرید و اکنون مالک Electron و البته ATOM حساب می شود.
یکی از انتقاداتی که به VSCode میشود مربوط به مصرف بالای رم آن است که باعث کندی عمومی سیستم میشود. با این وجود ابزار فوق العاده و افزونه های فراروان در کنار ساختار کاملا کاستوم پذیر توسعه دهندگان زیادی را به سمت آن جلب کرده است.
ویرایشگر VSCode محبوبترین پروژه متن باز در گیتهاب است و تا به حال بیش از 19 هزار نفر در توسعه آن مشارکت کرده اند.
مایکروسافت این محصول را 5 سال پیش عرضه کرد و می توانید از آن برای کد نویسی انواع زبانهای برنامه نویسی در همه سیستم عامل ها استفاده کنید.
نرم افزار VSCode با تایپ اسکریپت و جاوااسکریپت پیاده شده است و برای اجرا در محیط دسکتاپ از Nodejs و Electron استفاده می کند.
فریم ورک Electron توسط گیتهاب توسعه داده میشود و اپلیکیشن های نوشته شده با HTML و CSS و JavaScript را بجای اجرا در مرورگر تبدیل به نرم افزار دسکتاپ میکند.
ویرایشگر ATOM هم از Electron استفاده میکند که محصولی از گیتهاب است.
مایکروسافت در سال 2018 گیتهاب را خرید و اکنون مالک Electron و البته ATOM حساب می شود.
یکی از انتقاداتی که به VSCode میشود مربوط به مصرف بالای رم آن است که باعث کندی عمومی سیستم میشود. با این وجود ابزار فوق العاده و افزونه های فراروان در کنار ساختار کاملا کاستوم پذیر توسعه دهندگان زیادی را به سمت آن جلب کرده است.
شمارش خودکار ارجاع یا ARC روشی است که در زبانهایی مانند Objective-C و Swift برای مدیریت حافظه استفاده میشود.
در این روش پاکسازی حافظه یک شی زمانی انجام میشود که دیگر هیچ رفرنسی به آن داده نشده باشد.
در GC که #C و Java از آن استفاده میکنند پاکسازی حافظه در بازه های زمانی اتفاق می افتد و باعث مکث در برنامه میشود. همچنین هنگامی که حافظه سیستم پر میشود باید GC در بازه های زمانی کوتاهتر اجرا شود.
در ARC رفرنس های داده شده به شی یا گرفته شده از آن شمارش میشود و زمانی که تعداد آنها به صفر میرسد حافظه شی تخلیه میشود. این روش نیاز به الگوریتم ساده تری دارد و جایی که منابع حافظه محدود است (موبایل) کارایی بیشتری دارد.
اما ARC قادر به مدیریت Reference Cycle نیست یعنی زمانی که شی A فقط به شی B وابسته باشد و برعکس تعداد رفرنس ها هیچوقت صفر نمیشود و نیاز به مکانیزم بیرونی برای تشخیص و پاکسازی بوجود می آید در غیر این صورت Memory Leak پیش می آید.
همچنین دفعات زیاد رفرنس دهی یا حذف رفرنس از شی در ARC غیر بهینه عمل میکند. در حالی که در GC تاثیر نمیگذارد.
در iOS از نسخه 5 به بعد از ARC استفاده میشود.
در این روش پاکسازی حافظه یک شی زمانی انجام میشود که دیگر هیچ رفرنسی به آن داده نشده باشد.
در GC که #C و Java از آن استفاده میکنند پاکسازی حافظه در بازه های زمانی اتفاق می افتد و باعث مکث در برنامه میشود. همچنین هنگامی که حافظه سیستم پر میشود باید GC در بازه های زمانی کوتاهتر اجرا شود.
در ARC رفرنس های داده شده به شی یا گرفته شده از آن شمارش میشود و زمانی که تعداد آنها به صفر میرسد حافظه شی تخلیه میشود. این روش نیاز به الگوریتم ساده تری دارد و جایی که منابع حافظه محدود است (موبایل) کارایی بیشتری دارد.
اما ARC قادر به مدیریت Reference Cycle نیست یعنی زمانی که شی A فقط به شی B وابسته باشد و برعکس تعداد رفرنس ها هیچوقت صفر نمیشود و نیاز به مکانیزم بیرونی برای تشخیص و پاکسازی بوجود می آید در غیر این صورت Memory Leak پیش می آید.
همچنین دفعات زیاد رفرنس دهی یا حذف رفرنس از شی در ARC غیر بهینه عمل میکند. در حالی که در GC تاثیر نمیگذارد.
در iOS از نسخه 5 به بعد از ARC استفاده میشود.
گوگل دوره رایگان آموزش پایتون برگزار میکند:
گوگل اعلام کرد تصمیم دارد برای کسانی که در حوزهی فناوری دنبال شغل میگردند، دورهی آموزشی زبان برنامهنویسی پایتون (Python) برگزار کند. یادگیری این زبان، یکی از تواناییهای کلیدی برای کسانی که در این حوزه دنبال شغل میگردند به شمار میرود.
بنابهاعلام گوگل این دوره ذیل دورهای بهنام IT Automation With Python Professional Certificate برگزار میشود و از طریق سرویس آموزش آنلاین Coursera در دسترس متقاضیان خواهد بود. این برنامه شامل شش دوره خواهد بود که از سطح مبتدی آغاز میشود و در سطح متمرکز برای انجام برنامهنویسی اتوماسین به پایان خواهد رسید.
————————————————
#python #google
گوگل اعلام کرد تصمیم دارد برای کسانی که در حوزهی فناوری دنبال شغل میگردند، دورهی آموزشی زبان برنامهنویسی پایتون (Python) برگزار کند. یادگیری این زبان، یکی از تواناییهای کلیدی برای کسانی که در این حوزه دنبال شغل میگردند به شمار میرود.
بنابهاعلام گوگل این دوره ذیل دورهای بهنام IT Automation With Python Professional Certificate برگزار میشود و از طریق سرویس آموزش آنلاین Coursera در دسترس متقاضیان خواهد بود. این برنامه شامل شش دوره خواهد بود که از سطح مبتدی آغاز میشود و در سطح متمرکز برای انجام برنامهنویسی اتوماسین به پایان خواهد رسید.
————————————————
#python #google
مایکروسافت قابلیت چت در چند پنجره را به تیمز اضافه کرد
مایکروسافت از ماه گذشته قابلیت چت در چند پنجره را برای سرویس تیمز توسعه میداد. اکنون ردموندیها اعلام کردهاند که جداسازی پنلهای چت و ارتباط در پنجرههای جداگانه بهصورت عمومی دردسترس قرار گرفته است. اکنون نسخهی دسکتاپ ویندوز و مک مایکروسافت تیمز از این قابلیت پشتیبانی میکند. قابلیت جدید به شما امکان میدهد تا چت…
جهت مشاهده مطلب روی لینک زیر بزنید
#اخبار_فناوری
#Microsoft_Teams #مایکروسافت_تیمز
مایکروسافت از ماه گذشته قابلیت چت در چند پنجره را برای سرویس تیمز توسعه میداد. اکنون ردموندیها اعلام کردهاند که جداسازی پنلهای چت و ارتباط در پنجرههای جداگانه بهصورت عمومی دردسترس قرار گرفته است. اکنون نسخهی دسکتاپ ویندوز و مک مایکروسافت تیمز از این قابلیت پشتیبانی میکند. قابلیت جدید به شما امکان میدهد تا چت…
جهت مشاهده مطلب روی لینک زیر بزنید
#اخبار_فناوری
#Microsoft_Teams #مایکروسافت_تیمز
♨️نسخه جدید مرورگر مایکروسافت اج مبتنی بر کرومیوم عرضه شد
نسخه جدید مرورگر مایکروسافت اج در دل آخرین آپدیت ویندوز منتشر شد. این ورژن Microsoft Edge مبتنی بر کرومیوم بوده و قابلیتهای جدیدی ارائه میکند.
مایکروسافت از طریق انتشار آپدیتی جدید برای آخرین سیستم عامل خود تا امروز، ورژن جدید مرورگر مایکروسافت Edge را به ویندوز ۱۰ اضافه کرد. کاربرانی که از بیلدهای ۱۸۰۳، ۱۸۰۹، ۱۹۰۳ و ۱۹۰۹ این سیستم عامل استفاده میکنند، نسخه جدید مرورگر نام برده را دریافت خواهند کرد.
البته توسعه نسخه جدید مرورگر مایکروسافت اج به ماه ژانویه ۲۰۲۰ (دی ۱۳۹۸) برمیگردد، اما تا امروز به منظور در اختیار داشتن آن باید فایل مرورگر را از وب سایت Microsoft به صورت دستی دانلود و نصب میکردید. گفتنی است ورژن جدید مبتنی بر کرومیوم توسعه یافته است. دو مرورگر بسیار معروف گوگل کروم و اپرا نیز از کرومیوم بهره میبرند.
https://www.gsmarena.com/new_chromium_based_microsoft_edge_starts_rolling_out_through_windows_updates-news-43570.php
نسخه جدید مرورگر مایکروسافت اج در دل آخرین آپدیت ویندوز منتشر شد. این ورژن Microsoft Edge مبتنی بر کرومیوم بوده و قابلیتهای جدیدی ارائه میکند.
مایکروسافت از طریق انتشار آپدیتی جدید برای آخرین سیستم عامل خود تا امروز، ورژن جدید مرورگر مایکروسافت Edge را به ویندوز ۱۰ اضافه کرد. کاربرانی که از بیلدهای ۱۸۰۳، ۱۸۰۹، ۱۹۰۳ و ۱۹۰۹ این سیستم عامل استفاده میکنند، نسخه جدید مرورگر نام برده را دریافت خواهند کرد.
البته توسعه نسخه جدید مرورگر مایکروسافت اج به ماه ژانویه ۲۰۲۰ (دی ۱۳۹۸) برمیگردد، اما تا امروز به منظور در اختیار داشتن آن باید فایل مرورگر را از وب سایت Microsoft به صورت دستی دانلود و نصب میکردید. گفتنی است ورژن جدید مبتنی بر کرومیوم توسعه یافته است. دو مرورگر بسیار معروف گوگل کروم و اپرا نیز از کرومیوم بهره میبرند.
https://www.gsmarena.com/new_chromium_based_microsoft_edge_starts_rolling_out_through_windows_updates-news-43570.php
GSMArena.com
New Chromium based Microsoft Edge starts rolling out through Windows Updates
Features a new rendering engine and compatibility with Chrome extensions.
مایکروسافت در کنفرانس Build 2020 خبر از یک Windows Package Manager داد که برای نصب ساده و سریع برنامه ها در محیط ویندوز در نظر گرفته شده است.
حالا "کیوان بیگی" توسعه دهنده پروژه متن باز "AppGet" می گوید روش کار و حتی کدهای "WinGet" تا حد زیادی از روی پروژه او کپی شده است.
طبق متن وبلاگش آقای بیگی میگوید از یک سال گذشته چندبار با مدیران مایکروسافت دیدار داشته و قرار بوده پروژه AppGet را برای مایکروسافت توسعه دهد اما بعد از چند جلسه و مصاحبه تماسها ادامه پیدا نکرده و حالا بعد از شش ماه پروژه WinGet معرفی شده است.
او البته پروژه را به صورت متن باز منتشر کرده و به نظر میرسد از بابت کپی برداری از ایده اش ادعایی ندارد اما از برخورد مایکروسافت در طی این جریان هم خوشنود نیست.
برای بسیاری از مشتریان مایکروسافت هر چیزی که Third-party باشد چندان جلب توجه نمیکند. شانس موفقیت AppGet بدون مایکروسافت کم بود و این چیزی هست که خود آقای بیگی هم در وبلاگش بیان میکند اما مایکروسافت می توانست با روش بهتری این فرآیند را مدیریت کند تا انگیزه افرادی که قصد دارند پروژه های متن باز توسعه دهند حفظ شود
حالا "کیوان بیگی" توسعه دهنده پروژه متن باز "AppGet" می گوید روش کار و حتی کدهای "WinGet" تا حد زیادی از روی پروژه او کپی شده است.
طبق متن وبلاگش آقای بیگی میگوید از یک سال گذشته چندبار با مدیران مایکروسافت دیدار داشته و قرار بوده پروژه AppGet را برای مایکروسافت توسعه دهد اما بعد از چند جلسه و مصاحبه تماسها ادامه پیدا نکرده و حالا بعد از شش ماه پروژه WinGet معرفی شده است.
او البته پروژه را به صورت متن باز منتشر کرده و به نظر میرسد از بابت کپی برداری از ایده اش ادعایی ندارد اما از برخورد مایکروسافت در طی این جریان هم خوشنود نیست.
برای بسیاری از مشتریان مایکروسافت هر چیزی که Third-party باشد چندان جلب توجه نمیکند. شانس موفقیت AppGet بدون مایکروسافت کم بود و این چیزی هست که خود آقای بیگی هم در وبلاگش بیان میکند اما مایکروسافت می توانست با روش بهتری این فرآیند را مدیریت کند تا انگیزه افرادی که قصد دارند پروژه های متن باز توسعه دهند حفظ شود
شرکت TIOBE هر ماه زبانهای برنامه نویسی را از نظر محبوبیتاشن در موتورهای جستجو مورد بررسی قرار میدهد.
نتایج June 2020 از این نظر اهمیت دارد که زبان برنامه نویسی Rust برای اولین بار در بین 20 ردیف اول قرار گرفته است.
زبان سی شارپ با یک پله صعود نسبت به یک سال گذشته از جایگاه ششم به پنجم بازگشته است.
زبان R سریعترین رشد را داشته و به نظر میرسد جایگاه خودش را نسبت به MATLAB در علوم داده و محاسبات آماری تقویت کرده است.
نتایج June 2020 از این نظر اهمیت دارد که زبان برنامه نویسی Rust برای اولین بار در بین 20 ردیف اول قرار گرفته است.
زبان سی شارپ با یک پله صعود نسبت به یک سال گذشته از جایگاه ششم به پنجم بازگشته است.
زبان R سریعترین رشد را داشته و به نظر میرسد جایگاه خودش را نسبت به MATLAB در علوم داده و محاسبات آماری تقویت کرده است.
This media is not supported in your browser
VIEW IN TELEGRAM
قابلیت جدید تلگرام
یکی از مسائلی که اکثر برنامه نویسان با آن رو به رو میشوند مفهومی است تحت عنوان Refactor که به معنی بازنویسی کدهایی است که پیش از این نوشته شده اند. تجربیاتی که یک برنامه نویس پس از چند سال کدنویسی کسب میکند قابل مقایسه با زمانی نیست که وی تازه شروع به کار کرده و مسلماً پس از چند صباحی که به کدهای خود نگاه کند، حالش از سبک کدنویسی خود به هم خواهد خورد و تصمیم میگیرد تا کدهای نوشته شده ی خود را اصطلاحاً Refactor کند.
♨️گوگل Currents از ماه آینده جایگزین گوگل پلاس میشود
شبکه اجتماعی گوگل پلاس از ماه آوریل ۲۰۱۹ به کار خود پایان داد و تنها کاربران جی سوییت به آن دسترسی محدودی داشتند. حالا از ماه آینده قرار است گوگل Currents به طور رسمی جایگزین این برنامهی شکست خورده شود.
حدود یک سال پیش بود که گوگل رسما اعلام کرد قصد دارد به کار شبکه اجتماعی گوگل پلاس پایان دهد و به کاربران کمی فرصت داد تا اطلاعات و محتوای مورد نظر خود را از روی این شبکه اجتماعی بردارند. اما حتی تا همین حالا هم برای کاربران G Suite این شبکه اجتماعی قابل دسترسی بوده است. اما از ماه آینده سرانجام قرار است گوگل پلاس به کار خود پایان دهد و گوگل Currents به عنوان جایگزین آن معرفی شده است.
در ابتدای معرفی، گوگل پلاس به عنوان یک ایده جذاب به شمار میرفت و بعد از مدتی کاربران دیگر علاقه چندانی به فعالیت در آن نشان ندادند و گوگل تصمیم به متوقف کردن این پروژه گرفت. کشف یک باگ امنیتی و لو رفتن اطلاعات شخصی ۵۰۰ هزار کاربر این سرویس باعث شد که پروژه متوقف کردن گوگل پلاس سرعت بیشتری بگیرد و کمی بعد از آن نیز Google Currents به طور رسمی معرفی شد. هدف کمپانی سازنده از انتشار گوگل کارنتس این بود که کاربران بتوانند در محیطهای کاری و با دیگر کارمندان ارتباط موثری برقرار نماید.
https://www.phonearena.com/news/Google-Currents-replacing-Google-Plus-next-month_id125146
شبکه اجتماعی گوگل پلاس از ماه آوریل ۲۰۱۹ به کار خود پایان داد و تنها کاربران جی سوییت به آن دسترسی محدودی داشتند. حالا از ماه آینده قرار است گوگل Currents به طور رسمی جایگزین این برنامهی شکست خورده شود.
حدود یک سال پیش بود که گوگل رسما اعلام کرد قصد دارد به کار شبکه اجتماعی گوگل پلاس پایان دهد و به کاربران کمی فرصت داد تا اطلاعات و محتوای مورد نظر خود را از روی این شبکه اجتماعی بردارند. اما حتی تا همین حالا هم برای کاربران G Suite این شبکه اجتماعی قابل دسترسی بوده است. اما از ماه آینده سرانجام قرار است گوگل پلاس به کار خود پایان دهد و گوگل Currents به عنوان جایگزین آن معرفی شده است.
در ابتدای معرفی، گوگل پلاس به عنوان یک ایده جذاب به شمار میرفت و بعد از مدتی کاربران دیگر علاقه چندانی به فعالیت در آن نشان ندادند و گوگل تصمیم به متوقف کردن این پروژه گرفت. کشف یک باگ امنیتی و لو رفتن اطلاعات شخصی ۵۰۰ هزار کاربر این سرویس باعث شد که پروژه متوقف کردن گوگل پلاس سرعت بیشتری بگیرد و کمی بعد از آن نیز Google Currents به طور رسمی معرفی شد. هدف کمپانی سازنده از انتشار گوگل کارنتس این بود که کاربران بتوانند در محیطهای کاری و با دیگر کارمندان ارتباط موثری برقرار نماید.
https://www.phonearena.com/news/Google-Currents-replacing-Google-Plus-next-month_id125146
Phone Arena
Google Currents replacing Google Plus next month
Google Plus will be gone for good and it will be taken over by Google Currents.
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
___________________
چند وقت پیش یکی از دوستان سوال پرسیده بودند که چطور میتونیم سطح دسترسی کاربر رو به اکشن های دلخواه، محدود کنیم. اتفاقا چند سال پیش همین نیاز رو خودمم داشتم و به این صورت هندلش کردیم که :
هر کاربر میتونه 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
___________________
Telegram
Attach Files
This media is not supported in your browser
VIEW IN TELEGRAM
♨️ آموزش: استفاده از RepositionTransition در Xamarin.Forms(UWP ONLY) برای Layout ها
در پروژه ی UWP خود فایل App.Xaml را باز کرده
و کد زیر را در تگ Application کنار بقیه xmlns ها وارد کنید:
<Application.Resources>
<Style TargetType="uwp:LayoutRenderer">
<Setter Property="Transitions">
<Setter.Value>
<TransitionCollection>
<RepositionThemeTransition/>
</TransitionCollection>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
در پروژه ی 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 به خوبی نشان داده است.
مکث هایی که 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/
در دنیای نرم افزار آسیبپذیریهای زیادی وجود دارند که میتوان از آنها سوءاستفاده و به سیستمهای مختلف حمله کرد. در همین راستا توسعه ابزاری که بتواند این آسیبپذیریها را شناسایی کند، اهمیت بالایی دارد. یک بات با نام «Mayhem» که توسط استارتاپ «ForAllSecure» توسعه پیدا کرده، چنین وظیفهای را در پنتاگون برعهده دارد.
شاید تا به امروز نام «دف کان»، یکی از بزرگترین کنفرانسهای هکرها که سالانه در لاس وگاس برگزار میشود، به گوشتان خورده باشد. رقابت هکرها با یکدیگر یکی از بخشهای دف کان را تشکیل میدهد که در سال ۲۰۱۶ تیم خالق Mayhem توانست جایزه «Cyber Grand Challenge» دارپا را در این مسابقات تصاحب کند.
این تیم حضور کمرنگی روی صحنه داشت و داوران با ۷ سرور روبهرو شدند که هریک از آنها حاوی باتهایی برای کشف باگها در سرورهای دیگر بودند و علاوه بر شکار آنها، باگهای خود را نیز برطرف میکردند. پس از ۸ ساعت این بات که تیمی از آزمایشگاه امنیت دانشگاه «کارنگی ملون» وظیفه توسعه آن را برعهده داشت، توانست جایزه ۲ میلیون دلاری را برنده شود.
https://arstechnica.com/information-technology/2020/06/this-bot-hunts-software-bugs-for-the-pentagon/
Ars Technica
This bot hunts software bugs for the Pentagon
Champion of a 2016 DARPA contest at DEFCON, now Mayhem gets used by the military.
♨️افزایش بی سابقه کاربران و درآمدهای زوم به خاطر دنیاگیری کووید ۱۹
اپلیکیشن زوم در دوران پاندمی کووید ۱۹ به محبوب ترین سرویس ویدیو کنفرانس در سراسر دنیا بدل شد و شاید تعجب نداشته باشد اگر بگوییم این اپ در بازه زمانی سه ماهه گذشته بالغ بر ۳۲۸ میلیون دلار درآمد داشته است. این رقم بیشتر از دو برابر مقدار درآمدهای زوم در بازه مشابه سال قبل است (۱۲۲ میلیون دلار) و به مراتب بالاتر از درآمد ۲۰۰ میلیون دلاری است که مدیران این شرکت برای سه ماهه اخیر پیش بینی کرده بودند.
زوم اعلام نکرده که در فصل گذشته چند نفر از سرویس آن استفاده کرده اند اما در گزارش خود مدعی شده که «تعداد غیرقابل پیش بینی از مشارکت کنندگان» از جمله ۱۰۰ هزار مدرسه به سرویس آن ملحق شده اند. در مجموع زوم حالا ۲۶۵۴۰۰ کاربر دارد ؛ رقمی که به تعبیر مدیران آن افزایشی ۳۵۴ درصدی را نشان می دهد.
اما افزایش استفاده کاربران از سرویس زوم به معنای افزایش قابل توجه هزینه های آن هم هست چراکه طبق گزارش اخیر این هزینه ها با رشد سال به سال دوبرابری به رقم ۲۰۱ میلیون دلار رسیده اند.
https://dgto.ir/1q0o
اپلیکیشن زوم در دوران پاندمی کووید ۱۹ به محبوب ترین سرویس ویدیو کنفرانس در سراسر دنیا بدل شد و شاید تعجب نداشته باشد اگر بگوییم این اپ در بازه زمانی سه ماهه گذشته بالغ بر ۳۲۸ میلیون دلار درآمد داشته است. این رقم بیشتر از دو برابر مقدار درآمدهای زوم در بازه مشابه سال قبل است (۱۲۲ میلیون دلار) و به مراتب بالاتر از درآمد ۲۰۰ میلیون دلاری است که مدیران این شرکت برای سه ماهه اخیر پیش بینی کرده بودند.
زوم اعلام نکرده که در فصل گذشته چند نفر از سرویس آن استفاده کرده اند اما در گزارش خود مدعی شده که «تعداد غیرقابل پیش بینی از مشارکت کنندگان» از جمله ۱۰۰ هزار مدرسه به سرویس آن ملحق شده اند. در مجموع زوم حالا ۲۶۵۴۰۰ کاربر دارد ؛ رقمی که به تعبیر مدیران آن افزایشی ۳۵۴ درصدی را نشان می دهد.
اما افزایش استفاده کاربران از سرویس زوم به معنای افزایش قابل توجه هزینه های آن هم هست چراکه طبق گزارش اخیر این هزینه ها با رشد سال به سال دوبرابری به رقم ۲۰۱ میلیون دلار رسیده اند.
https://dgto.ir/1q0o
دیجیاتو
افزایش بی سابقه کاربران و درآمدهای زوم به خاطر دنیاگیری کووید ۱۹
اپلیکیشن زوم در دوران پاندمی کووید ۱۹ به محبوب ترین سرویس ویدیو کنفرانس در سراسر دنیا بدل شد و شاید تعجب نداشته باشد اگر بگوییم این اپ در بازه زمانی سه
مایکروسافت قصد دارد محدودیت تعداد شرکت کنندگان در چت ویدیویی تیمز را از ۲۵۰ به ۳۰۰ نفر افزایش دهد.
افزایش روزانه تقاضا برای ابزارهایی مانند تیمز از شرکت مایکروسافت یا اپلیکیشن های مشابه از شرکت های دیگر باعث افزایش رقابت بین این شرکت ها شده به طوری که هر کدام سعی می کنند ویژگی های جدیدی را برای کاربران خود به ارمغان بیاورند و به این وسیله برتری خود نسبت به دیگران را حفظ کنند.
افزایش روزانه تقاضا برای ابزارهایی مانند تیمز از شرکت مایکروسافت یا اپلیکیشن های مشابه از شرکت های دیگر باعث افزایش رقابت بین این شرکت ها شده به طوری که هر کدام سعی می کنند ویژگی های جدیدی را برای کاربران خود به ارمغان بیاورند و به این وسیله برتری خود نسبت به دیگران را حفظ کنند.
https://timevpn.com/
VPN اختصاصی
L2TP
PPTP
IKEV2
Socks5 proxy
OPENVPN
Shadowsocks
در سایت ثبت نام کرده و سپس ایمیل خود را تایید کنید.مطابق نیاز خود می توانید از سه روش vpn یا پروکسی یا شادوساکس استفاده کنید.
دارای شادوساکس اختصاصی مخصوص تلگرام با سرعت عالی
برنامه شادوساکس ویندوز( نسخه جدید را از گیت هاب دریافت کنید)
شادوساکس اندروید
نمونه اکانت فعال شده pptp
Server:
VPN اختصاصی
L2TP
PPTP
IKEV2
Socks5 proxy
OPENVPN
Shadowsocks
در سایت ثبت نام کرده و سپس ایمیل خود را تایید کنید.مطابق نیاز خود می توانید از سه روش vpn یا پروکسی یا شادوساکس استفاده کنید.
دارای شادوساکس اختصاصی مخصوص تلگرام با سرعت عالی
برنامه شادوساکس ویندوز( نسخه جدید را از گیت هاب دریافت کنید)
شادوساکس اندروید
نمونه اکانت فعال شده pptp
Server:
nl.timevpn.com
Username: 012968_sr
Password: vqrAqLv
ID: APPXAP