سورس نرم افزار پیام رسان به زبان سی شارپ
در این بخش سورس نرم افزار پیام رسان به زبان سی شارپ (Client/Server) را با هدف آموزش برخی از مفاهیم برنامه نویسی سوکت آماده کرده ایم که در ادامه می توانید توضیحات و تصاویر مربوط به این نرم افزار را مشاهده کنید.
آموزش های موجود در اینترنت در مورد برنامه نویسی سوکت، اکثرا فقط نحوه ارتباط با سرور و ارسال یک پیام متنی ساده را آموزش می دهند که فقط برای افرادی که هیچ دانش و درکی در این زمینه ندارند، مناسب است.
این نرم افزار پیام رسان با استفاد از زبان برنامه نویسی سی شارپ و تکنولوژی WPF ایجاد شده است. هدف از ایجاد این نرم افزار آموزش نحوه برنامه نویسی سوکت در سی شارپ و استفاده از کلاس TcpListener و TcpClient بوده است. این سورس کد برای آن دسته از افرادی که اطلاعات پایه را در زمینه برنامه نویسی Socket دارند و قصد دارند موارد جدید و پیشرفته تری در این حوزه یاد بگیرند، مناسب است.
شما با مشاهده سورس کد این پروژه می توانید نحوه ارتباط برقرار کردن با سرور، ارسال بسته به سرور، ارسال شیء از طریق سوکت، رمزگذاری و رمزگشایی بسته ها، نحوه احراز هویت کاربران را یاد بگیرند.
ساختار پروژه
- Messenger.Client
- Messenger.Client.UI
- Messenger.Security
- Messenger.Server
- Messenger.Server.UI
- Messenger.Shared
پروژه Messenger.Client
این پروژه شامل منطق برنامه کلاینت و سرویس هایی برای هندل کردن ارتباط کلاینت با نرم افزار سرور است. ساختار فایل ها و پوشه های این اسمبلی:
- [DIR] Arguments
- [C#] ChatPacketEventArgs.cs
- [C#] LoginResponseEventArgs.cs
- [C#] UsersListResponseEventArgs.cs
- [DIR] Tcp
- [C#] ITcpClientProvider.cs
- [C#] TcpClientProvider.cs
- [C#] Transport.cs
پروژه Messenger.Client.UI
این پروژه مربوط به ظاهر نرم افزار Client است که با WPF و به صورت MVVM طراحی شده است. ساختار فایل ها و پوشه های این اسمبلی:
- [DIR] Models
- [DIR] Base
- [C#] ObservableObject.cs
- [C#] Chat.cs
- [C#] User.cs
- [DIR] Base
- [DIR] Resources
- [DIR] Config
- [KEY] Client-Private.key
- [KEY] Server-Public.key
- [DIR] Fonts
- [DIR, FONT FAMILY] Nunito
- [DIR] Images
- [JPG] Background.jpg
- [ICO] Messenger.ico
- [PNG] Messenger_48x48.png
- [PNG] Messenger_Original.png
- [DIR] UI
- [DIR] Patches
- [DIR] Config
-
-
-
- [XAML] MaterialDesignTextBox.xaml
- [XAML] MetroWindow.xaml
- [XAML] ScrollBar.xaml
- [DIR] Templates
- [XAML] ChatsListItemTemplate.xaml
- [XAML] UsersListItemTemplate.xaml
- [DIR] Themes
- [XAML] Dark.xaml
- [XAML] ListBoxItem.xaml
- [XAML] Resources.xaml
- [XAML] Styles.xaml
-
-
- [DIR] Services
- [C#] AppInfo.cs
- [C#] ChatManager.cs
- [C#] Global.cs
- [C#] Launcher.cs
- [DIR] ViewModels
- [DIR] Base
- [C#] BaseViewModel.cs
- [C#] RelayCommand.cs
- [C#] LoginPageViewModel.cs
- [C#] MainPageViewModel.cs
- [C#] MainWindowViewModel.cs
- [DIR] Base
- [DIR] Views
- [XAML] LoginPage.xaml
- [C#] LoginPage.xaml.cs
- [XAML] MainPage.xaml
- [C#] MainPage.xaml.cs
- [XAML] App.xaml
- [C#] App.xaml.cs
- [XAML] MainWindow.xaml
- [C#] MainWindow.xaml.cs
پروژه Messenger.Security
این پروژه شامل سرویس هایی برای رمزگذاری و رمزگشایی بسته های با استفاده از الگوریتم های RSA و AES است. ساختار فایل ها و پوشه های این اسمبلی:
- [DIR] Models
- [C#] RsaKey.cs
- [C#] ICryptoEngine.cs
- [C#] CryptoEngine.cs
- [C#] IKeyService.cs
- [C#] KeyService.cs
- [C#] ISecurityProvider.cs
- [C#] SecurityProvider.cs
پروژه Messenger.Server
این پروژه شامل منطق برنامه سرور و سرویس هایی برای هندل کردن ارتباط کلاینت ها با یکدیگر است. ساختار فایل ها و پوشه های این اسمبلی:
- [DIR] Arguments
- [C#] ChatEventArgs.cs
- [C#] UserEventArgs.cs
- [DIR] Tcp
- [C#] ITcpServerProvider.cs
- [C#] TcpServerProvider.cs
- [C#] PacketQueueItem.cs
- [C#] Transport.cs
پروژه Messenger.Server.UI
این پروژه مربوط به ظاهر نرم افزار Server است که با WPF و به صورت MVVM طراحی شده است. ساختار فایل ها و پوشه های این اسمبلی:
- [DIR] Models
- [DIR] Base
- [C#] ObservableObject.cs
- [C#] Chat.cs
- [C#] User.cs
- [DIR] Base
- [DIR] Resources
- [DIR] Config
- [KEY] Client-Public.key
- [KEY] Server-Private.key
- [DIR] Images
- [ICO] Messenger_Server.ico
- [PNG] Messenger_Server_48x48.png
- [PNG] Messenger_Server_Original.png
- [DIR] UI
- [DIR] Templates
- [DIR] Config
-
-
-
- [XAML] ChatsListItemTemplate.xaml
- [XAML] UsersListItemTemplate.xaml
-
-
- [DIR] Services
- [C#] AppInfo.cs
- [C#] Global.cs
- [C#] Launcher.cs
- [ViewModels]
- [DIR] Base
- [C#] BaseViewModel.cs
- [C#] RelayCommand.cs
- [C#] MainWindowViewModel.cs
- [DIR] Base
- [XAML] App.xaml
- [C#] App.xaml.cs
- [XAML] MainWindow.xaml
- [C#] MainWindow.xaml.cs
پروژه Messenger.Shared
این پروژه شامل فایل های مشترک بین نرم افزار کلاینت و سرور است. ساختار فایل ها و پوشه های این اسمبلی:
- [DIR] Arguments
- [C#] PacketEventArgs.cs
- [DIR] Models
- [DIR] Base
- [C#] BaseUser.cs
- [C#] TransportConfig.cs
- [C#] User.cs
- [DIR] Base
- [DIR] Packets
- [DIR] Base
- [C#] Packet.cs
- [C#] PacketContainer.cs
- [C#] Request.cs
- [C#] Response.cs
- [C#] ChatPacket.cs
- [C#] LoginRequest.cs
- [C#] LoginResponse.cs
- [C#] LogoutRequest.cs
- [C#] UsersListRequest.cs
- [C#] UsersListResponse.cs
- [DIR] Base
- [DIR] Utilities
- [DIR] Logger
- [C#] IFileLogger.cs
- [C#] FileLogger.cs
- [C#] LogQueueItem.cs
- [C#] SocketAssist.cs
- [DIR] Logger
بسته های استفاده شده
- Fody.4.2.1
- PropertyChanged.Fody.2.6.1
- MaterialDesignThemes.2.6.0
- MaterialDesignColors.1.2.0
- MaterialDesignThemes.MahApps.0.1.0
- MahApps.Metro.1.6.0
- ControlzEx.3.0.2.4
- Newtonsoft.Json.12.0.3
برخی از ویژگی های نرم افزار
- قابلیت Login/Logout
- قابلیت ارسال پیام به یک کاربر خاص
- قابلیت مدیریت چندین کلاینت به طور همزمان
- دارای رابط کاربری (UI) ساده و زیبا
- امکان نمایش لیست کاربران آنلاین
- مدیریت چت های مربوط به هر کاربر
- استفاده از الگوریتم های RSA و AES برای رمزنگاری بسته های ارسالی بین کلاینت و سرور
- استفاده از الگوی طراحی MVVM
نکات
- این نرم افزار با استفاده از نرم افزار Visual Studio 2015 نوشته شده است.
- نسخه فریم ورک استفاده شده ۴٫۵٫۲ است.
نوشته سورس نرم افزار پیام رسان به زبان سی شارپ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.