1、框架模型无ORM,重点在数据库建模设计与UI框架设计上

2、多数据库支持(Enterprise Lib 默认仅支持SqlServer和Oracle,需自己扩展才能支持其他数据库,本文已扩展SQLite为例说明)


项目截图

Client—>DataProxy     通过WebService访问服务端数据服务

Client—>UI    客户端UI

Lib —> ZF.Data.SQLite 扩展Enterprise Lib支持SQLite

DAL 各种数据库的数据访问层(Data Acess Layer)

WebService 针对各个数据库的WebService

 

重点看下ZF.Data.SQLite的写法及Web.Config 的配置

SQLiteDatabase.cs

using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Data.Configuration;
using System;
using System.Data.Common;
using System.Data.SQLite; namespace ZF.Data.SQLite
{
[DatabaseAssembler(typeof(SQLiteDatabaseAssembler))]
public class SQLiteDatabase : Database
{
private string connectionString;
public SQLiteDatabase(string connectionString)
: base(connectionString, SQLiteFactory.Instance)
{
this.connectionString = connectionString;
}
protected override void DeriveParameters(DbCommand discoveryCommand)
{
throw new Exception("The method or operation is not implemented.");
}
}
}

SQLiteDatabaseAssembler.cs

using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Data.Configuration;
using System;
using System.Configuration;
namespace ZF.Data.SQLite
{
public class SQLiteDatabaseAssembler : IDatabaseAssembler
{
public Database Assemble(string name, ConnectionStringSettings connectionStringSettings, IConfigurationSource configurationSource)
{
return new SQLiteDatabase(connectionStringSettings.ConnectionString);
}
}
}

web.config

<?xml version="1.0"?>
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data"/>
</configSections>
<appSettings/>
<dataConfiguration defaultDatabase="sqlite">
<providerMappings>
<add databaseType="ZF.Data.SQLite.SQLiteDatabase, ZF.Data.SQLite" name="System.Data.SQLite"/>
</providerMappings>
</dataConfiguration>
<connectionStrings>
<add name="sqlServer" providerName="System.Data.SqlClient" connectionString="Database=test_sql;Server=.;User ID=sa;Password=123456;"/>
<add name="oracle" providerName="System.Data.OracleClient" connectionString="Data Source=test_orc;User ID=zf;Password=Zf123456"/>
<add name="sqlite" providerName="System.Data.SQLite" connectionString="Data Source=C:\test_JM.db;Version=3;Password=123456"/>
</connectionStrings>
<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
</system.web>
</configuration>

 

例子下载

基于微软EnterpriseLib的框架(一)的更多相关文章

  1. 浅析基于微软SQL Server 2012 Parallel Data Warehouse的大数据解决方案

    作者 王枫发布于2014年2月19日 综述 随着越来越多的组织的数据从GB.TB级迈向PB级,标志着整个社会的信息化水平正在迈入新的时代 – 大数据时代.对海量数据的处理.分析能力,日益成为组织在这个 ...

  2. 转:浅析基于微软SQL Server 2012 Parallel Data Warehouse的大数据解决方案

    综述 随着越来越多的组织的数据从GB.TB级迈向PB级,标志着整个社会的信息化水平正在迈入新的时代 – 大数据时代.对海量数据的处理.分析能力,日益成为组织在这个时代决胜未来的关键因素,而基于大数据的 ...

  3. 基于微软开发平台构建和使用私有NuGet托管库

    本篇blog包含使用TFS2017,VS2017等平台和工具搭建和使用NuGet库等基本过程,为团体提供更加自动化和高效的研发活动支持. 作为以产品线或者以专属业务为扩展的项目类型的软件研发团体,都会 ...

  4. 基于微软平台IIS/ASP.NET开发的大型网站有哪些呢?

    首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...

  5. (原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 决策树分析算法)

    随着大数据时代的到来,数据挖掘的重要性就变得显而易见,几种作为最低层的简单的数据挖掘算法,现在利用微软数据案例库做一个简要总结. 应用场景介绍 其实数据挖掘应用的场景无处不在,很多的环境都会应用到数据 ...

  6. 微软分布式云计算框架Orleans(2):容灾与集群(1)

    在上一篇:微软分布式云计算框架Orleans(1):Hello World,我们大概了解了Orleans如何运用,当然上一篇的例子可以说是简单且无效的,因为用了Orleans不可能只写一个Hello ...

  7. 基于LoadRunner构建接口测试框架

    基于LoadRunner构建接口测试框架 http://www.docin.com/p-775544153.html

  8. 【公开课】《奥威Power-BI基于微软示例库(MSSQL)快速制作管理驾驶舱》文字记录与反馈

        本期分享的内容: <奥威Power-BI基于微软示例库(MSSQL)快速制作管理驾驶舱> 时间:2016年11月02日 课程主讲人:叶锡文 从事商业智能行业,有丰富的实施经验,擅长 ...

  9. 10月26日 奥威Power-BI基于微软示例库(MSOLAP)快速制作管理驾驶舱 腾讯课堂开课啦

    本次课是基于olap数据源的案例实操课,以微软olap示例库Adventure Works为数据基础.        AdventureWorks示例数据库为一家虚拟公司的数据,公司背景为大型跨国生产 ...

随机推荐

  1. ios怎样实现快速将显卡中数据读出压缩成视频在cocos2dx扩展开发中

    如果解决ios怎样实现快速将显卡中数据读出压缩成视频在cocos2dx扩展开发中 手机平台性能是个关键问题. 压缩视频分成3个步骤: 读取显卡数据, 使用编码器压缩,保存文件. 使用libav 压缩的 ...

  2. git reset and git checkout

    git reset --hard <commit>: 1.替换引用的指向.引用指向新的提交ID; 2.替换暂存区.替换后,暂存区的内容和引用指向的文件夹树一致; 3.替换工作区.替换后,工 ...

  3. Hive权限介绍

    一.开启权限 眼下hive支持简单的权限管理,默认情况下是不开启.这样全部的用户都具有同样的权限.同一时候也是超级管理员.也就对hive中的全部表都有查看和修改的权利,这样是不符合一般数据仓库的安全原 ...

  4. 上struts2的xml在&lt;result type=&quot;redirect&quot;&gt;参数问题

    今天做项目,我遇到了一个精彩的问题. 我需要在struts的xml中的<action>的<result>中配置type="redirect".同一时候须要传 ...

  5. [000]socket通信--server和client实现的简单例子

    在C语言中就学过scanf和printf,其实理解socket就跟这两个输入输出差不多,只不过是信息的传输而已. 1.TCP服务器端(server)的默认函数调用顺序: 按照上述的调用顺序,我们可以来 ...

  6. global 用法

    <?php//$GLOBALS['he']="hechunhuae";function Test(){ //global $he; $GLOBALS['he']=" ...

  7. VB.net 利用SerialPort进行读取串口操作

    Imports SystemImports System.IO.Ports Public Class Form1 Private Sub Form1_Load(ByVal sender As Syst ...

  8. git - 版本控制器(本地仓库)

    本地创建仓库,然后进行管理.提交到本地仓库(不需要网络),提交到远程仓库(需要网络) 相对于svn为克隆方式,赋值的是整个仓库,svn只是复制的代码.   1.电脑新创建一个”本地仓库”空文件夹 2. ...

  9. Hibernate学习笔记--------2.一多|多多的CRUD

    一.一多关系 例如用户(Tb_User)和订单(Tb_Order)之间,一个用户对应了多个订单,多个订单对应一个用户. 除了基本的配置外,需要在用户类(单方)中添加订单的集合同样需要get/set方法 ...

  10. show status详解

    Aborted_clients 某种原因客户程序不能正常关闭连接而导致失败的连接的数量.没有正常关闭 Aborted_connects 指出试图连接到MYSQL的失败的次数.这种情况在客户尝试用错误的 ...