博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

TaskVision基础版

Posted on 2008-10-23 20:00  a-peng  阅读(3222)  评论(10编辑  收藏  举报

好些天没有更新博客了,有些空荡荡的感觉。

(一)引言
TaskVision已经完成的差不多了,基本功能都已经完成。

剩下还没完成的地方:自定义DataGrid显示,任务历史记录,按优先级显示任务的比例图表,按进度显示任务的比例图表,打印任务,将任务导出到Excel中。

TaskVision的离线主要思路:
默认为在线模式,用户登录后,按需要通过Web服务从服务器下载相应的数据到强类型DataSet中,当用户切换为离线模式时,提示用户选择需要下载到本地的数据,用户选择完毕后,则下载到本地的XML文件中,这样基本的离线功能就搭建好了。
这时你可能会问,在离线模式下,添加和修改数据怎么办呢?我们在关闭主窗体时,响应Closing事件,如果离线数据发生更改,则将更改的数据存放到指定的XML文件中。
当用户下一次运行程序时,如果存在离线XML文件,则切换为离线模式,存在离线更改XML文件,则读取更改文件。
当用户切换为在线模式时,则将更改上传。

离线时XML文件存放的路径在TaskVision\bin\Debug\1.0.0.0\ 中

(二)完成效果

运行程序:默认在线,所以弹出登录,成功登录后显示主窗体
image
加载数据:
image

数据加载完成:
image

点击下线:弹出选择离线项目,离线
image

离线后:
image

离线后,更改记录后,上线:要切换为在线模式,会弹出用户登录,成功登录后,自动同步数据
image

其它的功能就不演示了,大家可以自己看看。

(三)附代说明
小菜加了很多注释,让代码不那么晦涩,而且尽量保持一致的编码风格。
取一小段:

/// <summary>
/// 取得用户身份验证票
/// </summary>
/// <param name="userName">用户名</param>
/// <param name="userPassword">密码</param>
/// <returns>成功返回加密过后的用户身份验证票,失败返回null</returns>

[WebMethod]
public String GetAuthorizationTicket(String userName, String userPassword)
{
    Object userID 
= null;

    
try
    
{
        userID 
= SqlHelper.ExecuteScalar(m_conn, "AuthenticateUser", userName, userPassword);
    }

    
finally
    
{
        
if (m_conn.State != ConnectionState.Closed)
            m_conn.Close();
    }


    
if (userID != null)
    
{
        
// 创建用户身份验证票,过期时间1分钟
        FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(userID.ToString(), false1);
        
// 加密用户身份验证票
        String encryptedTicket = FormsAuthentication.Encrypt(ticket);
        
        
// 缓存身份验证票,过期时间2分钟
        Context.Cache.Insert(encryptedTicket, userID.ToString(), null, DateTime.Now.AddMinutes(2), TimeSpan.Zero);

        
return encryptedTicket;
    }

    
else
    
{
        
return null;
    }

}


由于很多想学习智能客户端的朋友,都会从TaskVision,IssueVision,FotoVision这几个微软案例开始,不过可惜的是这几个案例都是基于.Net1.0与.Net1.1,所以小菜将TaskVision移植到.Net2.0.
希望能带给那些想学习智能客户端的朋友一些帮助.

之后会给出完整版.

代码下载:https://files.cnblogs.com/a-peng/SmartClient_Chapter06.rar

*************************************************************************
作者:a-peng
出处:
http://a-peng.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出
原文连接,否则保留追究法律责任的权利。
*************************************************************************