zoukankan      html  css  js  c++  java
  • 基于微软EnterpriseLib的框架(一)

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

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


    项目截图

    Project

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

    Client—>UI    客户端UI

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

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

    WebService 针对各个数据库的WebService

     

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

    2015-05-27_212216

    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:	est_JM.db;Version=3;Password=123456"/>
        </connectionStrings>
        <system.web>
            <compilation debug="true"/>
            <authentication mode="Windows"/>
        </system.web>
    </configuration>

     

    例子下载

  • 相关阅读:
    Android Studio自定义模板代码
    Android Studio自定义模板代码
    Android Studio自定义模板代码
    android studio 首字母提示 设置 大小写敏感
    android studio 首字母提示 设置 大小写敏感
    新入公司 问问题 ,快速了解代码的方法
    新入公司 问问题 ,快速了解代码的方法
    gradle编译很慢解决方法
    gradle编译很慢解决方法
    被relativeLayout的grivate center 折腾死了
  • 原文地址:https://www.cnblogs.com/Aphasia/p/4534443.html
Copyright © 2011-2022 走看看