快速业务通道

使用PureMVC实现ASP.NET的MVC结构开发

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
sage.Text = "用户名或密码不正确 !";
        break;
      case "UserNotFound":
        Message.Text = "该用户不存在!";
        break;
    }
  }

我这里为登录结果的不同通知作出相应的处理。接下来看一下点击了登录按钮后LoginCommand在做些什么事情

Code
  public override void execute(INotification notification)
  {
    base.execute(notification);
    //获得用户登录的信息
    LoginVO loginVO = (LoginVO)notification.getBody();
    //获得需要使用到的Proxy
    UserProxy userProxy = facade.retrieveProxy(UserProxy.NAME) as UserProxy;
    //通过用户名返回用户的信息
    UserInfo userInfo = userProxy.GetUserInfo(loginVO.UserName);
    //实现用户的登录逻辑
    if (userInfo != null)
    {
      if (userInfo.Password == loginVO.Password)
      {
        //发出登录情况的通知
        sendNotification(LOGIN_SUCCESS, userInfo);
      }
      else
      {
        sendNotification(LOGIN_FAILED);
      }
    }
    else
    {
      sendNotification(USER_NOT_FOUND);
    }
  }

在LoginCommand里,使用facade(父类的一个Facade对象)调用retrieveProxy方法取得对应名字的Proxy对象,然后调用Proxy对象的方法来获取需要的数据。下面是Proxy的GetUserInfo方法:

Code
  /// <summary>
  /// 从数据库中读取用户信息
  /// </summary>
  /// <param name="userName"></param>
  /// <returns></returns>
  public UserInfo GetUserInfo(string userName)
  {
    UserInfoTableAdapter adapter = new UserInfoTableAdapter();
    MyDataSet.UserInfoDataTable dataTable = adapter.GetUserByUserName(userName);
    UserInfo userInfo = null;
    if (dataTable.Rows.Count > 0)
    {
      userInfo = new UserInfo();
      MyDataSet.UserInfoRow row = dataTable[0];
      userInfo.UserId = row.UserId;
      userInfo.UserName = row.UserName;
      userInfo.Password = row.Password;
      userInfo.Email = row.Email;
    }
    return userInfo;
  }

到此,整个Demo的实现就完成了。这些注册,发出通知等等绕来绕去的执行可能一下子很难理清整个过程的思路,其实本人就花了不少的时间才大概的能理清这些复杂的关系(其实它们的耦合度是很低的,但是脑子就是反应不过来)。下面提供这个Demo的源码,这可是网上绝无仅有的PureMVC-C#的Demo哦,喜欢的朋友就下吧,希望大家多多支持本人的博客。真的骄傲在今后的时间里,还会陆续推出一系列的文章和Demo,向各位读者学习和交流。

本文配套源码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有HTTP/1.1 401 Access Denied

  • PHP高级教程(6):PHP Sessions
  • Photoshop入门:绘制立体效果奥运五环效果图
  • Linux下的Vsftpd配置篇
  • DIV和table页面布局的区别和联系
  • 如何实现二维向量 - 编程入门网
  • 网络营销公司在运营中的策略
  • iBATIS 3内的新特性:将iBATIS用作应用程序内的一种持久框架 - 编程入门网
  • Photoshop绘制高光水晶质感水晶苹果
  • Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

    地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

    电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

    《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号