学生基本信息处理实用工具

目 录

一、前言……………………………………………………………………………………………1

二、SGetSInput所采用的主要技术…………………………………………………………1

三、学生基本信息网上查询实用工具 SGet ………………………………………………3

四、学生基本信息网上查询实用工具 SInput……………………………………………5

五、参考文献  …………………………………………………………………………………10

六、谢词……………………………………………………………………………………………10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

学生基本信息处理实用工具

 

何 翔

西南师范大学计算机与信息科学学院  重庆 400715

 

摘要:该实用工具使用了MyCollege.Net下公共资源管理与共享子系统和统一身份认证子系统所提供的Web服务,通过WebService技术实现了学生基本信息网络化管理。

AbstractThis tool used the Web Service supported by the sub system named Public

Resource Management System,as well as the sub system named Identity Confirment System,both of which were identified in the MyCollege.Net system.Useing the WebService technology,,the tool could administrate the basic information of students though the Internet.

关键词:WebService  UIA   CResource  学生基本信息  统一登陆窗体

前言

为了满足MyCollege.Net下对于学生基本信息处理的要求,满足学生基本信息的录入、查询、修改等要求,我们在公共资源管理与共享子系统CResource和统一身份认证子系统的基础上开发了两个实用工具SGetSInputSGetSInput都是在网络环境下使用,通过WebService技术实现,前者用于网络环境下通过WebService从服务器读取学生基本信息,使用户能够在客户端实现对学生基本信息的查询工作;而后者也是通过WebService技术,从服务器读取学生基本信息到客户端,用户可以在客户端对学生基本信息进行修改或者增加新的学生基本信息,然后将修改信息传回服务器,修改数据库信息。

一、SGetSInput所采用的主要技术

使用Web服务

Web服务WebService Behavior是微软在IE5.0中新增加的一项可以通过页面脚本使用web服务的技术,它使用简单对象访问协议(SOAP)与web服务通讯,可以动态更新页面的局部,而不刷新整个页面,较之通常使用的整页刷新的方法,WebService 更快也更有效。是一组函数,这组函数通过网络在一个通用的架构中打包起来使用。在千差万别的硬件平台之间进行容易的通讯是Web服务架构最明显,也最直接的好处。Web服务是一种无需购买并部署的组件,这种组件是被一次部署到Internet中,然后到处可用的一种新型组件,所有应用只需要能够连入Internet,就可以使用和集成Web服务。有两个时候使用WebService服务会有很好的效果:

1.      想要把用不同语言写成的在不同平台上运行的各种程序集成的时候。一般要把不同语言写成的不同平台上的各种应用程序集成都需要花费大量精力,但是通过WebService的使用,应用程序可以把功能和数据暴露出来,供其它的应用程序使用。

2.      跨越防火墙的通信。

WebService的具体实现过程如下:

1)开发人员构建一个对象。

2)对象复制到一台进行着WebService程序的服务器上。

3)在不同的,远程的计算机上运行一段程序,要求Web服务器进行该类的特定方法。

4)服务器创建类的实例并调用方法。

5)服务器返回方法的结果给发出请求的计算机。

6)远程计算机上一段程序接受值并发给请求的计算机。

具体结构如图:


二、学生基本信息网上查询实用工具 SGet

(一)功能

SGet的功能主要是在网络环境下根据学号或者姓名查询学生信息。对于姓名可以进行模糊查询,如输入“张”则查询所有姓名中含有“张”的学生信息,其中学生的信息包含学生的学号,姓名,性别,学科等基本信息。

SGet虽然是一个工具,但由于其被纳入mycollege的信息中,其就要遵守mycollege下软件开发流程及相应的技术。

通过CResource文档的描述知道,SGetCResource中获取的数据是严格受安全控制的,SGet只是查询学生的基本信息,不能查询到学生的机密信息,如身份证,帐号等其他信息,这些必须在SGet的底层数据访问上进行限定。SGet在调用WebService函数时,WebService服务端获取调用方法的system unique identifyUSID)然后根据USID查询相应调用方的权限,决定把学生的哪些信息返回给客户端。而选用WebService的原因,是因为从客户端浏览器调用WevService能更快的响应服务器的速度,从而可以有更多互动的页面,用户感觉更方便,不用向服务器回传一个表单并接受一个新的页面。

 

(二)SGet的原理

SGet的原理是利用WebService技术从公共资源共享及管理模块中提取数据,并将数据返回给用户。CRsource中的WebService中暴露了一组Web服务,其中有一个StudentService的服务,它提供了一些函数,可以通过网络调用。在我们的SGet中存在着一个StudentService代理,它用来处理底层的网络通信。相当于一个网络化的数据访问层(DateAccess)然后在Web的界面层中调用这些函数。

 

()具体实现

SGet没有使用MyCollege中的身份认证服务,它只是通过为Web代理远程的获取学生的基本信息,因此其配置文件中没有UIAURL的配置项。它只是在客户端查询学生的基本信息,因此仅使用了公共数据资源服务,在配置文件中只需要对CResorceWebService进行重定向。

 

下述为SGet的源代码

 

<appSettings>

    <add key="CResourceServiceURL" value="http://192.168.138.63/CResource/CResource_WebService" />

</appSettings>

 

通过查询界面将关键子通过URL字符串传递到result.aspx中,然后在页面的初始化函数中调用相应的函数进行查询时,在查询时没有对关键字进行分析,而是优先将关键字看作是学号,按学号查询,如果差不到学生,那么再按照姓名查询。如果出现错误就重定向到error.aspx页面弹出错误信息。(如上图)

 

//从查询字符串中获取查询关键字。

string key=Request.QueryString["key"].ToString();

//生成StudentService服务代理。

StudentRef.StudentService student=new StudentRef.StudentService();

//根据配置文件中的配置对服务重定位

student.Url=ConfigurationSettings.AppSettings["CResourceServiceURL"].ToString().Trim()+"/StudentService.asmx";

//优先将key作为学号查询

DataSet s=student.GetStudentBySNumber(key);

//如果查询结果为0,则将key作为姓名进行模糊查询。

if(s.Tables[0].Rows.Count==0){

s=student.GetStudentBySName(key);

}

//显示查询到的记录数量

Label2.Text="查询关键字为:"+key;

Label1.Text="共找到"+s.Tables[0].Rows.Count+"个结果!";

DataGrid1.DataSource=s.Tables[0].DefaultView;

//显示分页情况

Label3.Text=""+(1+DataGrid1.PageCount).ToString()+",当前显示的是第"+"1";

//绑定数据到DataGrid

DataBind();

}

catch(Exception k){

//若服务器发生异常,则将页面定位到error.aspx,防止用户看到详细的调试信息

Response.Redirect("error.aspx");

}

 

三、学生基本信息网上查询实用工具 SInput

(一)SInput的功能

采用WevService服务,使客户端能够更好的响应服务器的速度,不用向服务器回传一个表单并接受一个新的页面。SInput能够很方便的查询以及修改学生的基本信息,是一个很方便的信息管理实用工具。

1.通过WebService向数据库中添加新的学生信息。

2.通过WebService对已有学生信息进行修改和删除已有学生的信息。但SInput不能对学生信息进行模糊查找。

 

(二)SInput的原理

SInput的原理是利用WebService技术从公共资源管理与共享模块(CRsource)中提取数据,并将数据返回给用户,并通过WebService技术将客户端的修改信息返回服务器。CRsource中的WebService中暴露了一组Web服务,其中有一个StudentService的服务,它提供了一些函数,可以通过网络调用。SInput中使用了UIA中的统一登陆窗体,在配置文件中有一个UIAURL的配置项,用于权限管理,在SInput中只使用了一个权限管理(录入员)。在我们的SInput中存在着一个StudentService代理,它用来处理底层的网络通信。相当于一个网络化的数据访问层(DateAccess)然后在Web的界面层中调用这些函数。

 

(三)具体实现

SInput.exe.config文件:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

  <appSettings>

 

    <!--  MyCollege.Net体系下公共资源共享服务WebService进行重定向的URL -->

    <add key="CResourceServiceURL" value="http://192.168.138.63/CResource/CResource_WebService" />

    <!--  MyCollege.Net体系下统一身份认证服务进行重定向的URL,统一身份认

    证系统的SDK包中的统一登陆窗体需要从配置文件中读取这个配置项 -->

    <add key="UIAURL" value="http://192.168.138.63/UIA" />

    <!-- MyCollege.Net体系下成员站点的统一身份标识(USID),在定制统一的登陆窗体时要使用到该参数-->

    <add key="USID" value=" 175C 99E5-32EB-47B6-A 25F -7AD 18C 2F 107E" />

   

  </appSettings>

</configuration>

 

在程序里面每次调用WebService服务时,在创建WebService代理之后都要根据配置文件中的信息对WebService进行重定向,用起来很麻烦,因此考虑在程序中设置一个配置类Config。在配置类中设置相应的属性来处理配置文件中的信息,当程序需要某个WebService时,由Config类自动创建并对其进行重定向。     

这一方面可以简化程序中对于WebService的使用,另一方面可以对WebService对象进行缓存,提高程序的运行速度。

namespace SInput

{

    /// <summary>

    ///   Config 主要从配置文件中读取信息对WebService进行配置,简化WebService的重定向和使用

    /// </summary>

    public class Config

    {

    private static StudentRef.StudentService s=null;//缓存StudentService对象

    private static DeptMajorRef.DeptMajorService d=null;//缓存DeptMajorService对象

    private static string usid=null;//缓存本系统的的USID

    /// <summary>

    ///   属性:本系统的USID编码

    /// </summary>

    public static string USID

    {

     get{

     if(usid==null)

     usid=ConfigurationSettings.AppSettings["USID"].ToString().Trim();

     return usid;

    }

    }

/// <summary>

///   属性:StudentService服务

/// </summary>

public static StudentRef.StudentService Student

{

get{

if(s==null){

s=new StudentRef.StudentService();

//从配置文件中读取StudentService服务的URL,以对服务重新定位

s.Url=ConfigurationSettings.AppSettings["CResourceServiceURL"].ToString()+"/StudentService.asmx";

}return s;

}

}

/// <summary>

///   属性:DeptMajorService服务

/// </summary>

public static DeptMajorRef.DeptMajorService DeptMajor

{

    get{

    if(d==null){

    d=new DeptMajorRef.DeptMajorService();

//从配置文件中读取DeptMajorService服务的URL,以对服务重新定位

d.Url=ConfigurationSettings.AppSettings["CResourceServiceURL"].ToString()+"/DeptMajorService.asmx";}

return d;

}}}}

(四)SInput的特点

1.采用统一的登陆窗体

采用UIA中的SDK所定义的统一窗体结构。此窗体在初始化时需要一个参数USID,通过函数Config.USID初始化参数USID而在Config中又通过函数ConfigrationSettings.AppSettings[USID].ToString().Trim();实现初始化的过程。

UIASDK.Win.LogoForm logo=new UIASDK.Win.LogoForm(Config.USID);

2.启动窗体的使用

在整个程序启动时,由于初始化的东西比较多(主要为WebService的第一次调用),所以启动比较慢,而在SInput中添加了如下代码

     Bitmap splashImage;

    splashImage = new Bitmap("Splash.bmp");

     SplashScreen splashScreen;

    splashScreen = new SplashScreen(splashImage);

采用多线程技术,启动时主线程创建一个子线程,此时屏幕显示一副画面(如下图)

这部分的工作是为了给用户一个提示信息,提示用户本程序已经在正常运行。而在主程序已经准备完毕后,又通过调用以下代码

Activate();

splashScreen.Close();

此时由主线程发出一个消息给子线程,结束显示画面的进程,而转入主程序的运行。

3.灵活的界面设计

TextBox1中输入学生名字时,每当TextBox1中的数据变化时就调用查询函数,若没有学生的姓名信息,则窗口下方只有添加按钮被激活,而其余的按钮均不能点击,即只能向数据库中添加此学生信息。(如下图)

 

 

若该学生存在,只有修改和删除按钮被激活。(如下图)

这个功能实现时通过给TextBox1添加一个事件响应函数private void textBox1_TextChanged(object sender, System.EventArgs e)来实现

这样,简化了程序的开发,同时便于用户的使用。

四、小结

通过这段时间的努力,在指导老 师邹显春 老师和 卢心红 老师的细心指导下,我们终于将这次毕业设计基本完成。这次毕业设计,使我对平时所学的知识有了一个更加充分的了解,学到了一些还尚未了解的相关领域的知识(如WebService技术),并且能将自己所学的知识相结合起来,并将所学的书面知识用之于实践,体会到了理论与实践的联系与差别,这是这次毕业设计很大的一个收获。

在这段时间里,我深深感觉到了团队合作的重要性。在整个设计过程中,自己有很多不懂的问题,而通过同小组成员的帮助,解决了不少困难。同时,我还感觉到了团队协调的精神在一个项目的开发过程中的重要性,在一个项目的开发中,一定要有很好的策划分工,这样才能高效的工作,从而达到预期的结果,否则,可能是事半功倍,不能把每个人都充分调动起来。

总之,这次毕业设计的设计过程中,我不仅学到了不少技术上的知识,同时学会了很好的与人沟通、交流、合作,得到了充分的锻炼。我相信,这对于我以后的学习以及工作都会带来很大的帮助,并为将来开发项目奠定一个基础。

 

五、致谢

本次毕业设计能够顺利完成离不开我们指导老 师邹显春 老师的指导和帮助, 卢心红 老师、 陈武 老师、 闻晓 老师、 李运刚 老师在此过程中也给予了极大的帮助,对他们的帮助表示衷心的感谢。感谢全组同学给我的帮助。

六、参考文献

孙瑛霖、丁建杨等  VISUAL BASIC.NETVISUAL C#.NET面向对象程序设计 清华大学出版社

魏胤红 译.ASP.NET分布式数据应用程序高级编程.清华大学出版社

张加荣 译.VB.NET高级编程.清华大学出版社.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值