یک Immutable Object بعد از مقدار دهی اولیه دیگر قابل تغییر نیست و فقط میتوان آن را از حافظه حذف کرد.
در زبان #C متغیرهای از نوع String به عنوان اشیای Immutable شناخته میشوند. در زمان اجرای برنامه می توانید مقدار یک متغیر رشته ای را عوض کنید اما در عمل مقدار متغیر در حافظه عوض نمیشود بلکه در حافظه یک فضای جدید برای نگه داری رشته ی جدید ایجاد میشود. این موضوع کار کردن با رشته ها را بسیار پر هزینه میکند. با هر تغییر یک رشته بخشی از حافظه اشغال میشود و اگر زیاد اینکار را انجام دهید حافظه سر ریز میشود.
در دات نت این حافظه های پسماند توسط Garbage Collection خالی میشود که می تواند باعث کندی برنامه شود. برای حل این مشکل می توانید از StringBuilder استفاده کنید.
یکی از مهمترین مزیت های استفاده از متغیرهای تغییر ناپذیر این است که Thread-safe هستند و کار کردن با آنها در فضای چند نخی ساده تر است.
در زبان #C متغیرهای از نوع String به عنوان اشیای Immutable شناخته میشوند. در زمان اجرای برنامه می توانید مقدار یک متغیر رشته ای را عوض کنید اما در عمل مقدار متغیر در حافظه عوض نمیشود بلکه در حافظه یک فضای جدید برای نگه داری رشته ی جدید ایجاد میشود. این موضوع کار کردن با رشته ها را بسیار پر هزینه میکند. با هر تغییر یک رشته بخشی از حافظه اشغال میشود و اگر زیاد اینکار را انجام دهید حافظه سر ریز میشود.
در دات نت این حافظه های پسماند توسط Garbage Collection خالی میشود که می تواند باعث کندی برنامه شود. برای حل این مشکل می توانید از StringBuilder استفاده کنید.
یکی از مهمترین مزیت های استفاده از متغیرهای تغییر ناپذیر این است که Thread-safe هستند و کار کردن با آنها در فضای چند نخی ساده تر است.
Forwarded from برنامه نویس
🔈 💰 کاهش قیمت های پکیج های آموزش ویدئویی برنامه نویس
سلام.
ضمن تبریک سال نوی میلادی به هم وطنان مسیحی، به اطلاع می رساند با توجه به وضعیت نامناسب اقتصادی و کاهش قدرت خرید عموم اقشار جامعه، تصمیم به کاهش قیمت پکیج های آموزشی برنامه نویس گرفتیم تا مشکل در هزینه کرد، مانعی برای پیشرفت علاقه مندان نباشد.
پکیج هایی که شامل این کاهش قیمت شده اند عبارتند از:
• پکیج آموزش Angular 8 - سطح 1
• پکیج آموزش ASP.NET Core 2.2 - سطح 1
• پکیج آموزش ASP.NET Core 2.2 - سطح 2
• پکیج آموزش ASP.NET Core 2.2 - سطح 3
• پکیج آموزش API نویسی اصولی و حرفه ای در ASP.NET Core
• پکیج آموزش ASP.NET MVC - سطح 1
• پکیج آموزش ASP.NET MVC - سطح 2
• پکیج آموزش ASP.NET MVC - سطح 3
• پکیج آموزش Permission Control System در ASP.NET MVC
• پکیج آموزش سی شارپ - سطح 1
همانند همیشه، می توانید نظرات و پیشنهادات خود را با شناسه تلگرام ما در میان بگذارید.
ارادتمند،
#مهدی_کرامتی
@barnamenevis_net
@barnamenevis_org
https://barnamenevis.net
https://barnamenevis.org
سلام.
ضمن تبریک سال نوی میلادی به هم وطنان مسیحی، به اطلاع می رساند با توجه به وضعیت نامناسب اقتصادی و کاهش قدرت خرید عموم اقشار جامعه، تصمیم به کاهش قیمت پکیج های آموزشی برنامه نویس گرفتیم تا مشکل در هزینه کرد، مانعی برای پیشرفت علاقه مندان نباشد.
پکیج هایی که شامل این کاهش قیمت شده اند عبارتند از:
• پکیج آموزش Angular 8 - سطح 1
• پکیج آموزش ASP.NET Core 2.2 - سطح 1
• پکیج آموزش ASP.NET Core 2.2 - سطح 2
• پکیج آموزش ASP.NET Core 2.2 - سطح 3
• پکیج آموزش API نویسی اصولی و حرفه ای در ASP.NET Core
• پکیج آموزش ASP.NET MVC - سطح 1
• پکیج آموزش ASP.NET MVC - سطح 2
• پکیج آموزش ASP.NET MVC - سطح 3
• پکیج آموزش Permission Control System در ASP.NET MVC
• پکیج آموزش سی شارپ - سطح 1
همانند همیشه، می توانید نظرات و پیشنهادات خود را با شناسه تلگرام ما در میان بگذارید.
ارادتمند،
#مهدی_کرامتی
@barnamenevis_net
@barnamenevis_org
https://barnamenevis.net
https://barnamenevis.org
از یک فستفود در فاصله ی 10 کیلومتری پیتزا سفارش میدهید. اگر پیتزا از قبل آماده ارسال باشد و پیک هم با سرعت 100 کیلومتر بر ساعت حرکت کند حداقل 6 دقیقه طول میکشد تا پیتزا به دست شما برسد و 12 دقیقه طول میکشد تا فستفود از تحویل باخبر شود.
تاخیر یا Latency : مدت زمانی که طول میکشد داده از نقطه ی A به B برسد Latency گفته میشود. از آنجا که فاصله همیشه وجود دارد تاخیر اجتناب ناپذیز است.
پهنای باند یا Bandwidth: پیک هربار فقط می تواند 5 پیتزا با خود حمل کند. اگر شما 20 پیتزا سفارش دهید باید 4 بار رفت و آمد کند.
در سال 1996 آقای Stuart Cheshire مقاله ای منتشر کرد با عنوان "Its latency stupid" و در آن مشکل شبکه های اینترنتی را Latency دانست و نه پهنای باند. همیشه میشود پهنای باند را افزایش داده اما نمی توان تاخیر زمانی بین دو نقطه را از بین برد.حتی اگر داده با سرعت نور حرکت کند همیشه تاخیر وجود دارد.
مشکل Latency چالش اصلی سرویس های Real-time مانند بازیهای آنلاین است. برای کاهش آن میتوان از سروری که در موقعیت فیزیکی نزدیک تری دارد استفاده کرد.
تاخیر یا Latency : مدت زمانی که طول میکشد داده از نقطه ی A به B برسد Latency گفته میشود. از آنجا که فاصله همیشه وجود دارد تاخیر اجتناب ناپذیز است.
پهنای باند یا Bandwidth: پیک هربار فقط می تواند 5 پیتزا با خود حمل کند. اگر شما 20 پیتزا سفارش دهید باید 4 بار رفت و آمد کند.
در سال 1996 آقای Stuart Cheshire مقاله ای منتشر کرد با عنوان "Its latency stupid" و در آن مشکل شبکه های اینترنتی را Latency دانست و نه پهنای باند. همیشه میشود پهنای باند را افزایش داده اما نمی توان تاخیر زمانی بین دو نقطه را از بین برد.حتی اگر داده با سرعت نور حرکت کند همیشه تاخیر وجود دارد.
مشکل Latency چالش اصلی سرویس های Real-time مانند بازیهای آنلاین است. برای کاهش آن میتوان از سروری که در موقعیت فیزیکی نزدیک تری دارد استفاده کرد.
پایان عمر Python 2.7
طبق اعلام رسمی تیم توسعه Python با شروع سال 2020 میلادی نسخه ی 2 این زبان برنامه نویسی دیگر پشتیبانی نمیشود و آپدیت جدیدی دریافت نخواهد کرد.
به همه ی برنامه نویسان پایتون توصیه شده هرچه سریعتر به نسخه 3.0 و بالاتر مهاجرت کنند.
نسخه ی 2.0 پایتون در ابتدای سال 2000 منتشر شد اما بازهم نیاز به تغییرات جدی داشت تا در سال 2006 نسخه 3.0 آن معرفی شد.
ابتدا قرار بود پایتون 2.0 در سال 2015 از پشتیبانی خارج شود اما تا سال 2020 به تاخیر افتاد.
طبق اعلام رسمی تیم توسعه Python با شروع سال 2020 میلادی نسخه ی 2 این زبان برنامه نویسی دیگر پشتیبانی نمیشود و آپدیت جدیدی دریافت نخواهد کرد.
به همه ی برنامه نویسان پایتون توصیه شده هرچه سریعتر به نسخه 3.0 و بالاتر مهاجرت کنند.
نسخه ی 2.0 پایتون در ابتدای سال 2000 منتشر شد اما بازهم نیاز به تغییرات جدی داشت تا در سال 2006 نسخه 3.0 آن معرفی شد.
ابتدا قرار بود پایتون 2.0 در سال 2015 از پشتیبانی خارج شود اما تا سال 2020 به تاخیر افتاد.
Forwarded from کدهک
در زبان سی شارپ کامپایلر Roslyn وظیفه ی Parse کردن و اعلام خطاهای Syntax را به عده دارد. در ادامه بهینه سازی انجام میدهد و کد میانی یا Intermediate Language را تولید می کند. این همان فایل dll یا exe برنامه ی شماست.
سپس در هنگام اجرا بسته به اینکه از چه پردازنده ای استفاده می کنید Just In Time Compiler دات نت که به RyuJIT معروف است شروع به کار میکند و در لحظه اجرای برنامه کد ماشین را تولید می کند.
استفاده از JIT کمک می کند برنامه به سخت افزار وابستگی مستقیم نداشته باشد و مجبور نباشیم برای هر سیستم عامل و سخت افزار جدا فایل جداگانه ای تولید کنیم.
در بعضی برنامه ها برای بالا بردن پرفورمنس از دستورات برداری استفاده میشود. چنانچه پردازنده از این دستورات پشتیبانی نکند برنامه خیلی کندتر از حالت بدون بردار اجرا میشود.
یکی از مشکلاتی که RyuJIT حل میکند بهینه سازی SIMD است. این ابزار می تواند بر اساس قابلیت های پردازنده کدهای برداری را به کدهای معمولی تبدیل کند تا حداکثر پرفورمنس بدست آید.
سپس در هنگام اجرا بسته به اینکه از چه پردازنده ای استفاده می کنید Just In Time Compiler دات نت که به RyuJIT معروف است شروع به کار میکند و در لحظه اجرای برنامه کد ماشین را تولید می کند.
استفاده از JIT کمک می کند برنامه به سخت افزار وابستگی مستقیم نداشته باشد و مجبور نباشیم برای هر سیستم عامل و سخت افزار جدا فایل جداگانه ای تولید کنیم.
در بعضی برنامه ها برای بالا بردن پرفورمنس از دستورات برداری استفاده میشود. چنانچه پردازنده از این دستورات پشتیبانی نکند برنامه خیلی کندتر از حالت بدون بردار اجرا میشود.
یکی از مشکلاتی که RyuJIT حل میکند بهینه سازی SIMD است. این ابزار می تواند بر اساس قابلیت های پردازنده کدهای برداری را به کدهای معمولی تبدیل کند تا حداکثر پرفورمنس بدست آید.
آشنایی با مکانیزم Threading در Async/Await
در این ویدیو بررسی می کنیم در سی شارپ چه زمانی برای اجرای عملیات async از Thread جدید استفاده میشود.
https://codehaks.com/video/106
در این ویدیو بررسی می کنیم در سی شارپ چه زمانی برای اجرای عملیات async از Thread جدید استفاده میشود.
https://codehaks.com/video/106
Forwarded from برنامه نویس
🔈 ارائه ویدئوهای پکیج آموزشی ASP.NET MVC - سطح 2
پیرو درخواست مخاطبین گرامی، و از آنجایی که ASP.NET MVC هنوز در بسیاری از پروژه های جاری توسط افراد و شرکت های مختلف در حال استفاده به عنوان بستر توسعه می باشد، ویدئوهای سطح 2 پکیج آموزش ASP.NET MVC در حال ضبط مداوم و ارائه می باشد.
مطالبی که در سطح 2 پوشش داده شده عمدتا شامل نکات و تکنیک های مورد نیاز در پروژه های حرفه ای و سطح سازمانی می باشد. از جمله این مطالب می توان به موارد زیر اشاره کرد:
• آشنایی با چرخه حیات برنامه ها در ASP.NET MVC، مدیریت رویدادهای سطح Application، کار با اشیاء HttpResponse، HttpRequest، HttpContext و بررسی کاربرد هر یک.
• بررسی عمقی Http Module و موارد مختلف کاربرد آن.
• بررسی عمقی Http Handler و موارد مختلف کاربرد آن.
• مدیریت سلامت عملکرد برنامه، شامل آشنایی با Tracing، Logging و استفاده از امکانات کتابخانه Glimpse.
• مدیریت پیکربندی (Configuration) برنامه ها، شامل مباحث خواندن و نوشتن در Web.Config، آشنایی با سلسله مراتب پیکربندی و کاربرد کلاس WebConfigurationManager.
• مدیریت داده های State و استفاده از آنها، شامل مباحث کار با کوکی ها، کالکشن Application، کالکشن Session، و نحوه پیکربندی کردن آن.
• استفاده از روش های مختلف Cache کردن داده ها و پیکربندی آنها.
• استفاده از مکانیسم های خودکار Cache کردن محتویات خروجی صفحات جهت کاهش بار پردازش سرور، و بررسی نحوه پیکربندی Cache.
تا این لحظه، 4 فصل از پکیج آموزشی فوق ارائه شده و تا آخر هفته آینده، مابقی مباحث نیز به سایت اضافه خواهد شد.
آدرس پکیج آموزشی فوق:
https://barnamenevis.net/Home/Course/3?پکیج-آموزش-ASP.NET-MVC---سطح-2
جهت مشاوره و کسب اطلاعات بیشتر نیز می توانید با آیدی ما در تلگرام در ارتباط باشید.
@barnamenevis_net
@barnamenevis_org
پیرو درخواست مخاطبین گرامی، و از آنجایی که ASP.NET MVC هنوز در بسیاری از پروژه های جاری توسط افراد و شرکت های مختلف در حال استفاده به عنوان بستر توسعه می باشد، ویدئوهای سطح 2 پکیج آموزش ASP.NET MVC در حال ضبط مداوم و ارائه می باشد.
مطالبی که در سطح 2 پوشش داده شده عمدتا شامل نکات و تکنیک های مورد نیاز در پروژه های حرفه ای و سطح سازمانی می باشد. از جمله این مطالب می توان به موارد زیر اشاره کرد:
• آشنایی با چرخه حیات برنامه ها در ASP.NET MVC، مدیریت رویدادهای سطح Application، کار با اشیاء HttpResponse، HttpRequest، HttpContext و بررسی کاربرد هر یک.
• بررسی عمقی Http Module و موارد مختلف کاربرد آن.
• بررسی عمقی Http Handler و موارد مختلف کاربرد آن.
• مدیریت سلامت عملکرد برنامه، شامل آشنایی با Tracing، Logging و استفاده از امکانات کتابخانه Glimpse.
• مدیریت پیکربندی (Configuration) برنامه ها، شامل مباحث خواندن و نوشتن در Web.Config، آشنایی با سلسله مراتب پیکربندی و کاربرد کلاس WebConfigurationManager.
• مدیریت داده های State و استفاده از آنها، شامل مباحث کار با کوکی ها، کالکشن Application، کالکشن Session، و نحوه پیکربندی کردن آن.
• استفاده از روش های مختلف Cache کردن داده ها و پیکربندی آنها.
• استفاده از مکانیسم های خودکار Cache کردن محتویات خروجی صفحات جهت کاهش بار پردازش سرور، و بررسی نحوه پیکربندی Cache.
تا این لحظه، 4 فصل از پکیج آموزشی فوق ارائه شده و تا آخر هفته آینده، مابقی مباحث نیز به سایت اضافه خواهد شد.
آدرس پکیج آموزشی فوق:
https://barnamenevis.net/Home/Course/3?پکیج-آموزش-ASP.NET-MVC---سطح-2
جهت مشاوره و کسب اطلاعات بیشتر نیز می توانید با آیدی ما در تلگرام در ارتباط باشید.
@barnamenevis_net
@barnamenevis_org
برنامه نویس
پکیج آموزش ASP.NET MVC - سطح ۲: مباحث پیشرفته و تکمیلی
آموزش مفاهیم بسیار مهم و کاربردی مانند کار با Session، کالکشن Application، روش Cache کردن داده ها و محتوای خروجی صفحات، آشنایی با چرخه حیات برنامه، HttpModule ها و HttpHandler ها از جمله مواردی است که در این دوره همراه با مثال های عملی آموزش داده می شود.
پایان پشتیبانی از Windows 7
پس از 10 پشتیبانی از ویندوز 7 امروز به پایان رسید.
زمانی که Window 7 عرضه شد با داشتن گرافیک متفاوت و امکانات جدید به سرعت مورد استقبال قرار گرفت به طوری که 4 سال طول کشید تا ویندوز 10 تعداد نصب ویندوز 7 را پشت سر بگذارد.
هم اکنون 25 درصد همه ی PC ها از ویندوز 7 استفاده میکنند.
همچنین پشتیبانی از ویندوز 2008 سرور و Exchange Server 2010 هم امروز به پایان رسید و مایکروسافت به همه ی مشتریان این بخش توصیه کرده به سرویس ابری Azure بپیوندند.
پس از 10 پشتیبانی از ویندوز 7 امروز به پایان رسید.
زمانی که Window 7 عرضه شد با داشتن گرافیک متفاوت و امکانات جدید به سرعت مورد استقبال قرار گرفت به طوری که 4 سال طول کشید تا ویندوز 10 تعداد نصب ویندوز 7 را پشت سر بگذارد.
هم اکنون 25 درصد همه ی PC ها از ویندوز 7 استفاده میکنند.
همچنین پشتیبانی از ویندوز 2008 سرور و Exchange Server 2010 هم امروز به پایان رسید و مایکروسافت به همه ی مشتریان این بخش توصیه کرده به سرویس ابری Azure بپیوندند.
ساخت اپ موبایل با Blazor
مایکروسافت اعلام کرد در یک پروژه ی آزمایشی جدید قصد دارد امکان ساخت اپ های Native را به Blazor اضافه کند.
سال گذشته Steve Sanderson مبتکر Blazor یک نمونه از اپ موبایل که رابطه ی کاربری آن با Razor طراحی شده و روی موبایل به صورت محلی اجرا میشد معرفی کرد.
حالا مایکروسافت تصمیم گرفته روی این قابلیت به صورت آزمایشی کار کند و محصولی مشابه React Native و Flutter را بر مبنای زبان برنامه نویسی #C و فریم ورک Blazor تهیه کند.
اگر همه چیز خوب پیش برود می توان امیدوار بود با انتشار dotNet 5.0 امکان برنامه نویسی محلی موبایل با Blazor وجود داشته باشد.
هم اکنون می توانید قالب این نوع پروژه ها به ویژوال استودیو اضافه کنید و شروع به تهیه اپ های محلی با #C کنید.
برای استفاده از این ابزار حتما باید از NET Core 3.1 استفاده کنید.
مایکروسافت اعلام کرد در یک پروژه ی آزمایشی جدید قصد دارد امکان ساخت اپ های Native را به Blazor اضافه کند.
سال گذشته Steve Sanderson مبتکر Blazor یک نمونه از اپ موبایل که رابطه ی کاربری آن با Razor طراحی شده و روی موبایل به صورت محلی اجرا میشد معرفی کرد.
حالا مایکروسافت تصمیم گرفته روی این قابلیت به صورت آزمایشی کار کند و محصولی مشابه React Native و Flutter را بر مبنای زبان برنامه نویسی #C و فریم ورک Blazor تهیه کند.
اگر همه چیز خوب پیش برود می توان امیدوار بود با انتشار dotNet 5.0 امکان برنامه نویسی محلی موبایل با Blazor وجود داشته باشد.
هم اکنون می توانید قالب این نوع پروژه ها به ویژوال استودیو اضافه کنید و شروع به تهیه اپ های محلی با #C کنید.
برای استفاده از این ابزار حتما باید از NET Core 3.1 استفاده کنید.
نگاهی به Async/Await در پروژه های وب
در این ویدیو به بررسی مکانیزم Threading در ASP NET Core می پردازیم و درباره ConfigureAwait و Synchronization Context صحب می کنیم.
https://codehaks.com/video/107
در این ویدیو به بررسی مکانیزم Threading در ASP NET Core می پردازیم و درباره ConfigureAwait و Synchronization Context صحب می کنیم.
https://codehaks.com/video/107
نسخه جدید NET Core 3.1.1 منتشر شد
این نسخه با هدف رفع چند باگ امنیتی منتشر میشود که مربوط به تهدید Remote Code Execution است.
در این تهدید مهاجم سعی میکند با دستکاری Request کد غیر مجاز در سرور اجرا کند.
هرچند مایکروسافت جزئیات مشکلات امنیتی این چنینی را منتشر نمیکند ( با هدف جلوگیری از سو استفاده هکرها) اما اعلام کرده چند مورد از این نوع تهدید را حل کرده است.
این نسخه با هدف رفع چند باگ امنیتی منتشر میشود که مربوط به تهدید Remote Code Execution است.
در این تهدید مهاجم سعی میکند با دستکاری Request کد غیر مجاز در سرور اجرا کند.
هرچند مایکروسافت جزئیات مشکلات امنیتی این چنینی را منتشر نمیکند ( با هدف جلوگیری از سو استفاده هکرها) اما اعلام کرده چند مورد از این نوع تهدید را حل کرده است.
نتایج اولیه Techempower در 2020 نشان میدهد فریم ورک ASP NET Core با اختلاف ناچیزی در ردیف دوم سریعترین فریم ورکهای وب قرار گرفته است.
این نتایج در ماه ژانوییه 2020 طی یک تست 100 ساعته بدست آمده است و نشان میدهد ASP NET Core مرز 7 میلیون درخواست بر ثانیه را در حالت Plaintext پشت سر گذاشته است. در این دور uLib که با ++C نوشته شده در ردیف یک قرار گرفته است.
در آخرین رده بندی رسمی ASP NET Core با تعداد 6,993,704 درخواست بر ثانیه در رتبه ی نهم قرار دارد.
https://tinyurl.com/vfkq7lm
این نتایج در ماه ژانوییه 2020 طی یک تست 100 ساعته بدست آمده است و نشان میدهد ASP NET Core مرز 7 میلیون درخواست بر ثانیه را در حالت Plaintext پشت سر گذاشته است. در این دور uLib که با ++C نوشته شده در ردیف یک قرار گرفته است.
در آخرین رده بندی رسمی ASP NET Core با تعداد 6,993,704 درخواست بر ثانیه در رتبه ی نهم قرار دارد.
https://tinyurl.com/vfkq7lm
Codehaks - ep 03
Hakim Ghods
پادکست کدهک - قسمت سوم
مروری بر کتاب So good they can't igore you
چگونه حرفه ای شوید و در زمینه کاری خود پیشرفت کنید؟
چرا نباید به دنبال علاقه تان بروید یا نگاهی به زندگی استیو جابز
کوچک فکر کنید و بزرگ گام بردارید
مروری بر کتاب So good they can't igore you
چگونه حرفه ای شوید و در زمینه کاری خود پیشرفت کنید؟
چرا نباید به دنبال علاقه تان بروید یا نگاهی به زندگی استیو جابز
کوچک فکر کنید و بزرگ گام بردارید
کاهش قابل توجه استریم Twitch در سه ماه گذشته
تویچ بعد از آنکه استریمر اصلی خود Ninja را از دست داد حالا با مشکل کم شدن بیننده رو برو شده است.
نینجا بازیکن حرفه ای Fortnite است که بیشترین بیننده را در تویچ داشت ولی به تازگی طبق قرادادی با سرویس Mixer از تویچ خارج شده است.
سرویس Mixer محصول مایکروسافت است.
گفته میشود مایکروسافت با یک قرارداد محرمانه که مبلغ آن بین 10 تا 100 میلیون دلار برآورد میشود از Ninja خواسته فقط روی پلتفرم Mixer استریم داشته باشد.
تویچ بعد از آنکه استریمر اصلی خود Ninja را از دست داد حالا با مشکل کم شدن بیننده رو برو شده است.
نینجا بازیکن حرفه ای Fortnite است که بیشترین بیننده را در تویچ داشت ولی به تازگی طبق قرادادی با سرویس Mixer از تویچ خارج شده است.
سرویس Mixer محصول مایکروسافت است.
گفته میشود مایکروسافت با یک قرارداد محرمانه که مبلغ آن بین 10 تا 100 میلیون دلار برآورد میشود از Ninja خواسته فقط روی پلتفرم Mixer استریم داشته باشد.
مایکروسافت سبز میشود.
مایکروسافت به تازگی اعلام کرده است تا سال 2030 میزان کربن تولید شده خود را منفی میکند و برای این تصمیم یک میلیارد دلار بودجه در نظر گرفته است.
کربن عامل اصلی گرمایش کره ی زمین و تغییرات اقلیمی است. حالا مایکروسافت به عنوان یکی از بزرگترین شرکتهای خصوصی تصمیم دارد گامی مثبت در جهت کم کردن تولید کربن بردارد.
مایکروسافت به تازگی اعلام کرده است تا سال 2030 میزان کربن تولید شده خود را منفی میکند و برای این تصمیم یک میلیارد دلار بودجه در نظر گرفته است.
کربن عامل اصلی گرمایش کره ی زمین و تغییرات اقلیمی است. حالا مایکروسافت به عنوان یکی از بزرگترین شرکتهای خصوصی تصمیم دارد گامی مثبت در جهت کم کردن تولید کربن بردارد.
پروژه Actix تعطیل شد
پروژه Actix یک فریم ورک وب برای زبان Rust بود که روز گذشته توسط سازنده ی آن تعطیل شد.
مشکل از جایی شروع شد که بعضی از توسعه دهندگان Rust با بررسی سور س این فریم ورک متوجه شدند بخش قابل توجهی از آن با کلمه ی کلیدی unsafe پیاده شده است. این کلمه کلیدی در Rust چک های کامپایلر را از کار می اندازد و اجازه میدهد کد در حالت های غیر استاندارد اجرا شود.
هر چند Nikolay Kim سازنده ی Actix معتقد است از unsafe در شرایط درست استفاده کرده اما اعتراض ها و ایرادگیریهایی که در محیط متن باز پروژه پیش آمده باعث شد تصمیم بگیرد پروژه را به گیتهاب خصوصی اش منتقل کند و اعلام کرده در آینده ی نزدیک آن را حذف می کند.
جالب است بدانید در آخرین رده بندی رسمی سایت Techempower فریم ورک Actix بالاترین پرفورمنس را ثبت کرده است.
آقای Nikolay Kim کارمند مایکروسافت است و این پروژه را در وقت آزادش مدیریت میکرده است.
پروژه Actix یک فریم ورک وب برای زبان Rust بود که روز گذشته توسط سازنده ی آن تعطیل شد.
مشکل از جایی شروع شد که بعضی از توسعه دهندگان Rust با بررسی سور س این فریم ورک متوجه شدند بخش قابل توجهی از آن با کلمه ی کلیدی unsafe پیاده شده است. این کلمه کلیدی در Rust چک های کامپایلر را از کار می اندازد و اجازه میدهد کد در حالت های غیر استاندارد اجرا شود.
هر چند Nikolay Kim سازنده ی Actix معتقد است از unsafe در شرایط درست استفاده کرده اما اعتراض ها و ایرادگیریهایی که در محیط متن باز پروژه پیش آمده باعث شد تصمیم بگیرد پروژه را به گیتهاب خصوصی اش منتقل کند و اعلام کرده در آینده ی نزدیک آن را حذف می کند.
جالب است بدانید در آخرین رده بندی رسمی سایت Techempower فریم ورک Actix بالاترین پرفورمنس را ثبت کرده است.
آقای Nikolay Kim کارمند مایکروسافت است و این پروژه را در وقت آزادش مدیریت میکرده است.
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ مهمترین اخبار اخیر
✅ آپدیت ژانویه 2020 برای NET Core. منتشر شد
🔸بروز رسانی نسخه ها 2.1.15 و 3.0.2 و 3.1.1 به جهت رفع چند باگ امنیتی در مورد (Remote Code Execution و Denial of Service (حمله Dos)) منتشر شدند
🔹اگر از وِیژوال استادیو استفاده می کنید برای استفاده از آخرین بروزرسانیNET Core SDK. ورژن 3.1.x به نسخه Visual Studio 2019 نسخه 16.4.x به بالا نیاز خواهید داشت
دانلود NET Core SDK. نسخه 3.1.1
https://dotnet.microsoft.com/download/dotnet-core/3.1
توضیحات بیشتر
https://devblogs.microsoft.com/dotnet/net-core-january-2020/
✅ پایان پشتیبانی از Windows 7 و. Windows Server 2008 و Windows Server 2008 R2
از این پس ویندوز های قبلی همچنان قابل استفاده خواهند بود ولی دیگر بروز رسانی های امنیتی را دریافت نخواهند کرد و در برابر آسیب پذیری های جدید ایمن نخواهند بود
✅ نسخه نهایی مرورگر Edge مبتنی بر Chromium منتشر شد
ماکروسافت نسخه پایدار Edge جدید را برای سیستم عامل های Windows و Mac منتشر کرد. کاربران به زودی یک آپدیت برای Windwos 10 دریافت خواهند کرد که مرورگر Edge با آن نصب خواهد شد. ماکروسافت مدعی شده این مرورگر از Chrome سبک تر بوده و Memory کمتری مصرف میکند.
لینک دانلود
https://www.microsoft.com/en-us/edge
من که نصب کردم پیشنهاد میکنم شما هم امتحان کنین و نظرتونو بگین 😉✌️
_______________
@DotNetZoom
✅ آپدیت ژانویه 2020 برای NET Core. منتشر شد
🔸بروز رسانی نسخه ها 2.1.15 و 3.0.2 و 3.1.1 به جهت رفع چند باگ امنیتی در مورد (Remote Code Execution و Denial of Service (حمله Dos)) منتشر شدند
🔹اگر از وِیژوال استادیو استفاده می کنید برای استفاده از آخرین بروزرسانیNET Core SDK. ورژن 3.1.x به نسخه Visual Studio 2019 نسخه 16.4.x به بالا نیاز خواهید داشت
دانلود NET Core SDK. نسخه 3.1.1
https://dotnet.microsoft.com/download/dotnet-core/3.1
توضیحات بیشتر
https://devblogs.microsoft.com/dotnet/net-core-january-2020/
✅ پایان پشتیبانی از Windows 7 و. Windows Server 2008 و Windows Server 2008 R2
از این پس ویندوز های قبلی همچنان قابل استفاده خواهند بود ولی دیگر بروز رسانی های امنیتی را دریافت نخواهند کرد و در برابر آسیب پذیری های جدید ایمن نخواهند بود
✅ نسخه نهایی مرورگر Edge مبتنی بر Chromium منتشر شد
ماکروسافت نسخه پایدار Edge جدید را برای سیستم عامل های Windows و Mac منتشر کرد. کاربران به زودی یک آپدیت برای Windwos 10 دریافت خواهند کرد که مرورگر Edge با آن نصب خواهد شد. ماکروسافت مدعی شده این مرورگر از Chrome سبک تر بوده و Memory کمتری مصرف میکند.
لینک دانلود
https://www.microsoft.com/en-us/edge
من که نصب کردم پیشنهاد میکنم شما هم امتحان کنین و نظرتونو بگین 😉✌️
_______________
@DotNetZoom
Forwarded from کدهک
آشنایی با Protocol Buffers
در واقع protobuf توسط گوگل ابداع شده و مشابه JSON فرمتی برای انتقال اطلاعات بین کلاینت و سرور است. با این فرق اساسی که داده ها به صورت باینری جابجا میشوند و کم حجمترند.
خاصیت دیگر Protobuf داشتن type است. هر فیلد نوع مشخصی دارد که کمک میکند زبانهای استاتیک تایپ راحت تر داده های دریافتی را پردازش کنند.
فرمت Protobuf بر عکس JSON برای انسان قابل خواندن نیست. گوگل برای زبانهایی مانند سی شارپ و جاوا ابزار خواندن این فرمت را تهیه کرده است.
این فرمت برای انتقال اطلاعات بین سرور و مرورگر (جاوا اسکریپت و SPA) مناسب نیست چون مرورگر ها با JSON به صورت شهروند درجه اول برخورد میکنند و با پرفورمنس بالایی میخوانند که با وجود حجم بیشتر داده در مقایسه با Protobuf سریعتر است.
کاربرد اصلی Protobuf در gRPC است. جایی که دو سرویس به صورت مستقیم با هم ارتباط دارند و لازم است درخواستهای زیادی در کوتاهترین زمان و با کمترین حجم جابجا شود.
در واقع protobuf توسط گوگل ابداع شده و مشابه JSON فرمتی برای انتقال اطلاعات بین کلاینت و سرور است. با این فرق اساسی که داده ها به صورت باینری جابجا میشوند و کم حجمترند.
خاصیت دیگر Protobuf داشتن type است. هر فیلد نوع مشخصی دارد که کمک میکند زبانهای استاتیک تایپ راحت تر داده های دریافتی را پردازش کنند.
فرمت Protobuf بر عکس JSON برای انسان قابل خواندن نیست. گوگل برای زبانهایی مانند سی شارپ و جاوا ابزار خواندن این فرمت را تهیه کرده است.
این فرمت برای انتقال اطلاعات بین سرور و مرورگر (جاوا اسکریپت و SPA) مناسب نیست چون مرورگر ها با JSON به صورت شهروند درجه اول برخورد میکنند و با پرفورمنس بالایی میخوانند که با وجود حجم بیشتر داده در مقایسه با Protobuf سریعتر است.
کاربرد اصلی Protobuf در gRPC است. جایی که دو سرویس به صورت مستقیم با هم ارتباط دارند و لازم است درخواستهای زیادی در کوتاهترین زمان و با کمترین حجم جابجا شود.
Forwarded from کدهک
آشنایی با gRPC
در ASP NET Core 3.0 یک قالب اختصاصی برای پروژه ی gRPC در نظر گرفته شده است. همین موضوع نشان از اهمیت و کاربرد زیاد تکنولوژی gRPC در دنیای امروز دارد.
در gRPC کلاینت می تواند متدی را در سرور اجرا کند درست مانند اینکه متد درون خودش قرار دارد.
تکنولوژی RPC قدیمی است و سالهاست مورد استفاده قرار میگیرد. گوگل با استاندارد سازی و بهینه کردن روش انتقال اطلاعات تکنولوژی gRPC را پیاده کرد و بعدا به صورت متن باز در اختیار سایر برنامه نویسها قرار داد.
متدهایی که در سرور قابل صدا زدن هستند از طریق Protobuf که یک فایل با پسوند proto است در اختیار کلاینت قرار میگیرند. ساختار پیامهای ارسالی و دریافتی از طریق این فایل مشخص میشود و بدون آن امکان خواندن محتوا بین کلاینت و سرور وجود ندارد. بر خلاف JSON در Protocol Buffer ساختار پیام ارسال نمیشود و فقط شامل خود داده است تا کمترین حجم پهنای باند مصرف شود.
گوگل برای زبانهای برنامه نویسی مختلف ابزاری فراهم کرده که کدهای مورد نیاز برای ارتباط بین کلاینت و سرور را می سازد.
از gRPC در میکروسرویسها بسیار استفاده میشود.
در ASP NET Core 3.0 یک قالب اختصاصی برای پروژه ی gRPC در نظر گرفته شده است. همین موضوع نشان از اهمیت و کاربرد زیاد تکنولوژی gRPC در دنیای امروز دارد.
در gRPC کلاینت می تواند متدی را در سرور اجرا کند درست مانند اینکه متد درون خودش قرار دارد.
تکنولوژی RPC قدیمی است و سالهاست مورد استفاده قرار میگیرد. گوگل با استاندارد سازی و بهینه کردن روش انتقال اطلاعات تکنولوژی gRPC را پیاده کرد و بعدا به صورت متن باز در اختیار سایر برنامه نویسها قرار داد.
متدهایی که در سرور قابل صدا زدن هستند از طریق Protobuf که یک فایل با پسوند proto است در اختیار کلاینت قرار میگیرند. ساختار پیامهای ارسالی و دریافتی از طریق این فایل مشخص میشود و بدون آن امکان خواندن محتوا بین کلاینت و سرور وجود ندارد. بر خلاف JSON در Protocol Buffer ساختار پیام ارسال نمیشود و فقط شامل خود داده است تا کمترین حجم پهنای باند مصرف شود.
گوگل برای زبانهای برنامه نویسی مختلف ابزاری فراهم کرده که کدهای مورد نیاز برای ارتباط بین کلاینت و سرور را می سازد.
از gRPC در میکروسرویسها بسیار استفاده میشود.
اجرای دات نت روی Win 3.1
جناب Michal Strehovský از توسعه دهندگان Runtime دات نت که در مایکروسافت مشغول به کار است در نمایش قابلیت های این ابزار یک برنامه دات نت core در حالت self-contained را به صورت Native کامپایل کرده و آن را در ویندوز بسیار قدیمی 3.1 اجرا کرده است.
https://tinyurl.com/sdrrmm3
جناب Michal Strehovský از توسعه دهندگان Runtime دات نت که در مایکروسافت مشغول به کار است در نمایش قابلیت های این ابزار یک برنامه دات نت core در حالت self-contained را به صورت Native کامپایل کرده و آن را در ویندوز بسیار قدیمی 3.1 اجرا کرده است.
https://tinyurl.com/sdrrmm3