ورود

نسخه کامل مشاهده نسخه کامل : SignalGo ارتباط امن، سریع، و راحت با خوانایی کد بالاتر بین کلاینت و سرور...



عــــلی
24-08-2016, 18:24
سلام.

پروژه ی SignalGo چیست؟
سیگنال Go پروژه ای هست که ارتباطات بلادرنگ (Real-Time) رو برای برنامه نویسان سرور و کلاینت فراهم میکنه.

به این صورت که سرور بر حسب یک ادرس و پورت خاص اجرا میشه و کلاینت ها با استفاده از همون آدرس به اون سرور متصل میشن و داده ارسال میکنند و داده دریافت میکنند.این ارتباط کاملاً Duplex یعنی دو طرفه می باشد.
پروژه هایی نظیر SignalR و WCF هم در مجموعه ی این نوع پروژه ها قرار میگیرن.

چرا ما شروع کردیم به نوشتن SignalGo ؟

اولین مشکل ما ارتباط سخت بین کلاینت و سرور در جاوا و سی شارپ بود.برنامه نویسان شرکت ما که جاوا کار بودند بسیار براشون سخت بود که به سرور دات نت با سیگنال R وصل شن و منیج کردن کد ها و مشکلات تبدیل کد و هندل کردن به وجود میومد که مارو بر این کرد تا این سیستم رو از پایه طراحی کنیم.

پروژه ی سیگنال Go یک پروژه ی Open Source و متن باز هست که طراحی و معماری اون به شکلی انجام شده که سرعت انجام کار و تبادل اطلاعات رو چندین برابر بیشتر میکنه و اطمینان بیشتری به برنامه نویس میده.

برتری های SignalGo نسبت به SignalR در چیست؟

1.دسترسی دقیقتر به کلاینت ها مثل WCF
2.تضمین کردن رسیدن اطلاعات به دست کلاینت (همچنین برعکس)
3.دریافت خروجی از کلاینت زمانی که توابع کلاینت صدا زده میشود.
4.سرعت بیشتر
5.کد تمیز تر با خوانایی بیشتر
6.قابلیت آپلود و دانلود Stream
7.قابلیت ارتباط UDP برای انتقال صوت و تصویر

برتری های SignalGo نسبت به WCF در چیست؟

1.کراس پلتفرم بودن در حالی که WCF مخصوص ویندوز طراحی شده.
2.منیج راحت تر، تنظیمات کمتر و سرعت بیشتر.

در حال حاضر سرور و کلاینت دات نت و کلاینت جاوا SignalGo در github در دسترس هست.

سورس سرور و کلاینت:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

سورس کلاینت جاوا:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

نصب از طریق nuget:

نسخه ی سرور ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

نسخه ی کلاینت ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

نسخه ی جاوا اسکریپت
([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

سمپل و مثال کار با سیگنالگو
([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
پروژه ی تست توابع سرور ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

_H2_
25-08-2016, 00:21
سلام
اول به نام سازنده پروژه دقت نکردم ! :n02:
درکل جالب است.
باید وقت کنم یکبار امتحان کنم...
برای یکی از ایده های شخصی خودم در حال استفاده از SignalR هستم ...
یکی از مزایای SignalR را میتوان وجود امکان کدنویسی سمت کلاینت با javascript (بجز #C) به حساب آورد ، مشابه خودتان که کلاینت را به دوزبان نوشته اید ...
بازهم ممنون و شب خوش :n18:

عــــلی
25-08-2016, 00:39
سلام
اول به نام سازنده پروژه دقت نکردم ! :n02:
درکل جالب است.
باید وقت کنم یکبار امتحان کنم...
برای یکی از ایده های شخصی خودم در حال استفاده از SignalR هستم ...
یکی از مزایای SignalR را میتوان وجود امکان کدنویسی سمت کلاینت با javascript (بجز #C) به حساب آورد ، مشابه خودتان که کلاینت را به دوزبان نوشته اید ...
بازهم ممنون و شب خوش :n18:
سلام حسن جون.ممنونم:n39:
برای همین اپن سورس هست که برنامه نویس های بخش های دیگه هم بیان و توسعه بدن البته برنامه نویسای جاوا اسکریپت داریم توی شرکتمون احتمالا برای پروژه های بعدی مجبورشون کنیم که کلاینت جاوا اسکریپتشو ردیف کنند.

عــــلی
30-08-2016, 18:59
سورس جاوا اسکریپت :n01: ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

عــــلی
27-04-2017, 11:15
سلام.
فیچر های جدید:
1.امنیت ارسال و دریافت اطلاعات با استفاده از ترکیب الگوریتم های AES و RSA
2.صدا زدن توابع سرور با استفاده از پروتوکول http فعلا متد GET
3.منیج کردن توابع و کنترلر های http مثل asp.net mvc
مثلا:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اگر ادرس سرور شما localhost:1199 ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) باشد با صدا زدن ادرس [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] توی مرورگر تابع DownloadImage با مقدار پارامتر های ali و 2 صدا زده میشه.

نصب از طریق nuget:

نسخه ی سرور ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

نسخه ی کلاینت ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

نسخه ی جاوا اسکریپت ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

عــــلی
31-05-2017, 13:13
نسخه ی جدید سیگنالگو رو امروز ریلیز کردم.فیچر های اضافه شده:

1.لاگ کامل تمامی توابعی که توسط کلاینت صدا زده میشه یا از سمت سرور برای کلاینت صدا زده میشه + تمامی ورودی ها + دو زمان (زمان شروع صدا زدن و زمان فرستادن پاسخ به کلاینت) لاگ ها بر اساس تاریخ و ساعت از هم جدا میشن و هر کدوم توی پوشه و ... خودشون قرار میگیرن تا مرتب باشن همچنین برای توابع http هم لاگ میشه به همین صورت.
مثال فعال کردن:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


2.وقتی کلاینت ها به سرور متصل هستند و در حال صدا زدن توابع هستند و کوئری میگیرن و چیزی توی دیتابیس درج میکنن و شما میخواید سرور رو بروز رسانی کنید اگر سرور رو ناگهان ببندید ممکنه اختلال ایجاد بشه.برای همین قسمتی برای سیگنال گو گذاشتم که وقتی سرور رو بخواید بروز رسانی کنید تابعی رو صدا میزنید و سرور تمامی کال های ورودی رو میبنده و صبر میکنه تا تمامی کل هایی که در حال انجامه تکمیل بشه سپس سرور رو میبنده.

3.قابلیت محدود کردن کلاینت ها برای صدا زدن توابع، مثلا شما میتونید بگید این تابع منو فقط این چند تا ایپی صدا بزنن یا این تابع منو این چند تا ایپی نتونن صدا بزنن، کاربرد این قسمت بیشتر برای توابع لوکال هست که بخواید از طریق لوکال یه سری توابع رو صدا بزنید توی سرور و نمیخواهید کلاینت ها از بیرون بتونن اون توابع رو صدا بزنن

مثال:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و یه سری رفع باگ و ...

عــــلی
18-07-2017, 20:45
نسخه ی جدید سیگنالگو منتشر شده. امکانات:
1.رفع برخی مشکلات
2.بهینه سازی صدا زدن توابع GET و POST با قابلیت ساپورت ارسال داده json با POST برای کنترلر های HTTP
3.صفت (Attribute) جدید تبادل اطلاعات که باهاش میتونید ارسال و دریافت اطلاعات به کاربر های مختلف رو محدود کنید.فرض کنید یه سری فیلد دارید توی مدل هاتون که نمیخواید از سمت کاربر دریافت کنید در عوضش هم نمیخواید همش توی توابعتون کد بزنید که اونو از سمت کاربر اگه پر شده بود null اش کنید.یا برعکس یه سری کلاینت های مختلفی دارید مثل اندروید و ویندوز و استفاده از منابع اندروید کمتر از ویندوز هست و نمیخواید همه ی داده هایی که برای کلاینت های ویندوز میفرستید به اندروید هم فرستاده بشن (چون بهش نیازی ندارن) در این صورت از صفت DataExchenger استفاده میکنیم و بهش میگیم که میخوایم این پروپرتی در حالت ارسال یا در یافت از کلاینت محدود بشه در این صورت حتی اگه کلاینت اون فیلد رو پر کنه بازم برای شما null میاد (خود سرور جهت امنیت این رو هندل میکنه) یا اینکه برای استفاده های دیگه مثل مثالی که برای اندروید و ویندوز زدم میتونید Customize اش کنید.

عــــلی
27-08-2017, 12:21
نسخه ی 2 سیگناگو منتشر شد، امکانات:
1.ساپورت کامل دات نت 3.5 ، 4.0 ، 4.5 و دات نت استاندارد 1.6 و دات نت 1.1 Core
2.قابلیت اپلود فایل با استفاده متد Http Post بدون کش کردن دیتا ها در دیسک یا حافظه این یعنی اینکه شما یک فایل 10 گیگی رو هم میتونید با Http post اپلود کنید و همزمان که فایل داره از طرف کلاینت میاد دیتا هاشو بخونید
3.رفع باگ و بهینه سازی سیستم.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

نرم افزار تست سیگنال گو:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

عــــلی
15-10-2017, 11:26
سلام، نسخه ی جدید سیگنال گو منتشر شده، توی این نسخه یه قابلیت اضافه شده که برای هر متد که برای سرور مینویسید به صورت جداگونه میتونید بگید خروجی های پروپرتی های کلاستون برای کلاینت چی باشه بدون اینکه مدل جدیدی بسازید مثلا شما یک مدل دارید که 40 تا پروپرتی داره در حالی که کلاینت شما فقط به 5 تای اون نیاز داره با استفاده از این قابلیت فقط میتونید اون 5 تا پروپرتی رو برای کلاینت ارسال کنید.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

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

همچنین امکان اضافه شده صفت InstanceType هست که باعث میشه شما سمت سرور مشخص کنید به ازای هر کلاینت کلاس سرویس شما دوباره سازی بشه یا نه.
در صورتی که InstanceType برابر SingleInstance باشه به ازای هر کلاینت سرویس شما instance یا دوباره سازی نمیشه و یک سرویس برای همه ی کلاینت ها توی حافظه ساخته میشه و اگر مقدار اون برابر با MultipeInstance باشه کلاس سرویس ها به ازای هر کلاینت دوباره سازی خواهد شد.
مثال:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

عــــلی
31-01-2018, 11:33
نسخه ی جدید سیگنالگو با امکانات زیر منتشر شد:
1.ساپورت async و await برای صدا زدن توابع سرور از طرف کلاینت:
از این پس براحتی میتونید توابع سرور رو با قابلیت جدید دات نت یعنی async await صدا بزنید و براحتی خروجی بگیرید بعنی توابعتون رو توی ترد جداگونه اجرا کرده بدون اینکه UI شما freez بشه یا هنگ کنه.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

مثلا فقط کافه نوع خروجی تابعتون رو داخل <Task<T بذارید و انتهای اسم تابعتون رو Async بذارید البته میتونید توابع sync رو بطور کامل از توی اینترفیس بردارید و فقط Async ها رو برای کلاینت بذارید.

2.سریالایز و دیسریالایز کردن هر نوع آبجکتی که json ساپورت نمی کنه. مثلا شما نمیتونید توی SignalR یا هر نوع سیستم سرور کلاینتی ای که از json برای عملیات سریالایز استفاده میکنه هر نوع آبجکتی رو که میخواید از کلاینت به سرور یا بالعکس ارسال کنید.
مثلا شما یک آبجکتی دارید از نوع System.Drawing.Bitmap و این آبجکت قابلیت سریالایز شدن رو عملا نداره.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

اگر این مدل شما باشه و یکی از پروپرتی هاش Bitmap باشه نیازی نیست به مدلتون دست بزنید فقط کافیه طریقه ی سریالایز و دیسریالایز کردن این آبجکت رو به سیگنالگو بگید.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

به این شکل، توی رویداد HandleSerializingObject دو نوع ورودی مشخص میکنید اولیش رو اون تایپی که میخواید سریالایز کنید و دومیش خروجی ای که میخواید به سیگنالگو بدید تا به کلاینت ارسال کنید یا برعکس از کلاینت به سرور. هر وقت سیگنالگو با این آبجکت هنگام تبادل اطلاعات مواجه بشه اونو به شما میده تا برای تبدیل کنید به خروجی ای که میخواستید چون جیسون از byte ارایه و string پشتیبانی میکنه شما میتونید مثلا خروجی رو Base64String هم بذارید.
البته من خودم از این روش برای دانلود و آپلود عکس استفاده نمی کنم.این قسمت صرفا برای انواع داده هایی هست که تبدیل پذیر نیستند.سیگنالگو خودش سیستم ارسال و دریافت Stream و فایل رو با سرعت بسیار بالا داره و نیاز به تبدیل به جیسون نیست.

تابع HandleDeserializingObject هم دقیقا عکسش رو انجام میده هر وقت بخواید ورودی ای که از مثلا از کلاینت میاد به عنوان بایت رو تبدیل کنید به Bitmap از این تابع استفاده میکنید سیگناگو خودش تشخیص میده شما کجا از Bitmap استفاده کردید همونجا ورودی رو بایت گرفته و تبدیل به Bitmap میکنه (نه برای ورودی های دیگه که از نوع بایت هستند ولی خروجیشون فرق میکنه)

3.هم سیستم ارسال و دریافت استریم و فایل هست که کمی تغییرات توش داده شده و راحت تر و قوی تر شده که بعدا توضیح میدم.

ناگفته نمونه یه بنده خدای ایتالیایی هم از پروژه خوشش اومده و داره استفاده میکنه و توی داکیومنت کردن و ویکی کردن توی گیتهاب کمک میکنه که داریم با هم صفحه ی ویکی سیگنالگو رو تکمیل میکنیم (ایشون خودش قبلا SignalR کار میکردن):

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

4.سیستم AutoReconnect که با این سیستم بعد از هر بار دیسکانکت شدن کلاینت از سرور مجدد تلاش میکنه که به سرور متصل بشه
5.سیستم اولویت بندی Priority system که باهاش توابعی که اولیت دارند رو مشخص میکنید.

فرض کنید بعد از هر بار کانکت شدن به سرور کلاینت باید مجدد لاگین کنه و یه سریع تنظیمات رو دریافت کنه.حالا توی این حالت کاربر توی صفحه ی گزارش یک لیست وجود داره که جزو اولویت ها بعد از اتصال نیست ولی کاربر وقتی میخواد گزارش بگیره اتصالش با سرور قطع میشه.نقشه چیه؟
1.درصورت قطع شدن نباید تابع دریافت گزارش صدا زده بشه چون به خطا میخوره
2.کاربر باید به سرور متصل بشه
3.کاربر باید لاگین کنه
4.مجدد تابع گزارش گیری صدا زده بشه و لیست رو دریافت کنه.

این فرایند رو باید همیشه به صورت دستی انجام میدادیم که Priority system توی سیگنالگو خودش اینو هندل میکنه.یعنی:
1.درصورت قطع شدن ارتباط، هر تابعی که صدا بزنید نگه داشته میشه و چیزی سمت سرور نمیره و خطایی برگشت داده نمیشه تا مجدد سعی کنه و اتصال پیدا کنه.
2.بعد از وصل شدن خودش لاگین رو صدا میزنه
3.بعد از لاگین شدن خودش توابع در حال انتظار رو ازاد میکنه و صدا میزنه و خروجی رو به صورت نرمال همونطوری که صدا زده بودید و منتظر پاسخ مونده بودید برمیگردونه

عــــلی
08-02-2018, 23:19
سلام.
نمونه سورس کلاینت و سرور اتاق چت روم که حدود 1 سال پیش با سیگنالگو نوشتم. قابلیت های این چت روم:
1.چت و پیام رسانی کاربران
2.کاربران ادمین و غیر ادمین و قابلیت محدود کردن دسترسی کاربران
3.گفتگوی صوتی انلاین بین کاربران
4.کامنت کردن ورود و خروج کاربران
5.اجازه گرفتن کاربران جهت گفتگوی صوتی (بدون اجازه گرفتن نمیتونن صحبت کنن)
و تنظیمات اتاق و ...

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

آدرس سروس:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


نحوه ی استفاده:
1.دو تا پروژه ی سرور و کلاینت از هم تفکیک شده:
الف کلاینت:
NoorpodConversation.UI
ب سرور:
NoorpodConversation.WindowsService

2.سرور با کنسول اجرا میشه که از دیتابیس sql express استفاده میکنه خودش دیتابیس رو کنار نرم افزار میسازه و همه ی کاراش رو میکنه فقط شما باید sql express نصب کرده باشید روی سیستمی که سرور رو اجرا میکنید برای تغییر connectionstring هم به فایل NoorpodContext.cs رجوع کنید و تغییرش بدید.

3.به صورت لوکال میتونید راحت تست کنید و نام کاربری admin و رمز 123 به طور پیشفرض با کاربری ادمین ساخته میشه که میتونید لاگین کنید.

4.برای راه اندازی سرور روی شبکه یا اینترنت حتما نرم افزار سرور رو که فایل NoorpodConversation.WindowsService.exe هست توی فایروال بهش دسترسی بدید. و برای کلاینت هم توی سورس NoorpodServiceHelper.cs آدرس localhost رو (خط 63 و 66 توی سورس) به آی پی سرور خودتون (شبکه داخلی یا اینترنت) تغییر بدید تا کلاینت به اون آدرس متصل بشه.سرور تغییراتی نمیخواد.

5.سورس با ویژوال استادیو 2017 ویرایش شده نسخه های پایین تر کار نمی کنن.

عــــلی
02-04-2018, 22:01
در نسخه ی جدید سیگنالگو قابلیت Add service reference به ویژوال استادیو با یک افزونه اضافه شده که با استفاده از اون میشه تمامی مدل ها وسرویس ها و کلاس های مورد نیاز کلاینت با پیاده سازی INotifyPropertyChanged برای مدل ها بدون دستکاری مدل های سرور رو برای کلاینتتون فراهم کنید.قابلیت جالبی که این سیستم داره اینه که میتونید مدل های جنریت شده رو با یک قابلیت تغییراتی توش ایجاد کنید که با بروز رسانی سرویس از سرور اون تغییرات از بین نرن مثلا چند تا پروپتری به کلاس یک مدل اضافه کنید.
نصب افزونه از:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

عــــلی
19-10-2018, 10:01
سیگنالگو ابزاری قدرتمند با امکانات فراوان برای توسعه برنامه های تحت شبکه و اینترنت می باشد.با سیگنالگو بعد از ساخت اپلیکیشن سمت سرور میتوانید بدون یک خط کد سمت کلاینت برای Blazor و Angular و Asp.net MVC و Asp.net Core و C#‎‎‎‎‎‎ Core مدل ها و سرویس هاتون رو بسازید و شروع به کد نویسی کنید.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام.
همیشه با خودم فکر میکردم کاش یه راه راحت تر و بهتری بود که برنامه نویسان مجبور نباشن کد های سمت سرور رو برای سمت کلاینت مجدد تکرار کنن، حتی یک خط کد اضافه روی اعصاب بود.بعد از این سیستم هایی اومد که در واقع باهاش میتونستید یک پروژه ی Share بسازید و بین کلاینت و سرور کدها و مدلهاتون رو Share کنید یا از ابزار هایی استفاده کنید که بنظرم بدی های خودش رو داره، اول اینکه کلاینت درگیر مدل هایی میشه که شاید اصلا نیازی نباشه ببینش، مثلا شما پروژه ی EF Core تون که توش مدل های دیتابیس هست رو با کلاینت شیر میکنید، خوب علاوه بر اینکه Context ها و Config هاتون شیر میشه Dependecy هاش هم شیر میشه، برنامه نویس اندروید یا IOS یا Blazor که سمت وب یا موبایل هست چرا باید Dependency از نوع EF Core داشته باشه در حالی که شاید اصلا نیاز نداشته باشه؟ خوب این خودش به نوعی کثیف کاری میشه، درگیر شدن کلاینت با دیدن خصیصه (Attribute) هایی نظیر Key و ForeignKey و غیره... یا برای سمت کلاینت اگر بخواید سیستم INotifyPropertyChanged رو پیاده سازی کنید جهت استفاده Binding ها مجبور میشید از ابزار های تزریق کد استفاده کنید که بزور به مدل ها زمان کامپایل یه سری تغییرات سمت کلاینت ایجاد کنند.حالا با این حال کسانی که انگولار و Type Script کار میکنن چیکار کنن؟ نمیتونن که از Dependency های سی شارپ استفاده کنن پس مجبور میشن مدل سازی کنن و کلی کد بزنن.اگر شما پروژه ای بزنید که فقط سی شارپ کارا ازش استفاده کنن یا قابل توسعه با زبان های دیگه نباشه در واقع شما نمیتونید یک شرکت بزرگ باشید، چون برنامه نویس های حرفه ای ممکنه هر زبانی بلد باشند و شما با اینکار نمیتونید از همه شون استفاده کنید پس همیشه دنبال برنامه نویس حرفه ای خاصی میگردید و این خودش همیشه از شما زمان خواهد گرفت.

خلاصه به دلایل خیلی زیاد که فقط من کمتر از ده درصدش رو در بالا ذکر کردم پروژه ی سیگنالگو تولید شد.این پروژه به شما اجازه میده علاوه بر اینکه بسیار سریع، دقیق و تمیز سمت سرور کد بزنید، هر چیزی که برای کلاینت لازمه رو بدون هیچ دستکاری و کد زدنی تولید کنه و کلاینت بدون هیچ کد زدنی تمامی سرویس ها، توابع و مدل ها و ... براش تولید میشه. اگر کلاینت سی شارپ کار باشه براش کد سی شارپ تولید میشه و اگر انگولار کار باشه براش کد و سرویس های مخصوص Angular تولید میشه.بنابراین کلاینت فقط درگیر کارای خودش میشه و براحتی میتونه توابع خودش رو صدا بزنه بدون اینکه همیشه درگیر تغییرات جدید سمت سرور باشه، هر بار که سرور تغییرات توی توابع و مدل هاش ایجاد کنه، برای کلاینت مجدد بروزرسانی شده و کدهاش ساخته میشه، پس بازم کلاینت درگیر تغییرات نمیشه.
علاوه بر همه ی اینها برنامه نویس سرور میتونه از ابزار SignalGo test که در بالا عکسش رو میبینید در قالب یک کلاینت کامل توابع و سرویس هاشو صدا بزنه بدون اینکه نیاز به وجود و یا برنامه نویسی یک کلاینت جدید باشه.

سیگنالگو قابلیت های خیلی خیلی زیادی داره که من فقط بخش کوچکی از راحتی کار شما برنامه نویسان رو اینجا آوردم، این پروژه ی بزرگ و متن باز (Open Source) حتی قابل مقایسه با SignalR و WCF نیست.چون علاوه بر اینکه برای همه ی پلتفرم ها قابل استفاده هست، بسیار سریع و قدرتمند با امکانات بی نهایت، به شما این اجازه رو میده براحتی کد بزنید و سریع تر از همیشه خروجی بگیرید و کمتر باگ بزنید. هرچه سریعتر شروع کنید با سیگنالگو کار کنید از برنامه نویسان دیگه جلوتر و سریعترید.من سیگنالگو رو تولید کردم و هر روز در حال توسعه ی اون هستم و هدفم جلوگیری از ایجاد کدهای تکراری و سریعتر شدن برنامه نویسان و ایجاد لایه های برنامه نویسی بسیار دقیق و خوانا و زیبا برای اپلیکیشن های خیلی بزرگ هست.

دسترسی به سورس سیگنالگو:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

ابزار تست سیگنالگو:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

افزونه ی کد جنرتور سیگنالگو برای ویژوال استادیو:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
سمپل ها و مثال ها:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

گروه سیگنالگو تلگرام:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
تماس با سازنده ی SignalGo در تلگرام:
ali_visual_Studio