关于本科毕设的问题,主要是如何用c#进行通信

本人本科期间认真的学过Java语法算法以及c#语法

现在毕设想做一个与餐厅点餐有关的系统。

本科学习过所有的语言中Java是最拿手的,但是我感觉Java不好设计这个界面的前端,所以最终在毕设里填的是c#。但是对于我来说,最大的难点就是我不会用c#进行通信,最基本的通信都不会,就是消费者用这个系统点过餐之后,该怎么把点餐的信息传递给后厨(当然我这里只是简单的描述一下,信息传递过去之后还要进行各种处理)。这就让我心里很没底。而且本科期间,没有学过任何架构,spring boot➕vue ,signalR等等是完全没有接触过,也不知道是用来干什么的。
所以就是想来问问,该怎么把消费者点餐之后的信息传递给后厨。如果一定要用什么架构或者技术的话,能不能烦请大佬告诉我一下该学些什么,我可以去网上搜集资源自学一下。

先谢谢各位了!

还有就是,我不太想在毕设上面花费太多的时间,真的不是因为懒,是因为我还要准备考研的复试。其中有100分的机试考察算法题相当重要,而且难度比较大。所以烦请大佬推荐一些容易上手的技术,非常感谢!!!!!

emm,最简单的就是springboot提供http restful接口,c#直接http调用就行了吧。c#肯定也有支持http和json解析的库。我的理解是这也是前后端分离了,只不过前端是c#而已

使用C#+Signalr可以比较轻松实现你的需求,代码量也很少,一个服务端,一个客户端,总代码量不到100行。

以下是前几天回答其他小伙伴写的示例程序,实现方案大同小异。

先看演示效果:

img

解决方案目录:

img

服务端示例代码:

MessageHub.cs

using Microsoft.AspNetCore.SignalR;

namespace ChatDemo.Server.Hubs
{
    public class MessageHub : Hub
    {
        public Task SendMessage(string user, string message)
        {
            Console.WriteLine($"服务器接收到消息,内容:{user},{message}");
            return Clients.All.SendAsync("ReceiveMessage", user, message);
        }

        /// <summary>
        /// Called when a new connection is established with the hub.
        /// </summary>
        /// <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the asynchronous connect.</returns>
        public override Task OnConnectedAsync()
        {
            Console.WriteLine($"客户[{Context.ConnectionId}]连接成功.");
            return base.OnConnectedAsync();
        }
    }
}

Program.cs

using ChatDemo.Server.Hubs;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSignalR();

var app = builder.Build();

app.MapHub<MessageHub>("/hub/message");
app.Run();

客户端

using Microsoft.AspNetCore.SignalR.Client;

namespace ChatDemo.Client
{
    public partial class FrmMain : Form
    {
        private HubConnection _connection;
        public FrmMain()
        {
            InitializeComponent();
        }

        private async void btnSendMessage_Click(object sender, EventArgs e)
        {
            try
            {
                await _connection.InvokeAsync("SendMessage", txtUser.Text, txtNewMessage.Text);
            }
            catch (Exception ex)
            {
                AppendMessage(ex.Message);
            }
        }

        private void FrmMain_Load(object sender, EventArgs e)
        {
            _connection = new HubConnectionBuilder()
                .WithUrl("http://localhost:5025/hub/message")
                .Build();
            _connection.Closed += async (error) =>
            {
                await _connection.StartAsync();
            };
            _connection.On<string, string>("ReceiveMessage", (user, message) =>
            {
                Invoke(() =>
                {
                    var newMessage = $"{user}: {message}";
                    AppendMessage(newMessage);
                });
            });
            try
            {
                _connection.StartAsync();
                AppendMessage("已成功连接到消息服务器");
                txtNewMessage.Focus();
            }
            catch (Exception ex)
            {
                AppendMessage(ex.Message);
            }
        }

        private void AppendMessage(string message)
        {
            rtxtMessages.AppendText($"[{DateTime.Now}]==>>{message}{Environment.NewLine}");
        }
    }
}
  1. Stock
  2. Http

数据库呢