C#需要.NET运行库,在几年内大多数客户机-- 特别是大多数家用PC-- 就可以安装.NET了。而且,安装C#应用程序在方式上类似于安装.NET可重新分布的组件。因此,企业环境中会有许多C#应用程序。实际上,C#为希望建立健全的n层客户机/服务器应用程序的公司提供了一个绝佳的机会。
C#与ADO.NET合并后,就可以快速而经常地访问数据库了,例如SQL Server和Oracle数据库。返回的数据集很容易通过ADO.NET对象模型或LINQ来处理,并自动显示为XML,一般通过办公室内联网来传输。
一旦为新项目建立了数据库模式,C#就会为执行一层数据访问对象提供一个极好的媒介,每个对象都能提供对不同的数据库表的插入、更新和删除访问。
因为这是第一个基于组件的C语言,所以C#非常适合于执行业务对象层。它为组件之间的通信封装了杂乱的信息,让开发人员把注意力集中如何在把数据访问对象组合在一起,在方法中精确地强制执行公司的业务规则。而且使用特性,C#业务对象可以配备方法级的安全检查、对象池和由COM+服务提供的JIT活动。另外,.NET附带的实用程序允许新的.NET业务对象与原来的COM组件交互。
要使用C#创建企业应用程序,可以为数据访问对象创建一个Class Library项目,为业务对象创建另一个Class Library项目。在开发时,可以使用Console项目测试类上的方法。喜欢编程的人可以建立能自动从批处理文件中执行的Console项目,测试工作代码是否中断。
注意,C#和.NET都会影响物理封装可重用类的方式。过去,许多开发人员把许多类放在一个物理组件中,因为这样安排会使部署容易得多;如果有版本冲突问题,就知道在何处进行检查。因为部署.NET企业组件仅是把文件复制到目录中,所以现在开发人员就可以把他们的类封装到逻辑性更高的离散组件中,而不会遇到DLL Hell。
最后,用C#编写的ASP.NET页面构成了用户界面的绝妙媒介。ASP.NET页面是编译过的,所以执行得比较快。它们可以在Visual Studio 2008 IDE中调试,所以更加健壮。它们支持所有的语言特性,例如早期绑定、继承和模块化,所以用C#编写的ASP.NET页面是很整洁的,很容易维护。
经验丰富的开发人员对大做广告的新技术和语言都持非常怀疑的态度,不愿意利用新平台,这仅仅是因为他们不愿意。如果读者是一位IT部门的企业开发人员,或者通过World Wide Web提供应用程序服务,即使一些比较奇异的特性如XML Web服务和服务器端控件不算在内,也可以确保C#和.NET至少提供了四个优点:
● 组件冲突将很少见,部署工作将更容易,因为同一组件的不同版本可以在同一台机器上并行运行,而不会发生冲突。
● ASP.NET代码不再难懂。
● 可以利用.NET基类中的许多功能。
● 对于需要Windows窗体用户界面的应用程序来说,利用C#可以很容易编写这类应用程序。
在某种程度上,以前Windows窗体并未受到重视,因为没有Web窗体和基于Internet的应用程序。但如果用户缺乏Javascript、ASP或相关技术的专业知识,Windows窗体仍是方便而快速地创建用户界面的一种可行选择。记住管理好代码,使用户界面的逻辑与业务逻辑和数据访问代码分隔开来,这样才能在将来的某一刻把应用程序迁移到浏览器上。另外,Windows窗体还为家用应用程序和一些小公司长期保留了重要的用户界面。Windows窗体的新智能客户特性(很容易以在线和离线方式工作)将能开发出新的、更好的应用程序。