熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

你的應用程序為.NET做好准備了嗎?

2013-11-23 18:40:48  來源: Java核心技術 

  從底層開始重新設計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做好准備

From:http://tw.wingwit.com/Article/program/Java/hx/201311/25558.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.