C#中const与readonly区别

近期将旺财代码生成器的Entity代码进行优化,表名和字段名

一句话:const的值是固定的,代码里面写死的,每一次编译后结果都一样,而readonly的值是可以在运行的时候才确定值的。

了解更多:所谓静态常量就是在编译期间会对变量进行解析,再将常量的值替换成初始化的值;所谓动态常量就是编译期间会将变量标记只读常量,而不用常量的值代替,这样在声明时可以不初始化,可以延迟到构造函数初始化。

有关内存:const修饰的常量没有内存消耗;readonly因为需要保存常量,所以有内存消耗。

旺财C# .NET代码生成器支持DTcms MySQL版生成了

昨天跟一资深老用户沟通之后,发现DTcms MySql版用得人越来越多了,整个运行于Linux主机下,比一定要Windows和MSSQL数据库的要求降低了很多,优势太明显。

于是昨晚加班,国庆假期前,搞定如下升级:

1、完成MySql.Data.dll更新

消除了报错:MySql.Data.MySqlClient.MySqlException:Fatal error encountered attempting to read the resultset,以便支持较新版本的MySql数据库。

2、完善读取MySql数据库的表列表和字段属性的脚本

SELECT table_name TableName,TABLE_COMMENT TableDescription
FROM INFORMATION_SCHEMA.TABLES WHERE table_type = ‘base table’
ORDER BY table_name

SELECT CASE ORDINAL_POSITION WHEN 1 THEN TABLE_NAME ELSE ” END TableName,
ORDINAL_POSITION 序,COLUMN_NAME ColumnName,
CASE EXTRA WHEN ‘AUTO_INCREMENT’ THEN ‘Y’ ELSE ” END IsIdentity,
case COLUMN_Key when ‘PRI’ then ‘Y’ else ” END PrimaryKey,
DATA_TYPE DataType,
CASE DATA_TYPE
WHEN ‘double’ THEN NUMERIC_PRECISION
WHEN ‘decimal’ THEN NUMERIC_PRECISION
WHEN ‘tinyint’ THEN NUMERIC_PRECISION
WHEN ‘int’ THEN NUMERIC_PRECISION
WHEN ‘bigint’ THEN NUMERIC_PRECISION
ELSE CASE WHEN CHARACTER_MAXIMUM_LENGTH IS NULL THEN 0 ELSE CHARACTER_MAXIMUM_LENGTH END
END ByteLength,
CASE DATA_TYPE
WHEN ‘double’ THEN NUMERIC_PRECISION
WHEN ‘decimal’ THEN NUMERIC_PRECISION
WHEN ‘tinyint’ THEN NUMERIC_PRECISION
WHEN ‘int’ THEN NUMERIC_PRECISION
WHEN ‘bigint’ THEN NUMERIC_PRECISION
ELSE CASE WHEN CHARACTER_MAXIMUM_LENGTH IS NULL THEN 0 ELSE CHARACTER_MAXIMUM_LENGTH END
END Length,
IFNULL(numeric_scale,”) IsNumeric,
CASE is_nullable WHEN ‘YES’ THEN ‘Y’ ELSE ” END AllowNull,
column_default DefaultValue,
COLUMN_COMMENT Description
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = ‘tableName ‘

3、增加DTcms4/5 MySql版DAL生成

生成到新目录:DTcms.DAL.MySql,2个模板,同时支持DTcms4和DTcms5两个版本。

4、发布V20181001国庆版

5、下一步计划整理在线版的帮助文档

图文和视频汇总在一起,并增加开发实例视频教程

.NET Core 3要支持WinForm和WPF,你准备好了吗?

一早打开VS 2017,发现8月8号就发布的消息,的确有些兴奋:.NET Core 3在路上,并且要支持WinForm和WPF了。

我用官方提供的工具测试了一下旺财C# .NET代码生成器,截图如下:

结果DotNet.Utilities还有近9%需要调整适配.NET core.

原文地址:https://blogs.msdn.microsoft.com/dotnet/2018/08/08/are-your-windows-forms-and-wpf-applications-ready-for-net-core-3-0/?utm_source=vs_developer_news&utm_medium=referral

我一直很喜欢写程序,你呢?

我是1999年上大学的时候才接触计算机,那时候上网还叫“冲浪”。第一次去学校的机房,视觉、身心被震撼到,深信计算机的未来很美好,于是基本来放弃了本专业(电气工程及自动化),大部分时间都用在了计算机方面的学习,最初对计算机硬件及网络感兴趣,本来打算在盯着这个领域发展的,还因此去读了MCSE,CCNA。但是后来学了C语言,学了SQL,考了MCDBA,就发现还是喜欢编程,从硬变软了。 

记得当初C语言考了90多分吧,算是高分。当时流行考计算机等级考试,我是考了C语言二级之后,又去考了QBasic,后来学什么网页三剑客,做网页,学html javascript,学SQL,还有flash的Action Script写东西。大三学汇编(必修课),大四的时候把计算机等级考试的四级也过了,这个4级对计算机系不算什么,但对我们学院,我就记得我们那届全院就我一个过了。 

2003年毕了业之后呢,虽然也做网络工程师的硬件、网络方面的工作,但后面还是写网页比较多,当时用的是Asp,使用vb script语言写的。

2004年的时候跳槽,获得Web Developer的职位,主要是内部OA开发,基于Asp+MSSQL,2005年还去研究一个类似于java的语言Coldfusion,当时还索性把他的coldfusion.cn域名注册了,等到现在也没见到Adobe来收购。同期开始接触ERP,开始熟练使用Access+sql+VBA。 

2005年下半年换工作,还是以开发为主,不仅有Web开发,也开始做BaaN的4GL开发。大概2008年开始,从VS2005升级到VS2008,开始转向C# .NET,就这样一路走到今天。 

虽然近几年很多日常工作是实施上线、技术支持、项目管理方面的,但是业余时间我还是一如既往的热爱着编程,从企业软件到电子商务,再到移动互联网开发,一直不停的坚持着。

我觉得喜欢写程序的一个原因是:太懒!发现周围的一切效率低下,就希望通过写程序来解决。在解决实际问题的同时,也一直努力提高开发效率,节约时间,让生命少一些加班,多一些色彩和可能。

但事实上绝大多数开发团队、开发成员的开发效率普遍低下,大部分时间并非用于关键的开发,而是浪费在重复工作等毫无意义的事情上。于是3年前,我开始将我自己的想法、结合几位老师(吉日嘎拉等)的经验,积累出一套经受住实战考验的开发平台和开发辅助工具:旺财C# .NET代码生成器,近日拿到了软件著作权,终算有所小成。

2016年开始,我将代码生成器扩展支持当下国内最流行的C# .NET开源CMS:DTcms,在淘宝开店并销售,积累了几十位付费用户,同时积累了一批有相同理念和价值观的程序员、软件老板朋友。

因为互联网领域Java比.NET更受欢迎,我会因此去关注、学习一些Java基础,也会关心一下Python等大数据领域的流行语言,但.NET一直是我的最爱,我觉得我会一直喜欢下去。