
谈到的是镇哗Winform开发框架中字典数据管理 在字典数据数据管理工程项目中 我们看到有两个不同的数据访问层 工厂模式通过不同的配置 调用不同的数据访问层
好久没写博客了 除了是工作较忙的原因外 其实是也一直在想如何整合我所有的开发经验及技术积累 开发过很多Winform共享软件 ASP NET的WebForm项目 发现很多东西是相互关联很紧密的 但往往我们太忙太懒 要好好整理 并整理出棒棒的一般比较难 但我们没有停步 梦想总会慢慢接近并实现 在做了很多项目之后 发现人的惰性或者惯性很大 因此有机会得好好整理下开发的成功 优化再优化 用的时候就越来越顺手了
在所有开发过的项目过程 很多如权限管理 字典数据管理模块 都是非常常用的模块 本文主要想介绍下提炼出来 各个项目均可通用的字典数据管理系统(或者叫做模块更为适合) 在介绍之前 我想介绍下我的整合路线及一些想法 如下所示
其中框架中所有介绍的内容均为现有开发框架中有的东西及特性 如果要了解Winform框架的多维特点 可以现在最新的共享软件《仓库管理系统》 具体可以参考文章《从开发的软件《备件仓库管理系统》总结的一些经验》进行顷旅指了解 该共享软件除了整合众多优秀的功能外 一个特点就是数据管理模块也得到了升华
在Winform框架中 其中权雀配限管理系统 字典管理系统 都是可以做成独立的程序来使用 而且应该可以在程序中引用来查询或者获取相关的字典数据 如找某个键值的字典列表作为下拉列表 而且由于实际项目总 有点是SqlServer 有的是Access数据库的 所以支持多数据库是最好的选择
在字典数据数据管理工程项目中 我们看到有两个不同的数据访问层 工厂模式通过不同的配置 调用不同的数据访问层 从而实现SqlServer Access等数据库的支持 当然可以扩展更多的数据库支持 我们先来看看工程项目的视图如下所示
配置文件如下所示
<?xml version= encoding= utf ?> <configuration> <configSections> <section name= dataConfiguration type= Microsoft Practices EnterpriseLibrary Data Configuration DatabaseSettings Microsoft Practices EnterpriseLibrary Data /> type= Microsoft Practices EnterpriseLibrary Data Configuration DatabaseSettings Microsoft Practices EnterpriseLibrary Data /> type= Microsoft Practices EnterpriseLibrary Data Configuration DatabaseSettings Microsoft Practices EnterpriseLibrary Data /> </configSections> <connectionStrings> <add name= DataAccess providerName= System Data OleDb connectionString= Provider=Microsoft Jet OLEDB Data Source=E:我的应用程序数据字典SqlDictionaryWHC Dictionary UIinDebugOrderWater mdbUser ID=AdminJet OLEDB:Database Password= /> <add name= DataAccess providerName= System Data SqlClient connectionString= Persist Security Info=FalseData Source=(local)Initial Catalog=WarehouseUser ID=saPassword= /> connectionString= Persist Security Info=FalseData Source=(local)Initial Catalog=WarehouseUser ID=saPassword= /> connectionString= Persist Security Info=FalseData Source=(local)Initial Catalog=WarehouseUser ID=saPassword= /> </connectionStrings> <dataConfiguration defaultDatabase= DataAccess /> <appSettings> <! 软件名称 > <add key= ApplicationName value= 深田之星仓库管理系统 /> <! 开发商名称 > <add key= Manufacturer value= 广州爱启迪技术有限公司 /> <! 数据字典的数据库类型 access sqlserver等 > <add key= ComponentDbType value= access /> </appSettings> </configuration>
我们通过DictionaryDbType来切换不同的数据库 不用修改代码实现多数据库支持 当然 不同的数据库 需要创建不同的数据库文件 不过数据库结构基本上是一致的
我们看看该字典管理模块的最终效果 如下所示
字典数据模块做成独立的程序后 一个可以独立运行 也可以在宿主程序中通过DLL方式调用类库来获取字典数据 如下所示
private void InitDictItem() { this txtManufacture Items Clear() this txtManufacture Items AddRange(DictItemUtil GetDictByDictType( 供货商 )) this txtBigType Items Clear() this txtBigType Items AddRange(DictItemUtil GetDictByDictType( 备件属类 )) this txtItemType Items Clear() this txtItemType Items AddRange(DictItemUtil GetDictByDictType( 备件类别 )) this txtSource Items Clear() this txtSource Items AddRange(DictItemUtil GetDictByDictType( 来源 )) this txtWareHouse Items Clear() this txtWareHouse Items AddRange(DictItemUtil GetAllWareHouse() ToArray()) this txtDept Items Clear() this txtDept Items AddRange(DictItemUtil GetDictByDictType( 部门 )) } lishixinzhi/Article/program/net/201311/13777
winform 开发 主流框架依然是N层架构,随着时间的推移,从面向对象集成系统开发转向面向服务的分布式开发,C# asp.net 当前主流架构依然是MVC 类似于C#的N层架构框架 当前是MVC5。
相关框架如下:
1、Json.NET
是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型 等)和Json的转卜余灶换。
2、Math.NET
目标是为提供一款自身包含清晰框架的符号运算和数学运算/科学运算,它是C#开发的开源类库。Math.NET含了一个支持线性代数的解析器,分析复杂微分,解方程等等功能。
3、Faker.Net
开发型扮的时候是不是为测试数据烦恼?Faker.Net可以非常方便帮你生成大批量测试数据。例如人员表里面的姓名、性别什么的。
4、Html Agility Pack
是CodePlex 上的一个开源项目。它提供了标准的DOM API 和XPath 导航--即使 HTML 不是适当的格式!HTML Agility Pack 搭配 ScrapySharp,彻底解除Html解析的痛苦。
5、NCrawler
是一款国外的开源网络爬虫软件,遵循LGPL许可协议。其HTML处理使用的是htmlagilitypack开源库,采用xpath的方式处理定位网页元素,十分方便。
6、SuperWebSocket
基于.NET开源Socket框架SuperSocket开发的, SuperSocket所支持的大部分功能在SuperWebSocket中得到了继承。用户可通过SuperWebSocket来快速的构建可靠的,高性能的websocket服务器端应用程序。
7、SuperSocket
一个轻量级的可扩展的 Socket 开发框架,可用毁纯来构建一个服务器端 Socket 程序,而无需了解如何使用 Socket,如何维护Socket连接,Socket是如何工作的。该项目使用纯 C# 开发,易于扩展和集成到已有的项目。只要你的已有系统是使用.NET开发的,你都能够使用 SuperSocket来轻易的开发出你需要的Socket应用程序来集成到你的现有系统之中。
8、Quartz.NET
一个开源的作业调度框架,是 OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而 创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。
9、Lucene.Net
Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。开发人员可以基于Lucene.net实现全文检索的功能。
10、HttpLib
一个基于C#语言的http协议的类库,Httplib让异步交互处理数据更容易了。类库的方法包括:上传文件到服务器,获取页面数据等等。
11、Smart Thread Pool
智能线程池,用SmartThreadPool可以简单就实现支持多线程的程序,由线程池来管理线程,可以减少死锁的出现。SmartThreadPool还支持简单的生产者-消费者模式,当不需要对任务进行持久化时,还是很好用的。
12、DocX
是一个用来 *** 作word的轻量级的类库。借助DocX,开发人员可以在不需要安装Microsoft Word的情况下 *** 纵word2007/2010文件。
13、NPOI
是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写 *** 作。
14、PDFsharp
可以轻松地在 .NET 语言中创建PDF文档的开放源码库。它使用相同的绘制程序来创建 PDF 文档,在屏幕上显示,以及输出到打印机。可以修改、合并、拆分已经存在的 PDF 文件,支持透明图像。
15、Dapper
一个轻型的ORM类。代码就一个 SqlMapper.cs文件,编译后就40K的一个很小的Dll.Dapper很快。Dapper的速度接近与IDataReader,取列表的数据超 过了DataTable。Dapper支持Mysql,SqlLite,Mssql2000,Mssql2005,Oracle等一系列的数据库,当然如 果你知道原理也可以让它支持Mongo db。话说,这个ORM,博主自己也一直在使用,确实十分强悍,至少在性能方面,恐怕.NET里面的大多数ORM只能是望其项背了。
16、NHibernate
现在开发人员用的较多的一个ORM。NHibernate是一个面向.NET环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。
17、log4net
Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。
18、SharpSerializer
一个开源XML和二进制序列化器。SharpSerializer可以序列化Xml和自己的二进制格式,还可以序列化Json等其他文本格式或其他数据加密,压缩,优化等二进制流。
19、XProxy
一个支持插件的基础代理程序集。通过编写简单的插件程序,你将能开发各种各样的代理程序。
XProxy是一个支持插件开发的数据交换机,可以编写插件对中转数据进行处理。内置有NAT插件、加解密插件、反向代理、直接代理、间接代理等插件。
20、nopCommerce
国外的一个高质量的开源b2c 网站系统,基于EntityFramework4.0和MVC3.0,使用Razor模板引擎,有很强的插件机制,包括支付配送功能都是通过插件来实现 的,基于xml的多语言版本,非常灵活的语言切换功能,包括在后台都能同时编辑产品的中英文属性,非常适合做外贸,优秀超前的程序架构,性能也非常强大, 自定义的产品名称和分类又有很好的seo优化。综合能力远远高于国内的一些程序架构糟糕的.net商城程序,是二次开发和大型b2c架构的首选。3.0开 始支持多店。
21、Enterprise Library
目前最新版本为v5.0,支持.NET Framework 4.0,共包括9个Application Block,包括数据访问(Data Access Application Block)、异常管理(Exception Handling Application Block)、数据验证(Validation Application Block)等等,对企业应用开发非常有帮助,也非常实用。
22、Autofac
一款非常优秀的IOC框架,比较于其他的IOC框架,如Spring.NET,等等之类的,它非常的轻量级且性能上也很卓越。
23、AutoMapper
一个.NET的对象映射工具。主要用于领域对象与DTO之间的转换、数据库查询结果映射至实体对象。
24、7-Zip
一款号称有着现今最高压缩比的压缩软件,它不仅支持独有的 7z 文件格式,而且还支持各种其它压缩文件格式,其中包括 ZIP, RAR, CAB, GZIP, BZIP2和 TAR 等等。此软件压缩的压缩比要比普通 ZIP 文件高 30-50% ,因此,它可以把 Zip 格式的文件再压缩 2-10% 。
先添加-新建项目-windows应用程序,然后在右边的解决方案资源管理器上面,在当前的解决方案上面右击,点,添加-新建项目-类库,分别建立。DAL,BLL,Model三个项目乱如,然后,在DAL项颂肢目上野陪世右击-添加引用-项目,选择Model,然后在BLL项目上右击-添加引用-项目,选择Model与DAL,然后用同样的 *** 作,把Model,DAL,BLL引用到应用程序中,就建立好了欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)