C# Programming Guide
193 subscribers
113 photos
9 videos
14 files
102 links
سلام دوستان در این کانال نکاتی در مورد مسائل پیشرفته در سی شارپ ارائه میشه که مربوط به بیش از 15 سال تجربه ی کاری من هست.
ممنون از اینکه دنبال میکنید.
اگر نکات خاصی به ذهنتون رسید با ادمین در میون بذارید
تماس با ادمین:
@Ali_Visual_Studio
Download Telegram
سمت سرور یک کد زدم که اگر حجم فایل بیشتر از 5 مگابایت بود خطا بده که حجم فایل مجاز نیست.وقتی این خطا رو سریع بر میگردونم مرورگر خطای Cross origin میده و کلاینت نمیتونه پاسخ رو دریافت کنه در نتیجه هیچ اتفاقی نمیوفته و کلاینت هم نمیفهمه حجم مجاز نیست، حالا وقتی فایل رو کامل میخونم و بعد خطا رو برمیگردونم کلاینت خطا رو میفهمه، یعنی در این حد این پروتکل داغونه! که مرورگر های کروم و فایرفاکس هر دو در این حالت این خطا رو میدن و سرور رو مجبور به خوندن فایل تا اخر میکنن!😐
نسخه ی جدید سیگنالگو با قابلیت query زدن در خروجی و ورودی های متدهاتون در حال توسعه هست.
توی این نسخه همونطور که در تصویر میبینید میتونید هر نوع کوئری رو حتی از سمت کلاینت برای سرور بزنید یا از سمت سرور برای کلاینت بزنید و ... در واقع ما شکل ساده تر DataExchanger رو به شکل پیشرفته تری ساختیم تا کار رو برای برنامه نویسان آسون تر کنیم، این رو مقایسه کنید با GraphQl و OData و ببینید چقدر تمیز تر و راحت تره.اگر نظر یا پیشنهادی داشتید به خودم بگید
Forwarded from Agrin (Ali Yousefi ˢᵒᶠᵗʷᵃʳᵉ ᴰᵉᵛᵉˡᵒᵖᵉʳ)
اینم از نادانی ها و اذیت های کافه بازار نسبت به دانلود منیجر آگرین، نسخه ی اول آگرین با بیش از 80 هزار نصب فعال به دلیل قابلیت دانلود از یوتیوب حذف شد، حالا میگن پروفایل اینستاگرام رو دانلود نکن، آخه مرد حسابی تو میدونی حریم خصوصی چیه؟ دانلود منیجره کاربرا ویدئو شیر میکنن و دانلود میکنه. یه مشت آدم نادان پشت میز نشستن و فقط بلدن حذف کنن
وقتی من نسخه ی جدید اپم رو توی کافه بازار میزارم و کلی نق میزنه و تایید نمی کنه و تقریبا هرچی امکان اضافه کردم رو برمیدارم تا راضی شه دقیقا یه همیچن حسی دارم که توی ویدئو میبینید!

https://www.linkedin.com/feed/update/urn:li:ugcPost:6471329956474421248/
تعداد نصب پکیج های سیگنالگو از مرز 15 هزار بار گذشت، حتما این پکیج رو استفاده کنید تا طعم سرعت برنامه نویسی رو در سرور بچشید
سرعت بارگزاری اطلاعات رو از سرور سیگنالگو ببینید:
دوستان عزیز، ویدئوی زیر که میبینید سرعت بارگزاری اطلاعات، رکوئست به سرور و دریافت اطلاعات از دیتابیس و ارسال به کلاینت توسط سرور سیگنالگو هست، همونطور که در ویدئو میبینید اصلا احساس نمیشه که اطلاعات داره از سرور دریافت میشه و حتی لودینگ هم نمایش داده نمیشه ولی وقتی سرور رو می بندم چیزی که مشاهده میکنید لودینگ و دریافت اطلاعات هست. حتما سیگنالگو رو امتحان کنید.
https://www.aparat.com/v/ODkjx
نسخه ی 4.0 افزونه سیگنالگو برای ویژوال استادیو با قابلیت ساخت مدل ها برای زبان جاوا و سوییفت منتشر شد
نسخه جدید ابزار سیگنالگو تست با قابلیت کد جنریتور برای کلاینت های سی شارپ، جاوا، سوییفت،انگولار
دانلود نسخه ی ویندوز، مک و لینوکس:
https://github.com/SignalGo/SignalGoTest/releases
یکی از مسخره بازی هایی که پروتکل اچ تی تی پی داره در قسمت آپلود فایل هست، برای اینکه بتونید یک پاسخ به کلاینت بفرستید باید کل فایل رو اول بخونید، سرور های شما معمولا کل فایل رو میارن روی حافظه و این فاجعه ی بزرگ رو همیشه انجام میدن بدون اینکه شما متوجه اش باشین، سپس فایلی که شما توی توابع سرور استریم می کنید در واقع فایل هایی هستند که کامل روی حافظه ی سرور دانلود شدن، منظورم از حافظه، حافظه ی رم هست.
چطور من متوجه اش شدم؟ چون من توی سیگنالگو پروتکل اچ تی تی پی رو بطور کامل از صفر نوشتم، برای همین استریم کردن فایل توی سرور های سیگنالگو به طور واقعی انجام میشه و اصلا توی حافظه ی سرور نمیاد، حالا مشکل کجاست؟ مشکل اونجاست که اگر شما استریم رو نخونید، مثلا کلاینت داره یک فایل یک گیگی میفرسته و میخواید جلوشو از سمت سرور بگیرید تابع سرور کل یک گیگ رو میاره روی حافظه سپس شما میبینید که حجمش یک گیگه و بهش خطا میفرستید که حجم فایلتون زیاده، و این مسخره بازی این پروتکل هست و بسیار هم خطرناکه، حالا وقتی با سیگنالگو میخوام قبل از اینکه استریم رو کامل بخونم به کلاینت ریسپانس بدم مرورگر ها خطای کراس اوریجین میدن (یعنی عدم تایید هاست کلاینت توسط سرور رخ داده، یک خطای کاملا بی ربط) و وقتی استریم رو تا اخر میخونم خطای کراس اوریجین نمیده، این دنیای پروتکل مسخره اچ تی تی پی هست که شما سرور هاتون رو سالهاست باهاش مینویسید و شاید از خیلی از مسائلش خبر ندارید، و توی مباحث پرفورمنس سمت بک اند بسیار مهمن
#استخدامی
#مشهد
#فول_تایم

سلام دوستان، ما دنبال نیروی برنامه نویس میگردیم، بیمه و مزایا و تشویقی و ... حقوق ثابت تا سقف 5 میلیون

نیرویی که میخوایم بیشتر خلاق و فعال در زمینه های یاد گیری زبان های جدید و تکنولوژی های جدید برنامه نویسی مثلا فلاتر باشه، بنابراین مهم نیست در زمینه های دیگه خیلی حرفه ای باشه، چون مدیر پروژه های قوی ای دارید که از نظر معماری و ساختار همه ی کارهارو انجام میدن پس از تمامی کسانی که تجربه در زمینه برنامه نویسی آی او اس،اندروید، ویندوز یا وب و ... دارن که هم دنبال کار میگردن یا دنبال حقوق بهتر میگردنیا میخوان با تکنولوژی های روز کدنویسی رو در کنار ما تجربه کنن پیشنهاد میکنم با کاربری خودم توی لینکدین یا تلگرام زیر اقدام به ارسال رزومه کنید، با تشکر
تلگرام:
@ali_visual_studio
ایمیل:
[email protected]
گوگل بعد از پانزده سال که ما WPF کار کردیم تکنولوژی ای به نام Flutter داد، و ادعا کرد توی فلاتر everything is widget یعنی چون همه ی کنترلر ها از کلاسی به نام widget ارث بردن در نتیجه همه چیز میتونه بره توی همدیگه، دقیقا چیزی که ما بیش از پانزده سال پیش توی wpf داشتیم و هنوز با اون ساختار مایکروسافت به صورت کراس پلتفرم داریم عشق میکنیم، جالب اینجاست وقتی ویدئوی ارائه ی گوگل رو ببینید همه کف و هورا میزنن انگار تا بحال همچین تکنولوژی ای ندیده بودن و گوگل فکر میکنه کار جدیدی کرده، حالا کاری ندارم که توی زبان جدید گوگل که اسمش دارت هست بر خلاف جاوا شما پروپرتی دارید، توی فلاتر شما با زبان دارت کد میزنید و جالب اینجاست که بدونید گوگل توی فلاتر خاصیت Padding رو یک پروپتری قرار نداده بلکه padding یک ویجت هست یعنی اگر بخواید به یک کنترل padding بدید باید اونو داخل کلاس padding بذارید!! و بدتر از اون اینه که پیاده سازی رابط کاربری و منطق هر دو به زبان دارت هست یعنی هیچ زبان نشانه گذاری ای مثل XAML یا HTML برای پیاده سازی رابط کاربری نداره و همین درک و خوانایی کد نویسی رو بشدت میاره پایین یعنی شما اگر معماری MVC رو رعایت نکنید نمیتونید تشخیص بدید که کلاسی که ساختید برای UI هست یا منطق،ما هم میتونیم توی سی شارپ به جای استفاده از XAML همه رو با کد خام سی شارپ بزنیم ولی کی اینکار رو میکنه؟ اصلا زبان نشانه گذاری اومد تا کد زدن سمت رابط کاربری سریعتر و راحت تر بشه و کاملا از منطق جدا بشه، واقعا فلاتر میتونست خیلی چیز قشنگی بشه اگر گوگل فقط به جای عجله یکم روی معماری و ساختار کارهاش بیشتر وقت میذاشت.
@CsharpTips
سایت https://menno.ir یکی از سایت هایی هست که بکند اون به طور کامل با EF Core و سیگنالگو پیاده سازی شده و روی Asp.net Core هاست شده.
این پروژه در خیلی از رستوران های مشهد در حال اجرا هست و مشتری ها با یک منوی دیجیتال سفارش خودشون رو ثبت میکنن، بخش پنل این سرور که برای رستوران هاست علاوه بر مشاهده جزئیات کامل، دارای پوش نوتیفیکشن هم هست که به محض اینکه کاربران سفارش بدن به پنل نوتیف میشه و رستوران رو با خبر میکنه. حتی پنل ادمین هم داره یعنی توابع با دسترسی های مختلفی که دارن خروجی های متفاوتی به کاربران ارائه میکنن.البته menno یکی از ده ها اپلینیشنی هست که با سیگنالگو نوشته شده منتهی یکی از اپ هایی هست که امروز داره نمایندگی تهرانش هم گرفته میشه و داره خیلی بزرگتر میشه.
@CSharpTips
Forwarded from Simorgh (Hassan Hajisharifi)
Windows Phone is dead!
تولید ویندوز فون متوقف شد
مایکروسافت از کاربران ویندوز موبایل خواسته از سیستم عامل 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 که تا ویندوز ده این نرم افزار رو آوردن هرچند کسی ازش استفاده نکرد 😆
Media is too big
VIEW IN TELEGRAM
با افراد سرکش سازمان چکار کنیم؟
#یکم_تخصصی

یه مدتی دهنم سرویس شد تا توی جاوا بتونم 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