随笔分类 - .NET 软件开发
应用软件开发
摘要:Solutions Design 公司于2016年5月发布了LLBL Gen Pro 5.0,这个新版本的发布出乎于我的意料。我的猜想是从4.2升级到4.5,再升级5.x版本,主版本号的变更会给原有客户带来成本上的压力。299欧元的售价对于中小创业公司或大公司并不算便宜,在官网上查了一下最新的报价,如下表所示: Number of licenses Pric...
阅读全文
摘要:Entity Framework 5引入了表值函数(Table-Valued Functions TVFs)。表值函数的返回类型是一个Table类型,可用在SQL查询语句中。最简单的表值函数,读取客户表的记录,参考如下代码:CREATE FUNCTION GetCustomersreturn tableASreturn ( SELECT * FROM Customer) ;此外,表值函数还可以指定要返回的表的列名和函数参数,请参考下面的代码例子:CREATE FUNCTION GetCustomer(@customerNo nvarchar(50))returns table AS...
阅读全文
摘要:序列 SequenceSQL Server 现在将序列当成一个对象来实现,创建一个序列的例子语法如下:CREATE SEQUENCE DemoSequenceSTART WITH 1INCREMENT BY 1;使用序列的方法如下所表达的:SELECT VALUE FOR DemoSequence序列与以前的种子列(identity)的区别很明显,种子列只限于当前列,而序列是一个对象层面的实现,则可以在多个表之间共享。这一点特点在管理软件序列号生成方面,是个不错的开始。和种子列相似,序列也可以重置,例子如下ALTER SEQUENCE Samples.IDLabelRESTART WITH 1
阅读全文
摘要:最近找工作面试,问到一些过去的工作和项目经验。我把公司用到的ORM框架(LLBL Gen)拿出来谈一谈,说一下他的优势,对方却一直追问ORM的好处,性能方面的问题,让我有时候都不知道如何回答,产生了不小的压力。 坦白来说,自学生时代(2004)就对NHibernate的大名敬仰已久,也完整的学习过它的映射文件写法,数据读取方法,当时对复杂的Xml映射配置文件了熟于胸。那时,微软的Applicat...
阅读全文
摘要:做数据库开发,如果要用ORM,LLBL Gen是一款优秀的框架和工具,目前最新版本是4.0。同时也推出了Lite免费版本,与Visual Studio的Express版本一样, 免费,但是它仅仅只支持10个实体,可满足学习的需要,做项目用则不行。 借助于MSIL知识和工具.NET Reflector,我可以直接对.NET程序集进行编辑,去掉许可证授权验证窗口,转化为可用的软件。 请参考下面...
阅读全文
摘要:一、基础技术选型C# .NET 3.5/4.0 这两个版本的.NET已经相当方便(Linq, Lambda,Parallel),语法简洁,配合WCF和WF两项技术,可以满足快速开发,维护方便的目标。Win Form 因ERP项目涉及大量的表单(Entry),查询(Enquiry),报表(Report...
阅读全文
摘要:SQL Server Profiler用来跟踪应用程序发送到SQL Server中的SQL语句,用于检测性能,查找问题。Entity Framework 也有它的跟踪工具EFProf,用于跟踪Entity Framework发送到SQL Server中的SQL语句。 首先在代码中添加对程序集HibernatingRhinos.Profiler.Appender的引用,并添加如下方法 Hiber...
阅读全文
摘要:Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项。简洁的语法与.NET Framework 结合,广泛应用于ASP.NET MVC 项目。Razor Pad是一个编辑Razor脚本的工具,脱离于ASP.NET 和Visual Studio。 微软已经有一套模板引擎T4,在设计ASP.NET MVC 3时又设计一套模板引擎Razor,对开发者而言是多一...
阅读全文
摘要:使用Visual Studio 2012有一段时间了,并不是追赶潮流,而是被逼迫无可奈何。客户要求的ASP.NET MVC 4的项目,要用.NET 4.5来运行。经过一段时间的摸索,得到一点经验和体会。C#之父曾说,抗拒变化是人类的天性。Visual Studio 2012仅仅是在界面上变化就很让人感叹,也只有这样的大公司才有精力和时间去做这样的变更。微软有意推广一项技术,会在他最得意的产品中应用...
阅读全文
摘要:前一篇文章介绍了应用LLBL Gen生成Entity Framework所需要的类型定义,用一行代码完成数据资料的读取, 《LLBL Gen + Entity Framework 程序设计入门》。如果已经对Entity Framework产生兴趣,则可以借助于这一篇,来学习Entity Framework如何对资料库进行操作。 连接字符串的写法 Database Connection Str...
阅读全文
摘要:Entity Framework推出有好几年,除了微软的Visual Studio可以做实体框架开发外,第三方的开发工具如LLBL Gen, Devart Entity Developer也可以用来做设计开发。 设计数据库表Configuration,它的SQL定义如下 IF OBJECT_ID ('dbo.Configuration') IS NOT NULL DROP TABLE ...
阅读全文
摘要:Visual Studio提供的Dotfuscator保护程序,可以对用户代码中包含的字符串进行加密。比如下面的例子,为了找到这个程序的注册算法,用.NET Reflector加载程序集后,发现代码中的字符串,都变成这种形式的:Assembly executingAssembly = Assembly.GetExecutingAssembly();ArrayList list = new Arra...
阅读全文
摘要:这个问题困扰了很久, 一直没有解决。这位博友的办法还是不行:http://www.cnblogs.com/jxyxhz/archive/2010/03/12/1683967.html关于asp.net2.0在iis下的注册问题,因为我的win7是后装的iis,而.framework2.0则是跟着vs2005一起早就装好的,这个时候需要手动注册一下.framework2.0,方法如下:在xp下,在&...
阅读全文
摘要:这项技术被我鼓吹了很久,今天终于有机会拿出来展示一下。 为什么要进行扩展呢?扩展的目的是为了和自己现有的系统整合在一起。比如现有系统已经很复杂,能处理很多业务,设计系统的开发人员没有充分考虑到技术的变更,当一项新技术推出以后,为了能把新技术应用到旧有的系统中,我们需要对新技术做一些扩展,以方便应用到我们的现有系统中。 追随新技术改系统是比较笨的方法。以例子为证,一开始,系统用Remoting作为通...
阅读全文
摘要:微软的Reporting Services逐渐被大众熟悉并接受。以前做过Reporting Services的项目,但是总结的不多。最近看到越多越多的报表项目是用Reporting Services来做,走出去看看才知道别人在做什么。 今天要涉及到的主题是Reporting Services Extension,报表扩展。其实我是要搭建一个报表设计,开发的工具箱。在以前的一篇文章中,提到过用Rep...
阅读全文
摘要:自SQL Server 2005发布之后,我们开发报表项目又多了一种选择:Reporting Services。 因为工作的原因,较早就接触到使用Reporting Services技术开发报表项目,它可以在SQL Server 2005/2008中使用。SQL Server 2000也有Reporting Services,使用的不多。即使没有购买SQL Server 2005的License,...
阅读全文
摘要:公司一直在招聘程序员,效果一直都很不理想。我是做技术的,我以我的体会来说明一下。 1 公司是大公司,整天几百个职位挂在中国人才热线,卓博人才网上。 人家看了也怕,这样的公司,是不是在做广告,或是不是真招聘人。还有的会想到,这样人员的流动率也太高了吧,还是大公司呢。 我也找过工作,很辛苦的找过工作,我一看到人家几十上百个的职位的招聘信息,我通常都不会去。如果你在深圳,肯定听说过富士康(Foxconn...
阅读全文
摘要:昨天读到.NET中关于配置信息的读写,今天有空就动手写几个例子。光看不练,印象不深刻, 直接拷贝书中的例子也没有多大的效果。联系到最近项目中的实际要求,总结一下遇到的问题。 先看代码的文件结构图,下面会有详细的讲解。 1 .NET的标准方法(1.0) 配置信息直接存放到Web.config文件中 <appSettings> <add key="DefaultDaysLate"...
阅读全文
摘要:这本书不错,看了几遍,每次都有新的收获和体会。下面的几点体会,错误和不当之处欢迎批评指正。 1 使用Page基类 public class BaseUIPage : System.Web.UI.Page { public BaseUIPage() { } } 使用页面基类,可减少代码重复。比如,重写错误处理方法,共用基类属性。 我举两个例子 1)重写OnError方法,当出现错误时,重定向到错误...
阅读全文