C# Programming Guide
ویدئوی معرفی سیگنالگو و قابلیت ها و مقایسه با SignalR و WCF
در پست بعدی آموزش سیگنالگو قسمت دوم رو براتون میذارم که توش یاد میگیریم چطوری یک سرور و کلاینت با سیگنالگو پیاده سازی کنیم
C# Programming Guide pinned «همین آموزش در آپارات: https://www.aparat.com/v/KwzAq»
برای استفاده از دیتابیس سرور که قبلا پیشنهادم این بود که از Entity framework core استفاده کنید و همچنین میتونید برای دیتابیس سمت کلاینت از LiteDB استفاده کنید کاملا cross platform و قابل استفاده برای همه ی سیستم عامل هاست... دقت کنید که این رو برای دیتابیس های سمت کلاینت یعنی نرم افزار ها پیشنهاد میکنم و برای سمت سرور همون EF Core رو پیشنهاد میدم.
https://github.com/mbdavid/LiteDB
https://github.com/mbdavid/LiteDB
GitHub
GitHub - litedb-org/LiteDB: LiteDB - A .NET NoSQL Document Store in a single data file
LiteDB - A .NET NoSQL Document Store in a single data file - litedb-org/LiteDB
در نسخه ی جدید SignalGo قابلیت ساپورت پروتکل https برای توابع و سرویس های Web یا http اضافه شده.همچنین یک اپکیلیشن مدیریت سرور برای سیگنالگو ساخته شده که کارش مثل IIS هست و میتونید سرویس های زیادی رو بهش متصل کنید.
https://t.iss.one/joinchat/CVPIBkMqzRIlK5SGpwKblQ 👈
https://t.iss.one/joinchat/CVPIBkMqzRIlK5SGpwKblQ 👈
Telegram
SignalGo
ارتباط امن و سریع بین کلاینت و سرور برای ساخت نرم افزار های سرور و کلاینت و بازی های شبکه ای
آدرس گروه:
https://t.iss.one/joinchat/CVPIBkMqzRIlK5SGpwKblQ
آدرس گروه:
https://t.iss.one/joinchat/CVPIBkMqzRIlK5SGpwKblQ
Forwarded from سفر کهکشان با ابوراجا :)
مدتی بود قصد نوشتن یه کمپوننت رو داشتم تو Xamarin Forms
خب مسائل مختلفی رو آدم درگیر می شه موقع نوشتن یه کمپوننت. مخصوصا بحث Binding، ایزوله کردن مسائل داخلی کمپوننت از بیرون (Encapsulation) و خیلی موارد دیگه.
وقتی نوشتم اش، گفتم ببینیم این موارد پیچیده مثل
Template Binding، Content Presentor و Control Template و ... که توی Xaml هستن از کی به وجود اومدن؟
همون کدم رو بردم توی WPF ورژن .NET 4.6.1 و دیدم با کمی تغییرات Syntax ای کار کرد! نسخه .NET رو بردم عقب و عقب تر تا رسیدم به .NET 3 و دیدم باز هم کار کرد! خیلی جالبه که طراحی سال 2005 الی 2006 تیمی (یعنی ۱۲ الی ۱۳ سال پیش) اونقدر خوب، متین و منطقی بوده که هنوز هم معتبره و به خوبی کار می کنه.
وقتی این رو قیاس می کنم با Knockout، Angular JS و Angular و ... که در طول این سالها سعی کردن این موارد مربوط به Binding و کمپوننت نویسی رو درست کنن و این حجم از تغییرات و سعی و خطا رو داشتن و این رو قیاس می کنم با Xaml و عمق کاری که اون تیم کرده که الآن روی Android / iOS / Windows و اخیرا وب هم داره جواب می ده، به ارزش معماری اصولی و درست پی می برم. به این که ارزش کار یه تیم با یه تیم دیگه چقدر فرق می کنه. از Prism می گذرم که ۱۰ سال پیش ارائه شده و تفکر عمیق اش هنوز لنگه ای پیدا نکرده.
بزودی مجموعه کمپوننت های UI مون مبتنی بر Xamarin Forms رو ریلیز می کنیم روی GitHub در کنار تمامی کارهای دیگه ای که برای Xamarin Forms انجام دادیم و شروع به ایجاد مطالب آموزشی می کنیم براشون. اون موقع می تونید ببیند که چه کرده این Xaml ! (-;
مهندس یاسر مرادی @ysmoradi
https://xamarin-persian.ir
@xamarin_persian_ir
خب مسائل مختلفی رو آدم درگیر می شه موقع نوشتن یه کمپوننت. مخصوصا بحث Binding، ایزوله کردن مسائل داخلی کمپوننت از بیرون (Encapsulation) و خیلی موارد دیگه.
وقتی نوشتم اش، گفتم ببینیم این موارد پیچیده مثل
Template Binding، Content Presentor و Control Template و ... که توی Xaml هستن از کی به وجود اومدن؟
همون کدم رو بردم توی WPF ورژن .NET 4.6.1 و دیدم با کمی تغییرات Syntax ای کار کرد! نسخه .NET رو بردم عقب و عقب تر تا رسیدم به .NET 3 و دیدم باز هم کار کرد! خیلی جالبه که طراحی سال 2005 الی 2006 تیمی (یعنی ۱۲ الی ۱۳ سال پیش) اونقدر خوب، متین و منطقی بوده که هنوز هم معتبره و به خوبی کار می کنه.
وقتی این رو قیاس می کنم با Knockout، Angular JS و Angular و ... که در طول این سالها سعی کردن این موارد مربوط به Binding و کمپوننت نویسی رو درست کنن و این حجم از تغییرات و سعی و خطا رو داشتن و این رو قیاس می کنم با Xaml و عمق کاری که اون تیم کرده که الآن روی Android / iOS / Windows و اخیرا وب هم داره جواب می ده، به ارزش معماری اصولی و درست پی می برم. به این که ارزش کار یه تیم با یه تیم دیگه چقدر فرق می کنه. از Prism می گذرم که ۱۰ سال پیش ارائه شده و تفکر عمیق اش هنوز لنگه ای پیدا نکرده.
بزودی مجموعه کمپوننت های UI مون مبتنی بر Xamarin Forms رو ریلیز می کنیم روی GitHub در کنار تمامی کارهای دیگه ای که برای Xamarin Forms انجام دادیم و شروع به ایجاد مطالب آموزشی می کنیم براشون. اون موقع می تونید ببیند که چه کرده این Xaml ! (-;
مهندس یاسر مرادی @ysmoradi
https://xamarin-persian.ir
@xamarin_persian_ir
توی SQL نمیشه Id یک جدول رو رندوم گذاشت.یکی از مشکلاتی که برامون پیش میومد این بود که معمولا وقتی میخوایم برای یوزر هامون یک کد بسازیم که نظم خاصی نداشته باشه تا هرکس نتونه با یک حلقه و رکوئست به سرور همه ی دیتا ها رو دریافت کنه.
خلاصه یک راهی که اول به ذهن میرسه اینه که یک کد رندوم جنریت کنید و یوز هاتون موقع ثبت نام اون کد رو برای خودشون توی دیتابیس داشته باشن بعدش هم چک میکنین که کد تکراری نباشه خوب این یک مشکلی داره و اون اینه که وقتی تعداد یوزر ها بره بالا احتمال تکراری بودن کد های رندوم ساخته شده هم میره بالا.
روش بعدی اینه که یک کد سه یا چهار رقمی رو به عنوان پسورد توی جدول یوزر بذارید و همیشه با ای دی یوزر جمع یا کم یا ... کنید و یک عدد جدید بدست بیارید.
یک روش دیگه هم هست اینه که از تابعی که من زدم استفاده کنید آی دی یوزر همراه با یک پسورد (بدون اینکه پسورد در دیتابیس ذخیره باشه) به این تابع میدید و خروجی یک عدد میگیرید که میتونید به عنوان کد توی دیتابیس برای یوزر ذخیره کنید و به وسیله ی کدی که ذخیره کردید + پسوردتون میتونید آی دی یوزر رو بدست بیارید بدون اینکه کوئری زده باشید.
خلاصه یک راهی که اول به ذهن میرسه اینه که یک کد رندوم جنریت کنید و یوز هاتون موقع ثبت نام اون کد رو برای خودشون توی دیتابیس داشته باشن بعدش هم چک میکنین که کد تکراری نباشه خوب این یک مشکلی داره و اون اینه که وقتی تعداد یوزر ها بره بالا احتمال تکراری بودن کد های رندوم ساخته شده هم میره بالا.
روش بعدی اینه که یک کد سه یا چهار رقمی رو به عنوان پسورد توی جدول یوزر بذارید و همیشه با ای دی یوزر جمع یا کم یا ... کنید و یک عدد جدید بدست بیارید.
یک روش دیگه هم هست اینه که از تابعی که من زدم استفاده کنید آی دی یوزر همراه با یک پسورد (بدون اینکه پسورد در دیتابیس ذخیره باشه) به این تابع میدید و خروجی یک عدد میگیرید که میتونید به عنوان کد توی دیتابیس برای یوزر ذخیره کنید و به وسیله ی کدی که ذخیره کردید + پسوردتون میتونید آی دی یوزر رو بدست بیارید بدون اینکه کوئری زده باشید.
/// <summary>
/// یک آی دی از شما میگیرد و یک عدد رندوم یونیک به شما بر میگرداند
/// </summary>
/// <param name="id"></param>
/// <param name="password"></param>
/// <returns></returns>
public static int CompressRandomUniqId(int id, int password)
{
var array1 = BitConverter.GetBytes(id);
var array2 = BitConverter.GetBytes(password);
List<byte> resultArray = new List<byte>();
resultArray.Add(array1[1]);
resultArray.Add(array1[3]);
resultArray.Add(array1[0]);
resultArray.Add(array1[2]);
for (int i = 0; i < resultArray.Count; i++)
{
resultArray[i] -= array2[i];
}
return BitConverter.ToInt32(resultArray.ToArray(), 0);
}
/// <summary>
/// یک عدد رندوم از شما میگیرد و با پسورد عدد واقعی ای دی را به شما بر میگرداند
/// </summary>
/// <param name="id"></param>
/// <param name="password"></param>
/// <returns></returns>
public static int ExtractRandomUniqId(int id, int password)
{
var array1 = BitConverter.GetBytes(id);
var array2 = BitConverter.GetBytes(password);
List<byte> resultArray = new List<byte>();
for (int i = 0; i < array1.Length; i++)
{
array1[i] += array2[i];
}
resultArray.Add(array1[2]);
resultArray.Add(array1[0]);
resultArray.Add(array1[3]);
resultArray.Add(array1[1]);
return BitConverter.ToInt32(resultArray.ToArray(), 0);
}
C# Programming Guide
توی SQL نمیشه Id یک جدول رو رندوم گذاشت.یکی از مشکلاتی که برامون پیش میومد این بود که معمولا وقتی میخوایم برای یوزر هامون یک کد بسازیم که نظم خاصی نداشته باشه تا هرکس نتونه با یک حلقه و رکوئست به سرور همه ی دیتا ها رو دریافت کنه. خلاصه یک راهی که اول به ذهن…
این کد هیچوقت عدد تکراری به شما بر نمی گردونه و حتی از کلاس رندوم هم استفاده نمی کنه فقط با یه سری جمع و تفریق و جابجایی بایت ها داره یک عدد جدید به شما میده انگار که یک جدول داشته باشید که Id ش اتوماتیک ساخته بشه ولی از 1 شروع نشه بلکه رندوم شروع بشه
Forwarded from واحد آموزش آتی تک
✅آموزش مهارت های کاربردی و مورد نیاز بازارکار
✅بهره گیری ازمجربترین اساتید
✅معرفی واستخدام نفرات برتر پس ازپایان دوره
📌جهت کسب اطلاعات بیشتر وثبت نام به سایت مراجعه کنید.
@edu_atitec
✅بهره گیری ازمجربترین اساتید
✅معرفی واستخدام نفرات برتر پس ازپایان دوره
📌جهت کسب اطلاعات بیشتر وثبت نام به سایت مراجعه کنید.
@edu_atitec
واحد آموزش آتی تک
✅آموزش مهارت های کاربردی و مورد نیاز بازارکار ✅بهره گیری ازمجربترین اساتید ✅معرفی واستخدام نفرات برتر پس ازپایان دوره 📌جهت کسب اطلاعات بیشتر وثبت نام به سایت مراجعه کنید. @edu_atitec
دوستان عزیز توی دوره ی بعدی قرار هست کلاس آموزش زامارین یا سی شارپ پیشرفته بذارم اگر دوست داشتید شرکت کنید در سایت ثبت نام کنید (مشهد)
Forwarded from واحد آموزش آتی تک
📌پروژه نهایی دانشجویان دوره #سی_شارپ و #wpf
"ساخت مدیا پلیر با تکنولوژی wpf"
برای همه دانشجویان این دوره آرزوی موفقیت های بیشتری در این زمینه داریم 😊
@edu_atitec
"ساخت مدیا پلیر با تکنولوژی wpf"
برای همه دانشجویان این دوره آرزوی موفقیت های بیشتری در این زمینه داریم 😊
@edu_atitec
آموزش سیگنالگو قسمت سوم، ساخت یک سرور ساده http و تست با مرورگر و postman و signalgotest
https://www.aparat.com/v/GXPHU
https://www.aparat.com/v/GXPHU
آپارات - سرویس اشتراک ویدیو
آموزش سیگنالگو قسمت سوم
قسمت سوم آموزش سیگنالگو با موضوع سرویس های http
C# Programming Guide pinned «آموزش سیگنالگو قسمت سوم، ساخت یک سرور ساده http و تست با مرورگر و postman و signalgotest https://www.aparat.com/v/GXPHU»
C# Programming Guide
آموزش سیگنالگو قسمت سوم، ساخت یک سرور ساده http و تست با مرورگر و postman و signalgotest https://www.aparat.com/v/GXPHU
آیا تا به حال به این فکر کردید که راه های راحت تری برای برنامه نویسی سمت سرور حتی راحت تر از asp.net core و WCF و SignalR و انواع وب سرویس ها وجود داشته باشه که سرعت برنامه نویسی شما و تمیز بودن کد های سمت سرور یا کلاینت شما و قابل دسترسی بودن راحت تر کدهای شما با امکانات بی نهایت رو برای شما فراهم کنه؟
سیگنالگو یک ابزار متن باز (Open Source) با تجربه چندین سال تست و توسعه داده شده این امکانات رو برای شما فراهم میکنه تا بتونید سریع، راحت، تمیز کد بزنید و درگیر خیلی از مسائل دیگه که نیازی بهش ندارید نشید.اگر فقط یکبار با سیگنالگو سرور بسازید و از امکاناتش با خبر بشید دیگه سمت پروژه های دیگه برای بنویسی سمت سرور نخواهید رفت.
یک سرور سیگنالگو هم میتونه روی iis هاست بشه و هم اینکه خودش در قالب یک console نقش iis رو بازی کنه.
سیگنالگو یک ابزار متن باز (Open Source) با تجربه چندین سال تست و توسعه داده شده این امکانات رو برای شما فراهم میکنه تا بتونید سریع، راحت، تمیز کد بزنید و درگیر خیلی از مسائل دیگه که نیازی بهش ندارید نشید.اگر فقط یکبار با سیگنالگو سرور بسازید و از امکاناتش با خبر بشید دیگه سمت پروژه های دیگه برای بنویسی سمت سرور نخواهید رفت.
یک سرور سیگنالگو هم میتونه روی iis هاست بشه و هم اینکه خودش در قالب یک console نقش iis رو بازی کنه.
C# Programming Guide
Photo
در نسخه ی جدید سیگنالگو میتوانید از طریق Validation ها بدون کد زدن به کلاینت بفهمانید که مقادیری را پر نکرده یا اشتباه وارد کرده است.یا میتوانید برخی مقادیر را اتوماتیک پر کنید قبل از اینکه تابع شما صدا زده شود، مثلا همیشه در دیتابیس یک فیلدی با عنوان CreatedDateTime دارید که زمان ساخت سطر را در آن ذخیره میکنید ولی هر بار مجبورید کد بزنید مثلا user.Date = DateTime.Now با اعتبار سنجی در سیگنالگو دیگه نیازی به کد زدن برای مقادیر از پیش تعیین شده نیست (در مواردی که نیاز به پیچیدگی بیشتر هست برای مقادیر پیشفرض کاربردی خواهد بود)