ریلیز شد Orleans 7.0
The .NET 7 release marks an exciting milestone in many ways, but one in particular that’s exciting for ASP.NET developers building distributed apps or apps designed to be cloud native and ready for dynamic horizontal scale out is the addition of the Orleans team to the broader .NET team. Bringing Orleans and ASP.NET Core closer together has led to some exciting ideas for the future of how we blend Orleans into the ASP.NET toolchain, and coupled with the huge advances in performance throughout .NET 7 are improvements to Orleans 7 that bring over 150% improvements to some areas of the Orleans toolchain. This post will introduce you to some of the new features in Orleans 7.
thanks to a new feature added in Visual Studio 2019 16.1, we can combine the best of both worlds when it comes to support the App Installer technology: the easiness of automatically generating an .appinstaller file as part of the package creation process and the flexibility of the new update features added in Windows 10 1903.
نگاهی به Entity Framework 7 چندسکویی
Here's a couple of final thoughts.
- 3 major front end frameworks (Angular, React, and Vue)
- React is the highest growing and highest paying front end framework
- Express is still the dominant Node framework by far
- TypeScript is becoming more and more popular (and it's going to take over...just my thought)
- Tooling is making JavaScript a more evolved and appealing language
- Options to reach almost any platform (desktop, mobile, server, web, hybrid, etc.)
- Graphql is on the rise, especially with the rise of Gatsby.js
برای انجام عملیات پرس و جوی LINQ با استفاده از روش پردازش موازی به راحتی میتوان الحاقیه AsParallel را به هر دادهای از نوع IEnumerable<T> افزود:
var data = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // پرس و جوی عادی var q1 = from i in data select i; // پرس و جو به شیوه موازی var q2 = from i in data.AsParallel() select i;
الحاقیه .AsParallel() در پرس و جویq2 نسخه موازی LINQ را بر روی متغیر data اجرا میکند و اگر همه چیز به صورت صحیح انجام شود هر دو پرس و جو باید نتایج یکسانی داشته باشند، اما نتایج عبارتند از :
//نتیجه اجرای q1 0 1 2 3 4 5 6 7 8 9 10 //نتیجه اجرای q2 0 6 1 7 2 8 3 9 4 10 5
همانطور که ملاحظه میکنید ترتیب واقعی نتایج اجرای پرس و جوها با یکدیگر متفاوتاند و نکته جالبتر آنکه با هر بار اجرای برنامه نتیجه اجرای پرس و جوی q2 با نتیجه سری قبل خودش متفاوت است که این تفاوت به چگونگی تقسیم بندی انجام کار میان هستههای سی پی یو، بستگی دارد. نکته بسیار مهم آن است که عملیات پردازش موازی خود را ملزم به حفظ ترتیب دادهها نمیداند مگر آنکه مجبورش کنیم و این رفتار پردازش موازی به دلیل بالا بردن راندمان عملیات است در نتیجه انجام پرس و جوهای موازی توسط الحاقیه .AsParallel() خیلی هم ساده نیست و ممکن است منجر به تولید نتایج ناخواسته شود.
حال اگر چگونگی ترتیب دادهها، برایمان مهم است به دو روش میتوانیم آن را انجام دهیم:
1- افزودن عبارت orderby به پرس و جو
2- استفاده از الحاقیه AsOrdered
var q3 = from i in data.AsParallel() orderby i select i; var q4 = from i in data.AsParallel().AsOrdered() select i;
که نتیجه انجام هر دو پرس و جوی بالا یکی خواهد بود. حال مسأله دیگر این است که آیا همیشه استفاده از پردازش موازی مفید خواهد بود یا خیر؟پاسخ این سؤال وابسته است به نوع مسأله و حجم داده مورد نظر و مشخصات سیستمی که قرار است از آن کد استفاده کند. چگونگی اندازه سرعت و مقدار مصرف حافظه در اجرای چهار پرس و جوی فوق در کامپیوتر من با پردازنده Intel Q9550 به شکل زیر است: