Forwarded from DotNetZoom (محمد جواد ابراهیمی)
🔰 معرفی SDK سیستم کنترل دسترسی پیشرفته برای ASP MVC
توسط این SDK میتونین دسترسی به "هر اکشن وکنترولر" پروژه تون رو به صورت "کاملا داینامیک" کنترل کنین.
در این روش طرز کار به این صورت هست که به هنگام اجرای برنامه، تمام کنترولر ها و اکشن های پروژه توسط Reflection جستجو و پیدا میشن و سپس مدیر سیستم میتونه مشخص کنه که هر Role ایی صرفا به کدوم اکشن ها دسترسی داره.
همچنین میتونین به هنگام تولید ActionLink های برنامه (مثلا برای منو ها) دسترسی شخص رو چک کنین و فقط ActionLink هایی که شخص بهشون دسترسی داره رو تولید کرده و توی منو ها نمایش بدین، که البته به لطف این SDK این کار خیلی راحت تر شده.
از مزایای این SDK میشه به موارد زیر اشاره کرد :
✅ پیاده سازی کامل بر اساس امکانات Identity
✅ امکان کنترل دسترسی برای حفاظت از هر کنترلر/اکشن
✅ پیاده سازی یک Controller به همراه UI شکیل جهت مدیریت Role ها و کاربران
✅ پیاده سازی یک Controller به همراه UI شکیل جهت مدیریت دسترسی اکشن ها
✅ افزودن Html Helper ای به نام ActionLinkPermission جهت تولید ActionLink ها بر اساس دسترسی های کاربر
✅ پیاده سازی مکانیسم رمز یک بار مصرف (OTP) با استفاده از ارسال پیامک
🔹 بدون شک این روش یکی از بهترین و کاملترین معماری هایی هست که برای سطح دست دسترسی وجود داره.
به شخصه چندین سال پیش از این معماری برای سطح دسترسی توی یکی از پروژه هام که اتفاقا بزرگ هم بود استفاده کردم و بسیار راضی کننده بود
🔸 آقای مهدی کرامتی، نویسنده این SDK که از مدرسین با سابقه و با تجربه هستند، یه دوره آموزشی هم برای استفاده از این معماری تهیه کردند
من شخصا دوره شون رو ندیدم و از کیفیتش مطلع نیستم ولی نکته ای که توجه ام رو جلب کرد اینه که معماری ایی که در این SDK استفاده شده یک معماری پیشرفته و حرفه ای هست و مطمئنا تدریس اش کار هر کسی نیست، پس احتمالا کیفیت دوره هم بالاست (از دمو دوره هم میتونین از کیفیتش اطمینان حاصل کنین)
🔹 پیشنهاد هم میکنم کدش رو بررسی کنین، ایده های خوبی بهتون میده و خیلی آموزنده و مفید هست
سورس کامل پروژه در گیتهاب :
https://github.com/delphiassistant/permission_control_system
دوره آموزش کنترل سطح دسترسی پیشرفته
https://barnamenevis.net/Home/Course/14
⭐️ در آخر، به شخصه خوشم اومد از این پروژه و به ریپازیتوریش Star دادم، پس شما هم اگه خوشتون اومد حتما Star بدین بهش.
حمایت از یک محصول خوب، وظیفه انسانی و اخلاقی ماست. این ما هستیم که با حمایت از یک محصول خوب، و برعکسش با طرد کردن یک محصول بد باید مرز بین این سیاهی و سفیدی ها رو شفاف کنیم✌️
________________
@IranAspMvc
توسط این SDK میتونین دسترسی به "هر اکشن وکنترولر" پروژه تون رو به صورت "کاملا داینامیک" کنترل کنین.
در این روش طرز کار به این صورت هست که به هنگام اجرای برنامه، تمام کنترولر ها و اکشن های پروژه توسط Reflection جستجو و پیدا میشن و سپس مدیر سیستم میتونه مشخص کنه که هر Role ایی صرفا به کدوم اکشن ها دسترسی داره.
همچنین میتونین به هنگام تولید ActionLink های برنامه (مثلا برای منو ها) دسترسی شخص رو چک کنین و فقط ActionLink هایی که شخص بهشون دسترسی داره رو تولید کرده و توی منو ها نمایش بدین، که البته به لطف این SDK این کار خیلی راحت تر شده.
از مزایای این SDK میشه به موارد زیر اشاره کرد :
✅ پیاده سازی کامل بر اساس امکانات Identity
✅ امکان کنترل دسترسی برای حفاظت از هر کنترلر/اکشن
✅ پیاده سازی یک Controller به همراه UI شکیل جهت مدیریت Role ها و کاربران
✅ پیاده سازی یک Controller به همراه UI شکیل جهت مدیریت دسترسی اکشن ها
✅ افزودن Html Helper ای به نام ActionLinkPermission جهت تولید ActionLink ها بر اساس دسترسی های کاربر
✅ پیاده سازی مکانیسم رمز یک بار مصرف (OTP) با استفاده از ارسال پیامک
🔹 بدون شک این روش یکی از بهترین و کاملترین معماری هایی هست که برای سطح دست دسترسی وجود داره.
به شخصه چندین سال پیش از این معماری برای سطح دسترسی توی یکی از پروژه هام که اتفاقا بزرگ هم بود استفاده کردم و بسیار راضی کننده بود
🔸 آقای مهدی کرامتی، نویسنده این SDK که از مدرسین با سابقه و با تجربه هستند، یه دوره آموزشی هم برای استفاده از این معماری تهیه کردند
من شخصا دوره شون رو ندیدم و از کیفیتش مطلع نیستم ولی نکته ای که توجه ام رو جلب کرد اینه که معماری ایی که در این SDK استفاده شده یک معماری پیشرفته و حرفه ای هست و مطمئنا تدریس اش کار هر کسی نیست، پس احتمالا کیفیت دوره هم بالاست (از دمو دوره هم میتونین از کیفیتش اطمینان حاصل کنین)
🔹 پیشنهاد هم میکنم کدش رو بررسی کنین، ایده های خوبی بهتون میده و خیلی آموزنده و مفید هست
سورس کامل پروژه در گیتهاب :
https://github.com/delphiassistant/permission_control_system
دوره آموزش کنترل سطح دسترسی پیشرفته
https://barnamenevis.net/Home/Course/14
⭐️ در آخر، به شخصه خوشم اومد از این پروژه و به ریپازیتوریش Star دادم، پس شما هم اگه خوشتون اومد حتما Star بدین بهش.
حمایت از یک محصول خوب، وظیفه انسانی و اخلاقی ماست. این ما هستیم که با حمایت از یک محصول خوب، و برعکسش با طرد کردن یک محصول بد باید مرز بین این سیاهی و سفیدی ها رو شفاف کنیم✌️
________________
@IranAspMvc
GitHub
GitHub - delphiassistant/permission_control_system: This is an SDK which helps you to specify which user group (role) members have…
This is an SDK which helps you to specify which user group (role) members have access to which actions in controllers. - GitHub - delphiassistant/permission_control_system: This is an SDK which he...
تصاویری از نسخه ی جدید Edge درز کرد.
این نسخه روی مرورگر سورس باز Chromium پیاده شده و از افزونه های کروم پشتیبانی می کند.
https://tinyurl.com/y3tg3dyg
این نسخه روی مرورگر سورس باز Chromium پیاده شده و از افزونه های کروم پشتیبانی می کند.
https://tinyurl.com/y3tg3dyg
دوره کامل آموزش ASP.NET Core
فروش مجموعه ی 28 ساعت آموزش تخصصی از مقدماتی تا پیشرفته به همراه یک سال اشتراک ویژه کدهک
فروش ویژه نوروزی
کد تخفیف 50 درصدی : bahar
https://tinyurl.com/bahar98
فروش مجموعه ی 28 ساعت آموزش تخصصی از مقدماتی تا پیشرفته به همراه یک سال اشتراک ویژه کدهک
فروش ویژه نوروزی
کد تخفیف 50 درصدی : bahar
https://tinyurl.com/bahar98
کد تخفیف تا 24 ساعت دیگر تمدید شد.
دوره کامل آموزش ASP.NET Core
فروش مجموعه ی 28 ساعت آموزش تخصصی از مقدماتی تا پیشرفته به همراه یک سال اشتراک ویژه کدهک
فروش ویژه نوروزی
کد تخفیف 50 درصدی : bahar
https://tinyurl.com/bahar98
دوره کامل آموزش ASP.NET Core
فروش مجموعه ی 28 ساعت آموزش تخصصی از مقدماتی تا پیشرفته به همراه یک سال اشتراک ویژه کدهک
فروش ویژه نوروزی
کد تخفیف 50 درصدی : bahar
https://tinyurl.com/bahar98
به کلاسی Anemic گفته میشود که رفتار ندارد و فقط برای نگه داری پروپرتی استفاده میشود.
کلاس Rich دارای رفتار است و خودش فرآیندهای خودش را مدیریت میکند.
بسیاری Anemic را یک Anti-Pattern حساب می کنند و آن را خلاف مفاهیم OOP می دانند. با این وجود در بسیاری از پروژه های وب مورد استفاده قرار میگیرد و مزایای زیادی هم دارد.
کلاس Rich دارای رفتار است و خودش فرآیندهای خودش را مدیریت میکند.
بسیاری Anemic را یک Anti-Pattern حساب می کنند و آن را خلاف مفاهیم OOP می دانند. با این وجود در بسیاری از پروژه های وب مورد استفاده قرار میگیرد و مزایای زیادی هم دارد.
شما موافق استفاده از کدام کلاس در پروژه های ASP NET Core هستید؟
Anonymous Poll
24%
کلاس Anemic
12%
کلاس Rich
65%
ترکیبی از Rich و Anemic
کد تخفیف تا فردا تمدید شد.
دوره کامل آموزش ASP NET Core
فروش مجموعه ی 28 ساعت آموزش تخصصی از مقدماتی تا پیشرفته به همراه یک سال اشتراک ویژه کدهک جهت دسترسی رایگان به آموزشهای بعدی
فروش ویژه نوروزی
کد تخفیف 45 درصدی : bahar
https://tinyurl.com/bahar98
دوره کامل آموزش ASP NET Core
فروش مجموعه ی 28 ساعت آموزش تخصصی از مقدماتی تا پیشرفته به همراه یک سال اشتراک ویژه کدهک جهت دسترسی رایگان به آموزشهای بعدی
فروش ویژه نوروزی
کد تخفیف 45 درصدی : bahar
https://tinyurl.com/bahar98
وقتی سایت شما ترافیک بالایی دارد دو روش کلی برای بزرگسازی یا Scaling دارید.
عمودی : سرور قویتر تهیه کنید.
افقی : تعداد سرورها را بیشتر کنید.
بزرگسازی عمودی محدودیت دارد و از یک جایی به بعد دیگر نمیشود سخت افزار را ارتقا داد.
اما بزرگسازی افقی روشی است که در حال حاضر برای توسعه ی بزرگترین سرویس های آنلاین مورد استفاده قرار می گیرد.
عمودی : سرور قویتر تهیه کنید.
افقی : تعداد سرورها را بیشتر کنید.
بزرگسازی عمودی محدودیت دارد و از یک جایی به بعد دیگر نمیشود سخت افزار را ارتقا داد.
اما بزرگسازی افقی روشی است که در حال حاضر برای توسعه ی بزرگترین سرویس های آنلاین مورد استفاده قرار می گیرد.
در این ویدیو روشهای ثبت اطلاعات به صورت گروهی و لیستی را در ASP NET Core بررسی می کنیم و با Model Binding به روش Collection آشنا می شویم.
https://tinyurl.com/y3h88wa3
https://tinyurl.com/y3h88wa3
به نظر شما در #C کدام روش سریعتر است؟
Final Results
47%
حلقه با for
38%
حلقه با foreach
15%
فرقی ندارند
منظور از Circular Dependecy این است که کلاس A به کلاس B وابسته باشد و کلاس B هم به کلاس A وابسته باشد.
این وابستگی معمولا در تزریق وابستگی ایجاد میشود و یک باگ است. این باگ ممکن است در زمان کامپایل تشخیص داده نشود و در زمان اجرا برنامه را با خطا روبرو کند.
برای جلوگیری از این نوع باگ باید وابستگی ها در پروژه در جهت ثابت بین یک لایه با لایه های قبل ایجاد شوند.
این وابستگی معمولا در تزریق وابستگی ایجاد میشود و یک باگ است. این باگ ممکن است در زمان کامپایل تشخیص داده نشود و در زمان اجرا برنامه را با خطا روبرو کند.
برای جلوگیری از این نوع باگ باید وابستگی ها در پروژه در جهت ثابت بین یک لایه با لایه های قبل ایجاد شوند.