從底層開始重新設計
NET在XML集成
錯誤處理
組件加工以及可重用框架等方面取得了明顯的進步
它在Web開發方面的承諾也非常清晰
開發速度更快
自定義代碼更少而穩定性更強
一旦你決定將當前的應用程序移植到新的平台上
你必須確定你的應用程序是否為
NET做好了准備
本文將幫助你判斷你的
NET性能
恰當的語言 NET框架依賴與多種語言兼容的通用語言的運行(CLR)
理論上
通過使用Java COM或Web服務
能夠將基於Java的應用程序移植到
NET上而不需要用C#
C++或者Visual Basic(VB)重寫代碼
實際上
實現這樣的異構應用程序通常是一件非常復雜的事情
而且在移植的過程中改變語言將影響時間
毫無疑問語言的移植將導致結構上的改變
目前使用VB
C#
或者C++編碼的應用程序邏輯
提供了向
NET移植的最簡單的方式
然而
不是代碼簡單的重新編譯
而是通過Java COM為VB
C#
或者C++改寫為
NET框架庫
或者采用其他混合語言的實現
提供了最可能成功的機會
COM對象支持的應用層 如果你的系統是一個三層結構的系統
你的應用很可能依賴COM對象來封裝應用程序邏輯
NET框架支持COM對象
但是由於在
NET框架下COM對象的互操作性能下降
因此將COM對象移植到
NET框架管理的對象時需要慎重考慮
值得注意的是
Net早期綁定協議的性能提高將有助於在當前的ASP/COM實現上增加
NET/COM
最起碼
對於當前的COM實現你可以選擇立即將其移植為
NET框架管理的對象
或者仍然作為COM層保留一段時間
適當的使用存儲過程 典型地
數據層的有力分割依賴於存儲過程的封裝數據處理邏輯
微軟已經認識到使用存儲過程是一種最好的編程習慣
並且可以依靠它來優化數據庫性能
而且
存儲過程提高了程序的可維護性
可以使SQL和
表(Table)
發生改變而不影響應用程序或者不改變代碼的表示方法
移植到
NET對於現存的存儲過程不要求任何改變
對於執行和處理從存儲過程中獲得的數據
應用程序將需要移植為
NET框架的ADO
NET庫方法或者需要使用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)模式以限制請求的狀態信息
結構化的錯誤處理設計 VB
NET所帶來的新的結構化的改變是引入了Try
Catch錯誤處理機制
這種機制對於Java程序員來說是非常熟悉的
VB
NET仍然支持On Error及相關的聲明
但是最好使用新的
結構化的錯誤處理機制
為了利用這種新的錯誤處理性能
必須詳細了解當前的以及准備開發的應用程序的錯誤處理過程
現在可以開始移植了 是否有一個好的應用代碼庫意味著成功的無縫移植和陷入不可預見的困境之間的差別
為了能夠順利地移植到
NET
檢查你的系統並接受好的編程習慣
你將幸運地或者預知地發現表示層是用單一的語言
如JavaScript編碼的
應用層是用VB
C#
或者C++編碼的
理想的情況下
表示層幾乎不需要自己的邏輯而且不需要嵌入SQL
就能夠組織得很好
而應用層通過COM對象封裝了編碼的商業規則
在數據庫這一級
理想的情況是應用程序使用COM調用存儲過程
NET承諾了許多直接的改進
和微軟的許多應用程序一樣
新的平台只會變得更好
現在檢查你的系統
為不可避免地調用
NET提供的新功能做好准備
即使你的系統現在不適合進行移植
NET也將提供足夠的有利條件來支持任何必要的修改
最起碼
移植到新的平台上將為你提供修復應用程序中長期困擾你的問題的機會
所以
抓住時機
鑽研代碼
為
NET做好准備
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25558.html