این نسخه، همراه با بزرگترین مجموعه از قابلیتهای درجه سازمانی که تا به حال در یک نسخه واحد معرفی شدهاست، به شرکتها توانایی میدهد تا سریعتر مقیاسپذیری کنند، هوشمندانهتر اتوماسیون داشته باشند و یک تجربه خرید در سطح جهانی ارائه دهند. از محتوای مبتنی بر هوش مصنوعی و ابزارهای سئو گرفته تا گردش کار پیشرفته B2B، شخصیسازی بهبودیافته و ماژولهای مخصوص صنایع، nopCommerce 4.90 استاندارد جدیدی برای آنچه یک پلتفرم تجارت الکترونیک متنباز در سطح سازمانی میتواند به دست آورد، تعیین میکند.
لطفاً توجه داشته باشید که nopCommerce 4.90 نیاز به Visual Studio 2022 (نسخه ۱۷.۱۲.۰) یا بالاتر، .NET 9 SDK (۹.۰.۱۰۰) (دانلود) و ASP.NET Core Runtime (نسخه ۹.۰.۰) - Windows Hosting Bundle (دانلود) دارد. شما میتوانید .NET 9 SDK و ASP.NET Core Runtime 9.0.0 را برای سایر سیستمعاملها و خانوادههای پردازنده از اینجا دانلود کنید.
**ویژگیهای برجسته و سازمانی:**
#۷۷۳۰ تولید خودکار توضیحات محصول (هوش مصنوعی)
#۷۷۳۲ بهینهسازی سئوی خودکار با ابزارهای هوش مصنوعی
#۷۳۸۸ ترجمه خودکار محتوا به چندین زبان
#۲۷۹ پشتیبانی از "درخواست پیشفاکتور" و "پیشفاکتور"
#۷۳۹۰ منوی مگا
#۷۴۱۱ خودرو. مدل سال-سازنده-مدل (YMM)
#۷۶۴۳ تطابق با "قانون دسترسیپذیری اروپا (EAA)"
#۱۹۲۱ چندین لیست علاقهمندی
#۶۸۷۴ چندین لیست خبرنامه
#۶۲۲۶ Cloudflare Images (میزبانی تصویر)
**بهبودها:**
#۷۳۸۷ محصولات دارای "حداقل سن برای خرید"
#۱۲۶۶ گنجاندن فیلترها در صفحه تاریخچه سفارشات (فروشگاه عمومی)
#۷۳۸۴ اجازه لغو سفارشات (پرداختنشده) به مشتریان
#۵۳۴۵ افزودن دوره دسترسی (تاریخ شروع/پایان) به موضوعات
#۵۱۹۹ استفاده از Markdown به جای BBCode در انجمنها
#۷۳۹۷ جایگزینی TinyMCE با Summernote (ویرایشگر پیشرفته)
#۵۲۷۹ جستجو بر اساس برچسبهای محصول
#۴۱۷۰ کپی کردن کمپینها
#۶۴۰۷ افزودن ActivityLogType جدید برای تغییر رمز عبور
#۱۷۷۹ تلاشهای ناموفق ورود به سیستم (نوع فعالیت و اعلانها)
#۷۷۶ ذخیره دادههای نمونه در JSON (نصب)
#۷۶۸۵ افزودن روشی برای افزودن داده نمونه در افزونهها در حین نصب جدید
#۷۵۸۸ نمایش بلاکهای "سفارشات"، "گزارش فعالیت" و "تقلید هویت" در صفحه ویرایش مشتری بر اساس مجوز مرتبط (#۷۵۸۹)
#۸۷۳ افزودن تنظیمات سئو برای برچسبهای محصول
#۷۷۷۹ robots.txt باید پارامتر "returnurl" را بدون توجه به حروف کوچک و بزرگ مسدود کند
#۳۴۲۵ افزودن قالب پیام OrderCompleted.StoreOwnerNotification
#۷۸۰۷ بهبود دسترسیپذیری برای تمام صفحات جلویی
#۷۷۳۹ صفحه نگهداری. اجازه حذف تصاویر کوچک (بند انگشتی)
#۲۹۲۱ صفحه نگهداری. افزودن قابلیت "کوچک کردن پایگاه داده"
#۷۵۷۱ افزودن تنظیم ReCaptcha برای صفحه "بررسی موجودی کارت هدیه"
#۷۷۴۲ صفحه مشتریان آنلاین. اجازه فیلتر بر اساس نقش مشتریان
#۱۸۹۲ ناحیه مدیریت. استفاده از لیستهای کشویی با پشتیبانی جستجو
#۵۸۱۸ چرخش خودکار عکسها و تصاویر کوچک (بند انگشتی)
#۷۷۱۱ افزونه PayPal Commerce. افزودن یادداشت به سفارشات هنگام رد پرداخت
#۷۳۵۰ افزونه PayPal Commerce. آمادهسازی برای پرداختهای تکراری
#۲۱۹۲ امکان درخواست مجدد چندین ایمیل از صفحه لیست ایمیلهای در صف
#۱۴۲۶ افزودن توصیهای برای بهروزرسانی فروشگاه به آخرین نسخه
#۷۵۴۵ امکان جستجو بر اساس "نام" در صفحه ویژگی مشخصات (ناحیه مدیریت)
#۷۷۴۶ افزودن متد جاوااسکریپت برای نمایش اعلانهای نوار در ناحیه مدیریت
#۷۶۲۵ نشانیهای پرداخت. پیشپر کردن کشور بر اساس پروفایل مشتری
#۷۶۹۴ تصحیح املا در رشتههای ترجمه "ایمیل"
#۷۷۷۲ سئو. داده ساختاریافته انجمن گفتگو (DiscussionForumPosting)
#۷۷۴۸ سئو. صفحات انجمن. تعیین نشانی اینترنتی متعارف (canonical URL)
#۷۷۴۷ سئو. صفحه موضوع انجمن. تعیین توضیحات متا از اولین پست
#۷۵۷۳ بهبود پنجره بازشوی ویرایش مجوز
#۷۶۲۹ افزودن ویژگی "layout" به DataTablesModel
#۷۵۱۵ امکان جستجو بر اساس "نام" در صفحه ویژگی محصول (ناحیه مدیریت)
#۵۶۵۲ نمایش تنظیمات کاراکترهای پایگاه داده (collation) در صفحه اطلاعات سیستم مدیریت
#۸۲۰ امکان نمایش نمادهای ارز در لیست کشویی "ارز"
#۷۴۷۷ جایگزینی QuestPDF با PdfRpt.Core
#۷۴۰۵ افزودن قابلیت واردات/صادرات محدودیت به فروشگاهها برای دستهبندیها
#۷۵۴۹ افزودن %Customer.Company% به توکنهای مشتری (قالبهای پیام)
#۷۴۹۵ عدم نمایش بلاک "خریداری شده با سفارشات" (صفحه ویرایش محصول) زمانی که کاربر فعلی مجوز "مشاهده سفارشات" را ندارد (#۷۵۸۱)
#۷۵۹۳ نمایش بلاک "تاریخچه استفاده" در صفحه ویرایش کارت هدیه بر اساس مجوز مرتبط (#۷۵۹۵)
#۷۸۰۳ انتقال افزونه Amazon به بازارچه
#۷۵۸۰ عدم نمایش بلاک "لیست مرسولهها" (صفحه ویرایش سفارش) زمانی که کاربر فعلی مجوز "مشاهده مرسولهها" را ندارد (#۷۵۸۵)
#۵۷۷۱ برچسبهای محصول. امکان مشاهده محصولات مرتبط با یک برچسب محصول توسط مالک فروشگاه (ناحیه مدیریت)
#۷۵۶۹ حذف تنظیم "PluginStaticFileExtensionsBlacklist"
#۷۷۴۹ نام زبان پیشفرض پس از نصب باید "English" باشد (نه "EN")
#۷۳۷۳ ارائه زمانبندی برای اعلانهای نوار از سمت سرور
#۷۴۶۷ ایمیل خالی مشتری زمانی که پرداخت مهمان فعال است
#۷۴۹۸ تغییر نام راهنماها (ناحیه مدیریت)
#۷۳۹۸ جایگزینی Shepherd.js با driver.js (تورهای محصول)
#۲۱۸۴ امکان محدود کردن تعداد تصاویر برای هر محصول توسط فروشندگان
#۶۵۹۰ چسبنده کردن هدر محتوا در طرحبندی مدیریت (قابل تنظیم)
#۷۵۶۲ افزودن استانهای تایلند
#۷۰۷۳ افزودن فیلد "موقعیت مکانی" برای مقادیر سفارشی سفارش
بلاگ
انتشار داتنت ۹ مجموعهای از بهبودها را ارائه میدهد که برای افزایش عملکرد، امنیت و کارایی توسعهدهندگان طراحی شدهاند. با پیشرفتهای موجود در ماشین جمعآوری زباله، کتابخانهها، ابزارهای SDK و ویژگیهای جدید در سیشارپ ۱۳، این پلتفرم همچنان به توسعهدهندگان قدرت میبخشد. این بهروزرسانیها امکان ساخت برنامههای کارآمدتر، مقیاسپذیرتر و امنتر را فراهم میکنند و داتنت ۹ را به یک ارتقاء ضروری برای کسبوکارها و توسعهدهندگان تبدیل کردهاند.
بهروز ماندن با آخرین نسخه داتنت دیگر فقط یک روش خوب نیست؛ بلکه در فضای رقابتی امروز یک ضرورت محسوب میشود. با استفاده از داتنت ۹، توسعهدهندگان میتوانند از جدیدترین فناوریها برای ساخت برنامههایی که نهتنها سریعتر و امنتر هستند، بلکه برای مواجهه با چالشهای فردا آمادهاند، بهره ببرند. چه برای دسکتاپ، وب یا ابر توسعه میدهید، داتنت ۹ معیار جدیدی برای نوآوری و کارایی تعیین میکند.
بهبودهای عملکردی
عملکرد همچنان یکی از ارکان اصلی بهروزرسانیهای داتنت ۹ است که پیشرفتهای قابلاندازهگیری در کارایی برنامه ارائه میدهد.
بهبودها
یکی از مهمترین تغییرات در داتنت ۹.۰، مدرنسازی ماشین جمعآوری زباله است که اکنون یک مکانیسم تطبیق پویا بر اساس اندازه برنامه پیادهسازی میکند. این بدان معناست که جمعکننده دیگر به میزان منابع سیستم موجود وابسته نیست، بلکه خود را با نیازهای حافظه برنامه تنظیم میکند.
علاوه بر این، بهینهسازیهایی در کامپایلر JIT انجام شده است، از جمله بهینهسازیهای جدید مبتنی بر پروفایل (PGO)، بهبود مدیریت حلقهها، استقرار درونخطی و بهینهسازی مدیریت استثناها، که منجر به افزایش ۵۰ درصدی عملکرد شده است. در کدهایی که شامل عملگرهای تبدیل نوع هستند، عملکرد تا ۷۰ درصد بهبود یافته است. عملکرد پرسوجوهای LINQ نیز بهبود یافته است، بهویژه در متدهایی مانند Take و DefaultIfEmpty هنگام کار با آرایهها و مجموعههای خالی، که در برخی موارد بهبود تا ۱۰ درصد را نشان میدهد.
در مورد کتابخانهها، کتابخانه System.Text.Json بهبودهای قابلتوجهی در عملکرد و کارایی داشته است. متد JsonProperty.WriteTo اکنون میتواند رشتههای UTF8 را مستقیماً بنویسد و از تخصیصهای غیرضروری حافظه جلوگیری میکند. این تغییر منجر به افزایش ۱۵ درصدی عملکرد و کاهش ۹۳ درصدی استفاده از حافظه در تستهای عملکردی در مقایسه با داتنت ۸ شده است.
ویژگیهای سیشارپ ۱۳
سیشارپ ۱۳ مجموعهای از بهبودهای زبان را معرفی میکند که بهرهوری توسعهدهندگان و وضوح کد را افزایش میدهند، همچنین مکانیسم قفلگذاری جدید و محدودیتهای ناهمزمان.
با معرفی سینتکس جدید ایندکس، توسعهدهندگان اکنون میتوانند ایندکسهای شیء را از انتها شمارش کنند.
محتوای کلاسهای پارشیال اکنون میتواند اعلام و پیادهسازی شود، که توانایی استفاده از اصلاحکنندههای پارشیال را گسترش میدهد.
پشتیبانی از مجموعهها در متدهایی با اصلاحکننده params اضافه شده است، که نیاز به تبدیل مجموعهها به آرایه را برطرف میکند.
ویژگی جدید OverloadResolutionPriorityAttribute معرفی شده است تا اولویت یک سربارگذاری متد را نسبت به دیگران افزایش دهد.
همگامسازی نخها با معرفی کلاس Lock در فضای نام System.Threading بهبود یافته است.
کتابخانهها
در داتنت ۹، فضای نام System.Linq اکنون شامل متدهای جدید CountBy، AggregateBy و Index است.
یک نوع عمومی جدید به نام OrderedDictionary معرفی شده است. در اصل، این معادل عمومی OrderedDictionary استاندارد است، که در آن کلیدها و مقادیر قبلاً بهصورت شیء نمایش داده میشدند.
اغلب سناریوهایی وجود دارد که نیاز دارید یک مجموعه را بهصورت فقط خواندنی ارسال کنید. برای IList، از ReadOnlyCollection استفاده میکردید. برای IDictionary، گزینه ReadOnlyDictionary بود. با این حال، تاکنون معادلی برای ISet وجود نداشت. در داتنت ۹، این شکاف با معرفی ReadOnlySet پر شده است.
تنسورها نقش حیاتی در هوش مصنوعی دارند. نوع جدید Tensor تعامل کارآمد با کتابخانههای هوش مصنوعی مانند ML.NET، TorchSharp و ONNX Runtime را تسهیل میکند.
با سیشارپ ۱۳، اکنون میتوان به کامپایلر و زمان اجرا دستور داد که یک ساختار ref میتواند بهعنوان پارامتر عمومی استفاده شود. در داتنت ۹، اجازه استفاده از ref struct در بسیاری از بخشهای کتابخانه بهصورت گسترده پیادهسازی شده است.
در داتنت ۷، یک روش جدید برای ایجاد عبارات منظم با استفاده از مولد کد GeneratedRegex معرفی شد. این روش استفاده از ویژگی [GeneratedRegex] روی یک متد پارشیال که یک Regex برمیگرداند را تشخیص میدهد و بهصورت خودکار پیادهسازی متد را با منطق مورد نظر ایجاد میکند. از داتنت ۹ و با ظهور ویژگیهای پارشیال در سیشارپ ۱۳، اکنون میتوان از ویژگی [GeneratedRegex] روی خود ویژگیها استفاده کرد.
SDK
ثبتکننده ترمینال اکنون بهصورت پیشفرض فعال است. این ابزار ثبت جدید که در داتنت ۸ معرفی شد، قبلاً نیاز به فعالسازی دستی داشت. اکنون، ثبتکننده ترمینال از همان ابتدا فعال است. با داتنت ۹، دستور 'dotnet test' میتواند تستهایی را که برای چندین چارچوب در یک پروژه هدفگیری کردهاند، بهصورت موازی اجرا کند. همه اینها بهصورت یکپارچه با ثبتکننده ترمینال جدید ادغام شدهاند.
در داتنت ۸، هنگام استفاده از 'dotnet restore'، بستهها برای آسیبپذیریهای شناخته شده بررسی میشدند. در داتنت ۹، حالت حسابرسی پیشفرض بهبود یافته است: اکنون نهتنها وابستگیهای مستقیم، بلکه وابستگیهای انتقالی را نیز برای آسیبپذیریها اسکن میکند.
BuildCheck
داتنت ۹ یک ویژگی جدید برای محافظت در برابر خطاها در طول فرآیند ساخت معرفی میکند. برای فعالکردن این حالت جدید، از پرچم /check استفاده کنید. در حالی که داتنت ۹ در حال حاضر مجموعه محدودی از بررسیها را ارائه میدهد، انتظار میرود تعداد آنها با گذشت زمان افزایش یابد. علاوه بر این، توسعهدهندگان میتوانند قوانین سفارشی برای نیازهای خاص ایجاد کنند.
زمان اجرا
تطبیق پویا با اندازه برنامهها (DATAS) اکنون بهصورت پیشفرض فعال است. این ویژگی که در داتنت ۸ معرفی شد، اندازه هیپ ماشین جمعآوری زباله را بر اساس بار برنامه تنظیم میکند و مدیریت حافظه را بهبود میبخشد.
داتنت ۹ شامل بهبودهای قابلتوجهی در JIT (کامپایلر Just-In-Time) است، مانند بهینهسازی بهتر حلقهها، بهبود بهینهسازی مبتنی بر پروفایل (PGO) و بهبود استقرار درونخطی متدها.
علاوه بر این، RyuJIT در داتنت ۹ از یک روش سادهتر و سریعتر برای تخصیص ثبات در کدهای بهینهنشده استفاده میکند که زمان راهاندازی را در سناریوهای خاص تا ۱۰ درصد کاهش میدهد.
داتنت ۹ چه مزایایی برای ناپ کامرس به ارمغان میآورد
بهعنوان یک پلتفرم پیشرو تجارت الکترونیک متنباز، ناپ کامرس به کسبوکارها در هر اندازه امکان میدهد تا فروشگاههای آنلاین قوی و قابلسفارشیسازی بسازند.
استفاده از داتنت ۹ تضمین میکند که توسعهدهندگان و کاربران از جدیدترین پیشرفتها در عملکرد، امنیت و بهرهوری توسعهدهندگان بهرهمند میشوند. ویژگیهای داتنت ۹ با هدف بهبود عملکرد داخلی طراحی شدهاند، که به معنای افزایش سرعت و کارایی ناپ کامرس نیز هست.
علاوه بر داتنت ۹، ویژگیهای جدید ناپ کامرس شامل یک پلاگین پرداخت پیشرفته، ویرایش گروهی محصولات، کنترل دسترسی پیشرفته (ACL) و موارد بسیار دیگر است.
نتیجهگیری
داتنت ۹ شامل چندین ویژگی جدید است و اگرچه تعداد تغییرات ممکن است کم به نظر برسد، تأثیر آن قابلتوجه است. در این پست وبلاگ، ما فقط جالبترین بهروزرسانیهایی را که برای اکثر توسعهدهندگان مفید خواهد بود، برجسته کردهایم. شما میتوانید فهرست کامل همه بهبودها را [اینجا](https://www.nopcommerce.com) بیابید.
با بهکارگیری داتنت ۹، ناپ کامرس ۴.۸۰ از جدیدترین پیشرفتها در عملکرد، امنیت و بهبودهای بهرهوری توسعهدهندگان بهره میبرد و پایهای قوی برای توسعه تجارت الکترونیک فراهم میکند.
از ناپ کامرس ۴.۸۰ استفاده کنید تا از تمام مزایای داتنت ۹ بهرهمند شوید - چه یک توسعهدهنده باشید و چه یک مالک فروشگاه، این بهروزرسانی مزایای بزرگی برای کسبوکار آنلاین شما به ارمغان میآورد. اگر از ناپ کامرس ۴.۷۰ و نسخههای قدیمیتر استفاده میکنید، [این راهنمای کامل](https://www.nopcommerce.com) را در مورد چگونگی ارتقاء ناپ کامرس به آخرین نسخه مطالعه کنید.