《毕业论文-基于.net和web-service的远程信息共享系统实现.doc》由会员分享,可在线阅读,更多相关《毕业论文-基于.net和web-service的远程信息共享系统实现.doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、毕业论文 毕业论文 题目: 基于.net和web service的远程信息共享系统实现专 业: 电气工程及其自动化 基于.net和web service的远程信息共享系统实现摘要信息共享平台的应用领域范围非常广,随着Internet的迅猛发展,基于Web的信息共享与协作成为了很多程序工作者多年来一直研究的主要课题。.NET平台能够创建 Web services,允许程序通过 Internet 进行数据通讯和数据共享,而无论所采用的是哪种操作系统、设备或编程语言。本设计主要利用.NET平台以及C+编程语言来实现信息共享平台的构建,在小型局域网中使用Internet和web服务来进行Ftp信息共享
2、。该共享系统的设计需要预先了解.NET开发工具Microsoft Visual Studio 2005和熟悉编程语言C+。然后建立系统运行环境,并对系统进行需求分析。之后由需求分析导出系统的一系列主要模块,做出各个模块的程序流程图,最后完成所有模块的编程代码。本次共享系统的设计能够基本完成预设功能,然而在软件界面及操作自由度方面有待进一步提高,希望在以后的学习中加以改进。关键词:信息共享;.NET;Web Service;Ftp;C+The Realization of remote information sharing system Based on .NET and Web servic
3、eABSTRACTInformation sharing platform have very wide range of applications, With the rapid development of Internet, Web-based information sharing and coordination procedures for workers as many of the key issues for many years .NET platform can create Web services, allow a program through Internet f
4、or data communication and data sharing, regardless of what kind of adopted operating system, device or programming language.The design mainly use. NET platform and C + + programming language to build information sharing platform and carry Internet and web services to share information inthe Ftp in s
5、mall local area networks. First sharing system design requires to learn about knowledge of .NET development tools and Microsoft Visual Studio 2005 C + + programming language. Then I need create a system operating environment and analyze the system requirements. Get a series of major modules derived
6、from the needs analysis system and make the program flow chart of the various modules. Complete the programming code for all modules Finally. The sharing system is designed to basically complete the default function, however, the software interface and degrees of freedom in the software operation sh
7、ould be improved, hope to improve from learning in the future.Key words: Information Sharing;.NET;Web Service;Ftp;C+目录1引言1语言及开发工具简介22.1+语言简介22.2选用的工具简介32.2.1Visual Studio 2005简介32.2.2SQL Server 2000简介43需求分析及控件功能设定53.1共享系统需求分析53.2共享系统各控件功能设定5模块详细设计64.1系统开发环境64.2IIS简介64.3连接控件设计64.4下一层控件设计114.5上一层控件设计1
8、44.6 upload控件设计164.7 download控件设计19系统运行环境及测试235.1系统运行所需环境235.1.1Internet信息服务(IIS)的安装235.1.用CesarFTP软件建立FTP服务器245.系统测试26结论27参考文献28致谢29IV1引言当前知识经济时代,信息交换的作用更加的重要,随着Internet的迅猛发展,信息的数字化程度与日俱增,对网络信息的开发和利用成为了信息相关工作者所要研究的新课题。本文所指信息共享,专指网络信息资源共享,即以数字化形式所记录,以多媒体形式所表达,储存在计算机网络磁性介质,光介质及其他各种通信介质上,通过网络通信传递的信息的集
9、合。与传统信息资源相比,网络信息资源有可共享性和边际成本趋零的特点3。信息共享的使用的广泛性,决定了其在人类如今生产生活中所占的重要位置。政府部门、行政机关、教育机构、甚至到个体公司及用户,都在不同程度且各取所需的完成各自的信息共享。随着计算机网络科学技术的普及,很多公司机构内部各部门都以适合的工具软件储存并传输相关的电子数据。但是随着信息化程度的提升, 为了更好地提高工作效率,部门间的信息共享需求越来越强烈,通常能够通过开发网络信息共享系统来满足用户的需求。网络信息共享是以计算机及网络为依托,选择适合的管理系统,采用软件开发技术以实现对各种电子信息资源网络化发布和管理的开放平台。开发过程中需
10、解决四方面的问题: (1) 是一个相互连通的网络体系。(2) 是选择合适的软件设计工具和开发技术。 (3) 是选择易于维护的数据库管理系统。 (4) 是选择适合发布的源信息形式。本软件所选用的开发平台是Visual Studio 。Visual Studio是开发创建 Windows 平台下的 Windows 应用程序和网络应用程序中的佼佼者,Visual Studio是.NET平台下最强大的开发工具,无论是企业应用程序的部署和发布,还是软件服务商,Visual Studio都能够提供近乎完美的解决方案。再配合SQL Server所拥有的强大的数据库功能和优良的兼容可靠性,是实现软件设计功能的
11、黄金搭档。因此软件设计所选工具是正确的,软件的设计方案也可以说是切实可行的。当前, 网络信息共享的观念已经深入人心, 人们对网络信息共享的研究也在逐渐深化, 以网络及计算机为代表的先进现代信息技术为共享的实践性提供了强有力的技术后盾支持, 共建的共享事业也在如火如荼得开展, 一切都似乎在暗示我们距离网络信息共享的理想越来越接近。在面对似乎触手可及的信息共享理想的同时, 也许我们更需要的是对信息共享实践的自省与审视。从现实情况看来, 网络信息共享的理论尚不成熟,机制尚未完善,关于共享的实践在技术、观念、管理等方面存在的诸多问题,并尚未解决。因此,我们更加的需要研究信息共享的近期目标和远期战略,
12、使得信息共享向着更好、更广、更快的方向发展,并且需要做好面对更加困难局面的准备。尽管我们都努力地去描绘那通往理想的最平坦、最笔直的道路,但脚下的路注定崎岖而坎坷。然而, 朝着理想奋勇前行、永不放弃, 正是古代及现代人类不断追求文明的过程5。语言及开发工具简介2.1+语言简介C+是由AT&T贝尔实验室的Bjarne Stroustrup博士所创建的以C语言为基础的支持面向对象的程序设计程的设计语言。研发C+的目标之一是除去C语言中存在很多的问题,增加了很多新的功能,其二是支持面向对象,在其中引入了类的机制。C+语言发展大致可分三个阶段: 第一阶段从80年代至1995年。这一阶段C+语言基本是传统
13、类型上的面向对象语言,并凭借着接近C的效率,在工业界所使用的开发语言中占据了相当大的比重; 第二阶段从1995年至2000年,这一阶段由于标准模板库(STL)和之后的Boost等程序库的出现,泛型程序设计在C+程序设计中占据了越来越大的比重。当然,同时由于Java、C#等其他语言的出现和硬件价格的大规模下调,C+也受到了一定的打击;第三阶段从2000年至今日,以Loki、MPL等程序库为代表的模板元编程和产生式编程的出现,C+出现了历史上又一个新的发展高峰,这些新技术的出现及与原有技术的融合,使C+成为了当今主流程序语言中最为复杂的一个。C+有两个主要特点:(1)全面支持C语言;(2)面向对象
14、。C+由C语言发展而来,不仅保持了C语言高效、简洁和某些汇编指令的特点。也对C语言进行了系统的扩充改革,去除了语言中的许多漏洞,C+编译功能提供了更加出色的类型检查和编译分析,能够检查出更多类型的错误。C+更提高了C语言的安全性。因为C+和C语言兼容,使的许多C语言代码无需修改便可在C+中编译通过,用C编写的许多库函数能够方便地移植到C+编程语言中。熟练C的程序员能够很快地学会C+,并用之进行编程。此外,C+程序具有更好的可读性和更为合理的代码结构。C+支持面向对象的程序设计,使用C+进行编程,具有很高的编程效率;因为面向对象的过程更接近于人类认识和改造世界的过程,C+更加容易描述过程,程序更
15、加容易理解。C+程序开发包括编辑、预处理、编译、连接、运行与调试等5个阶段。编辑阶段的任务即编辑源程序,源程序是用C+语句所写的程序段落。C+源程序文件有.h、.c、.cpp等扩展名。.cpp是C+源程序的标准扩展名。在不同的编译器与操作系统环境下,源程序的编辑器不同。Linux系统环境中,使用的编辑器有emacs与vi两种。在Microsoft Windows系统环境中, Borland C+、Microsoft Visual C+集成了编辑器。除此之外,还可以用其他的文字处理软件编辑源程序。之后,用编译器对源程序进行编译过程。编译器会将源程序翻译成机器代码。编译过程3个步骤为:词法分析、语
16、法分析、代码生成。编译器开始进行翻译工作之前,预处理器将会自动执行源程序的预处理命令。这些预处理命令是在编译前所执行的语句,该处理包括:把其他源程序文件包含到要编译的文件之中和执行各种文字间的替换等。虽然说目标程序可以由可执行机器语言组成,但并不能完全由计算机直接执行。因为C+程序中通常包含了其他模块中定义的函数与数据的引用,如自定义库、标准库或模块。C+编译器生成目标代码时,连接器的功能是将缺失函数的代码同目标码连接起来,生成可执行的代码,存储为可执行文件。.exe为 Windows系统下可执行文件的扩展名。现在的一些C+系统开发工具,如Borland C+与Microsoft Visual
17、 C+,将程序的编辑、编译和连接集成在一个环境中。在这个开发环境中,编译和连接能够一起进行。程序连接成功后,会生成可执行文件。运行时,可执行文件将由操作系统装入内存中,然后中央处理器从内存中取出程序并执行。程序开发过程中的各阶段都有可能出现错误,编译出现的错误称为编译错误;连接出现的错误称为连接错误;程序运行中出现的错误称为运行错误,也称为逻辑错误。遇到错误时可通过C+系统所提供的调试工具debug来帮助并发现程序逻辑错误,然后改正错误。当前C+系统均提供源代码级别的调试工具,可以直接对源程序进行调试2。在C+系统开发程序的过程如图2-1所示。图2-1程序开发流程图2.2选用的工具简介2.2.
18、1Visual Studio 2005简介Visual Studio 是微软公司所推出的开发环境,Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。Visual Studio 是目前最流行的 Windows 平台应用程序开发环境。经过Visual Studio 97、Visual Studio 6.0、Visual Studio 2003、Visual Studio 2005、Visual Studio 2008等各版本的发展,目前已经开发到 10.0 版本,也就是 Vis
19、ual Studio 2010。本次设计所选用的版本是Visual Studio 2005。Visual Studio 2005 包含了一系列高效、智能的开发工具,无论是为开发初学者,还是为经验丰富的企业开发团队都提供了很多全新的、强大的功能:(1)全方位的工具平台:不论您是一位编程初学者还是一个富有经验的企业开发团队的一员,为您提供高效的开发工具。(2)减少开发的复杂度:确保您能更加轻松发布基于 Framework 的解决方案,包括 Windows、Web、移动和基于 Office 的应用。(3)第三方的生态系统:允许您利用来自 Visual Studio 行业合作伙伴的参与研发的产品,并体
20、验用来补充 Visual Studio 2005 第三方解决方案的全面部署。(4)改善团队的沟通:给您提供高效智能的生命周期工具,通过使用 Visual Studio 2005 Team System,来增强 IT 周期参与者之间的交流与协作。2.2.2SQL Server 2000简介SQL(Structured Query Language)是结构化的查询语言。SQL编程语言的重要功能是同各种的数据库进行联系与沟通。按照ANSI(美国国家标准协会)的规定,SQL成为为关系型数据库管理系统的标准型语言。SQL语句可以用来执行各种数据库的操作,如从数据库中提取数据,更新数据库中的数据等。大多数
21、主流的关系型数据库管理系统均采用了SQL标准语言。SQL Server 2000 是Microsoft 公司所推出的SQL Server 数据库管理系统,此版本继承了SQL Server 7.0的优点,同时也增加了更多先进的功能。具有可伸缩性好使用方便和软件集成度高等优点,可以跨越从运行Microsoft Windows 98 的电脑到运行Microsoft Windows 2000 的处理器等多种平台的使用。3需求分析及控件功能设定3.1共享系统需求分析为了解决公司、机构等小型局域网内部电子文件传输的繁琐、重复作业及信息流转不通畅造成的低效率工作环境,本ftp共享系统计划有如下的特点:(1)
22、干净的软件界面,用户只需登陆客户端,便可完成相应操作,同QQ等软件一般,操作方便、简单,不同年龄段人群都会很快学会使用该软件。(2)通过软件输入在ftp服务器设置的账号及密码,登陆ftp服务器,保证ftp服务器安全。 (3)实现基本上传、下载功能,完成网络信息共享任务,方便公司等小型局域网电子数据的传输。 3.2共享系统各控件功能设定(1)ftp服务器:用于输入在局域网内部所建立的ftp服务器地址。(2)用户名:用于输入此ftp服务器内部设定的用户名。(3)密码:用于输入此用户名的相关密码。(4)连接:单击后连接所填写的ftp服务器地址的相应账户。(5)上一层:回到文件夹的上级目录。(6)下一
23、层:打开选中文件夹。(7)upload:上传选中文件到相应文件夹。(8)download:下载选中文件到相应文件夹。(9)取消:退出共享系统。模块详细设计4.1系统开发环境本共享系统采用的是Visual studio 2005开发软件进行设计开发,包括用户界面、控件编程,软件的调试与应用。并在SQL Server 2000上建立数据库,存储上传及下载所需的文件数据。4.2IIS简介IIS即指专为网络所需的计算机网络服务而设计制造的一整套网络套件。不但有WWW、MTP、NNTPS、FTP等服务,同时本身也拥有Transaction Server、Active Server Pages、Index
24、 Server等功能强大的服务器端口软件。除此之外它也具有以下特点:(1)提供控制的“匿名用户”的存取权限功能。(2)提供远程计算机管理功能。(3)提供Index Server可提高信息查询速度。(4)提供支持单台计算机设备通过不相同的IP地址,能同时架设多个不相同的Web和FTP网站。(5)通过设置SSL来提供数据加密和身份验证功能4.3连接控件设计在输入ftp服务器地址及其相应用户名密码的的基础上,单击连接控件,登陆ftp服务器,并读取本地文件目录及远程文件目录,并显示。开始新建对话新建连接对象获取错误获得服务器根目录的所有文件并在列表框中显示获得指定目录下的所有文件,并在列表框中显示清空
25、列表框查找目录下的文件,判断文件或文件夹,并显示图4-1连接控件的设计流程图在本机上设定ftp服务器,ip地址为10.186.7.148。增加了用户名为1,密码也为1的单个账户,用visual studio 2005运行程序后出现软件初始界面,如图4-2所示:图4-2软件初始界面图软件的本地文件一栏默认打开的是c盘主目录,远程文件一栏为空。输入账户信息后,单击连接后,如图4-3所示:图4-3单击连接控件图如上所示,远程文件打开了所预先设置的software文件夹,并且类型一栏会显示文件或者文件夹,达到了如期的效果。连接控件设计代码如下:/连接ftp服务器void CMyFtpDlg:OnCon
26、nect() UpdateData(TRUE);/新建对话m_pInetSession=new CInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);try /新建连接对象m_pFtpConnection=m_pInetSession-GetFtpConnection(m_strServer,m_strUserName,m_strPassword); catch(CInternetException *pEx) /获取错误TCHAR szError1024;if(pEx-GetErrorMessage(szError,10
27、24)AfxMessageBox(szError);else AfxMessageBox(There was an exception);pEx-Delete();m_pFtpConnection=NULL;return;m_pRemoteFinder = new CFtpFileFind(m_pFtpConnection);/获得服务器根目录的所有文件并在列表框中显示BrowseDir(,&m_ctrlRemoteFiles,m_pRemoteFinder,&m_arrRemoteFiles);/获得指定目录下的所有文件,并在列表框中显示void CMyFtpDlg:BrowseDir(CS
28、tring strDir,CListCtrl* pLstCtrl,CFileFind* pFinder,CArray* pFilesArr)/清空列表框pLstCtrl-DeleteAllItems();pFilesArr-RemoveAll();int nIndex = 0;CString szDir = strDir;if(szDir.Right(1) != )szDir += ;szDir += *.*;/查找目录下的文件BOOL res = pFinder-FindFile(szDir);while(res)res = pFinder-FindNextFile();/是目录if(pFi
29、nder-IsDirectory() & !pFinder-IsDots()FILEITEM fileitem;fileitem.nItem = nIndex;fileitem.bDir = TRUE;fileitem.strFileName = pFinder-GetFileName();pFilesArr-Add(fileitem);AddItem(pLstCtrl,nIndex,TRUE,pFinder-GetFileName();/是文件else if(!pFinder-IsDirectory() & !pFinder-IsDots()FILEITEM fileitem;fileite
30、m.nItem = nIndex;fileitem.bDir = FALSE;fileitem.strFileName = pFinder-GetFileName();pFilesArr-Add(fileitem);AddItem(pLstCtrl,nIndex,FALSE,pFinder-GetFileName();nIndex+;/给列表框增加一条记录void CMyFtpDlg:AddItem(CListCtrl* pLstCtrl,int nIndex,BOOL bDir,CString strText)LV_ITEM lvitem;int iActualItem;for(int iS
31、ubItem=0;iSubItemInsertItem(&lvitem);elsepLstCtrl-SetItem(&lvitem);4.4下一层控件设计单击下一层控件,会打开所选中的文件夹。因为流程比较单一,因此省略程序流程图。在此说明对本地文件及远程文件的访问过程的编程代码不同:选中本地文件的windows文件夹,单击下一层,如图4-4所示:图4-4本地文件下一层界面图本地文件下一层控件代码:/本地文件目录中向下一层void CMyFtpDlg:OnLocalDownd() POSITION pos = m_ctrlLocalFiles.GetFirstSelectedItemPositi
32、on();if(pos)int nItem = m_ctrlRemoteFiles.GetNextSelectedItem(pos);FILEITEM fileItem = m_arrLocalFiles.GetAt(nItem);if(fileItem.bDir=TRUE)CString strDir;strDir.Format(%s%s,m_LocalFinder.GetRoot(),fileItem.strFileName);m_strLocalParentRoot = m_LocalFinder.GetRoot();BrowseDir(strDir,&m_ctrlLocalFiles,
33、&m_LocalFinder,&m_arrLocalFiles);选中远程文件的software文件夹,单击下一层,如图4-5所示:图4-5远程文件下一层界面图远程文件下一层控件代码:/远程文件目录中向下一层void CMyFtpDlg:OnRemoteDownd() POSITION pos = m_ctrlRemoteFiles.GetFirstSelectedItemPosition();if(pos)int nItem = m_ctrlRemoteFiles.GetNextSelectedItem(pos);FILEITEM fileItem = m_arrRemoteFiles.Ge
34、tAt(nItem);if(fileItem.bDir=TRUE)CString strDir;strDir.Format(%s%s,m_pRemoteFinder-GetRoot(),fileItem.strFileName);m_strRemoteParentRoot = m_pRemoteFinder-GetRoot();BrowseDir(strDir,&m_ctrlRemoteFiles,m_pRemoteFinder,&m_arrRemoteFiles);4.5上一层控件设计单击上一层控件,会跳转到文件夹的上一层目录。因为流程比较单一,因此省略程序流程图。在此说明对本地文件及远程文
35、件的访问过程不同,编程代码分别如下所示:单击本机文件上一层,如图4-6所示:图4-6本地文件上一层界面图本地文件上一层控件代码:/本地文件目录中向上一层void CMyFtpDlg:OnLocalUp() if(m_strLocalParentRoot=)return;BrowseDir(m_strLocalParentRoot,&m_ctrlLocalFiles,&m_LocalFinder,&m_arrLocalFiles);单击远程文件上一层,如图4-7所示:图4-7远程文件下一层界面图远程文件上一层控件代码:/远程文件目录中向上一层void CMyFtpDlg:OnRemoteUp()
36、 if(m_pFtpConnection=NULL)return;if(m_strRemoteParentRoot=)return;BrowseDir(m_strRemoteParentRoot,&m_ctrlRemoteFiles,m_pRemoteFinder,&m_arrRemoteFiles);/本地文件目录中向下一层void CMyFtpDlg:OnLocalDownd() POSITION pos = m_ctrlLocalFiles.GetFirstSelectedItemPosition();if(pos)int nItem = m_ctrlRemoteFiles.GetNex
37、tSelectedItem(pos);FILEITEM fileItem = m_arrLocalFiles.GetAt(nItem);if(fileItem.bDir=TRUE)CString strDir;strDir.Format(%s%s,m_LocalFinder.GetRoot(),fileItem.strFileName);m_strLocalParentRoot = m_LocalFinder.GetRoot();BrowseDir(strDir,&m_ctrlLocalFiles,&m_LocalFinder,&m_arrLocalFiles);4.6 upload控件设计本
38、软件设计只支持单个文件的上传功能,如果未选中文件,跳出对话框提示请选中要上传的文件;如果选中文件夹,跳出对话框提示本程序暂时不支持上载整个文件夹,请选择文件上载;当选中单个文件,再单击上传,文件会上传到当前所打开的远程文件夹。图4-8上传控件程序流程图选择c盘主目录下的报名号.txt文件,单击上传,如图4-9所示:图4-9上传文件界面图上传控件代码: /响应“Upload”按钮void CMyFtpDlg:OnUpload() /如果没有建立连接,退出if(m_pFtpConnection=NULL)return;/上传所有选中文件POSITION pos = m_ctrlLocalFiles
39、.GetFirstSelectedItemPosition();if (pos = NULL)AfxMessageBox(请选择要上传的文件);elsewhile (pos)int nItem = m_ctrlLocalFiles.GetNextSelectedItem(pos);UpFile(m_arrLocalFiles.GetAt(nItem);/上传单个文件void CMyFtpDlg:UpFile(FILEITEM fileItem)if(fileItem.bDir = TRUE)AfxMessageBox(本程序暂时不支持上载整个文件夹,请选择文件上载);else/格式化文件名CS
40、tring strLocalFile,strRemoteFile;strRemoteFile.Format(%s%s,m_pRemoteFinder-GetRoot(),fileItem.strFileName);strLocalFile.Format(%s%s,m_LocalFinder.GetRoot(),fileItem.strFileName);/上传if(m_pFtpConnection-PutFile(strLocalFile,strLocalFile)CString strMsg;strMsg.Format(上载文件%s成功!,fileItem.strFileName);AfxM
41、essageBox(strMsg);4.7 download控件设计本软件设计只支持单个文件的下载功能,如果未选中文件,跳出对话框提示请选中要下载的文件;如果选中文件夹,跳出对话框提示本程序暂时不支持下载整个文件夹,请选择文件上载;当选中单个文件,再单击下载,文件会下载到当前所打开的本地文件夹。图4-10下载控件程序流程图选择software文件夹下的鲁大师.exe文件,单击下载,如图4-11所示:图4-11下载文件界面图下载控件代码:/响应“download”按钮void CMyFtpDlg:OnDownload() /如果没有建立连接,退出if(m_pFtpConnection=NULL)
42、return;/下载所有选中文件POSITION pos = m_ctrlRemoteFiles.GetFirstSelectedItemPosition();if (pos = NULL)AfxMessageBox(请选择要下载的文件);elsewhile (pos)int nItem = m_ctrlRemoteFiles.GetNextSelectedItem(pos);DownFile(m_arrRemoteFiles.GetAt(nItem);/下载单个文件void CMyFtpDlg:DownFile(FILEITEM fileItem)if(fileItem.bDir = TRUE)AfxMessageBox(本程序暂时不支持下载整个文件夹,请选择文件下载);else/格式化文件名CString strLocalFile,strRemoteFile;strRemoteFile.Format(%s%s,m_pRemoteFinder-GetRoot(),fileItem.strFileName);strLocalFile.Format(%s%s,m_LocalFinder.GetRoot(),fileItem.str