Forwarded from اِسکیلی Skilly (مهدی کرامتی)
✅ معرفی ورژن 2 Windows Subsystem for Linux (به اختصار WSL 2)
ماکروسافت در یک اقدام جالب، کرنل لینوکس (ورژن 4.19 - آخرین ورژن پایدار و LTS) رو به طور کامل به ویندوز منتقل کرد.
در نتیجه امکان اجرای کانتینر های Docker به صورت Native در آن وجود دارد و دیگر نیازی به VM برای اجرای کانتینر ها بر روی Windows نیست!
همچنین ماکروسافت ادعا کرده در این روش، زمان boot time لینوکس و میزان رم مصرفی کاهش پیدا کرده و نیز عملیات I/O filesystem افزایش پرفرمنس داشته است.
این یه حرکت بزرگ است و اولین باری هست که کرنل لینوکس به عنوان بخشی از ویندوز قرار می گیرد.
این قابلیت، اواخر امسال همراه با اپدیت ویندوز 10 به نام (Codename 19H2) عرضه خواهد شد.
اطلاعات بیشتر :
https://devblogs.microsoft.com/commandline/shipping-a-linux-kernel-with-windows
@barnamenevis_org
ماکروسافت در یک اقدام جالب، کرنل لینوکس (ورژن 4.19 - آخرین ورژن پایدار و LTS) رو به طور کامل به ویندوز منتقل کرد.
در نتیجه امکان اجرای کانتینر های Docker به صورت Native در آن وجود دارد و دیگر نیازی به VM برای اجرای کانتینر ها بر روی Windows نیست!
همچنین ماکروسافت ادعا کرده در این روش، زمان boot time لینوکس و میزان رم مصرفی کاهش پیدا کرده و نیز عملیات I/O filesystem افزایش پرفرمنس داشته است.
این یه حرکت بزرگ است و اولین باری هست که کرنل لینوکس به عنوان بخشی از ویندوز قرار می گیرد.
این قابلیت، اواخر امسال همراه با اپدیت ویندوز 10 به نام (Codename 19H2) عرضه خواهد شد.
اطلاعات بیشتر :
https://devblogs.microsoft.com/commandline/shipping-a-linux-kernel-with-windows
@barnamenevis_org
موتور پردازش اطلاعات Apache Spark که در Big Data کاربرد دارد و با Scala بر پایه ی Java نوشته شده است توسط مایکروسافت برای دات نت سازگار شده است.
از این پس برای استفاده از Spark نیاز به استفاده از پایتون یا Scala نیست و می توانید مستقیما از دات نت استفاده کنید.
همانطور که در نمودار دیده میشود پرفورمنس دات نت سریعتر از نسخه ی پایتون است.
موتور Spark برای پردازش اطلاعات با حجم بالا کاربرد دارد و معمولا در فضای ابری از آن استفاده میشود.
از این پس برای استفاده از Spark نیاز به استفاده از پایتون یا Scala نیست و می توانید مستقیما از دات نت استفاده کنید.
همانطور که در نمودار دیده میشود پرفورمنس دات نت سریعتر از نسخه ی پایتون است.
موتور Spark برای پردازش اطلاعات با حجم بالا کاربرد دارد و معمولا در فضای ابری از آن استفاده میشود.
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ ساخت برنامه های ویندوزی توسط React Native
🔸ماکروسافت در یک اقدام جالب، پروژه ای به نام "React Native for Windows" ایجاد کرده که توسط آن میتوان با React Native برنامه های UWP با پرفرمنس بالا برای Windows 10 ساخت
🔹در نسخه فعلی (current)، کامپیوننت های ویندوز با زبان سی شارپ برای استفاده در React Native نوشته شده اند ولی در نسخه جدید (vnext)، ماکروسافت بسیاری از کامپوننت های ویندوز را به زبان C++ برای React Native در جهت افزایش پرفرمنس باز نویسی کرده
🔸برنامه های ساخته شده با این تکنولوژی، همانند UWP توانایی اجرا بر روی تمامی دیوایس هایی که از ویندوز 10 پشتیبانی میکنند را دارد مانند HoloLens, Xbox, PC
و...
ریپازیتوری گیتهاب :
https://github.com/Microsoft/react-native-windows
_______________
@IranAspMvc
🔸ماکروسافت در یک اقدام جالب، پروژه ای به نام "React Native for Windows" ایجاد کرده که توسط آن میتوان با React Native برنامه های UWP با پرفرمنس بالا برای Windows 10 ساخت
🔹در نسخه فعلی (current)، کامپیوننت های ویندوز با زبان سی شارپ برای استفاده در React Native نوشته شده اند ولی در نسخه جدید (vnext)، ماکروسافت بسیاری از کامپوننت های ویندوز را به زبان C++ برای React Native در جهت افزایش پرفرمنس باز نویسی کرده
🔸برنامه های ساخته شده با این تکنولوژی، همانند UWP توانایی اجرا بر روی تمامی دیوایس هایی که از ویندوز 10 پشتیبانی میکنند را دارد مانند HoloLens, Xbox, PC
و...
ریپازیتوری گیتهاب :
https://github.com/Microsoft/react-native-windows
_______________
@IranAspMvc
هنگامی که با کد Unmanaged کار می کنید همیشه احتمال دارد با Memory Leak مواجه شوید.
منظور از Unmanaged کدی است که توسط زبانهایی مثل ++C نوشته شده و حافظه ی آن به صورت خودکار پاکسازی نمی شود.
نشت حافظه یا Memory Leak زمانی اتفاق می افتد که کد Unmanaged به هر دلیلی حافظه ی خود را پاکسازی نمیکند و در نتیجه با گذشت زمان کد شما کندتر میشود.
در سی شارپ برای پاکسازی حافظه Unmanaged از کلمه ی کلیدی Using استفاده میشود. از نسخه ی 8.0 به بعد دیگر نیاز نیست برای Using از Code Block استفاده شود. هرجا متغیری با استفاده از Using تعریف شود در انتهای متد پاکسازی حافظه ی آن به صورت خودکار انجام میشود.
منظور از Unmanaged کدی است که توسط زبانهایی مثل ++C نوشته شده و حافظه ی آن به صورت خودکار پاکسازی نمی شود.
نشت حافظه یا Memory Leak زمانی اتفاق می افتد که کد Unmanaged به هر دلیلی حافظه ی خود را پاکسازی نمیکند و در نتیجه با گذشت زمان کد شما کندتر میشود.
در سی شارپ برای پاکسازی حافظه Unmanaged از کلمه ی کلیدی Using استفاده میشود. از نسخه ی 8.0 به بعد دیگر نیاز نیست برای Using از Code Block استفاده شود. هرجا متغیری با استفاده از Using تعریف شود در انتهای متد پاکسازی حافظه ی آن به صورت خودکار انجام میشود.
سرویس ثبت و مدیریت Package به GitHub اضافه شد.
گیتهاب ساعاتی پیش در یک سمینار آنلاین اعلام کرد که سرویس ثبت پکیج برای NPM و Maven و Nuget و Docker راه اندازی کرده که فرآیند انتشار و آپدیت پکیج روی این پلتفرم ها را از درون GitHub ممکن میکند.
با این سرویس کد سازندگان پکیج مستقیم روی پلتفرم هدف بارگذاری میشود و به راحتی قابل آپدیت است.
این سرویس در حال حاضر نسخه ی Beta است و قرار است سایر سرویس های پکیج هم به آن اضافه شود.
این سرویس جایگزین NPM یا Nuget نیست بلکه دسترسی و استفاده از آنها را ساده میکند.
گیتهاب ساعاتی پیش در یک سمینار آنلاین اعلام کرد که سرویس ثبت پکیج برای NPM و Maven و Nuget و Docker راه اندازی کرده که فرآیند انتشار و آپدیت پکیج روی این پلتفرم ها را از درون GitHub ممکن میکند.
با این سرویس کد سازندگان پکیج مستقیم روی پلتفرم هدف بارگذاری میشود و به راحتی قابل آپدیت است.
این سرویس در حال حاضر نسخه ی Beta است و قرار است سایر سرویس های پکیج هم به آن اضافه شود.
این سرویس جایگزین NPM یا Nuget نیست بلکه دسترسی و استفاده از آنها را ساده میکند.
در Identity از دو متد برای احراز هویت کاربر استفاده میشود:
متد IsSignedIn احراز هویت را فقط بر اساس کوکی ذخیره شده در مرورگر بررسی می کند.
متد IsAuthenticated همه ی روشهای احراز هویت را شامل میشود و فرقی نمیکند که کاربر از Cookie یا Token یا روش دیگری وارد حساب کاربری شده باشد.
اگر اکشنی دارید که فقط در مرورگر اجرا میشود می توانید از IsSignedIn استفاده کنید. اما اگر برنامه ی شما با Web API یا اپ گوشی کار میکند یا از Single Page App استفاده می کند بهتر است از IsAuthenticated استفاده کنید.
متد IsSignedIn احراز هویت را فقط بر اساس کوکی ذخیره شده در مرورگر بررسی می کند.
متد IsAuthenticated همه ی روشهای احراز هویت را شامل میشود و فرقی نمیکند که کاربر از Cookie یا Token یا روش دیگری وارد حساب کاربری شده باشد.
اگر اکشنی دارید که فقط در مرورگر اجرا میشود می توانید از IsSignedIn استفاده کنید. اما اگر برنامه ی شما با Web API یا اپ گوشی کار میکند یا از Single Page App استفاده می کند بهتر است از IsAuthenticated استفاده کنید.
پکیج صفحه بندی در ASP.NET Core به صورت TagHelper
نصب از Nuget
Install-Package Codehaks.Pagination
سورس و راهنما :
https://github.com/codehaks/Codehaks.Pagination
نصب از Nuget
Install-Package Codehaks.Pagination
سورس و راهنما :
https://github.com/codehaks/Codehaks.Pagination
چه زبانهایی در 2019 یاد نگیریم؟
به گزارش Codementor در سال 2019 زبانهای Elm و CoffeeScript و Erlang و Perl بدترین گزینه ها برای انتخاب زبان برنامه نویسی هستند.
این لیست بر مبنای میزان محبوبیت زبان و سرعت رشد استفاده از آن و جامعه ی برنامه نویسان است. مثلا تعداد برنامه نویسان Lua در حال حاضر بیشتر از بازار کار موجود آن برآورد میشود به همین دلیل یادگیری Lua به برنامه نویسان توصیه نمی شود.
زبانهایی مثل Goو Swift و #C در انتهای لیست قرار دارند به این معنی که گزینه های خوبی برای یادگیری هستند.
همچنین در این لیست Java و JavaScript را مشاهده نمی کنید. از آنجایی که این زبانها سالهاست برای پیاده سازی بسیاری از پروژه ها مورد استفاده قرار گرفته همیشه گزینه های خوبی برای یادگیری به شمار می آیند.
نکته ی مهم رشد ناگهانی زبان برنامه نویسی Dart است در حالی که سال گذشته این زبان در صدر لیست بود امسال به مدد حمایت ها و تبلیغات Google دوباره به میدان بازگشته است.
به گزارش Codementor در سال 2019 زبانهای Elm و CoffeeScript و Erlang و Perl بدترین گزینه ها برای انتخاب زبان برنامه نویسی هستند.
این لیست بر مبنای میزان محبوبیت زبان و سرعت رشد استفاده از آن و جامعه ی برنامه نویسان است. مثلا تعداد برنامه نویسان Lua در حال حاضر بیشتر از بازار کار موجود آن برآورد میشود به همین دلیل یادگیری Lua به برنامه نویسان توصیه نمی شود.
زبانهایی مثل Goو Swift و #C در انتهای لیست قرار دارند به این معنی که گزینه های خوبی برای یادگیری هستند.
همچنین در این لیست Java و JavaScript را مشاهده نمی کنید. از آنجایی که این زبانها سالهاست برای پیاده سازی بسیاری از پروژه ها مورد استفاده قرار گرفته همیشه گزینه های خوبی برای یادگیری به شمار می آیند.
نکته ی مهم رشد ناگهانی زبان برنامه نویسی Dart است در حالی که سال گذشته این زبان در صدر لیست بود امسال به مدد حمایت ها و تبلیغات Google دوباره به میدان بازگشته است.
Forwarded from برنامه نویس
🔈 💰 ثبت نام کاملا رایگان در دوره آموزش ویدئویی سی شارپ - سطح 1
به مناسبت 18 ساله شدن فعالیت مجموعه سایت های برنامه نویس علاقه مندان به یادگیری برنامه نویسی می توانند در دوره آموزشی ویدئویی سی شارپ سطح 1 با استفاده از کد تخفیف زیر به صورت کاملا رایگان ثبت نام کرده و یادگیری زبان سی شارپ را آغاز کنند.
کد تخفیف: B18FCS
تاریخ انقضای کد: پنج شنبه، 2 خرداد 1398، ساعت 12 شب
قابل استفاده برای ثبت نام 100 نفر
صفحه ویژه دوره آموزش ویدئویی فوق:
barnamenevis.net/Home/Course/1?آموزش-ویدئویی-سی-شارپ-سطح-1
تنها محدودیت استفاده از این کد تخفیف این است که کاربران قبل از اقدام به استفاده از این کد تخفیف برای ثبت نام میبایست در حساب کاربری خود شماره موبایل شان را افزوده، و آدرس ایمیل شان را تایید کرده باشند. انجام این مراحل از طریق صفحه "مدیریت حساب کاربری" در کمتر از 1 دقیقه قابل انجام است.
لطفا در صورت تمایل این پست را به دوستان، گروه ها و کانال هایی که ممکن است علاقه مندان به یادگیری سی شارپ در آنجا عضو باشند فورارد کنید.
جهت اطلاع از کدهای تخفیف های بعدی در کانال ویژه سایت آموزش برنامه نویس عضو شوید:
@barnamenevis_net
https://barnamenevis.net
به مناسبت 18 ساله شدن فعالیت مجموعه سایت های برنامه نویس علاقه مندان به یادگیری برنامه نویسی می توانند در دوره آموزشی ویدئویی سی شارپ سطح 1 با استفاده از کد تخفیف زیر به صورت کاملا رایگان ثبت نام کرده و یادگیری زبان سی شارپ را آغاز کنند.
کد تخفیف: B18FCS
تاریخ انقضای کد: پنج شنبه، 2 خرداد 1398، ساعت 12 شب
قابل استفاده برای ثبت نام 100 نفر
صفحه ویژه دوره آموزش ویدئویی فوق:
barnamenevis.net/Home/Course/1?آموزش-ویدئویی-سی-شارپ-سطح-1
تنها محدودیت استفاده از این کد تخفیف این است که کاربران قبل از اقدام به استفاده از این کد تخفیف برای ثبت نام میبایست در حساب کاربری خود شماره موبایل شان را افزوده، و آدرس ایمیل شان را تایید کرده باشند. انجام این مراحل از طریق صفحه "مدیریت حساب کاربری" در کمتر از 1 دقیقه قابل انجام است.
لطفا در صورت تمایل این پست را به دوستان، گروه ها و کانال هایی که ممکن است علاقه مندان به یادگیری سی شارپ در آنجا عضو باشند فورارد کنید.
جهت اطلاع از کدهای تخفیف های بعدی در کانال ویژه سایت آموزش برنامه نویس عضو شوید:
@barnamenevis_net
https://barnamenevis.net
برنامه نویس
پکیج آموزش سی شارپ - سطح 1
نقطه شروع برنامه نویسی برای مبتدی ها با زبان C#
مایکروسافت یکی از مهمترین الگوریتمهای Bing را متن باز کرد.
کتابخانه ی SPTAG در Bing برای جستجوی هوشمند اطلاعات به روش برداری استفاده میشود و با زبان Python نوشته شده است.
این الگوریتم به روش برداری 150 میلیارد ردیف اطلاعات را در Bing پردازش می کند تا خروجی جستجو را در کمتر از 5 ثانیه تحویل دهد.
کتابخانه SPTAG تحت لایسنس MIT منتشر شده است و به برنامه نویسان امکان میدهد قابلیت های پردازشی Bing را در سرویس های خود به صورت اختصاصی به کار گیرند.
https://github.com/microsoft/SPTAG
کتابخانه ی SPTAG در Bing برای جستجوی هوشمند اطلاعات به روش برداری استفاده میشود و با زبان Python نوشته شده است.
این الگوریتم به روش برداری 150 میلیارد ردیف اطلاعات را در Bing پردازش می کند تا خروجی جستجو را در کمتر از 5 ثانیه تحویل دهد.
کتابخانه SPTAG تحت لایسنس MIT منتشر شده است و به برنامه نویسان امکان میدهد قابلیت های پردازشی Bing را در سرویس های خود به صورت اختصاصی به کار گیرند.
https://github.com/microsoft/SPTAG
Forwarded from کدهک
آیا ویندوز متن باز میشود؟
استیو بالمر مدیر عامل قبلی مایکروسافت زمانی گفته بود که "لینوکس" سرطان است و باید از بین برود. هفته ی پیش اما ساتیا نادلا در بازگشایی کنفراس سالانه Red Hat حضور داشت و درباره همکاری های مشترک صحبت کرد.
https://tinyurl.com/chk-win-ms
استیو بالمر مدیر عامل قبلی مایکروسافت زمانی گفته بود که "لینوکس" سرطان است و باید از بین برود. هفته ی پیش اما ساتیا نادلا در بازگشایی کنفراس سالانه Red Hat حضور داشت و درباره همکاری های مشترک صحبت کرد.
https://tinyurl.com/chk-win-ms
منظور از Undefined Behavior اجرای عمیاتی است که در زبان برنامه نویسی نتیجه ی آن تعریف نشده است.
رفتار بعضی از زبانهای برنامه نویسی از جمله ++C و C در بعضی موارد تعریف نشده است که معمولا به باگ و حفره های امنیتی منجر میشود.
مثلا در زبان C وقتی اندیس بزرگتر از ابعاد ارایه خوانده میشود رفتار برنامه تعریف نشده است. فرض کامپایلر این است که چنین کدهایی هیچوقت نوشته نمی شوند!
رفتارهای تعریف نشده یکی از عوامل اصلی مشکلات امنیتی در سیستم عامل ها نیز هست از آنجا که برای پیاده سازی سیستم عامل از C و ++C استفاده شده است.
رفتار بعضی از زبانهای برنامه نویسی از جمله ++C و C در بعضی موارد تعریف نشده است که معمولا به باگ و حفره های امنیتی منجر میشود.
مثلا در زبان C وقتی اندیس بزرگتر از ابعاد ارایه خوانده میشود رفتار برنامه تعریف نشده است. فرض کامپایلر این است که چنین کدهایی هیچوقت نوشته نمی شوند!
رفتارهای تعریف نشده یکی از عوامل اصلی مشکلات امنیتی در سیستم عامل ها نیز هست از آنجا که برای پیاده سازی سیستم عامل از C و ++C استفاده شده است.
در دات نت اشیایی که کمتر از 85 کیلوبایت باشند در Small Object Heap ذخیره میشوند.
در SOH اطلاعات به صورت منظم و پشت سر هم ذخیره میشوند و برای تخصیص حافظه ی اشیای جدید از Next Object Pointer استفاده میشود که موقعیت جاری حافظه را در خود نگه میدارد.
وقتی در Garbage Collection حافظه ی یک شی مانند Object B پاکسازی میشود عملیات فشرده سازی روی SOH انجام میشود تا اشیای AوC کنار هم قرار گیرند و موقعیت NOP در محل جدید بدست آید.
عملیات فشرده سازی در SOH باعث کاهش پرفورمنس میشود همچنین کار کتابخانه هایی که با زبانهای Unmanaged مثل ++C نوشته شده اند را مخطل میکند. چون در زبان ++C محل حافظه قابل جابجایی خوکار نیست. به همین دلیل در #C کلمه ی کلیدی fixed جهت پین کردن حافظه استفاده میشود.
پین کردن حافظه از جابجا شدن آن توسط GC جلوگیری میکند و در کوتاه مدت پرفورمنس را افزایش میدهد. اما اگر برای مدت طولانی به کار گرفته شود در حافظه حفره های خالی ایجاد میکند و ممکن است به کرش کردن یا کاهش شدید پرفورمنس منجر شود.
در SOH اطلاعات به صورت منظم و پشت سر هم ذخیره میشوند و برای تخصیص حافظه ی اشیای جدید از Next Object Pointer استفاده میشود که موقعیت جاری حافظه را در خود نگه میدارد.
وقتی در Garbage Collection حافظه ی یک شی مانند Object B پاکسازی میشود عملیات فشرده سازی روی SOH انجام میشود تا اشیای AوC کنار هم قرار گیرند و موقعیت NOP در محل جدید بدست آید.
عملیات فشرده سازی در SOH باعث کاهش پرفورمنس میشود همچنین کار کتابخانه هایی که با زبانهای Unmanaged مثل ++C نوشته شده اند را مخطل میکند. چون در زبان ++C محل حافظه قابل جابجایی خوکار نیست. به همین دلیل در #C کلمه ی کلیدی fixed جهت پین کردن حافظه استفاده میشود.
پین کردن حافظه از جابجا شدن آن توسط GC جلوگیری میکند و در کوتاه مدت پرفورمنس را افزایش میدهد. اما اگر برای مدت طولانی به کار گرفته شود در حافظه حفره های خالی ایجاد میکند و ممکن است به کرش کردن یا کاهش شدید پرفورمنس منجر شود.
آیا زبانی که امروز با آن کدنویسی می کنید 10 سال آینده هم کاربرد خواهد داشت؟
Anonymous Poll
72%
بله
28%
خیر