随笔分类 - 02.FrameWork/C#
摘要: Oracle数据库环境中,如何使用Entity Framework 6.x的Code First模式进行开发及数据库迁移
阅读全文
摘要: Silverlight调用本机exe程序
阅读全文
摘要:有二年没关注EF,今天无意试了下发现跟主流的Hibernate等ORM框架越来越接近了,先看下Entity类的定义:using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;us...
阅读全文
摘要:java与c#都支持反射,但是从网络上搜索两大阵营对于反射的态度,基本上.net开发人员都建议慎用反射,因为会有性能开销;反到是java阵营里好象在大量肆无忌惮的使用反射。于是写了下面的测试代码:c#版的:二个project,如上图,Model项目中就只有一个实体类Person,代码如下: 1 using System; 2 3 namespace Model 4 { 5 public class Person 6 { 7 private int Add(object i,object j) 8 { 9 return (...
阅读全文
摘要:很早以前看过一句话:“XML就象空气”,在企业应用开发中XML是一个重要的数据交换标准。而XSD则可以用来校验XML的数据格式是否正确。一个典型的XSD文件如下: 1 2 3 4 5 6 运单 7 8 9 10 11 12 13 14 15 ...
阅读全文
摘要:不知道大家有没有这样的经历:现场实施时测试出一个bug,明明知道某个dll/exe文件只要修改一二行代码即可,但手头没有开发环境,紧急情况下,可以用reflector + reflexil 临时直接修改dll代码,然后重编译,替换原来的文件(当然:代码未混淆的情况下,这个也可以用来搞破解,这不在本文讨论之列)步骤:1、Relector 加载相关的dll后,启用Reflexil界面2、找到需要修改的代码位置,然后参考下图,右击->Replace all with code3、写新的代码然后点击Complete重新编译、OK按钮关闭按钮4、在dll或exe上,右击->Save as 另
阅读全文
摘要:Unity是微软在CodePlex上的一个开源项目,可用于依赖注入、控制反转,类似Spring,下面是使用示例:1.先来定义几个接口、类1 namespace UnityTest2 {3 public interface IRun4 {5 void Run();6 }7 }View Code : IRun1 namespace UnityTest2 {3 public class Pet4 {5 public string Name { set; get; }6 }7 }View Code : Pet 1 usin...
阅读全文
摘要:初步接触MyBatis.Net的朋友,请先移步 MyBatis.Net 学习手记1. 项目中先添加Oracle.ManagedDataAccess.dll程序集引用2. MyBatis.Net 中Providers.config文件修改 1 tips:a) assemblyName类型不知道如何填写的,可通过类似 Assembly.LoadFile(@"D:\soft\ODP.NET_Managed121010\odp.net\managed\common\Oracle.ManagedDataAccess.dll").FullName获得b)name,description
阅读全文
摘要:“ODP.NET Managed”发布已经有一段时间了,近期正好有一个新项目,想尝试用一下,参考园子里的文章:《.NET Oracle Developer的福音——ODP.NET Managed正式推出》到Oracle官网 下载 ODP.NET_Managed121010.zip 大约1.9M,解压后目录结构如下:核心的dll,就是common目录下的Oracle.ManagedDataAccess.dll,不象ODP.NET以前的版本,这次终于不用区分x86/x64版本了,不管是32位还是64位,都是同一个dll。至于manged/x64、managed/x86这二个目录,是用来向.NET
阅读全文
摘要:实际开发中,对于一些耗时较长的操作,我们往往会将其封装成异步方式调用,以加速系统响应或改善用户体验,下面是一个示例:有一个现成的类MyMath,里面有一个Add方法: 1 public class MyMath 2 { 3 4 public int Add(int a, int b) 5 { 6 System.Threading.Thread.Sleep(5000); 7 return a + b; 8 } 9 10 }对Add方法做下封装,对了对比,同时提供“同步调用”与...
阅读全文
摘要:添加wcf服务引用时,vs.net本来就会帮我们在app.config/web.config里生成各种配置,这没啥好研究的,但本文谈到的配置并不是这个。先看下面的图:通常,如果采用.NET的WCF技术来架构SOA风格的应用,我们会把项目做一些基本的分层,如上图:01. contract层:通常定义服务的接口(即服务契约ServiceContract,指明该服务提供了哪些方法可供外部调用)、以及接口方法中传输的Model定义(即:数据契约DataContract,指明方法中的对象参数的Class定义)02. implementation层:即服务接口的实现03. host层:wcf最终需要一个宿
阅读全文
摘要:这是数据库开发中经常遇到的问题,当然,这可以用现成的ORM框架来解决,但有些时候,如果DataSet/DataTable是第三方接口返回的,ORM就不方便了,还得自己处理。反射自然必不可少的,另外考虑到DataTable中的ColumnName通常与Model的PropertyName并不严格对应,可以用Attribute来记录这种映射关系。步骤1:先创建一个DataFieldAttribute类 1 using System; 2 3 namespace Jimmy.ORM 4 { 5 [AttributeUsage(AttributeTargets.Property)] 6 ...
阅读全文
摘要:MyBatis.NET的前身为IBatis,是JAVA版MyBatis在.NET平台上的翻版,相对NHibernate、EntityFramework等重量级ORM框架而言,MyBatis.NET必须由开发人员手动写SQL,相对灵活性更大,更容易保证DB访问的性能,适用开发团队里有SQL熟手的场景。下面是使用步骤:1、到官网http://code.google.com/p/mybatisnet/下载相关dll和文档Doc-DataAccess-1.9.2.zip Doc-DataMapper-1.6.2.zip IBatis.DataAccess.1.9.2.bin.zip IBatis.Da
阅读全文
摘要:一、开源项目 Javascript .NET地址: http://javascriptdotnet.codeplex.com/它是Google Chrome V8引擎在.NET上的封装,功能完善,性能相对较高,推荐使用! (缺点就是asp.net web应用上,好象会报错)示例代码:using Noesis.Javascript;using System;using System.Collections.Generic;namespace JsCSharp{ class Program { static void Main(string[] args) ...
阅读全文
摘要:Pechkin 是GitHub上的一个开源项目,可方便将html转化成pdf文档,使用也很方便,下面是winform项目中的示例代码:using System;using System.Diagnostics;using System.Drawing.Printing;using System.IO;using System.Windows.Forms;using Pechkin;using Pechkin.Synchronized;namespace PdfTest{ public partial class Form1 : Form { public Form1(...
阅读全文
摘要:xsl 可方便的将一种格式的xml,转换成另一种格式的xml,参考下面的代码:using System;using System.IO;using System.Text;using System.Xml;using System.Xml.Xsl;namespace XslLoad{ class Program { static void Main(string[] args) { string xml = @" Empire Burlesque Bob Dylan USA Columbia 10....
阅读全文
摘要:如果一台电脑同时连接多个打印机,而且每个打印机使用的纸张大小各不相同(比如:票据打印钱用的小票专用张,办公打印机用的是A4标准纸),在处理打印类的需求时,如果不用代码干预,用户必须每次打印时,都必须在弹出窗口里,手动选择打印机(还有可能需要设置纸张类型),这样用起来会比较烦。幸好,.Net提供了“二”个很有用的类:PrintDialog(打印机设置对话框)、PageSetupDialog(页面设置对话框) (注:之所以给“二”加引号,是因为"打印机设置"其实已经完全包含了“页面设置”的所有功能,而且“ PageSetupDialog”类在实际使用中发现还有一个容易误导的地方
阅读全文
摘要:通常web技术无法设置本地计算机的默认打印机,包括用代码设置纸张大小,如果业务系统中真遇到这种需求,只能通过其它辅助手段(比如ActiveX)实现。下面这段代码,出自网上被广泛使用的"泥人张打印API"(抱歉未找到原始出处),已经用C#封装了很多关于底层打印的API方法using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;using System.Security;using System.ComponentModel;usin
阅读全文
摘要:默认情况下,即便db中某一列的值是数字,查询出来的DataSet/DataTable里,Column的类型都是String型,所以当用dataTable.DefaultView.Sort ="XXX ASC"排序时,都是按字符串排序处理的,并不是我们想要的结果,下面给出了二种解决办法:using System;using System.Data;namespace DataTableSortSample{ class Program { static void Main(string[] args) { DataTable dt =...
阅读全文
摘要:今天写代码时,需要对一个数组对象中按一定规则合并、去重处理,不想再毫无新意手动写For循环遍历(天天写一样的代码很没劲),于是依旧linq,发现真心方便:using System;using System.Collections.Generic;using System.Linq;namespace LinqTest{ class Program { static void Main() { List<Product> listProduct = new List<Product> { new ...
阅读全文