Forwarded from Simorgh (Hassan Hajisharifi)
Windows Phone is dead!
تولید ویندوز فون متوقف شد
مایکروسافت از کاربران ویندوز موبایل خواسته از سیستم عامل Android یا iOS استفاده کنند
https://support.microsoft.com/en-us/help/4485197
تولید ویندوز فون متوقف شد
مایکروسافت از کاربران ویندوز موبایل خواسته از سیستم عامل Android یا iOS استفاده کنند
https://support.microsoft.com/en-us/help/4485197
Simorgh
Windows Phone is dead! تولید ویندوز فون متوقف شد مایکروسافت از کاربران ویندوز موبایل خواسته از سیستم عامل Android یا iOS استفاده کنند https://support.microsoft.com/en-us/help/4485197
برای منکه خبر ناراحت کننده ای بود، هرچند ویندوز فون نداشتم ولی دوستش داشتم 😆و دوست داشتم یه روزی داشته باشم، باریکلا به برنامه نویس های Internet Explorer که تا ویندوز ده این نرم افزار رو آوردن هرچند کسی ازش استفاده نکرد 😆
#یکم_تخصصی
یه مدتی دهنم سرویس شد تا توی جاوا بتونم Type یک کلاس از نوع Generic رو بگیرم، در نهایت متوجه شدم که اصلا این قابلیت توی جاوا وجود نداره و غیر ممکنه و کلی کار دستی باید انجام بدی که اسمش رو میذارم کثیف کاری چون توی برنامه نویسی اگر یک کاری ممکن نباشه مجبوری کثیف کاری کنی.مثلا برنامه نویسی که از کامپوننت شما استفاده میکنه باید به صورت دستی بگه تایپ جنریکی که داره میده چیه یعنی قوانین وضع کنی و مجبورش کنی بیشتر کد بزنه
بعدش حالا دارم توی زبان دارت (ِDart) همین کار رو انجام میدم عملا مدیریت Runtime Type ها توی جاوا بهتر از دارت بود، توی دارت اگر یک مقدار پیشفرض برای یک فیلد نذارید یعنی نال باشه نمیتونید بفهمید تایپ فیلده چیه (چون عملا داینامیکه و فقط ادعا میکنه تایپ سیفه) همچنین نمیشه فهمید نوع جنریک تایپ چیه. کل الگوریتم Serialize و Deserialize کردن جیسون توی سی شارپ رو توی سه ساعت انجام دادم حالا برای تبدیل کردنش به دارت دو روز (دوازده ساعت) وقتم گرفته شد و تموم شد ولی تهش با کثیف کاری و قانون تعیین کردن برای استفاده کننده ها
#سی_شارپ
#دارت
#جاوا
یه مدتی دهنم سرویس شد تا توی جاوا بتونم Type یک کلاس از نوع Generic رو بگیرم، در نهایت متوجه شدم که اصلا این قابلیت توی جاوا وجود نداره و غیر ممکنه و کلی کار دستی باید انجام بدی که اسمش رو میذارم کثیف کاری چون توی برنامه نویسی اگر یک کاری ممکن نباشه مجبوری کثیف کاری کنی.مثلا برنامه نویسی که از کامپوننت شما استفاده میکنه باید به صورت دستی بگه تایپ جنریکی که داره میده چیه یعنی قوانین وضع کنی و مجبورش کنی بیشتر کد بزنه
بعدش حالا دارم توی زبان دارت (ِDart) همین کار رو انجام میدم عملا مدیریت Runtime Type ها توی جاوا بهتر از دارت بود، توی دارت اگر یک مقدار پیشفرض برای یک فیلد نذارید یعنی نال باشه نمیتونید بفهمید تایپ فیلده چیه (چون عملا داینامیکه و فقط ادعا میکنه تایپ سیفه) همچنین نمیشه فهمید نوع جنریک تایپ چیه. کل الگوریتم Serialize و Deserialize کردن جیسون توی سی شارپ رو توی سه ساعت انجام دادم حالا برای تبدیل کردنش به دارت دو روز (دوازده ساعت) وقتم گرفته شد و تموم شد ولی تهش با کثیف کاری و قانون تعیین کردن برای استفاده کننده ها
#سی_شارپ
#دارت
#جاوا
به وسیله اتریبیوت OutExclude همونطور که در تصویر میبینید میتونید در سیگنالگو از خروج بعضی پروپتری های حساس در تمامی متد ها و سرویس ها سمت سرور جلوگیری کنید، با این روش سیستم هرگز پسورد رو به مشتریان نمیده مخصوصا جاهایی که میخواید به کاربران دیگه ای لیست کاربران رو نشون بدید.حتی اگر فراموش کنید سیگنالگو فراموش نمی کنه
آیا میتوانیم از سیگنالگو در asp.net core استفاده کنیم؟ مزیت آن چیست؟
بله شما میتوانید از سیگنالگو در پروژه های asp.net یا asp.net core هم استفاده کنید یا در یک پروژه خام کنسول و هر جایی که میخواهید استفاده کنید.پکیج های سیگنالگو کاملا cross platform ,و بسیار کم حجم هستن و محدودیتی برای شما ایجاد نمی کنن.
مزیت های آن چیست؟
1.کد تمییز و بدون محدودیت در ورودی و خروجی، شما از تمامی امکانات سیگنالگو میتونید در asp.net core استفاده کنید سیگنالگو کلاس خام شمارو تبدیل به سرویس های api میکنه شما فقط کافیه متد ها و ورودی و خروجی هاتونو اونطور که دوست دارید بدون محدودیت بسازید.همونطور که قبلا کلاس و مدل میساختید کلاینت های شما میتونن با هر پروتکلی که asp.net core ساپورت میکنه اعم از http, https , websocket از سرویس های شما استفاده کنن.
2.کلاینت های سیگنالگو میتونن از code generator استفاده کنن و حتی یک خط کد اضافه هم برای صدا زدن سرویس های شما نزنن. اصلا نه درگیر این میشن که بدونن json چیه یا Xml چیه یا ورودی و خروجی ها چطوری میاد، کلاینت ها تنها و تنها آبجکت های ورودی و خروجی ای که شما در سرویس ها ساختید رو میبینن و میتونن اونارو پر کنن بدون اینکه درگیر این بشن که بک کار چطوری کار میکنه و درگیر این نمیشن که هرلحظه با برنامه نویس سرور تعامل داشته باشن و این خودش یعنی حفظ بسیار زیادی از زمان برای توسعه.
3.بکند کار میتونه بدون وجود یک کلاینت سرویس هاش رو با استفاده از نرم افزار "سیگنالگو تست کلاینت" تست کنه.
4.میتونید از تمامی قابلیت های سیگنالگو استفاده کنید مثلا سرویس هاتونو تبدیل به ربات تلگرام کنید.
آیا استفاده از سیگنالگو در asp.net core به سرویس های core که قبلا زدم اسیبی میزنه؟
خیر سیگنالگو اصلا با سرویس های core شما کاری نداره شما میتونید از تمامی قابلیت های Asp.net core و سیگنالگو همزمان استفاده کنید کاربر میتونه هم سرویس های Asp.net core شمارو صدا بزنه و هم سرویس های سیگنالگو رو...
از این پروژه بومی و اپن سورس حمایت و استفاده کنید منم بهتون قول میدم که بعد از استفاده می فهمید که ما حتی از مایکروسافت و گوگل هم تمییز تر فکر کردیم و کار شمارو در توسعه اپلیکیشن ها راحت تر و سریعتر کردیم.
پکیج های nuget سیگنالگو در حال حاضر بالای بیست هزار دانلود و استفاده داشته، این خیلی امیدوار کنندست و ما میتونیم حرف اول رو در ارائه سرویس های توسعه ی اپلیکیشن های بک اند و فرانت اند بزنیم.
کانال تلگرام:
@csharptips
برای ورودی به گروه توسعه و پرسش و پاسخ سیگنالگو به گروه زیر وارد بشید:
https://t.iss.one/joinchat/CVPIBkMqzRLziBiEBK7UyQ
بله شما میتوانید از سیگنالگو در پروژه های asp.net یا asp.net core هم استفاده کنید یا در یک پروژه خام کنسول و هر جایی که میخواهید استفاده کنید.پکیج های سیگنالگو کاملا cross platform ,و بسیار کم حجم هستن و محدودیتی برای شما ایجاد نمی کنن.
مزیت های آن چیست؟
1.کد تمییز و بدون محدودیت در ورودی و خروجی، شما از تمامی امکانات سیگنالگو میتونید در asp.net core استفاده کنید سیگنالگو کلاس خام شمارو تبدیل به سرویس های api میکنه شما فقط کافیه متد ها و ورودی و خروجی هاتونو اونطور که دوست دارید بدون محدودیت بسازید.همونطور که قبلا کلاس و مدل میساختید کلاینت های شما میتونن با هر پروتکلی که asp.net core ساپورت میکنه اعم از http, https , websocket از سرویس های شما استفاده کنن.
2.کلاینت های سیگنالگو میتونن از code generator استفاده کنن و حتی یک خط کد اضافه هم برای صدا زدن سرویس های شما نزنن. اصلا نه درگیر این میشن که بدونن json چیه یا Xml چیه یا ورودی و خروجی ها چطوری میاد، کلاینت ها تنها و تنها آبجکت های ورودی و خروجی ای که شما در سرویس ها ساختید رو میبینن و میتونن اونارو پر کنن بدون اینکه درگیر این بشن که بک کار چطوری کار میکنه و درگیر این نمیشن که هرلحظه با برنامه نویس سرور تعامل داشته باشن و این خودش یعنی حفظ بسیار زیادی از زمان برای توسعه.
3.بکند کار میتونه بدون وجود یک کلاینت سرویس هاش رو با استفاده از نرم افزار "سیگنالگو تست کلاینت" تست کنه.
4.میتونید از تمامی قابلیت های سیگنالگو استفاده کنید مثلا سرویس هاتونو تبدیل به ربات تلگرام کنید.
آیا استفاده از سیگنالگو در asp.net core به سرویس های core که قبلا زدم اسیبی میزنه؟
خیر سیگنالگو اصلا با سرویس های core شما کاری نداره شما میتونید از تمامی قابلیت های Asp.net core و سیگنالگو همزمان استفاده کنید کاربر میتونه هم سرویس های Asp.net core شمارو صدا بزنه و هم سرویس های سیگنالگو رو...
از این پروژه بومی و اپن سورس حمایت و استفاده کنید منم بهتون قول میدم که بعد از استفاده می فهمید که ما حتی از مایکروسافت و گوگل هم تمییز تر فکر کردیم و کار شمارو در توسعه اپلیکیشن ها راحت تر و سریعتر کردیم.
پکیج های nuget سیگنالگو در حال حاضر بالای بیست هزار دانلود و استفاده داشته، این خیلی امیدوار کنندست و ما میتونیم حرف اول رو در ارائه سرویس های توسعه ی اپلیکیشن های بک اند و فرانت اند بزنیم.
کانال تلگرام:
@csharptips
برای ورودی به گروه توسعه و پرسش و پاسخ سیگنالگو به گروه زیر وارد بشید:
https://t.iss.one/joinchat/CVPIBkMqzRLziBiEBK7UyQ
Telegram
SignalGo
SignalGo is a library for Cross-Platform developers that makes it incredibly simple and easy to add real-time web functionality to your applications.
Group Address:
https://t.iss.one/joinchat/CVPIBkMqzRLziBiEBK7UyQ
Group Address:
https://t.iss.one/joinchat/CVPIBkMqzRLziBiEBK7UyQ
C# Programming Guide pinned «آیا میتوانیم از سیگنالگو در asp.net core استفاده کنیم؟ مزیت آن چیست؟ بله شما میتوانید از سیگنالگو در پروژه های asp.net یا asp.net core هم استفاده کنید یا در یک پروژه خام کنسول و هر جایی که میخواهید استفاده کنید.پکیج های سیگنالگو کاملا cross platform ,و بسیار…»
ویدئو آموزش ساخت یک اپلیکیشن سرور + کلاینت WPF و Xamarin موبایل با سیگنالگو
https://www.aparat.com/v/oqWAP
@CSharpTips
https://www.aparat.com/v/oqWAP
@CSharpTips
Forwarded from Agrin (Ali Yousefi ˢᵒᶠᵗʷᵃʳᵉ ᴰᵉᵛᵉˡᵒᵖᵉʳ)
دیروز داشتم از اپلیکیشن #روبیکا استفاده میکردم و میخواستم یک سرویس ازش خریداری کنم متوجه شدم که یک دیالوگ آورد بالا و شماره کارت و رمز رو ازم میگرفت، بلافاصله بستم و کلا دیگه از اپش قطع امید کردم.
حواستون باشه یکی از نکات مهم حریم خصوصی و امنیت کاربران اینه که به هیچ عنوان اطلاعات رمز کارت کاربران در اپلیکیشن دریافت نشه حتی در مرورگر داخلی نرم افزار و حتما باید به یکی از مرورگر های سیستم عامل مثل فایرفاکس و کروم ریفرنس داده بشه و کاربر از اونجا خرید کنه.
اگر دیدید نرم افزاری حتی اگر مطمئن هستید صاحب امتیازش دزد نیست توی خود نرم افزار اطلاعات کارت شمارو میگیره بلافاصله اون اپ رو حذف کنید و یا به سازنده اطلاع بدید که اینطوری از کاربران اطلاعات شخصیشون رو دریافت نکنه.
#امنیت
#حریم_خصوصی
@AgrinDM
حواستون باشه یکی از نکات مهم حریم خصوصی و امنیت کاربران اینه که به هیچ عنوان اطلاعات رمز کارت کاربران در اپلیکیشن دریافت نشه حتی در مرورگر داخلی نرم افزار و حتما باید به یکی از مرورگر های سیستم عامل مثل فایرفاکس و کروم ریفرنس داده بشه و کاربر از اونجا خرید کنه.
اگر دیدید نرم افزاری حتی اگر مطمئن هستید صاحب امتیازش دزد نیست توی خود نرم افزار اطلاعات کارت شمارو میگیره بلافاصله اون اپ رو حذف کنید و یا به سازنده اطلاع بدید که اینطوری از کاربران اطلاعات شخصیشون رو دریافت نکنه.
#امنیت
#حریم_خصوصی
@AgrinDM
اون دسته از عزیزانی که مثل من vs 2017 رو به صورت offline installer دانلود و نصب کردند و حدود 100 گیگ شده و میخوان به ویژوال استادیو 2019 بروز رسانی کنند لازم نیست همه ی پکیج ها رو از اول دانلود و نصب کنند.
فقط کافیه به همون روش قبلی عمل کنند و از سایت زیر فایل نصبی رو جایگزین کرده و سپس ستاپ ویژوال استادیو 2017 رو به 2019 تبدیل و نصب کنند.سپس فایل installer خودش نیازمندی های جدید رو دانلود میکنه و قبلی هایی که روی 2017 داشتید مجدد دانلود نمیشن.
https://developerinsider.co/download-visual-studio-2019-web-installer-iso-community-professional-enterprise
فقط کافیه به همون روش قبلی عمل کنند و از سایت زیر فایل نصبی رو جایگزین کرده و سپس ستاپ ویژوال استادیو 2017 رو به 2019 تبدیل و نصب کنند.سپس فایل installer خودش نیازمندی های جدید رو دانلود میکنه و قبلی هایی که روی 2017 داشتید مجدد دانلود نمیشن.
https://developerinsider.co/download-visual-studio-2019-web-installer-iso-community-professional-enterprise
Developer Insider
Download Visual Studio 2019 Web Installer / ISO (Community / Professional / Enterprise)
Please read Visual Studio 2019 system requirements before installing:
Supported Operating Systems
Visual Studio 2019 will install and run on the following operating systems (64
bit recommended):
* Windows 10 version 1703 or higher: Home, Professional,…
Supported Operating Systems
Visual Studio 2019 will install and run on the following operating systems (64
bit recommended):
* Windows 10 version 1703 or higher: Home, Professional,…
انتظار میرود در نسخه ی بعدی یعنی نسخه ی 6 سیگنالگو چه قابلیت هایی داشته باشیم؟
1.ساپورت پترن Dependency Injection
2.ریفکتور کردن پروژه و بالا بردن پرفورمنس سیگنالگو به بهترین حالت ممکن (در حال انجام)
3.ساپورت پروتکل UDP
4.بهبود و بالابردن استفاده های راحت تر از مباحث OperationContext و مدیریت راحت تر کلاینت ها به صورت Real-Time
5.سیستم لاگ
اهداف آینده؟
1.ساخت متد هایی که تا الان در سرویس های سیگنالگو نوشتید به صورت یک Test Case بدون زدن کد. این روش باعث میشه که شما متد هاتون رو تست کنید بدون اینکه برای پروژتون test case بنویسید!!
2.پیاده سازی Data Exchanger به صورت Queryable و حرفه ای که برنامه نویسی و ارتباط و کوئری های بین کلاینت و سرور رو داینامیک و نا محدود میکنه. تا الان هم بخشی زیادی از این سیستم پیاده سازی شده.
دوستان عزیز هر گونه کامنت یا سوال رو میتونید همینجا بزنید یا به خودم ارسال کنید @ali_visual_studio
1.ساپورت پترن Dependency Injection
2.ریفکتور کردن پروژه و بالا بردن پرفورمنس سیگنالگو به بهترین حالت ممکن (در حال انجام)
3.ساپورت پروتکل UDP
4.بهبود و بالابردن استفاده های راحت تر از مباحث OperationContext و مدیریت راحت تر کلاینت ها به صورت Real-Time
5.سیستم لاگ
اهداف آینده؟
1.ساخت متد هایی که تا الان در سرویس های سیگنالگو نوشتید به صورت یک Test Case بدون زدن کد. این روش باعث میشه که شما متد هاتون رو تست کنید بدون اینکه برای پروژتون test case بنویسید!!
2.پیاده سازی Data Exchanger به صورت Queryable و حرفه ای که برنامه نویسی و ارتباط و کوئری های بین کلاینت و سرور رو داینامیک و نا محدود میکنه. تا الان هم بخشی زیادی از این سیستم پیاده سازی شده.
دوستان عزیز هر گونه کامنت یا سوال رو میتونید همینجا بزنید یا به خودم ارسال کنید @ali_visual_studio
پکیج JsonGo یکی از پکیج های ساده ای هست که زدم و همونطور که در تصویر مشاهده میکنید حداقل دو برابر سریعتر از پکیج newtonsoft.json هست با قابلیت loop handling از این پکیج سریع قرار هست در سریالایز و دیسریالایز signalgo استفاده بشه.همونطور که میدونید یکی از مسائلی که ما قراره در signalgo 6 داشته باشیم سرعت بسیار بالای اون هست.
https://github.com/Ali-YousefiTelori/JsonGo
https://github.com/Ali-YousefiTelori/JsonGo
دوستان عزیز سایت https://signalgo.net:8080 جهت تست سرور های سیگنالگو توسط یکی از بچه های تیم سیگنالگو در حال تکمیل شدن هست. از این پس میتونید سرور های سیگنالگو خودتون رو با استفاده از این وبسایت تست کنید.این سایت در مرحله تست می باشد و ان شالله موارد بسیاری به آن اضافه خواهد شد.
#امنیتی
در پی حملاتی که به سرور میشد از طرف سرویس دهنده گزارشی مبنی بر حمله دریافت کردم.راستش این حملات رو توی همه ی سرور هایی که تا الان داشتم دارم.طرف با ای پی های مختلف درخواست وصل شدن به سرور ریموت میده، جالب اینجاست که اگر پسوردتون هک بشه این پسورد روی دیتابیس هکر ذخیره میشه و به بقیه ی سرور های تحت حمله اون پسورد رو میفرسته یعنی اگر پسوردتون هک شد دیگه از اون پسورد استفاده نکنید.ولی منم ساکت ننشستم و یک نرم افزار ساده توی ده دیقه زدم که همه ی آی پی هایی که درخواست ورود ناموفق به ریموت داشتن رو بلاک میکنه.در نتیجه تعداد درخواست ها هر روز داره کمتر میشه و تا اینکه به صفر رسیده.
در اصل تمامی آی پی های هکر توی فایروال به طور اتوماتیک بلاک میشه و دیگه نمیتونه با ای پی های مختلف درخواست وصل شدن به سرور بده
سورس:
https://github.com/Ali-YousefiTelori/Firewall-Ip-Blocker
@CSharpTips
در پی حملاتی که به سرور میشد از طرف سرویس دهنده گزارشی مبنی بر حمله دریافت کردم.راستش این حملات رو توی همه ی سرور هایی که تا الان داشتم دارم.طرف با ای پی های مختلف درخواست وصل شدن به سرور ریموت میده، جالب اینجاست که اگر پسوردتون هک بشه این پسورد روی دیتابیس هکر ذخیره میشه و به بقیه ی سرور های تحت حمله اون پسورد رو میفرسته یعنی اگر پسوردتون هک شد دیگه از اون پسورد استفاده نکنید.ولی منم ساکت ننشستم و یک نرم افزار ساده توی ده دیقه زدم که همه ی آی پی هایی که درخواست ورود ناموفق به ریموت داشتن رو بلاک میکنه.در نتیجه تعداد درخواست ها هر روز داره کمتر میشه و تا اینکه به صفر رسیده.
در اصل تمامی آی پی های هکر توی فایروال به طور اتوماتیک بلاک میشه و دیگه نمیتونه با ای پی های مختلف درخواست وصل شدن به سرور بده
سورس:
https://github.com/Ali-YousefiTelori/Firewall-Ip-Blocker
@CSharpTips
نسخه ی آزمایشی Preview1 پکیج JsonGo امروز روی Nuget منتشر شده و دوستان میتونن از نظر پرفورمنس و کارایی با این پکیج کار کنند.
آدرس nuget:
https://www.nuget.org/packages/JsonGo/
سورس:
https://github.com/Ali-YousefiTelori/JsonGo
آدرس nuget:
https://www.nuget.org/packages/JsonGo/
سورس:
https://github.com/Ali-YousefiTelori/JsonGo
www.nuget.org
JsonGo 0.1.0-preview7
fast json serialize and deserialization
به زامارین قابلیت جدید Hot reload اضافه شده. تغییرات جدید بدون نیاز به کامپیابل و اجرای مجدد در زمان اجرا در نرم افزار اعمال میشن... یعنی شما نرم افزار رو روی گوشیتون اجرا میکنید، کد رو تغییر میدید و نرم افزار تغییر میکنه.
https://www.youtube.com/watch?time_continue=4&v=Y3nGkzbc0JE
https://www.youtube.com/watch?time_continue=4&v=Y3nGkzbc0JE
YouTube
XAML Hot Reload for Xamarin.Forms
XAML Hot Reload for Xamarin.Forms enables you to make changes to your XAML UI and see them reflected live, without requiring another build and deploy. XAML H...
توی یک شرکتی کار میکنم که علاقه زیادی به استفاده از سیگنالگو نشون ندادن، شاید به خاطر عدم اعتمادشون به خودم که برنامه سیگنالگو هستم بود، میخوام چند تا از مشکلاتی که با تکنولوژی های روز کار میکنید رو خوردیم امروز براتون بگم.
پروژه روی Abp در حال توسعه بود،کلاینت Angular و پروژه ی بسیار بزرگی استارت خورده که شامل دو تا پروژه ی B2B و یک B2C وقتی وارد شرکت شدم بچه ها همچنان در حال توسعه ی کار ها بودن اول اینکه Abp خروجی توابع شمارو به یک کلاس داخلی خودش Wrap میکنه که شامل success و result و Error و... هست.تا اینجا اوکی هست ولی وقتی بخواید کاستومایزش کنید چه اتفاقی میوفته؟ خب ما نمیخواستم خروجی apb رو بذاریم کنار بلکه میخواستیم دو تا فیلد بهش اضافه کنیم در نتیجه یک کلاس ساختیم و از خروجی abp ارث بردیم و توابع سرویس ها رو DontWrap کردیم. خوب سرور که اوکی بود Swagger هم اوکی بود... مشکل کد جنریتور سواگر بود که برای کلاینت خروجی ها رو درست تولید نمی کرد در نتیجه ریزالت ها کاملا اشتباه و همش نال سمت کلاینت ساخته میشد.پروژه اول روی abp و سیگنالگو با هم در حال اجرا بود اما مدیر پروژه اصرار داشت روی Abp باشه ما هم برداشتیمش و به این مشکل خوردیم فلذا من مجدد پیشنهاد کردم که از کد جنرتور سیگنالگو استفاده کنیم و کردیم و مشکل حل شد.عدم ایجاد محدودیت توی سیگنالگو هم باعث شد سرویس های abp رو فقط با یک اتریبیوت تبدیل به سیگنالگو کنیم دوم اینکه با اینکه از سرویس های سیگنالگو به درخواست مدیر پروزه استفاده نکردیم ولی باز هم به خاطر رفع باگ های سیستم داخلی تونستیم با سیگنالگو مشکل رو حل و به جلو ببریم.
مساله ی بعدی Dependency Injection بود که به خودی خود به خاطر کانستراکتور و ورودی های زیادی که داشت اتوماتیک پروژه رو کثیف میکرد پس اینجا هم مجبور شدیم یک کدی بزنیم که اینهمه کانستراکتور رو با ورودی های زیادی تولید نکنیم، مساله ی بعدی اینکه باز هم سیگنالگو به دلیل عدم محدودیت میتونست از اخرین نسخه و حتی preview های ef core استفاده کنه ولی abp اخرین نسخه ریلیز شدش به دلیل وابستگی های زیادی که توی پروژه داشت نمیتونست از اخرین نسخه ی ef core استفاده کنه.
ساختار abp به دلیل استفاده از Dependency Injection میگه وابستگی ها رو به دلیل معماری از پروژه ی شما بر میداره ولی ایا میدونید وقتی از abp استفاده میکنید 90 درصد پروژتون به خود abp داره وابسته میشه؟ پس این ادعا فقط برای کامپوننت های دیگست نه خود abp در حالی توی سیگنالگو کلاس سی شارپتون بدون هیچ ارث بری ای تبدیل به سرویس میشه!!
حالا به سری مشکلات عجیب و غریب دیگه هم خوردیم مثلا یک تابع داریم توی سرور که ورودی فقط یک عدد میگیره در حالی که تابع Post هست و باید از طریق Body مقدار فرستاده بشه به سرور ولی سرور اصرار داره اون مقدار از طریق آدرس Url یعنی مثل Get فرستاده بشه و Body خالی باشه و FromBody هم مشکل رو حل نکرد.خب توی سیگنالگو چطوریاس؟
سیگنالگو عملا اهمیتی به این نمیده که تابع شما روی post هست یا Get یعنی همچین قابلیتی نداره و برنامه نویس درگیر get و post و multi part و .... نمیشه ولی یک تابع رو میتونید به همه ی این صورت ها صدا بزنید یعنی هم get صداش کنید هم post صداش کنید و هم multi part و ... خب من وقتی سالها با سیگنالگو سرور هامو خیلی سریع و ساده می نوشتم انتظار داشتم این طرف هم اینقدر ساده باشه.ولی متاسفانه هر روز یک مشکل و محدودیت جدید. واقعا هنوز نمیدونم چرا برنامه نویس های بک اند یا فرانت اند میترسن که از این تکنولوژی استفاده کنن شاید به این دلیله که یک ایرانی نوشته؟هنوز خودشون رو وابسته به پروژه های مایکروسافت و معماری های اونا میدونن خب یکبار هم شده سیگنالگو رو امتحان کنید شاید واقعا از چارچوب محدودیت که بیرون اومدید متوجه میشید اونطرف چقدر کارتون سخت بوده و اینور چقدر راحت شده.منم هدفم همین بوده دیگه مشکلات رو دیدم و سعی در حلشون کردم.
#Abp
#SignalGo
@CsharpTips
پروژه روی Abp در حال توسعه بود،کلاینت Angular و پروژه ی بسیار بزرگی استارت خورده که شامل دو تا پروژه ی B2B و یک B2C وقتی وارد شرکت شدم بچه ها همچنان در حال توسعه ی کار ها بودن اول اینکه Abp خروجی توابع شمارو به یک کلاس داخلی خودش Wrap میکنه که شامل success و result و Error و... هست.تا اینجا اوکی هست ولی وقتی بخواید کاستومایزش کنید چه اتفاقی میوفته؟ خب ما نمیخواستم خروجی apb رو بذاریم کنار بلکه میخواستیم دو تا فیلد بهش اضافه کنیم در نتیجه یک کلاس ساختیم و از خروجی abp ارث بردیم و توابع سرویس ها رو DontWrap کردیم. خوب سرور که اوکی بود Swagger هم اوکی بود... مشکل کد جنریتور سواگر بود که برای کلاینت خروجی ها رو درست تولید نمی کرد در نتیجه ریزالت ها کاملا اشتباه و همش نال سمت کلاینت ساخته میشد.پروژه اول روی abp و سیگنالگو با هم در حال اجرا بود اما مدیر پروژه اصرار داشت روی Abp باشه ما هم برداشتیمش و به این مشکل خوردیم فلذا من مجدد پیشنهاد کردم که از کد جنرتور سیگنالگو استفاده کنیم و کردیم و مشکل حل شد.عدم ایجاد محدودیت توی سیگنالگو هم باعث شد سرویس های abp رو فقط با یک اتریبیوت تبدیل به سیگنالگو کنیم دوم اینکه با اینکه از سرویس های سیگنالگو به درخواست مدیر پروزه استفاده نکردیم ولی باز هم به خاطر رفع باگ های سیستم داخلی تونستیم با سیگنالگو مشکل رو حل و به جلو ببریم.
مساله ی بعدی Dependency Injection بود که به خودی خود به خاطر کانستراکتور و ورودی های زیادی که داشت اتوماتیک پروژه رو کثیف میکرد پس اینجا هم مجبور شدیم یک کدی بزنیم که اینهمه کانستراکتور رو با ورودی های زیادی تولید نکنیم، مساله ی بعدی اینکه باز هم سیگنالگو به دلیل عدم محدودیت میتونست از اخرین نسخه و حتی preview های ef core استفاده کنه ولی abp اخرین نسخه ریلیز شدش به دلیل وابستگی های زیادی که توی پروژه داشت نمیتونست از اخرین نسخه ی ef core استفاده کنه.
ساختار abp به دلیل استفاده از Dependency Injection میگه وابستگی ها رو به دلیل معماری از پروژه ی شما بر میداره ولی ایا میدونید وقتی از abp استفاده میکنید 90 درصد پروژتون به خود abp داره وابسته میشه؟ پس این ادعا فقط برای کامپوننت های دیگست نه خود abp در حالی توی سیگنالگو کلاس سی شارپتون بدون هیچ ارث بری ای تبدیل به سرویس میشه!!
حالا به سری مشکلات عجیب و غریب دیگه هم خوردیم مثلا یک تابع داریم توی سرور که ورودی فقط یک عدد میگیره در حالی که تابع Post هست و باید از طریق Body مقدار فرستاده بشه به سرور ولی سرور اصرار داره اون مقدار از طریق آدرس Url یعنی مثل Get فرستاده بشه و Body خالی باشه و FromBody هم مشکل رو حل نکرد.خب توی سیگنالگو چطوریاس؟
سیگنالگو عملا اهمیتی به این نمیده که تابع شما روی post هست یا Get یعنی همچین قابلیتی نداره و برنامه نویس درگیر get و post و multi part و .... نمیشه ولی یک تابع رو میتونید به همه ی این صورت ها صدا بزنید یعنی هم get صداش کنید هم post صداش کنید و هم multi part و ... خب من وقتی سالها با سیگنالگو سرور هامو خیلی سریع و ساده می نوشتم انتظار داشتم این طرف هم اینقدر ساده باشه.ولی متاسفانه هر روز یک مشکل و محدودیت جدید. واقعا هنوز نمیدونم چرا برنامه نویس های بک اند یا فرانت اند میترسن که از این تکنولوژی استفاده کنن شاید به این دلیله که یک ایرانی نوشته؟هنوز خودشون رو وابسته به پروژه های مایکروسافت و معماری های اونا میدونن خب یکبار هم شده سیگنالگو رو امتحان کنید شاید واقعا از چارچوب محدودیت که بیرون اومدید متوجه میشید اونطرف چقدر کارتون سخت بوده و اینور چقدر راحت شده.منم هدفم همین بوده دیگه مشکلات رو دیدم و سعی در حلشون کردم.
#Abp
#SignalGo
@CsharpTips