An online audio/video chat project developed based on
.NET 6, with the client usingWPFand the backend using.NET Core Web API.
I. Project Introduction
An online audio/video chat project developed based on .NET 6, with the client using WPF and the backend using .NET Core Web API.
Repository address: https://github.com/qian-o/Dimension
Repository screenshot:

Project code structure:

II. Third-party Dependencies
Common dependencies
- log4net logging.
- SignalR for communication between server and client; used for friend requests, message notifications, announcements, chat, and audio/video calls.
- EntityFrameworkCore ORM for database operations; server uses SqlServer, client uses Sqlite.
- Newtonsoft.Json for JSON serialization and deserialization.
Server side
- TencentCloudSDK to interact with Tencent Cloud service APIs, used for managing call rooms.
- aliyun-net-sdk-core to interact with Alibaba Cloud service APIs, used for SMS services.
- CHSPinYinConv to obtain Chinese pinyin.
- Portable.BouncyCastle for TRTC encryption.
- SixLabors.ImageSharp for image processing; because image processing in C# requires GDI from Microsoft, but on Linux it requires the mono libgdiplus library, which is not ideal.
WPF client
- TXLiteAV to interact with Tencent Cloud TRTC service for local device audio/video streaming and obtaining audio/video data from other users in the room.
- XamlAnimatedGif for playing GIFs; due to device efficiency issues, the author modified the source code and repackaged it for use.
- Original repository: https://github.com/XamlAnimatedGif/XamlAnimatedGif
- Issue: https://github.com/XamlAnimatedGif/XamlAnimatedGif/issues/160
III. Project Configuration
To run this project properly, please understand the related configuration.
3.1 Backend Configuration:
The backend is developed with .NET Core Web API. Configuration is as follows:
- Third-party service configuration
Modify the ClassHelper class under the DimensionService.Common namespace.

Please fill in the paid services marked in the red box. This program uses Alibaba Cloud's SMS service and Tencent Cloud's TRTC service. Refer to official documentation for details.
- Database
This service uses SQL Server 2019 as the database and EF Core as the primary ORM framework. The database needs to be migrated for first-time use.
Open the Package Manager Console and enter:
Update-Database InitialCreate

The project provides an online test service address: http://47.96.133.119:5000 (Note from site admin: this address is currently inaccessible)
3.2 Client Configuration
The client is developed with WPF as shown below:

The content in the red box must be consistent with the server side.
Implemented features
- Login | Registration
- Add friends
- Online audio/video calls
- Chat (images, text, rich text)
- Screenshot (supports multiple monitors with different DPI)
Client screenshots:
The site admin lacks the conditions, but recorded a login animation (lol):

Below are images from the author's readme and blog:








IV. Feature Demo
The author is too lazy to write more details now!
I will provide test accounts and program addresses.
But first, you need to install .NET 6 desktop runtime. Here is the download link: .NET 6 Desktop Runtime
Test Users
1571221{1 ~ 9}177,
Password is uniformly 12345678.
I have placed all user login information in the program package and added myself as a friend. 😄

V. Program Package
Link: https://pan.baidu.com/s/1aTh_710GpKIIHOHpvVCpBw?pwd=cp4o
Extraction code: cp4o
-- Shared from Baidu Netdisk Super Member V4
VI. Demo Video
Link: https://pan.baidu.com/s/1n-sQZFgO9GEhS80jHLVouA?pwd=85x3
Extraction code: 85x3
-- Shared from Baidu Netdisk Super Member V4
VII. Project Repository
GitHub address: https://github.com/qian-o/Dimension