总结一下ERP .NET程序员必须掌握的.NET技术,掌握了这些技术工作起来才得心应手
2011-12-31 10:20
423 查看
从毕业做.NET到现在,有好几年了,自认为只能是达到熟练的水平,谈不上精通。所以,总结一下,自己到底熟练掌握了哪些.NET方面的开发技术,以此对照,看看还有哪些不足,欢迎补充。
1.NETFramework常见的API要熟练掌握。有些API可能需要多个类型配合使用,也有必要掌握。
这个例子是.NET的深拷贝(deepcopy)的实现,类似于这样的例子,还有很多。这些API的组合应用是需要掌握的。经过积累后,通常都会有自己的一个Utility类型库。
2LinqtoObject。虽然LinqtoSQL已经被抛弃和遗忘,但是LinqtoObject还真是一项很重要的技术。如果没有这项技术,数据的查找和操作的代码会被foreach充满,这样不容易维护,而且有很多代码都是routine代码,可以省略的。
同时,与Linq搭配的技术Lambda技术,可以简化很多代码,这也需要掌握,上面的例子用Lambda技术改写一下
曾经有个非常流行的考试题目,考察委托的三种写法,举例如下所示
3.NET4引入了新的并行编程库。这项技术不同于多线程技术,它是适应多核时代的需要。来看下面的例子程序
有了新面的Lambda表达式基础,这个例子也不难读懂。这是用并行库求PI的值。
.NET4还引入了动态语言,如下的例子所示,Python的例子
如果要改善.NET程序的性能,可以考虑使用.NET并行库。如果你在寻找脚本语言,可以寄宿到.NET中方便调用,这里的Python应该是一个很好的开始。对于.NET框架直接内置的技术,必定会有大量的第三方工具,产品来对它做Enhancement或Extension,你可以找到很称手的工具,为你的项目增加灵活性和改善性能。
4ORM开发技术。可以选择NHibernate,也可以选择EntityFramework。ORM技术可以让你的代码专注于业务逻辑,大大简化数据访问代码的编码与调试。此外,ORM技术支持界面与逻辑分离,强类型的数据绑定,这些好处,都可以给你的项目增加灵活性。比如保存客户的代码,用ORM技术写,是这样的
可不能小看了这几句,首先它是用代码生成器生成的,其次,对于增改数据库字段,这里不用作任何的修改,再次,界面的变动和业务逻辑的变动,也不会影响到这里。就这几项好处,可以节约大量的时间,让你专注于业务逻辑。
5分布式的通讯技术。.NETRemoting和WCF,至少要掌握一项才行。
6界面组件包。.NET框架自带的界面控件虽然简单好用,但不够强大。所以,推荐你选购一套流行的界面控件,为你的项目增加可读性。虽然都是说界面不重要,逻辑重要,但是我们心里也明白,界面看起来惨不忍睹,再好的逻辑和架构也也不会被客户接受。界面要做到简单,实用,说起起容易,做起来可相当不容易。这里可以选择的控件比较多,Infragistics,Syncfusion,ComponentOne,都是很著名的控件供应商。
1.NETFramework常见的API要熟练掌握。有些API可能需要多个类型配合使用,也有必要掌握。
IEntity2clonedEntity=null; BinaryFormatterformatter=newBinaryFormatter(); using(MemoryStreammemStream=newMemoryStream()) { formatter.Serialize(memStream,sourceEntity); memStream.Seek(0,SeekOrigin.Begin); clonedEntity=(IEntity2)formatter.Deserialize(memStream); }
这个例子是.NET的深拷贝(deepcopy)的实现,类似于这样的例子,还有很多。这些API的组合应用是需要掌握的。经过积累后,通常都会有自己的一个Utility类型库。
2LinqtoObject。虽然LinqtoSQL已经被抛弃和遗忘,但是LinqtoObject还真是一项很重要的技术。如果没有这项技术,数据的查找和操作的代码会被foreach充满,这样不容易维护,而且有很多代码都是routine代码,可以省略的。
string[]names={"Tom","Dick","Harry","Mary","Jay"};
IEnumerable<string>query=
fromninnames
wheren.Contains("a")//Filterelements
orderbyn.Length//Sortelements
selectn.ToUpper();//Projecteachelement
foreach(stringnameinquery)
Console.Write(name+"/");
同时,与Linq搭配的技术Lambda技术,可以简化很多代码,这也需要掌握,上面的例子用Lambda技术改写一下
string[]names={"Tom","Dick","Harry","Mary","Jay"};
IEnumerable<string>query=names
.Where(n=>n.Contains("a"))
.OrderBy(n=>n.Length)
.Select(n=>n.ToUpper());
foreach(stringnameinquery)
Console.Write(name+"|");
曾经有个非常流行的考试题目,考察委托的三种写法,举例如下所示
List<int>list=newList<int>();
list.AddRange(newint[]{1,5,10,20,33});
//使用传统委托语法调用FindAll
Predicate<int>callback=newPredicate<int>(IsEvenNumber);
List<int>evenNumbers=list.FindAll(callback);
//使用匿名方法
List<int>evenNumbers=list.FindAll(
delegate(inti)
{
return(i%2)==0;
});
//使用Lambda表达式
List<int>evenNumbers=list.FindAll(i=>(i%2)==0);
(代码来自于LINQ之路3:C#3.0的语言功能(下) )
3.NET4引入了新的并行编程库。这项技术不同于多线程技术,它是适应多核时代的需要。来看下面的例子程序
staticdoubleParallelPi()
{
doublesum=0.0;
doublestep=1.0/(double)num_steps;
objectmonitor=newobject();
Parallel.For(0,num_steps,()=>0.0,(i,state,local)=>
{
doublex=(i+0.5)*step;
returnlocal+4.0/(1.0+x*x);
},local=>{lock(monitor)sum+=local;});
returnstep*sum;
}
有了新面的Lambda表达式基础,这个例子也不难读懂。这是用并行库求PI的值。
.NET4还引入了动态语言,如下的例子所示,Python的例子
ScriptRuntimepy=Python.CreateRuntime();
//Dynamicfeatureonlyworksonobjectstypedas'dynamic'
dynamichelloworld=py.UseFile("helloworld.py");
Console.WriteLine("helloworld.pyloaded!");
for(inti=0;i<1000;i++)
{
Console.WriteLine(helloworld.welcome("Employee#{0}"),i);
}
//Python的代码
defwelcome(name):
return"Hello'"+name+"'fromIronPython"
如果要改善.NET程序的性能,可以考虑使用.NET并行库。如果你在寻找脚本语言,可以寄宿到.NET中方便调用,这里的Python应该是一个很好的开始。对于.NET框架直接内置的技术,必定会有大量的第三方工具,产品来对它做Enhancement或Extension,你可以找到很称手的工具,为你的项目增加灵活性和改善性能。
4ORM开发技术。可以选择NHibernate,也可以选择EntityFramework。ORM技术可以让你的代码专注于业务逻辑,大大简化数据访问代码的编码与调试。此外,ORM技术支持界面与逻辑分离,强类型的数据绑定,这些好处,都可以给你的项目增加灵活性。比如保存客户的代码,用ORM技术写,是这样的
using(DataAccessAdapterBaseadapter=GetDataAccessAdapter())
{
try
{
adapter.StartTransaction(IsolationLevel.ReadCommitted,"SaveCustomer");
adapter.SaveEntity(Customer,true,false);
adapter.Commit();
}
catch
{
adapter.Rollback();
throw;
}
}
可不能小看了这几句,首先它是用代码生成器生成的,其次,对于增改数据库字段,这里不用作任何的修改,再次,界面的变动和业务逻辑的变动,也不会影响到这里。就这几项好处,可以节约大量的时间,让你专注于业务逻辑。
5分布式的通讯技术。.NETRemoting和WCF,至少要掌握一项才行。
6界面组件包。.NET框架自带的界面控件虽然简单好用,但不够强大。所以,推荐你选购一套流行的界面控件,为你的项目增加可读性。虽然都是说界面不重要,逻辑重要,但是我们心里也明白,界面看起来惨不忍睹,再好的逻辑和架构也也不会被客户接受。界面要做到简单,实用,说起起容易,做起来可相当不容易。这里可以选择的控件比较多,Infragistics,Syncfusion,ComponentOne,都是很著名的控件供应商。
相关文章推荐
- 总结一下ERP .NET程序员必须掌握的.NET技术,掌握了这些技术工作起来才得心应手
- 【转】总结一下ERP .NET程序员必须掌握的.NET技术,掌握了这些技术工作起来才得心应手
- 总结一下ERP .NET程序员必须掌握的.NET技术,掌握了这些技术工作起来才得心应手
- 总结一下ERP .NET程序员必须掌握的.NET技术,掌握了这些技术工作起来才得心应手
- 总结一下ERP .NET程序员必须掌握的.NET技术
- 总结必须学习的10项.NET技术
- .net 开发人员当前必须掌握的技术
- 在深圳,所谓的.Net开发牛人是掌握这些技术的,视微软技术如粪土啊
- oracle ERP工作技术总结文档 2013-12-30
- 黑马程序员---一DAY17总结--java中你必须掌握的集合框架技术
- 总结必须学习的10项.NET技术
- 总结必须学习的10项.NET技术
- 总结必须学习的10项.NET技术
- .NET程序员掌握的.NET技术
- 黑马程序员-----java中你必须掌握的线程技术一DAY15总结
- 总结必须学习的10项.NET技术
- 总结必须学习的10项.NET技术
- APP定制开发,这些技术必须要掌握
- 总结必须学习的10项.NET技术
- .Net课堂:总结必须学习的10项.NET技术[转]