项目的开发。

1.后台缓存

一些常用的数据或者查询比较慢的数据,要放入redis缓存或者机器缓存中。 所以项目集合中有一个专门的缓存项目 ,用于存放需要的集合函数,

有存放的函数,就要有获取的函数 , 数据的来源还是走bll层再启用dal层

如:

//把数据放入缓存中。 
private void SetFundSubject()
 {
     Dictionary<int, MFundSubjectRela> dict = new Dictionary<int, MFundSubjectRela>();
     List<MFundSubjectRela> list = new TblFundSubjectRelaBLL().GetFundSubjectRela().ToList();
     Dictionary<int, List<MFundSubjectRela>> modelDict = list.GroupBy(o => o.SubCodeCls).ToDictionary(r => r.Key, r => r.ToList());
     WsCache.Instance.Add("MFundSubjectRela", modelDict);
 }
 //从缓存中取数据
public Dictionary<int, List<MFundSubjectRela>> GetFundSubject()
{
    return WsCache.Instance.Get<Dictionary<int, List<MFundSubjectRela>>>("MFundSubjectRela");
}

2. wcf Server的开发。

后台的数据通过wcf与客户端进行通读。要创建一个wcf的服务类。

一般接口层与实现层要分离存放。 方便 管理 。

如接口类中定义函数

/// <summary>
/// 根据主题获取对应的基金
/// </summary>
/// <param name="subcodecls"></param>
/// <returns></returns>
[OperationContract]
List<MFundSubjectRela> GetFundSubjectRelasByID(int subcodecls);

实现层对接口的方法进行实现

/// <summary>
/// 获取对应主题下面的基金
/// </summary>
/// <param name="subCode"></param>
/// <returns></returns>
public List<MFundSubjectRela> GetFundSubjectRelasByID(int subCode)
{
    List<MFundSubjectRela> ls = fundCache.GetFundSubjectRelasByID(subCode);
    return ls;
}

3 wcf服务的发布

写好服务以后,要把wcf服务发布出去,客户端才能调用到新加入的方法 。

wcf的host有两种,一种是控制台,一个是iis

我们采用控制台来发布服务,

注意客户端要更新服务,必须在服务启动以后才更新。

如果开发人员在本机开发的话,要更换wcf的地址为本机地址。这样才能调用出来。

4.客户端调用

客户端在wcf服务更新以后,

建立一个专门调用wcf服务方法的类来管理

public List<MFundSubjectRela> GetFundSubjectRelasByID(int subcode)
{
    try
    {
        return fundService.GetFundSubjectRelasByID(subcode);
    }
    catch(Exception ex)
    {
        LogUtility.WriteLog(ex);
    }
    return null;
}

5.页面方法的实现

html中采用ajax调用相应cs中的webmethod ,取得要应的数据 。

 [WebMethod]
        public static List<MFundSubjectRela> GetFundSubjectRelasByID(int subcode)
        {
            try
            {
                var fundSubject = new FundsCache().GetFundSubjectRelasByID(subcode);
                return fundSubject;
            }
            catch (Exception exception)
            {
                SystemInfoUtil.LogErrorMessage(exception);
            }
            return null;
        }

6.关于bll,dal层和数据持久层

利用自动生成工具根据表结构生成持久层代码,然后再里面实现业务逻辑。如果是生成的表实现 不能表现现有的业务 ,可以自定义model 来实现, 自定义的model 写sql语句是要自己来组一下顺序。


本文由 hcb 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论