应用wCF 企业库搭建的一个Demo

小弟最近因项目需要自己搭建框架,但是不知道怎么搭建,所以做了一个搭建的demo,希望大家能之处其中不妥的地方,项目是传统的bussess项目,基本的信息维护。

项目的整体机构图

1 首先我们来说说数据层


namespace Neower.UnicomVideo.DataAccess
{
    public class UserInfoDA : DataAccessBase
    {
        public virtual UserInfo[] GetUserInfos()
        {
            string sql = "SELECT * FROM dbo.UserInfo";
            DbCommand command = Db.GetSqlStringCommand(sql);
            DataSet ds = Db.ExecuteDataSet(command);

            List<UserInfo> userInfos = new List<UserInfo>();
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                UserInfo userInfo = new UserInfo()
                {
                    UserID = row["UserID"].ToString(),
                    UserName = row["UserName"].ToString(),
                    UserAge = string.IsNullOrEmpty(row["UserAge"].ToString()) ? new  Nullable<int>() : int.Parse(row["UserAge"].ToString())
                };
                userInfos.Add(userInfo);
            }
            return userInfos.ToArray();
        }
    }
}

 

基类代码 

在这层有一个帮助类 主要用于创建对象,因为后面的每一层都要访问数据层,所以把它放到数据层了

2紧接下来的就是组建层 也是我们常说的业务管理层

 namespace Neower.UnicomVideo.BusinessComponent
{
    public class UserInfoBC
    {
        UserInfoDA da;

        public UserInfoBC(UserInfoDA userinfoDA)
        {
            da = userinfoDA;
        }
        public virtual UserInfo[] GetUserInfos()
        {
            return da.GetUserInfos();
        }
    }
}

3 接口层 wcf的接口我们放到单独的一个项目中

 namespace Neower.UnicomVideo.Common
{
    [ServiceContract]
    public interface IUserInfo
    {
        [OperationContract]
        [FaultContract(typeof(FaultException))]
        UserInfo[] GetUserInfos();
    }
}

4 外观层 即使wcf接口的实现层

 namespace Neower.UnicomVideo.BusinessFacade
{
    public class UserInfoBF : IUserInfo
    {
        UserInfoBC bc;
        public UserInfoBF()
        {
            bc = Helper.GetInstance<UserInfoBC>();
        }

        public UserInfo[] GetUserInfos()
        {
            return bc.GetUserInfos();
        }
    }
}

5 服务托起层 用iis把服务托起

<%@ ServiceHost language="C#" Debug="true" Service="Neower.UnicomVideo.BusinessFacade.UserInfoBF"%>

配置文件

  

主要是实现对象的创建 做到真正的IOC

6 代理层

  public class UserInfoProxy : ProxyBase<IUserInfo>, IUserInfo
    {
        public UserInfo[] GetUserInfos()
        {
            IUserInfo proxy = GetInstance();
            try
            {
                return proxy.GetUserInfos();
            }
            catch (CommunicationException)
            {
                (proxy as ICommunicationObject).Abort();
                throw;
            }
            catch (TimeoutException)
            {
                (proxy as ICommunicationObject).Abort();
                throw;
            }
            finally
            {
                (proxy as ICommunicationObject).Close();
            }
        }
        private IUserInfo GetInstance()
        {
            return this.GetObject("UserInfo");
        }
    }
}

基类

 public class ProxyBase<T>
        {
            public T GetObject(string endpoint)
            {
                return ProxyHelper.GetObject<T>(endpoint);
            }
         
        }
  

自己增加的工具类:    

7 最后就是应用层了

   protected void Page_Load(object sender, EventArgs e)
        {
            UserInfoProxy proxy=new UserInfoProxy();
            UserInfo[] list = proxy.GetUserInfos();
            gv.DataSource = list;
            gv.DataBind();
        }

小弟把这个设计放到这里,希望高手指点一二。

 源代码http://download.csdn.net/source/3164585

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Visual Studio 中创建 WCF 服务时,有两种项目类型可供选择:WCF 服务应用程序和 WCF 服务库。这两种项目类型有以下区别: 1. WCF 服务应用程序是一种可执行文件,它包含了一个独立的 WCF 服务宿主。这意味着您可以直接运行 WCF 服务应用程序,并使用其自带的服务宿主来运行和测试您的 WCF 服务。当您部署 WCF 服务时,您可以将 WCF 服务应用程序部署到 IIS 或自定义的 Windows 服务中。 2. WCF 服务库是一种库项目,它包含了一个或多个 WCF 服务契约和实现类。这意味着您必须将 WCF 服务库引用到另一个托管应用程序中,然后手动配置该应用程序的服务宿主来运行和测试您的 WCF 服务。当您部署 WCF 服务时,您可以将 WCF 服务库部署到 IIS 中,但必须将其部署为 WCF 服务应用程序的一部分。 3. WCF 服务应用程序和 WCF 服务库的项目结构也不同。WCF 服务应用程序包含了一个 .svc 文件和一个 Web.config 配置文件,用于配置 WCF 服务宿主和服务终结点。而 WCF 服务库只包含 WCF 服务契约和实现类,这些类通常包含在一个或多个 .cs 文件中。 4. 在使用 WCF 服务应用程序时,您可以使用 Visual Studio 自带的 WCF 测试客户端来测试您的 WCF 服务。而在使用 WCF 服务库时,您必须手动编写测试客户端或使用第三方测试工具来测试您的 WCF 服务。 总之,WCF 服务应用程序是一种独立的 WCF 服务宿主,适用于独立运行和测试 WCF 服务。而 WCF 服务库则是一种库项目,适用于将 WCF 服务集成到其他托管应用程序中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值