برنامه نویس
1.28K subscribers
107 photos
5 videos
4 files
147 links
Download Telegram
برنامه نویس pinned «🔈🤑 تخفیف 50% کلیه پکیج های آموزشی برنامه نویس به مناسبت شب یلدا کد تخفیف: Yalda1400 تاریخ انقضای کد تخفیف فوق: سه شنبه، 30 آذر 1400، ساعت 12 شب مشاهده فهرست پکیج های آموزشی: https://barnamenevis.net/Home/AllCourses جهت استفاده از کد تخفیف فوق میبایست آدرس…»
محققان یک ضعف امنیتی روز-صفر را در کتابخانه Log4j کشف کرده‌اند که به مهاجمان اجازه می‌دهد تا اسکریپت‌های مخرب را دانلود و اجرا نموده و امکان کنترل کامل و از راه دور سیستم را برای آ‌ن‌ها فراهم می‌کند.
یک نمونه اثبات‌گر (Proof-of-Concept – به اختصار PoC) از ضعف امنیتی مذکور نیز که مربوط به کتابخانه مبتنی بر Javaو(Log4j) سرورهای آپاچی می‌باشد، در حال حاضر به صورت آنلاین منتشر و به اشتراک گذاشته شده است. آسیب‌پذیری مذکور، حملاتی از نوع RCE (اجرای کد از راه دور) را برای مهاجمان فراهم می‌کند که کاربران خانگی و سازمان‌ها را در معرض خطر قرار می‌دهد.

Log4j
 توسط بنیاد نرم‌افزاری آپاچی (Apache Software Foundation) توسعه یافته است و به طور گسترده در برنامه‌های کاربردی سازمانی و سرویس‌های ابری مورد استفاده قرار گرفته است. ضعف امنیتی موجود در این کتابخانه که اخیراً منتشر شده، Log4Shell یا LogJam نامیده شده و دارای شناسه CVE-2021-44228 می‌باشد.
درجه شدت آسیب‌پذیری مذکور ۱۰ از ۱۰ (بر طبق استاندارد CVSS) و با درجه اهمیت “حیاتی” (Critical) گزارش شده است.
باگ مذکور به مهاجمان اجازه می‌دهد تا اسکریپت‌ها را روی سرورهای موردنظر دانلود و اجرا نموده و امکان کنترل کامل و از راه دور سیستم را برای مهاجمان در سیستم‌های آسیب‌پذیر دارای Log4j 2.0-beta9 تا ۲/۱۴/۱ فراهم می‌کند. لازم به ذکر است که سوءاستفاده از ضعف امنیتی مذکور نیازی به احراز هویت ندارد و برای اجرای آن نیازی به تخصص فنی سطح بالا نیست.
Log4j
فقط یک کتابخانه در Java نیست، همانطور که در نشانی زیر به آن اشاره شده، این کتابخانه در بسیاری از سرویس‌ها و سرورها تعبیه شده است. بخش قابل توجهی از نرم‌افزارهای سازمانی، برنامه‌های تحت وب و محصولات اپل، آمازون، کلودفلر، توییتر، استیم، انواع مختلف سرورهای آپاچی و الستیک سرچ احتمالاً در برابر سوء‌استفاده از این ضعف امنیتی و حملات RCE مبتنی بر آن، آسیب‌پذیر هستند.

https://github.com/YfryTchsGD/Log4jAttackSurface

سازمان‌ها و شرکت‌های امنیتی مختلف هشدار داده‌اند که مهاجمان در حال تلاش برای پویش اینترنت، جستجوی اهداف آسیب‌پذیر و آلوده نمودن سرویس‌های مختلف وب می‌باشند. تعداد کل پویش‌ها با استفاده از Log4Shell در یک روز سه برابر افزایش یافته است. در حالی که اکثر پویش‌ها هدف خاصی ندارند، به نظر می‌رسد حدود ۲۰ درصد از تلاش‌ها برای جستجوی سرویس‌های آسیب‌پذیر Apache Solr هستند.
شرکت بیت‌دیفندر نیز در نشانی زیر با استناد به ترافیک ایجاد شده در سرویس‌های Honeypot این شرکت و به دلیل سهولت بهره‌برداری و گستردگی کاربرد کتابخانه Log4j در سرورها و نرم‌افزارها هشدار داده که مهاجمان از آسیب‌پذیری و گستردگی کتابخانه اطلاع دارند و احتمالاً شاهد شروع کارزاری بسیار طولانی هستیم.

https://www.bitdefender.com/blog/labs/bitdefender-honeypots-signal-active-log4shell-0-day-attacks-underway-patch-immediately/

با این حال تخمین اثرات مخرب ضعف امنیتی Log4Shell بسیار دشوار است زیرا با توجه به پیشینه وصله‌ها (حتی برای آسیب‌پذیری‌های با شدت بالا)، اعمال وصله در تمامی سیستم‌ها، مستلزم صرف زمان بسیار زیادی است. حتی با وجود اعمال وصله‌ها، معمولاً شاهد حملاتی هستیم که با سوءاستفاده از آسیب‌پذیری‌های وصله شده دو یا سه ساله با موفقیت اجرا می‌شوند.

در ۳ آذر ۱۴۰۰، تیم امنیتی Alibaba Cloud در نشانی زیر رسماً آسیب‌پذیری مذکور را به شرکت آپاچی گزارش نمود. از آنجایی که برخی از توابع Apache Log4j2 دارای توابع تحلیلی بازگشتی هستند، مهاجمان می‌توانند مستقیماً درخواست‌های مخرب ایجاد نموده و از آسیب‌پذیری ‌به صورت اجرای کد از راه دور سوءاستفاده کنند. بهره‌برداری از آسیب‌پذیری مذکور نیازی به پیکربندی خاصی ندارد. شرکت آپاچی نیز تایید نمود که ضعف امنیتی CVE-2021-4428 بر پیکربندی‌های پیش‌فرض چندین بستر آپاچی از جمله

Apache Struts2
Apache Solr
Apache Druid،وApache Flink

و غیره تأثیر می‌گذارد.

https://www.cyberkendra.com/2021/12/worst-log4j-rce-zeroday-dropped-on.html

شرکت آپاچی نسخه Log4j 2.15.0 را برای ترمیم شدت آسیب‌پذیری CVE-2021-44228 منتشر کرده است. همچنین می‌توان شدت ضعف امنیتی مذکور را در نسخه‌های قبلی (۲.۱۰ به بعد) با تنظیم ویژگی سیستم “log4j2.formatMsgNoLookups” به گزینه “true” یا حذف کلاس JndiLookup از classpath کاهش داد.

@KaitNews
👍1
برنامه نویس pinned «🔈🤑 تخفیف 50% کلیه پکیج های آموزشی برنامه نویس به مناسبت شب یلدا کد تخفیف: Yalda1400 تاریخ انقضای کد تخفیف فوق: سه شنبه، 30 آذر 1400، ساعت 12 شب مشاهده فهرست پکیج های آموزشی: https://barnamenevis.net/Home/AllCourses جهت استفاده از کد تخفیف فوق میبایست آدرس…»
Forwarded from کدهک
مقایسه حجم دانلود اپلیکیشن های Blazor WebAssembly

اپ هایی که با Blazor WebAssembly پیاده میشوند برای اجرا ابتدا باید به طور کامل روی دستگاه کاربر دانلود شوند. این رفتار مشابه مانند React و Angular است. البته در مورد فریم ورکهای جاوا اسکریپت حجم دانلود به مراتب کمتر است.

حجم فریم ورک دات نت در وب اسمبلی چیزی در حدود 1 مگابایت است.

در حالت Ahead of time compilation که سورس بجای ترجمه در زمان اجرا از قبل کامپایل میشود حجم تا 3 مگابایت افزایش میابد.

استفاده از AOT برای اپ هایی که نیاز به پرفورمنس بالا دارند و CPU-Bound هستند توصیه میشود. مثل بازی ها و برنامه هایی با محاسبات ریاضی سنگین.

استفاده از EF Core حجم اپ های Blazor را به حد چشمگیری افزایش میدهد. پس اگر با دیتابیس کار می کنید (مثل sqlite در مرورگر) کاربر برای استفاده از برنامه شما باید چیزی در حدود 5 مگابایت را دانلود کند. البته این دانلود فقط در اجرای اول نیاز است و در مراحل بعدی کاهش میابید.
👎5👍21
Forwarded from کدهک
برنامه نویسی سبز

زبان های برنامه نویسی از نظر مصرف انرژی با هم فرق می کنند و در تحقیقی که تازگی بروز رسانی شده مشاهده شده است که زبان C همچنان سبز ترین زبان برنامه نویسی است و کمتر از بقیه منابع محیط زیست ما را مصرف میکند.

این مقاله به بررسی و مقایسه اجرا الگوریتمهای مختلف در زبان های پر استفاده می پردازد.

از نظر مصرف انرژی #C سه برابر C است و سه برابر هم کندتر است. مصرف حافظه سی شارپ هم حدود سه برابر بهترین زبان (پاسکال) است اما نسبت به زبانهایی مثل جاوا و جاوا اسکریپت در جایگاه بهتری است.

پایتون 75 برابر زبان C انرژی مصرف میکند و 70 برابر هم کندتر است.

جاوا دوبرابر کندتر از C است و دو برابر هم بیشتر انرژی مصرف میکند اما 6 برابر بیشتر حافظه مصرف میکند که این میزان دوبرابر سی شارپ است.

لینک مقاله:
https://codehaks.com/go/mpx
👍3
Forwarded from کدهک
فروش ویژه عید 1401

فروش ویژه کدهک با تخفیف ویژه 30 درصد آغاز شد.

از امروز به مدت یک هفته می توانید همه محصولات کدهک را با تخفیف عید تهیه کنید.

جهت پشتیبانی با @codehak تماس بگیرید.

کد تخفیف: eid401

https://codehaks.com/shop
Forwarded from کدهک
چرا باید به عقب برگردیم و بیشتر و عمیقتر مطالعه کنیم؟
برای یادگیری سی شارپ و ASP NET Core از کجا باید شروع کنیم؟

نگاهی به مصاحبه های فنی و وضعیت بد برنامه نویس ها تازه کار

برای استخدام شدن و مهاجرت لازم نیست میکروسرویس بلد باشید!


https://youtu.be/wfajhkMhdsg
👍1
Forwarded from کدهک
چهارگانه ی ACID

هر ترانکش دیتابیس باید از 4 اصل ACID پیروی کند تا داده های آن قابل اعتماد باشد. بیشتر دیتابیس های رابطه ای بر مبنای ACID کار میکنند.

در Atomicity داده ها باید از قانون همه یا هیچ پیروی کنند. یعنی یا تمام فیلدها درون جدول ذخیره میشود یا هیچکدام ذخیره نمیشود.

در Consistency دیتابیس بعد از هر تراکنش از یک حالت معتبر به یک حالت معتبر جدید برود. مواردی مانند نوع فیلدها ، محدودیت های اعمال شده بر آن و رابطه ی بین جداول همیشه باید رعایت شود.

در Isolation هر تراکنش برای خود یکتا هست و به ذخیره شدن و یا نشدن سایر تراکنش ها مربوط نیست. اگر چندین تراکنش همزمان اعمال شود هیچکدام نباید روی دیگری اثر گذار باشد.

در Durability اطلاعات هر تراکنش بعد از آنکه در دیتابیس اعمال شد باید ذخیره شود. در واقع هروقت دیتابیس نتیجه ی تراکنش را بر میگرداند برنامه نویس میداند اطلاعات جایی در دیسک ذخیره شده است و در آینده ی دور هم قابل دسترسی است.

دیتابیس هایی که از این قوانین پیروی نمیکنند سرعت بیشتری دارند اما اعتماد پذیری کمتری دارند. مثلا دیتابیس Redis از Durability پیروی نمیکند و ACID نیست.
👍91
🔈🤑 تخفیف 40% کلیه پکیج های آموزشی برنامه نویس به مناسبت نوروز 1401

کد تخفیف: 1401
تاریخ انقضای کد تخفیف فوق: جمعه، 12 فروردین 1401، ساعت 12 شب

مشاهده فهرست پکیج های آموزشی:
https://barnamenevis.net/Home/AllCourses

لازم به ذکر است، آموزش های ارائه شده در پکیج های آموزش ASP.NET Core، بدون هیچ تغییری در ASP.NET Core 6.0 نیز قابل استفاده است.

جهت استفاده از کد تخفیف فوق میبایست آدرس ایمیل و شماره موبایل کاربر در حساب کاربری متقاضی کامل شده باشد.
👍1
برنامه نویس pinned «🔈🤑 تخفیف 40% کلیه پکیج های آموزشی برنامه نویس به مناسبت نوروز 1401 کد تخفیف: 1401 تاریخ انقضای کد تخفیف فوق: جمعه، 12 فروردین 1401، ساعت 12 شب مشاهده فهرست پکیج های آموزشی: https://barnamenevis.net/Home/AllCourses لازم به ذکر است، آموزش های ارائه شده در…»
Forwarded from کدهک
اولین نسخه WCF Core منتشر شد.

ابزار WCF با روی کار آمدن دات نت Core از پشتیبانی مایکروسافت خارج شد و تیم دات نت تصمیم گرفت دیگر این پروژه را به نسخه جدید منتقل نکند. اما همزمان سورس آن در گیتهاب قرار گرفت.

مایکروسافت به طور غیر مستقیم در توسعه و پورت کردن WCF به دات نت Core نقش داشته اما بخش اصلی کار توسط توسعه دهندگان مستقل انجام شده است.

حالا تیم توسعه WCF Core اعلام کرده است که نسخه اول این کتابخانه به طور رسمی برای دات نت Core منتشر شده است.

https://github.com/CoreWCF/CoreWCF
1
🔔 فرصت ویژه کار در اتحادیه اروپا برای برنامه نویس ها + امکان مهاجرت شغلی

دریافت ویزای کار اتحادیه اروپا برای برنامه نویس ها

امکان کسب پذیرش شغلی از تمام کشورهای عضو اتحادیه اروپا

عقد قرارداد شغلی قبل از عزیمت به مقصد

امکان جابجایی و سکونت به همراه کلیه اعضای درجه یک خانواده

کسب درآمد بالا به یورو

امکان ارائه آموزش به افراد مبتدی و آماده کردن آنها برای مصاحبه و پذیرش

توضیح: مرتبط بودن رشته تحصیلی با علوم IT الزامی نیست. موضوع مهم برای جذب شدن، داشتن مهارت کافی برای ایفای نقش در موقعیت شغلی مورد نظر می باشد.


☎️ مشاوره و راهنمایی:

@Mehdi_Keramati
کانال اطلاع رسانی:
@barnamenevis_net
👍91
🔔 آموزش + مهاجرت شغلی برنامه نویس ها با کمترین هزینه

🔹 دریافت ویزای کاری از تمام کشورهای اتحادیه اروپا + امکان دریافت شهروندی

🔹 آموزش جامع زبان + تخصص های مورد نیاز کارفرمایان اروپایی جهت مهاجرت شغلی

دریافت مشاوره در تلگرام


کانال تلگرام:
@barnamenevis_net
👍43🔥3
لیست مطالب کانال (این لیست بتدریج به روزتر خواهد شد):

🔹پردرآمدترین کشورها برای مهندسین نرم افزار و برنامه نویس ها در سال 2023

🔹میانگین حقوق مهندس نرم افزار در سراسر جهان در سال 2023

🔹میانگین حقوق مهندس نرم افزار در اروپای شرقی و غربی در سال 2023

🔹نرخ حقوق برنامه نویس C#‎ در ایالات متحده، اروپا و استرالیا در سال 2023

🔹نرخ حقوق برنامه نویس PHP در ایالات متحده، اروپا و استرالیا در سال 2023

🔹نرخ حقوق برنامه نویس دات نت در ایالات متحده، اروپا و استرالیا در سال 2023

🔹نرخ حقوق برنامه نویس React در ایالات متحده، کانادا و استرالیا در سال 2023

🔹نرخ حقوق برنامه نویس پایتون در ایالات متحده، اروپا و استرالیا در سال 2023

🔹نرخ حقوق برنامه نویس جاوا در ایالات متحده، اروپا و استرالیا در سال 2023

🔹نرخ حقوق برنامه نویس جاوا اسکریپت در ایالات متحده، اروپا و استرالیا در سال 2023

🔹نرخ حقوق برنامه نویس های C++‎ در ایالات متحده، اروپا و استرالیا در سال 2023

🔹میانگین حقوق برنامه نویس بر حسب شهرهای مختلف دنیا در سال 2023


لینک مشاوره در تلگرام

کانال برنامه نویسی و مهاجرت

کانال برنامه نویس
👍4🤩21
دوره آموزش میکروسرویس ها در دات نت 8 (حضوری/آنلاین) با 20% تخفیف

در این دوره آموزشی، چگونگی ایجاد میکروسرویس‌ها با استفاده از پلتفرم ‎.NET و فناوری‌های روز را خواهید آموخت. از جمله موارد آموزش داده شده می‌توان به استفاده از موارد زیر اشاره کرد:
• Docker
ASP.NET Web API
• RabbitMQ
• gRPC
• Ocelot API Gateway
• MongoDB
• Redis
• PostgreSQL
• SQL Server
• Dapper
• Entity Framework Core
• CQRS
• Clean Architecture

این دوره به شما امکان می‌دهد تا با جزئیات کامل، مفاهیم معماری میکروسرویس و پیاده‌سازی آن در ‎.NET را فرا بگیرید. در طول دوره، می‌توانید ماژول‌های تجارت الکترونیکی را بر روی میکروسرویس‌های مختلف پیاده‌سازی کرده و از پایگاه‌های داده NoSQL و رابطه‌ای استفاده نمایید. همچنین برای برقراری ارتباط بین میکروسرویس‌ها از MassTransit ، RabbitMQ و gRPC در این دوره استفاده خواهد شد.

در پایان دوره، شما نه تنها قادر به ایجاد میکروسرویس‌ها خواهید بود، بلکه مهارت‌های نوشتن کد با کیفیت و پیاده‌سازی اصول SOLID را نیز خواهید داشت.

شروع دوره: 3 مهر 1402

مشاوره: @Mehdi_Keramati

https://barnamenevis.net/Home/Course/20
👍103🤩1
خدمات ثبت شركت، تمديد شركت و تعدیل شرکت
صدور اجاره نامه، گواهینامه
افتتاح حساب بانكى
ثبت كد مالياتى
ويزا توريستى، گلدن ویزا، ویزای شینگن، ویزا عربستان، عمان، قطر
بليط
اقامت خانواده
ترجمه و تاييد مدارک
مشاوره و خريد
ارتباط و اطلاعات بیشتر :
https://wa.me/+971504607050
👍31🤩1
معرفی کتابخانه Multi-Calendar DatePicker
در یک پروژه در ASP.NET Core نیاز به یک کتابخانه DatePicker داشتم که علاوه بر تاریخ شمسی از تاریخ میلادی و قمری نیز پشتیبانی کند. کتابخانه های موجود مانند MD.BootstrapPersianDateTimePicker (با پشتیبانی از تاریخ شمسی و میلادی) و JalaliDatePicker (فقط پشتیبانی از تاریخ شمسی) نه به صورت کامل از استایل ها و تم های Bootstrap پشتیبانی می کنند و نه هر سه تقویم مورد نیز پروژه را پوشش می دادند. بنابراین جهت توسعه DatePicker مورد نظر اقدام کردم.


ویژگی‌های کلیدی
• پشتیبانی از ۳ سیستم تقویمی:
• تقویم میلادی، محدوده ۱۹۰۰-۲۱۰۰
• تقویم شمسی/جلالی، محدوده ۱۲۰۰-۱۵۰۰ با الگوریتم کبیسه تأیید شده
• تقویم هجری - محدوده ۱۰۰۰-۲۰۰۰ با الگوریتم بهبود یافته
• Time Picker با فرمت ۱۲ و ۲۴ ساعته
• پشتیبانی از حالت Dark Mode
• پشتیبانی از حالت LTR و RTL
• امکان تایپ تاریخ در Input ها و همزمان سازی تقویم در DatePicker با تاریخ وارد شده
• امکان مشخص کردن محدوده تاریخ و غیرفعال کردن تاریخ های خارج از آن محدوده
• پشتیبانی از حالت Responsive و نمایش صحیح در موبایل و تبلت
• اعتبارسنجی مقادیر وارد شده در Input ها با تایم اوت قابل تنظیم
• امکان استفاده از API در Javascript
• قابلیت پیکربندی DatePicker از طریق Data Attribute های المنت در HTML

دمو پروژه:
https://delphiassistant.github.io/MultiCalendarDatePicker

لینک پروژه در گیت هاب:
https://github.com/delphiassistant/MultiCalendarDatePicker

لازم به ذکر است که در هنگام برنامه نویسی این پروژه متوجه شدم ورژن شمسی و قمری کتابخانه Moment.js که معمولا در چنین کاربردهایی استفاده می شود و در مخزن های عمومی مانند NPM موجود است باگهایی مانند عدم محاسبه صحیح تاریخ ها در سالهای کبیسه، درست کار نکردن تابع هایی مانند getDay و ... دارند. نسخه اصلاح شده کتابخانه های فوق در فولدر moment.js-fixes مخزن گیت هاب فوق موجود است و باگهای فوق الذکر در ورژن موجود در فولدر فوق رفع شده است.

اگر در استفاده از کتابخانه فوق به باگ خاصی برخوردید یا پیشنهاد خاصی برای افزودن امکانات به این کتابخانه دارید خوشحالی می شوم بشنوم.

#WebDevelopment #OpenSource #JavaScript #jQuery #DatePicker #PersianCalendar #HijriCalendar #GregorianCalendar #RTL #Internationalization #i18n
10👍2🔥1🤩1
مسیج باکس فارسی در Windows Forms و WPF تحت ‎.Net Core

صورت مسئله:
قدیم ها وقتی تو ‎.Net Framework برنامه های دسکتاپ می نوشتیم برای نمایش پیام های فارسی بجای MessageBox.Show از یک کلاس معادل بنام RtlMessageBox (که نمی دونم کی ساخته بودش، از اینترنت پیدا کرده بودم) استفاده می کردم.
اخیرا سعی کردم تو یک پروژه WPF تحت ‎.Net Core از اون کلاس استفاده کنم، اما متوجه شدم بخاطر عوض شدن مکانیسم های Hook در دات نت کور پیام های دکمه های Yes و No و OK و ... دیگه فارسی نمیشه، همچنین اون کلاس بخاطر استفاده از API های قدیمی ویندوز، تو Windows 10 و 11 همچنان دیالوگ رو با استفاده از تم قدیمی ویندوز (شبیه ویندوز 2000) نشون میده.

راه حل:
برای حل مشکلات فوق برای نوشتن ورژن سازگار با ویندوزهای جدید و سازگاری کامل با دات نت کور کلاس فوق اقدام کردم. نتیجه کار شد یک ورژن جدید از RtlMessageBox که قابلیت های زیر رو داره:
• سازگاری کامل با نحوه فراخوانی MessageBox.Show ، بنابراین کافیه تو کل برنامه تون عبارت MessageBox رو با RtlMessageBox جستجو و جایگزین کنید.
• امکان مشخص کردن فونت سفارشی فارسی و مشخص کردن سایز فونت. این فونت در دکمه ها و متن پیام استفاده خواهد شد. این قابلیت در کلاس اصلی MessageBox وجود نداره.
• امکان مشخص کردن عنوان دلخواه برای دکمه های دیالوگ باکس.
• نمایش راست به چپ دیالوگ بدون بی ریخت به نظر رسیدن رابط کاربری.
• اعمال شدن خودکار Theme برنامه روی دیالوگ باکس در WPF.
• استفاده از آیکون های مدرن ویندوز.
• قابل استفاده در دات نت کور ورژن 6 تا 9.

نکات:
• ورژن قابل استفاده در Windows Forms و WPF بصورت جداگانه موجود است.
• پکیج های Nuget این کتابخانه ها موجود است (کافیه تو Nuget تو ویژوال استودیو عبارت Barnamenevis.Net.RtlMessageBox رو جستجو کنید). پکیج های برای دات نت کور 6 تا 9 موجوده، پشتیبانی از دات نت کور 10 هم بعد از انتشارش اضافه خواهد شد.
• راهنمای کامل استفاده در صفحه گیت هاب و پروژه های دمو موجود است.

آدرس ریپو در گیت هاب:
https://github.com/delphiassistant/Barnamenevis.Net.Tools

آدرس پکیج نوگت برای WPF:
https://www.nuget.org/packages/Barnamenevis.Net.RtlMessageBox.Wpf

آدرس پکیج نوگت برای Windows Forms:
https://www.nuget.org/packages/Barnamenevis.Net.RtlMessageBox.WindowsForms

خوشحال می شوم نظرات تون درباره این مطلب رو بشنوم. اگر هم مشکلی در عملکرد اینها مشاهده کردید یا درخواست افزودن قابلیت به این کتابخانه ها دارید اطلاع دهید.
👍54🤩2
معرفی کتابخانه Flyout Menu

در طراحی رابط کاربری، همیشه ساخت یک منوی چندسطحی زیبا و در عین حال کاربردی، چالشی تکراری بوده است. منویی که هم روی دسکتاپ روان باز شود، هم روی موبایل درست کار کند، و در عین حال با زبان‌های راست‌به‌چپ هم مشکلی نداشته باشد.
مدتی پیش به دنبال راه‌حلی سبک و حرفه‌ای برای این موضوع بودم و نتیجه‌ی آن، کتابخانه‌ی Multi-Level Flyout Menu شد.

این کتابخانه‌ی متن‌باز با جاوااسکریپت و Bootstrap 5 کار می‌کند و به شما اجازه می‌دهد منوهایی با بی‌نهایت سطح زیرمنو بسازید؛ منوهایی که بسته به زبان صفحه، خودشان تصمیم می‌گیرند به چپ باز شوند یا به راست، و روی دستگاه‌های لمسی یا دسکتاپ، رفتار متفاوت و هوشمندی دارند.

یکی از جذاب‌ترین بخش‌های پروژه برای من، پشتیبانی کامل از حالت تاریک بود. در هر مرورگر و سیستمی که کاربر تم تیره فعال کرده باشد، منو به‌صورت خودکار تطبیق پیدا می‌کند و حتی رنگ‌ها را از طریق CSS Variables می‌توان تغییر داد. هیچ لرزشی در تغییر تم دیده نمی‌شود و تجربه‌ای نرم و چشم‌نواز ارائه می‌دهد.

از نظر پیاده‌سازی، کار ساده‌تر از آن چیزی است که فکرش را کنید. تنها با چند خط کد و یک ساختار ساده‌ی JSON می‌توانید یک منوی کامل داشته باشید. به‌عنوان نمونه، چند سطر زیر کافی است تا یک دسته‌بندی الکترونیک با زیرمنوهای لپ‌تاپ و موبایل بسازید.

برای صفحات فارسی، تنها کافی است تگ والد را با ویژگی dir="rtl" بنویسید و تمام. منو خودش جهت باز شدن را تشخیص می‌دهد.

در توسعه این پروژه به دسترسی‌پذیری هم توجه ویژه‌ای شده است. تمام ناوبری‌ها با کیبورد انجام می‌شود، رنگ‌ها نسبت کنتراست استاندارد دارند و تمام المان‌ها با Screen Readerها سازگارند. در اندازه‌های کوچک‌تر از ۷۶۸ پیکسل هم منو به‌صورت خودکار به حالت آکاردئون تبدیل می‌شود تا روی موبایل تجربه‌ی بهتری ارائه دهد.

در عین سادگی، Multi-Level Flyout Menu گزینه‌های سفارشی‌سازی زیادی دارد. از تم‌های آماده مثل Dracula و Nord گرفته تا رنگ‌های دلخواه خودتان که با چند خط CSS می‌توانید تعریف کنید. همه چیز ماژولار، سبک و سریع است؛ تنها ۸ کیلوبایت حجم برای چیزی که به‌سادگی در هر پروژه‌ای جا می‌گیرد.

اگر در حال ساخت یک پنل مدیریتی، فروشگاه آنلاین یا داشبورد تحلیلی هستید، احتمالاً این کتابخانه همان چیزی است که همیشه دنبالش بودید. با پشتیبانی کامل از RTL، Dark Mode، و رعایت استانداردهای WCAG 2.1، دیگر لازم نیست نگران جزئیات ریز منوها باشید.

پروژه روی گیت‌هاب در دسترس است و مستندات کامل فارسی و انگلیسی به همراه مثال‌های آماده در آن وجود دارد.
اگر علاقه‌مند بودید، خوشحال می‌شوم بازخوردتان را در گیت‌هاب یا شبکه‌های اجتماعی بخوانم — اینکه چطور از آن استفاده کردید و چه ویژگی‌هایی را دوست دارید به نسخه‌های بعدی اضافه شود.

آیا تا به حال در پروژه‌ای مجبور شده‌اید یک منوی چندسطحی از صفر بسازید؟
اگر بله، فکر می‌کنید این کتابخانه چه تغییری در روند کارتان ایجاد می‌کند؟

لینک پروژه در گیت هاب:
https://github.com/delphiassistant/FlyoutMenu

#JavaScript
#Bootstrap5
#RTL
#DarkMode
#UI
#UX
#توسعه_وب
#جاوااسکریپت
#رابط_کاربری
#کتابخانه_جاوااسکریپت
👍61🔥1