由于我们开发的辅助工具Database2Sharp需要支持多种数据库,虽然我们一般使用SQLServer来开发应用较多,但是Oracle等其他数据库也是常用的数据库之一,因此也是支持使用Oracle等数据库进行代码的快速生成。在此之前我一直要求用户使用代码生成工具的时候,如果使用Oracle开发,则需在开发环境中安装Oracle客户端,以便继续利用微软的System.Data.OracleClient方式访问Oracle,不过这样开发环境就会麻烦一些。另外还带来一个问题,使用这些驱动的时候,由于系统的限制,还会区分32位或者64位的问题,不能实现兼容性的访问。为了彻底解决这个问题,我们使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容32位64位Oracle驱动。

1)代码生成工具介绍

Database2Sharp是一款代码生成工具和数据库文档生成工具,该工具从2005年开始至今,一直伴随着我们的客户和粉丝们经历着过各种各样的项目开发,在实际开发中能带来效率的提高及编程的快乐。

Database2Sharp是一款主要用于C#代码生成以及数据库文档生成的工具,软件支持Oracle、SqlServer、MySql、PostgreSQL、Sqlite、Access以及国产达梦等数据库的代码生成,可以生成各种架构代码、生成Winform界面代码、Web界面代码(包括EasyUI和BootstrapWeb界面)、Entity Framework实体框架代码、导出数据库文档、浏览数据库架构、查询数据、生成Sql脚本等,还整合自定义模板和数据库信息的引擎,方便编写自定义模板调试和开发。生成的框架代码支持多种数据库一起使用,也支持不同业务的数据库切割为多个库进行使用,是一种适应性非常强、弹性很好的应用框架。

Database2Sharp推荐采用软件功能“Enterprise Library代码生成”来生成项目代码,这个架构体系生成整个项目工程框架,包含实体类、数据访问类、业务类、Web页面代码、WCF相关服务层(可选)、Web API服务层(可选),以及各种服务的调用包装层代码等。该架构利用泛型及缓存机制,良好的架构极大简化代码,强大完善的基类机制使您甚至不用编写一行代码就能顺利运行。一个简单点击几次鼠标就能完成一周代码量的代码生成工具,效率惊人、友好体贴,真正的开发好伴侣。

当然,开发的过程是一个繁复、精细的过程,因此Database2Sharp也吸收了来自我们自己的实际需求,以及很多同仁朋友的宝贵意见,一直在改进,一直努力做到更好,以求达到一个更加完美、更加易用的境界。

在我们开发软件的时候,解决方案项目基于一定的分层组织,每个项目分层中,各个类的关系也是确定的,借助辅助工具(结合模板引擎)可以快速生成我们所需要的代码,并极大提高我们软件的开发效率,Database2Sharp代码生成工具就是一款专门针对我们自己框架结构配套的开发工具。

Database2Sharp代码生成工具,主要是基于数据库提取的元数据信息,根据表的信息和关系,字段信息等内容,生成我们框架所需要分层的类代码。

对于Winform开发,可以根据Winform框架或者混合框架的窗体界面类,生成标准的界面代码,列表界面默认具有分页查询、导入导出、高级查询、编辑、删除事件绑定,编辑界面则具有获取数据并显示在控件,保存后执行更新或者写入的操作。

对于Web开发,可以根据EasyUI控件界面或者Bootstrap控件界面的不同,生成对应的视图HTML代码和控制器类代码,同时这些界面默认也具有分页查询,导入导出,显示明细和保存数据的功能。

软件主要界面如下所示。

2、代码生成工具中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库

首先通过Nugget程序包下载一个Oracle.ManagedDataAccess.dll的文件,然后进行使用即可,经过测试使用这个类库,可以无视数据库系统的位数,最重要的是减少了Oracle客户端的安装。

为了和原有的系统支持的OracleClient实现区分,以便继续保留原有方式的处理,那么我们增加一个特别的OracleManaged类实现Oracle元数据的处理即可。

应用这个Oracle.ManagedDataAccess方式,相对于OracleClient方式,我们几乎不用变化任何对象的名称,只是换了一个命名空间而已,基本实现完全兼容。

有了这个获取数据的方式,当然需要对数据配置的界面增加一个OracleManaged的对应方式了,因为Oracle.ManagedDataAccess和OracleClient的连接字符串有所差异的。

前者Oracle.ManagedDataAccess的连接字符串变为:

Data Source=  (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.mshome.net)
)
);User ID=win;Password=win

依照这个配置的参数我们修改下Oracle数据库连接字符串的配置界面如下:

其中我们对于Oracle连接字符串描述部分,提示参考PLSQL Developer里面【帮助】【支持信息】 【TNS名称】的对应部分即可,如下所示。

有了这些配置信息,我们就可以不管服务端或者本地的Oracle版本是32位的还是64位的,实现全部兼容,并且如果客户端没有安装Oracle客户端,照样可以访问Oracle服务端的数据的。

运行代码生成工具,可以获得Oracle的数据表等信息,可以在Oracle环境下,无需安装Oracle客户端,顺畅使用代码生成工具进行代码的开发工作了。

在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容32位64位Oracle驱动的更多相关文章

  1. 代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能

    在代码生成工具的各种功能规划中,我们一向以客户的需求作为驱动,因此也会根据需要增加一些特殊的功能或者处理.在实际的开发中,虽然我们一般以具体的表进行具体业务开发,但是有些客户提出有时候视图开发也是很常 ...

  2. 基于Metronic的Bootstrap开发框架经验总结(18)-- 在代码生成工具Database2Sharp中集成对Bootstrap-table插件的分页及排序支持

    在我们开发系统界面,包括Web和Winform的都一样,主要的界面就是列表展示主界面,编辑查看界面,以及一些辅助性的如导入界面,选择界面等,其中列表展示主界面是综合性的数据展示界面,一般往往需要对记录 ...

  3. 在代码生成工具Database2Sharp中增加Vue&Element 工作流页面的快速生成

    在我们基于框架开发系统的时候,往往对一些应用场景的页面对进行了归纳总结,因此对大多数情况下的页面呈现逻辑都做了清晰的分析,因此在我们基于框架的基础上,增量式开发业务功能的时候,能够事半功倍.代码生成工 ...

  4. 在开发框架中扩展微软企业库,支持使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库

    在前面随笔<在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容3 ...

  5. C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点

    C#反射实现   一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...

  6. 利用代码生成工具Database2Sharp设计数据编辑界面

    在Winform程序开发中,界面部分的开发工作量一般是比较大的,特别是表的字段数据比较多的情况下,数据编辑界面所需要的繁琐设计和后台逻辑处理工作量更是直线上升,而且稍不注意,可能很多处理有重复或者错误 ...

  7. 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码

    在前面随笔<基于Metronic的Bootstrap开发框架--工作流模块功能介绍>和<基于Metronic的Bootstrap开发框架--工作流模块功能介绍(2)>中介绍了B ...

  8. 利用代码生成工具Database2Sharp生成ABP VNext框架项目代码

    我们在做某件事情的时候,一般需要详细了解它的特点,以及内在的逻辑关系,一旦我们详细了解了整个事物后,就可以通过一些辅助手段来提高我们的做事情的效率了.本篇随笔介绍ABP VNext框架各分层项目的规则 ...

  9. 基于SqlSugar的开发框架循序渐进介绍(3)-- 实现代码生成工具Database2Sharp的整合开发

    我喜欢在一个项目开发模式成熟的时候,使用代码生成工具Database2Sharp来配套相关的代码生成,对于我介绍的基于SqlSugar的开发框架,从整体架构确定下来后,我就着手为它们量身定做相关的代码 ...

随机推荐

  1. 【Java基础】谈谈集合.CopyOnWriteArrayList

    目录 实现原理 遍历时不用加锁的原因 CopyOnWriteArrayLis的缺点 使用场景 总结 参考 本篇博客介绍CopyOnWriteArrayList类,读完本博客你将会了解: 什么是COW机 ...

  2. java集合之Vector向量基础

    Vector向量: vector类似动态数组,向量和数组类似,但是数组容量一旦确定不可更改,而向量的容量可变.向量只可以保存任何类型对象且容量不限制,数组对元素类型无限制但是容量有限. 适用场合:向量 ...

  3. POJ 1062 昂贵的聘礼(带限制条件的dijkstra)

    题目网址:http://poj.org/problem?id=1062 题目: 昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submis ...

  4. Thief-Book 上班摸鱼神器

    Thief-Book 上班摸鱼神器 介绍 Thief-Book 是一款真正的摸鱼神器,可以更加隐秘性大胆的看小说. 隐蔽性 自定义透明背景,随意调整大小,完美融入各种软件界面 快捷性 三个快捷键,实现 ...

  5. MyBatis 示例-简介

    简介 为了全面熟悉 MyBatis 的使用,整理一个 MyBatis 的例子,案例中包含了映射器.动态 SQL 的使用.本章先介绍项目结构和配置. 项目地址:链接 数据库表的模型关系:链接 项目结构 ...

  6. 百万年薪python之路 -- 小数据池和代码块练习

    1.请用代码验证 "alex" 是否在字典的值中? info = {'name':'王刚蛋','hobby':'铁锤','age':'18',...100个键值对} info = ...

  7. MongoDB系列---入门安装操作

    MongoDB 学习大纲: 1.MongoDB简介与其它数据库对比以及数据类型 2.MongoDB安装 3.MongoDB简单操作 环境要求: Linux 一.MongoDB简介 1 什么是Mongo ...

  8. Leetcode(8)字符串转换整数

    Leetcode(8)字符串转换整数 [题目表述]: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我 ...

  9. 【Spring Cloud】微服务架构选型方案

    1.技术架构 2.组件介绍 1.服务注册与发现——Eureka 服务注册与发现中心采用Eureka,以AP为核心的高可用注册中心,保证高可用性和最终一致性,server之间互相注册的replicate ...

  10. java面试官:兄弟简单谈谈Static、final、Static final各种用法吧

    前言 对Static.final.Static final这几个关键词熟悉又陌生?想说却又不知怎么准确说出口?好的,本篇博客文章将简短概要出他们之间的各自的使用,希望各位要是被你的面试官问到了,也能从 ...