سلام.
با یک سورس جالب اومدم، همونطور که قولش رو داده بودم بهتون نمونههایی میفرستم که با مطالعهی سورس با نحوهی کارکرد معماری بیشتر آشنا بشید.
یک بازی ساختم، بازی Avalon رو پیاده سازی کردم.
این سورس شامل بکند (سی شارپ Asp Core و EF Core) هست و شامل فرانت Maui که کراس پلتفرمه و میتونید روی اندروید و IOS و ویندوز اجراش کنید.
هم بکند از زیرساخت معماری Easy Microservices داره استفاده میکنه و هم فرانت به صورت میکرو کامپوننت توسعه داده شده. برای مثال شما توی فرانت رابط کاربری صفحات لاگین و ثبت نام رو نمیبینید و اینها به صورت یک کامپوننت به سورس اضافه شدن و مورد استفاده قرار گرفتن.
زیرساخت بکند از میکروسرویسهای Authentication، Identity، WhiteLabels، Content و Avalon استفاده کرده. (اطلاعات نقش ها و دسترسی های یوزرها در Authentication مدیریت شده.)
سورس:
https://github.com/Ali-YousefiTelori/AvalonGame
@easymicroservice
@easymicroservices
@csharptips
با یک سورس جالب اومدم، همونطور که قولش رو داده بودم بهتون نمونههایی میفرستم که با مطالعهی سورس با نحوهی کارکرد معماری بیشتر آشنا بشید.
یک بازی ساختم، بازی Avalon رو پیاده سازی کردم.
این سورس شامل بکند (سی شارپ Asp Core و EF Core) هست و شامل فرانت Maui که کراس پلتفرمه و میتونید روی اندروید و IOS و ویندوز اجراش کنید.
هم بکند از زیرساخت معماری Easy Microservices داره استفاده میکنه و هم فرانت به صورت میکرو کامپوننت توسعه داده شده. برای مثال شما توی فرانت رابط کاربری صفحات لاگین و ثبت نام رو نمیبینید و اینها به صورت یک کامپوننت به سورس اضافه شدن و مورد استفاده قرار گرفتن.
زیرساخت بکند از میکروسرویسهای Authentication، Identity، WhiteLabels، Content و Avalon استفاده کرده. (اطلاعات نقش ها و دسترسی های یوزرها در Authentication مدیریت شده.)
سورس:
https://github.com/Ali-YousefiTelori/AvalonGame
@easymicroservice
@easymicroservices
@csharptips
❤5👍5⚡1🔥1
دارم روی یک زیرساخت عجیب کار میکنم و توی تستهای اولیهش هم جواب گرفتم.
به نظر میاد هنوز بحث بین اینکه کدوم معماری رو انتخاب کنیم داغه نه؟ مونولیت؟ ماژولار یا میکروسرویس یا ماکروسرویس؟
کاری که توی Easy Microservices کردیم اینطوری شد که دیگه مهم نیست کدومش رو انتخاب میکنی، هر زمان که بخوای میتونی روی معماری خودت با کمترین تغییرات سوییچ کنی!
چطوری کار میکنه؟
به جای اینکه از مونولیت و ماژولار بریم سمت مایکروسرویس، برعکس عمل کردیم. ابتدا مایکروسرویس ساختیم حالا زیرساختهای اصلی اونو عنوان ماژول بهش دادیم. اونوقت به عنوان پکیج اینارو میتونید در یک پروژه ی مونولیت نصب کنید با هم تلفیقشون کنید و معماری رو تغییر بدید. هم میتونید ماژولاری داشته باشید که دیتابیس هاش جدا باشن هم میتونید دیتابیس هارو یکی کنید.
@easymicroservice
@easymicroservices
@csharptips
#microservice
#monolith
#modular
به نظر میاد هنوز بحث بین اینکه کدوم معماری رو انتخاب کنیم داغه نه؟ مونولیت؟ ماژولار یا میکروسرویس یا ماکروسرویس؟
کاری که توی Easy Microservices کردیم اینطوری شد که دیگه مهم نیست کدومش رو انتخاب میکنی، هر زمان که بخوای میتونی روی معماری خودت با کمترین تغییرات سوییچ کنی!
چطوری کار میکنه؟
به جای اینکه از مونولیت و ماژولار بریم سمت مایکروسرویس، برعکس عمل کردیم. ابتدا مایکروسرویس ساختیم حالا زیرساختهای اصلی اونو عنوان ماژول بهش دادیم. اونوقت به عنوان پکیج اینارو میتونید در یک پروژه ی مونولیت نصب کنید با هم تلفیقشون کنید و معماری رو تغییر بدید. هم میتونید ماژولاری داشته باشید که دیتابیس هاش جدا باشن هم میتونید دیتابیس هارو یکی کنید.
@easymicroservice
@easymicroservices
@csharptips
#microservice
#monolith
#modular
❤2
چطوری؟
ما قبلا مفهوم ریپازیتوری و Command Query رو حذف کردیم بنابراین نگران کانفیلیت بین Context ها هم نمیتونیم باشیم!
زیرساخت های دیتابیسی طوری ساخته شدن که Schema از Relational (برای جزئیات بیشتر سوال کنید) تفکیک شده یعنی علاوه بر اینکه سوییچ بین دیتابیس NoSql و SQL رو براتون آسون میکنه، استفاده از کانفیگهای پیشفرض برای اینکه در یک ContextDb دیگه باهم کار کنن هم وجود داره. برای همین شما میتونید یک پروژه مایکروسرویس رو تبدیل به مونولیت کنید.
چالش ها:
1.دیتابیس ها در حالتی که یکی باشن باید مایگرشن جدا بخورن. در حال حاضر انتظار نداریم از مایگرشن های میکروسرویس ها بتونیم توی مونولیت استفاده کنیم، اما تمامی ساختارهای دیتابیس تا جای ممکن دست نمیخورن.
2.اگر کاستوم ریلیشن داشته باشید باید بیشتر از دو خط کد بزنید تا معماری رو تبدیل کنید! 😳😂
داریم سعی میکنیم از هلو هم راحت تر بره تو گلو!
حمایت.
ما قبلا مفهوم ریپازیتوری و Command Query رو حذف کردیم بنابراین نگران کانفیلیت بین Context ها هم نمیتونیم باشیم!
زیرساخت های دیتابیسی طوری ساخته شدن که Schema از Relational (برای جزئیات بیشتر سوال کنید) تفکیک شده یعنی علاوه بر اینکه سوییچ بین دیتابیس NoSql و SQL رو براتون آسون میکنه، استفاده از کانفیگهای پیشفرض برای اینکه در یک ContextDb دیگه باهم کار کنن هم وجود داره. برای همین شما میتونید یک پروژه مایکروسرویس رو تبدیل به مونولیت کنید.
چالش ها:
1.دیتابیس ها در حالتی که یکی باشن باید مایگرشن جدا بخورن. در حال حاضر انتظار نداریم از مایگرشن های میکروسرویس ها بتونیم توی مونولیت استفاده کنیم، اما تمامی ساختارهای دیتابیس تا جای ممکن دست نمیخورن.
2.اگر کاستوم ریلیشن داشته باشید باید بیشتر از دو خط کد بزنید تا معماری رو تبدیل کنید! 😳😂
داریم سعی میکنیم از هلو هم راحت تر بره تو گلو!
حمایت.
❤4
این سورس به شما کمک میکنه تا آی پی هایی که درخواست اتصال به سرور شمارو میدن تا بالاخره بتونن لاگین بشن و سرور شما هک بشه رو بلاک میکنه.
اگر به event log های سیستم عاملتون برید شاهد درخواست هایی هستید که به سیستم عامل شما زده میشه ولی با خطای اشتباه بودن نام کاربری و رمز عبور مواجه میشه.
اگر سرور شما قبلا هک شده باشه رمز عبور شما توسط این سرور ها در دیتابیسشون ذخیره شده و استفاده مجدد از اون رمز عبور باعث هک مجدد سیستم عامل میشه.
فقط کافیه Role ای که توی فایروال سیستم عاملتون گذاشتید رو به این ابزار بدید تا تمامی آی پی هایی که به شما درخواست میدن رو بلاک کنه و بعدش دیگه این درخواست ها رو در Event Log ویندوز نخواهی دید.
سورس: سی شارپ
سیستم عامل: ویندوز
https://github.com/Ali-YousefiTelori/Firewall-Ip-Blocker
@easymicroservice
@easymicroservices
@csharptips
اگر به event log های سیستم عاملتون برید شاهد درخواست هایی هستید که به سیستم عامل شما زده میشه ولی با خطای اشتباه بودن نام کاربری و رمز عبور مواجه میشه.
اگر سرور شما قبلا هک شده باشه رمز عبور شما توسط این سرور ها در دیتابیسشون ذخیره شده و استفاده مجدد از اون رمز عبور باعث هک مجدد سیستم عامل میشه.
فقط کافیه Role ای که توی فایروال سیستم عاملتون گذاشتید رو به این ابزار بدید تا تمامی آی پی هایی که به شما درخواست میدن رو بلاک کنه و بعدش دیگه این درخواست ها رو در Event Log ویندوز نخواهی دید.
سورس: سی شارپ
سیستم عامل: ویندوز
https://github.com/Ali-YousefiTelori/Firewall-Ip-Blocker
@easymicroservice
@easymicroservices
@csharptips
GitHub
GitHub - Ali-YousefiTelori/Firewall-Ip-Blocker
Contribute to Ali-YousefiTelori/Firewall-Ip-Blocker development by creating an account on GitHub.
Easy Microservices
Photo
به حریم خصوصی کاربرانتون اهمیت بدید، شما ممکنه پسوردی که از کاربر دریافت میکنید رو برای امنیت اطلاعات و حریم خصوصی کاربر در دیتابیس خودتون رمزنگاری یکطرفه کنید، تا اینجا اوکی، در مرحله بعدی ممکنه از Salt هم استفاده کنید تا کار رو برای هکرها سخت کنید. تا اینجا هم درست.
اما آیا پسوردی که کاربر توی وبسایت شما میزنه رو مستقیم از کلاینت به سمت سرور ارسال میکنید؟
خب چندتا سوال:
من کاربر از کجا بدونم پسورد من رو جای دیگهای ذخیره نمیکنی و ازشون استفاده نمیکنی؟
آیا بهتر نیست که خود شما هم ندونی که پسوردی که من استفاده میکنم چیه و پسورد منو از توی شبکهی خودت رد نکنی و به سمت سرور ارسال نکنی؟
راهکار چیه؟
از یک Salt ثابت هم سمت کلاینت استفاده کنید و پسورد کاربر رو یکبار سمت کلاینت هش کنید و بعدش سمت سرور هرچقدر خواستید Salt و رمزنگاری انجام بدید، اما به خاطر حریم خصوصی کاربر قبل از اینکه اطلاعات رو به سمت سرور بفرستید، اونو سمت کلاینت هم یکبار رمزنگاری کنید.
چرا اینکار رو میکنیم؟ ببینید من ممکنه از یک پسورد در چندین وبسایت استفاده کنم، اگر وبسایتها، رمزی که من استفاده میکنم رو رمزنگاری یکطرفه نکنند، هکرها میتونند بفهمند رمز من چیه و از اون برای هک کردن اکانتهای من در دیگر وبسایتها هم استفاده کنند. بنابراین لطفا همیشه رمزنگاری پسورد کاربر رودر سمت کلاینت یکبار اعمال کنید. درسته روشهایی وجود داره که شما پسورد ثابت برای وبسایتها استفاده نکنید و بهتره که اینکار رو انجام بدید اما میدونیم که همهی کاربران این رو نمیدونن یا از این روش استفاده نمیکنند.
#حریم_خصوصی
#رمز_نگاری
#پسورد
#hash
#salt
#password
#privacypolicy
@easymicroservice
@easymicroservices
@csharptips
اما آیا پسوردی که کاربر توی وبسایت شما میزنه رو مستقیم از کلاینت به سمت سرور ارسال میکنید؟
خب چندتا سوال:
من کاربر از کجا بدونم پسورد من رو جای دیگهای ذخیره نمیکنی و ازشون استفاده نمیکنی؟
آیا بهتر نیست که خود شما هم ندونی که پسوردی که من استفاده میکنم چیه و پسورد منو از توی شبکهی خودت رد نکنی و به سمت سرور ارسال نکنی؟
راهکار چیه؟
از یک Salt ثابت هم سمت کلاینت استفاده کنید و پسورد کاربر رو یکبار سمت کلاینت هش کنید و بعدش سمت سرور هرچقدر خواستید Salt و رمزنگاری انجام بدید، اما به خاطر حریم خصوصی کاربر قبل از اینکه اطلاعات رو به سمت سرور بفرستید، اونو سمت کلاینت هم یکبار رمزنگاری کنید.
چرا اینکار رو میکنیم؟ ببینید من ممکنه از یک پسورد در چندین وبسایت استفاده کنم، اگر وبسایتها، رمزی که من استفاده میکنم رو رمزنگاری یکطرفه نکنند، هکرها میتونند بفهمند رمز من چیه و از اون برای هک کردن اکانتهای من در دیگر وبسایتها هم استفاده کنند. بنابراین لطفا همیشه رمزنگاری پسورد کاربر رودر سمت کلاینت یکبار اعمال کنید. درسته روشهایی وجود داره که شما پسورد ثابت برای وبسایتها استفاده نکنید و بهتره که اینکار رو انجام بدید اما میدونیم که همهی کاربران این رو نمیدونن یا از این روش استفاده نمیکنند.
#حریم_خصوصی
#رمز_نگاری
#پسورد
#hash
#salt
#password
#privacypolicy
@easymicroservice
@easymicroservices
@csharptips
👍6
رعایت یا ساخت اصول در مهندسی نرم افزار به شما کمک میکنه تا بتونید توسعهی نرم افزار رو نه فقط برای خودتون بلکه برای تیمهای مختلف آسون کنید.
من یه نمونه از این رو در تصویر براتون به نمایش گذاشتم که از یک سری اصول نام گذاری در سورس پروژه استفاده کردم و وقتی میخواستم برای Pipeline های Azure یک تمپلیت بسازم با کمترین زحمت تونستم اینکار رو انجام بدم. یعنی یک کار خوب توی تیم توسعه باعث راحتی کار توی تیم DevOps میشه.
@easymicroservices
@easymicroservice
@csharptips
#devops
#azure
#pipeline
من یه نمونه از این رو در تصویر براتون به نمایش گذاشتم که از یک سری اصول نام گذاری در سورس پروژه استفاده کردم و وقتی میخواستم برای Pipeline های Azure یک تمپلیت بسازم با کمترین زحمت تونستم اینکار رو انجام بدم. یعنی یک کار خوب توی تیم توسعه باعث راحتی کار توی تیم DevOps میشه.
@easymicroservices
@easymicroservice
@csharptips
#devops
#azure
#pipeline
👍4
اگر یک کامیونیتی بذاریم توی هفته های آتی و در مورد این صحبت کنیم که توی این یکسال توی Easy Microservices چیکار کردیم شرکت میکنید؟
Final Results
24%
این هفته پنجشنبه خوبه
27%
این هفته جمعه خوبه
11%
هفته ی بعدش پنجشنبه خوبه
6%
هفته ی بعدش جمعه خوبه
0%
روزای دیگه باشه
7%
متاسفانه وقت و فرصتش رو ندارم
24%
فعلا نظری ندارم
Easy Microservices
اگر یک کامیونیتی بذاریم توی هفته های آتی و در مورد این صحبت کنیم که توی این یکسال توی Easy Microservices چیکار کردیم شرکت میکنید؟
ارتباط آنلاین هست بچه ها، از هرجا میتونید وصل بشید همچنین اینکه ضبط میشه و کسانی که نمیتونن بعدا میتونن بهش دسترسی داشته باشن، ولی ترجیحا بتونید لایو آنلاین وصل بشید تا باهم ارتباط برقرار کنیم، از تجربیات و چالش هایی که خوردیم بگیم و راه حل هارو مطرح کنیم و از این داستانا 😊
👌7⚡1
Easy Microservices
اگر یک کامیونیتی بذاریم توی هفته های آتی و در مورد این صحبت کنیم که توی این یکسال توی Easy Microservices چیکار کردیم شرکت میکنید؟
بچه ها با توجه به رایگیری قبلی بیشترین رای رو جمعه این هفته آورد لطفا در این نظر سنجی هم شرکت کنید برای اینکه زمانش رو هم مشخص کنیم.
Final Results
22%
صبح باشه خوب
20%
ظهر باشه خوبه
41%
بعد از ظهر یا عصر باشه خوبه
46%
شب باشه خوبه
22%
نظری ندارم
Easy Microservices
بچه ها با توجه به رایگیری قبلی بیشترین رای رو جمعه این هفته آورد لطفا در این نظر سنجی هم شرکت کنید برای اینکه زمانش رو هم مشخص کنیم.
دوستان بین عصر و شب رو انتخاب کنید چون این دو گزینه احتمال زیاد به خاطر رای بالا انتخاب میشن.
و اگر عصر باشه احتمالا از ساعت 4 یا 5 شروع میکنیم و متینیگ رو توی تلگرام میذاریم، اگر نظر و پیشنهادی دارید حتما با ما توی کامنتها در میون بذارید.
عشقید ❤️.
و اگر عصر باشه احتمالا از ساعت 4 یا 5 شروع میکنیم و متینیگ رو توی تلگرام میذاریم، اگر نظر و پیشنهادی دارید حتما با ما توی کامنتها در میون بذارید.
عشقید ❤️.
خب بچهها با توجه به اینکه رایگیری برای امشب پیروز شد، لطفا بگید امشب ساعت 8 در میتینگ تلگرام (توی همین کانال) شرکت میکنید یا خیر؟
Final Results
40%
بله حتما میام
14%
نه متاسفانه نمیتونم بیام
41%
مطمئن نیستم ولی سعیم رو میکنم
5%
مشاهده نظرات (نظری ندارم)
Easy Microservices
خب بچهها با توجه به اینکه رایگیری برای امشب پیروز شد، لطفا بگید امشب ساعت 8 در میتینگ تلگرام (توی همین کانال) شرکت میکنید یا خیر؟
1. میکروسرویس و مونولیت و ماژولار و میکروکامپوننتها چی هستند؟
2. انتخاب بین میکروسرویس یا مونولیت؟
3. چطوری یک پروژهی بزرگ مونولیت رو ببریم به سمت میکروسرویس؟
4.چطوری میکروسرویس رو ببریم سمت مونولیت؟
5. چالشهایی که توی هرکدوم میخوریم؟
6.کارهایی که توی Easy microservices انجام دادیم؟
7.چطوری یک معمار بشیم؟ چطوری نرم افزارهای بزرگ رو معماری کنیم؟
8. چقدر و چطوری درگیر دیتابیسها بشیم؟
9. از چت جی پی تی استفاده کنیم؟ نکنیم؟ چطوری؟
10. مهارت های نرم و سافت اسکیل هامون رو چطوری تقویت کنیم؟ مهارت های ارتباطی.
2. انتخاب بین میکروسرویس یا مونولیت؟
3. چطوری یک پروژهی بزرگ مونولیت رو ببریم به سمت میکروسرویس؟
4.چطوری میکروسرویس رو ببریم سمت مونولیت؟
5. چالشهایی که توی هرکدوم میخوریم؟
6.کارهایی که توی Easy microservices انجام دادیم؟
7.چطوری یک معمار بشیم؟ چطوری نرم افزارهای بزرگ رو معماری کنیم؟
8. چقدر و چطوری درگیر دیتابیسها بشیم؟
9. از چت جی پی تی استفاده کنیم؟ نکنیم؟ چطوری؟
10. مهارت های نرم و سافت اسکیل هامون رو چطوری تقویت کنیم؟ مهارت های ارتباطی.
👍9👏2👌1
بچه ها به نظرتون جلسه رو کجا برگزار کنیم؟ برای من فرقی نمیکنه هرکجا شما راحت تر باشید همونجا جلسه رو برگزار میکنم.
Final Results
25%
تلگرام
63%
گوگل میت
8%
اسکایپ
4%
فرقی نمیکنه
بچه ها برای ورود به میتینگ توی گوگل میت روی لینک زیر کلیک کنید بی صبرانه منتظرتون هستیم ساعت 8 شروع میکنیم به امید خدا.
https://meet.google.com/mhb-erzt-pxs
https://meet.google.com/mhb-erzt-pxs
Google
Real-time meetings by Google. Using your browser, share your video, desktop, and presentations with teammates and customers.
❤5🙏1
Easy Microservices pinned «بچه ها برای ورود به میتینگ توی گوگل میت روی لینک زیر کلیک کنید بی صبرانه منتظرتون هستیم ساعت 8 شروع میکنیم به امید خدا. https://meet.google.com/mhb-erzt-pxs»
Audio
فایل صوتی جلسهی Easy microservices
به زودی فایل تصویری هم توی آپارات آپلود میشه و برای دوستان قابل استفاده خواهد بود.
به زودی فایل تصویری هم توی آپارات آپلود میشه و برای دوستان قابل استفاده خواهد بود.
❤6👌1