C# Friends – Telegram
C# Friends
117 subscribers
58 photos
4 videos
29 files
72 links
C#, Asp.Net Core, Blazor & Architecture
Guids, Experiences, Tutorials, News and Codes.
Github: saeedrezayi/mrgrayhat
Contact me: @mrgrayhat
Download Telegram
انصافا مجموعه خوب و کاربردی ایه برای یادگیری و استفاده از blazor علل خصوص مدل وب اسمبلی که معمولا با بک اند و سرور ساید ارتباطات خیلی زیادی داره (مگر اپ شما کلا wasm باشه هیج سرور و api ای نداشته باشه همه چیز تو خودش پیاده میشه مثل وصل شدن به دیتابیس و احراز هویت و ..، همه جا هم قابل اجراست اصلا هاستم نمیخواد ولی معمولا کسی نمیخواد همه بیزنس لاجیک و امنیت برنامه رو بفرسته سمت کلاینت)، در کنار بحث خوده blazor اموزش های خیلی خوبه نوشته که چطور احراز هویت کنیم، دسترسی و خطاهارو هندل کنیم، با سرور ارتباط بگیریم، crud کنیم، با استفاده از قدرت c# و پکیج ها، نیاز به js و کتابخونه هاش رو خییلی کم کنیم و ...

https://code-maze.com/blazor-webassembly-series/

عموما فرانت ها از http rest api ها استفاده میکنن چون پروتکل استاندارد و مرسومیه در همه چیز. تو موارد حرفه ای یا خاص تر خب signalr و grpc هم زیاد استفاده میشه، مخصوصا اگر بحث realtime و سرعت مطرح باشه مثل چت، استریم، بازی و ..
که بازم میگم هر چیزی به جاش خیلیم خوبه. هر کی گفت سوکت مطلقا برای فرانت بده مهمل گفته ( کانکشن خیلی زیاد به پروژه یکپارچه تک سروری مهمترین دلیلشه که راهش توزیع کردن و سرویس لود بالانس هست برای سیستمی که خیلی یوزر داره، وگرنه کلاینت از خداشم هست همه چیز براش تولید شه و فقط متد صدا بزنه و کمتر درگیر api بشه). جاش هست آشم هست امکانش برای همه طراحی شده و استفاده میشه.
البته از Http2/3 هم غافل نشید ولی خب بحث چیز دیگه ای بود در گنجایش این پست و اندک دانش و تجربه این حقیر.
#Blazor #WebAssembly #aspcore
@csharpfriends
C# Friends
از سری مطالب معماری نرم افزار #5 1.3 مقدمه ای بر معماری میکروسرویس (Microservice) رشد و تکامل در هر چیزی قابل مشاهده و اندازه گیری هست؛ تکامل گونه های جانوران، طبیعت، نسل های مختلف، علم و خیلی چیزهای دیگه پروسه های طولانی و زیادی رو طی کردن تا به شکل امروزی…
یادتون باشه وقتی میگیم معماری داریم از بنیان یک نرم افزار صحبت‌ میکنیم، در اصل بنیان یک نرم افزار بر پایه دیزاین پترن ها و لایه ها نیست بلکه ساز و کار ارتباطات و عملکرد کلی یک نرم افزار رو شرح میده.

خیلی وقتا میشنویم میگن معماری MVC و MVVM و DDD و Cqrs.. کلا هر چی پترن و رویکرده رو میریزن تو معماری. درباره همه اینا قبلا مفصل نوشتم:
معماری، معماری طراحی، الگوی طراحی.
صرفا چندتا مفهوم غلط اندازه مرسوم رو میگم بازم:

معماری های: سرویس گرا، مبتنی بر سرویس و مایکروسرویس، معماری مونولیت یا همون یکپارچه، MainFrame و ..

معماری های طراحی: MVC, MVVM, MVP
الگوی های طراحی: UnitOfWork، الگوی تزریق وابستگی، الگوی استراتژی، الگوی سینگلتون، الگوی ریپازیتوری، الگوی request reaponse،
* الگوی طراحی معماری (گاها به عنوان رویکرد طراحی هم شناخته میشه) کامند کوئری CQRS (اشاره داره به جدا کردن store و مسئولیت مدل دستورات یا کامندها از کوئری ها ) و event sourcing pattern

متدلوژی و رویکرد ها / تفکر ها مثل،
توسعه دامین محور DDD (طراحی برپایه بیزنس دامین های نرم افزار)،
توسعه تست محور TDD (توسعه بر پایه تست های واحد از پیش نوشته شده، برعکس توسعه معمول که اول پیاده سازی انفاق میفته بعد تست های نفس گیر)،
رویداد محور EDD ( event driven )،
رویکرد پر استفاده رفتار محور BDD ( بزن در رو حالا خدا بزرگه ببینیم چی میشه محور)، رویکرد CDD کپی محور، فحش محور FDD (سازمان ِغذا و دارو امریکا) و ...

یادتون باشه که مثلا شما مجبور نیستید طراحی CQRS پیاده کنید، میتونید همونا رو در یک سرویس بنویسید و همه عملیات crud رو داخل خودش پیاده کنید، اما اگر نیاز دارید به:
- افزایش خوانایی، تفکیک وظایف مدل ها و حذف وابستگی های اضافی.
- جدا کردن عملیات هایی که تغییری در وضعیت و داده های سیستم میدن و خروجی ندارن
- جدا کردن عملیات هایی که تغییری نمیدن و صرفا کوئری های read هستن و خروجی میدن
- صدور دنباله ای از event ها، که بقیه سرویس ها رو از تغییری مطلع میکنن یا میگن بعدش کار دیگه ای رو انجام بده (داخل سیستم یا سرویس های خارجی). مثلا اپدیت کردن کش، دیتابیس read، اپدیت رکورد تو سرویس دیگه ای، زمان بندی انجام کاری در پشت صحنه و صف پیام
- جدا کردن storage داده ها، مثلا جدا کردن دیتابیس read از write برای افزایش پرفورمنس، مقیاس پذیری و parallelism و امنیت
- نگهداری تاریخچه تغییرات دیتا ها و رویداد های نرم افزار به منظور، لاگینگ، گزارش گیری، بازگردانی و رهگیری اتفاقات.
بهترین معماری و الگوی طراحی ای که پیدا میکنید همین CQRS و Event Sourcing عه که به وفور در میکروسرویس ها، سیستم های مقیاس پذیر، سرویس هایی با کوئری های بزرگ و پیچیده استفاده میشه.
به همین خاطر اگر دیدید یک سرویس داره روز به روز بزرگتر و پیچیده تر میشه، وابستگی های زیادی رو تزریق میکنه که لازم نیست بخاطر صدا زدن یک تابع کوچیک استفاده بشن، بهتره معماری رو یک بازنگری بکنید و مسئولیت های سرویستون رو به کامند و کوئری های مستقل بشکنید.
ولی اگر یکی دوتا کلاس سرویس و ریپازیتوری کوچیک دارید که نهایت شیش هفت تا متد و عملیات داره و روز به روز بزرگتر نمیشه و لازم نیست دیتابیس خوندن رو از نوشتن تفکیک کنید، cqrs بیشتر کارتون رو پیچیده و توسعه تون رو زمان بر میکنه. ضمن اینکه برنامه نویس های کمی هستن که واقعا درک و تجربه ای ازش داشته باشن تا سر از کد ها و ساختار در بیارن.
#Architecture #DesignPattern #ArchitecturalPattern #Approach
@csharpfriends
سلام.
امیدوارم سال 1401 سال بهتری برای همتون باشه. سالی سرشار از برکت و موفقیت داشته باشید و ثمره تلاش هاتون، شب بیداری هاتون و صبح زود بیدار شدناتون رو زودتر ببینین و صدای موفقیت همه بلند باشه.
اگر زمانی دلی از کسی شکستم همینجا ازتون طلب بخشش دارم و امیدوارم دل هاتون شاد تر باشه و شرایط زندگی بهتر و بهتر تر.
ارادت مند همگیتون هستم ❤️
کوچیک شما سعید رضایی.
اخرین روز سال 1400، 2022/03/20
4
https://axeto.app/

اولین سامانه تخصصی و اپلیکیشن رایگان درآمدزایی، رزرو عکاس و ادیتور در ایران.

https://instagram.com/axeto_ir?igshid=YmMyMTA2M2Y=
اپلیکیشن مشتریان عکستو
درخواست پروژه عکاسی (عکاسی فعلا فقط تهران) و یا ادیت و گرافیست دارین؟ از بین صدها عکاس و ادیتور تایید شده انتخاب کنید یا پروژه تون رو به مزایده بزارین و با هر کس پیشنهاد بهتری داد کار کنین!
عکستو امنیت و کیفیت کار رو تضمین میکنه و 24 ساعته آماده خدمت رسانی به شماست.

https://play.google.com/store/apps/details?id=com.huddeh.axeto
اپلیکیشن مخصوص عکاسان و ادیتور ها.
ثبت نام کنید، نمونه کارها و تجربیات خودتون رو رایگان و ایمن، در معرض دید بقیه بزارید و بفروشید!
بزودی در سرتاسر کشور، درخواست پروژه های عکاسی و ادیت مشتریان رو میتونین ببینین و بهشون پیشنهاد قیمت بدین، بدون سقف بدون واسطه، آنلاین!

https://play.google.com/store/apps/details?id=com.huddeh.axito
حضرت گوگل، سرویس دریافت FCM توکن فایربیس رو برای ایرانیان تحریم کرد، بدین ترتیب Push نوتیف بی پوش نوتیف!

متأسفانه API فایربیس گوگل برای گرفتن توکن FCM در ایران (روی گوشی کاربر) خطای ۴۰۳ می‌دهد و این یعنی هزار و یک مشکل جدی برای اپلیکیشن‌های ایرانی کلی مشکل برای کاربرهای ایرانی اپلیکیشن‌های خارجی.
این تحریم مجزا از تحریم پنل فایربیس است که از قبل وجود داشت.
اکثر سرویس‌های پوش نوتیفیکیشن وطنی و غیروطنی خودشون در پشت صحنه از فایربیس استفاده می‌کنن.
‏اگر شما به کاربرهای قبلی می‌تونید نوتیفیکیشن بفرستید، در صورت ریفرش شدن توکن‌ کاربر از سمت گوگل و منقضی شدن توکن‌ قبلی، این مشکل برای کاربرهای قبلی هم پیش میاد.

پانوشت:
در این جور موارد یا مجبوریم توی کدمون برای کار با این دست سرویس ها مثل فایربیس و تلگرام، پراکسی خارج استفاده کنیم یا مهاجرت به پلتفرم دیگه ای یا بریم سمت وب سوکت که داستان دیگه ایه.
پراکسی یکی از راه هاست مثلا همین تلگرام اگر شما رباتی یا نرم افزاری مثل مانیتورینگ داشته باشین که متصل به سرویس های تحریم دار یا فیلتر شده است باید از پراکسی برای ریکوئست ها استفاده کنین.

* ظاهرا دانگرید به api قبلی فایربیس میتونه مشکل عدم دریافت fcm token رو در موبایل اپ ها مرتفع کنه.

** آپدیت 22 مرداد 1401:
از قول کارمندای ایرانی گوگل گفتن محدودیت سرویس firebase fcm token رفع شده / تو چند روز آینده رفع و برداشته میشه. 🤲


عوضش امنیت داریم
👍1
C# Friends pinned «حضرت گوگل، سرویس دریافت FCM توکن فایربیس رو برای ایرانیان تحریم کرد، بدین ترتیب Push نوتیف بی پوش نوتیف! متأسفانه API فایربیس گوگل برای گرفتن توکن FCM در ایران (روی گوشی کاربر) خطای ۴۰۳ می‌دهد و این یعنی هزار و یک مشکل جدی برای اپلیکیشن‌های ایرانی کلی مشکل…»
#MAUI #Blazor 😍
یکم حجم خروجی default بالا بود، اما قلق و نکات ریز و درشت زیادی داره که بهبود میده برای کسی که بره دنبالش.
من خروجی اندروید و windows اش رو تست کردم خیلی خوب و روون بود!
طریقه نصبش هم آسونه، visual studio رو آپدیت کنین، بعد از طرق setup اش modify رو بزنین و .Net MAUI رو تیک بزنین (قبلا بجاش Xamarin Mobile بود).
* حتما با vpn انجام بدین چون jdk و android-sdk رو دانلود میکنه از گوگل (یک sdk کوچیک با اندروید 12، که از طریق sdk manager میتونین بقیه platform و ایمیج نسخه های دیگرو اضافه کنین).
نسخه MAUI Blazor عینا مثل Blazor WASM هست html, css, js, cs.
ولی نوع MAUI معمولی مثل WPF XAML عه.
توی تصاویر بالا ساختار پروژه اش رو میبینین، میتونین برای هر پلتفرم ریسورس و کدای مختص خودش رو بنویسن Platform Specific اصطلاحا.
در هر قسمت از کد مثل سی شارپ میتونین برای ورژن های مختلف مثلا اندروید 10/9/5 کدهای متفاوتی بنویسین. بیشتر امکاناتش برای اندروید API 23 به بالاست مثلا.
👍1🔥1
C# Friends
اپلیکیشن مشتریان عکستو درخواست پروژه عکاسی (عکاسی فعلا فقط تهران) و یا ادیت و گرافیست دارین؟ از بین صدها عکاس و ادیتور تایید شده انتخاب کنید یا پروژه تون رو به مزایده بزارین و با هر کس پیشنهاد بهتری داد کار کنین! عکستو امنیت و کیفیت کار رو تضمین میکنه و 24…
خوشحال میشم دیدن فرمایید و با دوستانتون علل خصوص افزادی که کسب کاری دارن یا فعال صنعت ادیت و عکاسی هستن به اشتراک بگذارید. یک روز ممکنه به کارتون بیاد.
با پلتفرم عکستو و اپلیکیشن هاش بیشتر آشنا بشیم:

https://www.instagram.com/reel/CiVaMdLKiWr/?utm_source=ig_web_button_share_sheet
قرعه کشی هم داریم. سفارشی هم در خدمتم، بالاخره حق آب و گلی هست 😁

19 شهریور 1401
Forwarded from جهان شِگَرف
هلاکو سردار مغول بر سر خلیفه عباسی فریاد زد:

در هر اتاق از این قصر، ده کنیزک نازک بدن خزیده‌اند. مگر تو چند زن می‌توانی اختیار کنی؟ در مطبخت چند خوالیگر، طعام می‌پزند؟ از این سقف‌های بلند و دیوارهای محکم و سراپرده‌های مخملین چه حاصل؟ من، هلاکو، سردار مغول از همان غذایی می‌خورم که سپاهیانم می‌خورند و بر همان اسب می‌نشینم که سربازانم می‌نشینند و بر همان زمین می‌خوابم که سربازانم می‌خوابند.
- شما که بسیاری‌تان عالمان دین هستید و مردان خدا، به این سردار بگویید که حکمران ظالم مسلمان را دوست‌تر می‌داریم یا حاکم کافری که به عدل حکومت کند؟
مجلس ساکت شد در سرتاسر صحن
مستنصریه کسی سخن نمی‌گفت.
هلاکو پرسشی مهم پرسیده بود.
به راستی کدام یک از این دو، مردمان را نفع بیشتری می‌رساند؟ حکمرانی که دم از دین می‌زند اما بساط ظلم می‌گسترند و اسباب جور فراهم می‌کند یا حاکمی را که کافر است اما بر مردمان به عدالت و برابری حکم می‌کند.
مجلس همچنان ساکت بود.
پیری از میانه صحن به پا خواست.
- های سردار فاتح مغول!
پاسخ پرسش خود را از من بشنو.
ما مسلمانان بغداد، حکمرانی حکمران عادل کافر را بر حکمرانی مسلمان ظالم ترجیح می‌دهیم و اگر این نبود، تو امروز به سادگی بر دارالخلافه مسلمین دست نمی‌یافتی. بر ما حکمران کافری بگمار که به عدالت حکم براند.

ما از حکومتی که به نام اسلام بر مسلمین ظلم کند، خسته‌ایم. که محمد مصطفی (ص) گفت: مُلک با کفر باقی می‌ماند و با ظلم نه!

#خواجه_نصیرالدین_طوسی
👍4💔1
«خون در زمین فرو نرفت. روی زمین پخش شد. از زیر هر سنگ جوشید و جوشید و به راه افتاد. هر کس آن را می‌دید می‌فهمید جایی بی‌گناهی را کشته‌اند.» 🖤

- سوگ سیاوش؛ شاهرخ مسکوب
🕊51
💠 جادی رو برای گیت‌هاب استارز کاندید کنید
💠گیت‌هاب، پلتفرم توسعه نرم‌افزار، امسال برنامه‌ای برگزار کرده به عنوان ستارگان گیت‌هاب که در اون الهام‌بخش ترین و تاثیرگذارترین برنامه‌نویسان دنیا رو با توجه به رای مردم معرفی میکنه.
💠جادی رو میتونین با نام کاربری زیر برای کاندیدا معرفی کنین

jadijadi

متنش هم من با یکم تغییر دیفالت خودش این نوشتم:
They are constantly inspiring, education and sharing their knowledge and expertise in society, freedom of expression and helping to provide access to an open internet.

🔗 https://stars.github.com/nominate