c#

位置:IT落伍者 >> c# >> 浏览文章

你的应用程序为.NET做好准备了吗?


发布日期:2023年11月10日
 
你的应用程序为.NET做好准备了吗?

从底层开始重新设计NET在XML集成错误处理组件加工以及可重用框架等方面取得了明显的进步它在Web开发方面的承诺也非常清晰开发速度更快自定义代码更少而稳定性更强一旦你决定将当前的应用程序移植到新的平台上你必须确定你的应用程序是否为NET做好了准备本文将帮助你判断你的NET性能

恰当的语言

NET框架依赖与多种语言兼容的通用语言的运行(CLR)理论上通过使用Java COM或Web服务能够将基于Java的应用程序移植到NET上而不需要用C#C++或者Visual Basic(VB)重写代码实际上实现这样的异构应用程序通常是一件非常复杂的事情而且在移植的过程中改变语言将影响时间毫无疑问语言的移植将导致结构上的改变

目前使用VBC#或者C++编码的应用程序逻辑提供了向NET移植的最简单的方式然而不是代码简单的重新编译而是通过Java COM为VBC#或者C++改写为NET框架库或者采用其他混合语言的实现提供了最可能成功的机会

COM对象支持的应用层

如果你的系统是一个三层结构的系统你的应用很可能依赖COM对象来封装应用程序逻辑NET框架支持COM对象但是由于在NET框架下COM对象的互操作性能下降因此将COM对象移植到NET框架管理的对象时需要慎重考虑值得注意的是Net早期绑定协议的性能提高将有助于在当前的ASP/COM实现上增加NET/COM

最起码对于当前的COM实现你可以选择立即将其移植为NET框架管理的对象或者仍然作为COM层保留一段时间

适当的使用存储过程

典型地数据层的有力分割依赖于存储过程的封装数据处理逻辑微软已经认识到使用存储过程是一种最好的编程习惯并且可以依靠它来优化数据库性能而且存储过程提高了程序的可维护性可以使SQL和表(Table)发生改变而不影响应用程序或者不改变代码的表示方法

移植到NET对于现存的存储过程不要求任何改变对于执行和处理从存储过程中获得的数据应用程序将需要移植为NET框架的ADONET库方法或者需要使用COM对象如果你已经使用COM对象来封装存储过程调用那么从本质上来说除了要在COM集成方面做一些工作外不需要做任何其它的移植工作

清楚地分离HTML和ASP

在应用程序中一个常用的快捷方式是在ASP程序中使用嵌入的HTML来提供一个接口由于嵌入的HTML数据流和提供的代码结构很难理解这种编程习惯将不可避免地引起底层的维护问题NET强调要有好的编程习惯不允许使用这些HTML提供的接口而用自定义Web控件封装复杂的HTML只给应用程序提供属性和事件

分散而实用的ASP文件

在检查ASP和HTML代码时需要检查嵌套的头文件(include files)如果你的应用程序在很大程度上依赖于嵌套的头文件则必须让程序员改变这种程序的依赖性而且如果头文件中的结构没有规范化在将你的应用程序加入到全局的应用中时会出现与全局的结构命名和功能重复的情况

理想情况下将所有实用类包含在不同的ASP文件中(或者比较好的是作为COM对象)相似地全局变量应该包含在一个单独的ASP文件中而不是分散在应用程序的各个部分

慎用会话机制

除了服务控制之外NET为了提高Web应用的可扩展性还提供了新的性能其中之一就是分布式会话模型此模型使得一个Web farm中的多个应用服务器的会话数据可以使用虽然分布式会话机制要求使用SQL服务器来存储会话状态但是不需要对代码库进行专门的修改应用程序的性能可能会受到影响这取决于状态数据的数量和类型

在不降低性能的情况下为了利用这种性能应该仔细评估当前会话系统的实现尤其是需要维护的状态信息的数量类型和结构在移植的过程中严格控制会话系统的内容使用应用程序亲合(affinity)技术和失效切换(failover)模式以限制请求的状态信息

结构化的错误处理设计

VBNET所带来的新的结构化的改变是引入了TryCatch错误处理机制这种机制对于Java程序员来说是非常熟悉的VBNET仍然支持On Error及相关的声明但是最好使用新的结构化的错误处理机制为了利用这种新的错误处理性能必须详细了解当前的以及准备开发的应用程序的错误处理过程

现在可以开始移植了

是否有一个好的应用代码库意味着成功的无缝移植和陷入不可预见的困境之间的差别为了能够顺利地移植到NET检查你的系统并接受好的编程习惯你将幸运地或者预知地发现表示层是用单一的语言如JavaScript编码的应用层是用VBC#或者C++编码的理想的情况下表示层几乎不需要自己的逻辑而且不需要嵌入SQL就能够组织得很好而应用层通过COM对象封装了编码的商业规则在数据库这一级理想的情况是应用程序使用COM调用存储过程

NET承诺了许多直接的改进和微软的许多应用程序一样新的平台只会变得更好现在检查你的系统为不可避免地调用NET提供的新功能做好准备即使你的系统现在不适合进行移植NET也将提供足够的有利条件来支持任何必要的修改最起码移植到新的平台上将为你提供修复应用程序中长期困扰你的问题的机会所以抓住时机钻研代码NET做好准备

上一篇:剖析.Net下的数据访问层技术(1)

下一篇:从 .NET 应用程序访问 Microsoft Office 数据