随着现代工作环境的变化,越来越多的人选择在办公室以外的地方工作。例如,一个股票交易监控员可能需要从交易所大楼发送或接收重要的信息给行政管理中心。虽然可以使用短信或电子邮件,但这里建议使用另一种方式:通过Web服务和客户端。
任务分配器是系统中的核心功能,包括服务器和客户端两部分。服务器是一个ASP.NET Web服务,客户端则是安装了Windows Mobile的手持设备。服务器作为公司的中心位置,存储了一个名为messagefile.txt的文件,该文件包含了发送给员工的所有信息。
客户端是一个安装了Windows Mobile的手持设备。当用户登录系统时,系统会检查是否为授权用户。然后,应用程序会检查服务器上是否有针对特定用户的新消息,并将这些消息自动从服务器下载。但是,如何处理不需要的数据,以及安全性问题如何解决呢?
对于第一个问题,答案非常简单。为messagefile.txt定义了一个标准格式,如下所示:
Hi, Please check the walk Street 27|07-12-2008|18.00|james
对于第二个问题,服务器上有一个用户列表,这些用户可以访问这些功能。因此,将用户名和密码发送到服务器进行验证,并且使用加密技术来增加安全性。
一旦用户登录系统,系统会自动检查服务器上是否有新消息,并将所有消息下载到客户端,并像摘要一样在列表视图中列出。
以下是C#语言的代码实现,它帮助访问Web服务并从服务器获取所有消息。
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using FileTransfer.Core.FileService;
using System.Net;
namespace FileTransfer.Core
{
public class FileReader
{
public FileReader()
{
}
char[] spillter = new char[] { '|' };
public Message GetMessageFromServer(string line)
{
Message message = null;
if (!string.IsNullOrEmpty(line))
{
string[] values = line.Split(spillter);
message = new Message();
message.Name = values[3];
message.Content = values[0];
message.Date = values[1];
message.Time = values[2];
}
return message;
}
public Message GetMessageFromServer()
{
return null;
}
public List GetListOfMessages(string username, string pwd)
{
try
{
List collection = null;
FileService.FileService service = new FileTransfer.Core.FileService.FileService();
service.Url = "http://server/wmservice/FileService.asmx";
service.PreAuthenticate = false;
string[] lines = service.ReadFile(username, pwd);
collection = new List();
if (lines != null && lines.Length > 0)
{
for (int i = 0; i < lines.Length; i++)
{
Message message = GetMessageFromServer(lines[i]);
collection.Add(message);
}
}
return collection;
}
catch (Exception ex)
{
throw ex;
}
}
}
}
以上代码非常简单,它定义了一个名为"message"的对象,用于构建消息。
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
namespace FileTransfer.Core
{
public class Message
{
string name;
public string Name
{
get { return name; }
set { name = value; }
}
string content;
string date;
public string Date
{
get { return date; }
set { date = value; }
}
string time;
public string Time
{
get { return time; }
set { time = value; }
}
public string Content
{
get { return content; }
set { content = value; }
}
}
}
服务器端的设计非常简单,因为有一个简单的文本配置文件。管理员将消息以标准格式放入文件中。之后,Web服务读取特定用户的文件,并将消息发送给用户。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace WindowsMobileService.Core
{
public class MessageReader
{
public MessageReader()
{
}
public string[] ReadMessage(string filePath)
{
if (string.IsNullOrEmpty(filePath))
{
return null;
}
if (File.Exists(filePath))
{
return File.ReadAllLines(filePath);
}
else
{
return null;
}
}
}
}
服务器的设置非常简单,只需下载服务代码,在IIS服务器中创建一个虚拟目录,并将服务器代码复制到该目录。或者,也可以使用VS IDE运行它。