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. Objective-C Runtime 运行时之二:成员变量与属性

    类型编码(Type Encoding) 作为对Runtime的补充,编译器将每个方法的返回值和参数类型编码为一个字符串,并将其与方法的selector关联在一起.这种编码方案在其它情况下也是非常有用的 ...

  2. Fragment详解

    1 Fragment简介 1.1 Fragment的设计初衷 Android3.0引入Fragment的初衷是为大屏幕的设备提供更加灵活的动态UI设计,由于大屏设备可以容纳更多的UI组件,且这些UI组 ...

  3. 在Win8 Mertro 中使用SQLite

    在Win8 Mertro 中使用SQLite 分类:             .net 开发              2012-09-19 18:17     1229人阅读     评论(3)   ...

  4. .Net Core-TagHelpers-Environment

    当我们新建一个.net core项目时,发现页面中有个奇怪的TagHelper元素,如下:     <environment names="Development"> ...

  5. 安卓开发21:深入理解Handler

    Handler相关说明: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释:安卓的UI线程(即OnCreate函数创建的线程)是线程非安全的.也就是说,在UI线程中,使用sleep这样 ...

  6. hdu 2844 Coins (多重背包)

    题意是给你几个数,再给你这几个数的可以用的个数,然后随机找几个数来累加, 让我算可以累加得到的数的种数! 解题思路:先将背包初始化为-1,再用多重背包计算,最后检索,若bb[i]==i,则说明i这个数 ...

  7. Windows内核之进程基本含义以及进程的创建

    进程 1 进程的含义: 1.1   一个是操作系统用来管理进程的内核对象. 内核对象也是系统用来存放关于进程的统计信息的地方. 1.2   还有一个是地址空间,它包括全部可运行模块或DL L 模块的代 ...

  8. RapidXml用法

    一.写xml 文件 #include <iostream> #include "rapidxml/rapidxml.hpp" #include "rapidx ...

  9. Routes

    Routes Routing lets you create your own URL paths, based on the path you can load a closure or a con ...

  10. 优化sql,返回行数少情况下,NL比hash快好多

    sql如下 select t.id, t.value, tt.sort as sortno from ENGINEERING_TYPE t left join ENGINEERING_TYPE tt ...