录播教室预约系统序言

大概一年多年前吧,朋友让我帮他做一个预约系统,当时刚好在学习networkcomms.net的2.3.1版本(本人当时已购买商业版),正好想测试一下networkcomms.net通讯框架的稳定性,于是便开发了此预约系统,基于networkcomms2.3.1 .部署后,系统非常的稳定,平时的cpu占有率非常的低,很少有达到5%以上的情况,当然用户数也并不多,并发数最多大概100左右,没有出现过宕机等情况。

下面将会写一系列文章,来介绍录播教室预约系统的开发,诸位朋友可以了解如何基于networkcomms2.3.1开发网络通讯程序。

虽然现在web大行其道,但是在某些局域网环境中,或者企业内部,客户端程序依然活跃,并受到欢迎,我总结原因有2个,1是在某些特定环境下客户端程序很多功能容易实现,毕竟web开发是受限的,比如弹出窗口提示,用客户端程序做,可以最小化到任务栏,用web方式就需要一直打开浏览器。2是客户端开发某些场景下比较快速,不用考虑到兼容众多的浏览器,只是个人看法哈。

而且networkcomms.net框架支持移动程序开发,可以开发安卓和苹果的程序,这可是一大亮点啊。

在本系列写完之后,会把录播教室预约系统的源码发布出来

先看一下效果图:

客户端登陆窗口

客户端主界面:

用户登陆后都可以看到这个主界面,可以查看某个教室的预定状态,如果没有人预定,则可进行预定,如果已经被预定,则进行提示.

开始时间和结束时间的数字是可以拖动的,用的网上开源的一个控件

用户分为管理员用户和普通用户

普通用户可以自己注册,但需要通过审核。管理员用户可以添加普通用户,可以修改普通用户的密码等。

普通用户注册页面如下:

管理员开通页面如下:

管理员还可以对预约的教室进行设置,进行一些规则设定

时间: 2024-12-15 01:39:49

录播教室预约系统序言的相关文章

录播教室预约系统(八)-客户端部门管理员增加教室

录播教室预约系统(八)-客户端部门管理员增加教室 管理员增加完成后,其他用户就可以看到多个教室了,如图: 我们看一下客户端增加教室的代码: 添加教室:             //声明一个教室实体类             ClassRoom classRoom = == = tcpConnection.SendReceiveObject<ResMessage>(, ,  (resMessage.Message == =  + 我们看一下服务器端的处理程序 构造函数中声明: //学校管理员添加

录播教室预约系统(九)-客户端部门管理员设定教室的预约规则

录播教室预约系统(九)-客户端部门管理员设定教室的预约规则 设置预约规则的客户端代码:              int stopHourInt = (int)stopHour.Value;            int stopMinuteInt = (int)stopMinute.Value;            //截止的时间             int stopTimeInt = stopHourInt * 100 + stopMinuteInt;            //提前的

录播教室预约系统(十)-客户端部门管理员重置本单位其他人员密码

录播教室预约系统(十)-客户端部门管理员重置本单位其他人员密码 客户端代码:  //发出的数据类型为int类型  ItemID为用户对应的ID             ResMessage resMessage = tcpConnnection.SendReceiveObject<ResMessage>("ReqResetPsw", "ResResetPsw", 5000, itemID);            if (resMessage.Messa

录播教室预约系统(六)-注册新用户

预约系统中,新用户可以自己注册,然后管理员开通. 注册界面如下: 客户端新用户注册代码:       button1_Click((txtUserID.Text.Trim ()==|| txtUserName.Text.Trim ()=== ==== = newTcpConnection.SendReceiveObject<ResMessage>(, ,  (resMessage.Message ==  + 服务器端的相关处理代码: 构造函数中声明:   //注册新用户            

录播教室预约系统(四)-ClassRoom表[带有外键的表]

ClassRoom是与教室信息相关的表,包含教室的名称 这个表比前面介绍的DepTable表稍微复杂点,他有一列DepID 这列是与DepTable表中的ID相对应的的. 有了DepID这一列,我们就可以根据DepID 获取某单位的所有教室. 我们暂时把DepID这一列叫做外键列吧.对于拥有外键列的表,仍然可以用我们的codesmith模板生成相关的存储过程和类.有的时候我们希望能够以外键为参数查找相关的数据, 所以在对应的codesmith模板中增加了以外键为参数查找和以外键为参数自动分页查找

录播教室预约系统(十一)-客户端获取本单位的所有教室

客户端用户登陆后,在主界面中可以看到本单位的所有教室,我们来看一下是如何获取的: 客户端代码:    //根据用户获取功能教室列表         private void GetRooms(Users user)         {              //把当前用户信息发送个服务器端,并获取到本用户相关的教室列表              RoomList roomList = newTcpConnection.SendReceiveObject<RoomList>("Ge

录播教室预约系统(一)-数据库表

数据库用的是mssql2005. 数据库表如下: USE [RoomSchedule] GO /****** 对象: Table [dbo].[ClassRoom] 脚本日期: 02/07/2015 22:41:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[ClassRoom]( [Id] [int] IDENTITY(1000,1) NOT NULL, [RoomName] [nv

录播教室预约系统(二)-服务器端与数据库的交互

每个表都对应这么多类,Data类库中的类还使用了很多存储过程,如果都需要我们手工书写,会很麻烦.所以我们采用了CodeSmith模板的方法. 需要注意的是,在我们的开发过程中,模板只生成基础操作相关的一部分代码,还是会有一部分需要我们手工添加上,即使这样,模板也帮助我们做了很多工作. 模板会生成  基础数据操作部分的: (1)存储过程 (2)Data层的相关的类 每个数据表对应一个 (3)Business层相关的类  每个数据表对应两个(实体类,操作类) www.cnblogs.com/netw

录播教室预约系统(三)-DepTable表

DepTable表  主要作用 存放单位名称 如图: 模板下载地址 CodeSmith版本为v6.5 第一步:用CodeSmith模板生成DepTable表相关的存储过程 生成的存储过程如下: /****** Object: Stored Procedure [dbo].DepTable_Delete Script Date: 2015年2月8日 ******/ if exists (select * from [dbo].sysobjects where id = object_id(N'[d