簡體   English   中英

在 ASP.NET 中使用 COM,還是使用標准的 DLL?

[英]Using COM in ASP.NET, or use a standard DLL instead?

We are moving a classic ASP application with VB6 COM objects, over to the .NET world, and we are puzzled about how to migrate our COM objects in as straightforward a manner as possible. 我找到了很多“操作方法”文章,但沒有多少“為什么”文章的方式。 我們最好將 COM 對象重建為查詢數據庫的標准 DLL(這是一個 DB 密集型應用程序),還是應該將它們重建為 ZD7EFA19FBE7D3972FD5ADB6024223D7 中的新 COM 對象? 每種方法的優點和缺點是什么? 我們還應該考慮另一種方法嗎? 我們在 .NET 還不是一家非常強大的商店,因此歡迎提出任何建議。

提前謝謝,邁克

這是一個很難的問題,因為有很多變數。 讓我們假設,對於這個線程,您有相當數量的關注點分離和一組具有良好性能的 COM DLL。

Assuming the above and taking your post into account (tons of code in the COM components), the path i would normally look at is rewriting the UI in .NET first and use .NET wrappers to call the COM components. 這可以通過引用 COM 組件輕松完成。 如果您在打包后遇到性能問題,則遷移到某些本機 DLL 方法可能會有所幫助,但設置代碼以調用本機方法是一個更復雜的方向,因此我不會先走這條路。

然后,您可能有兩個方向。 專注於用戶故事(可用性)或專注於遷移單個庫(COM DLL >> 一次組裝一個)。 我更喜歡故事的方向,盡管你最終可能會得到死代碼。 我不會考慮遷移,而是一次重寫一個故事,因此您專注於在 .NET 中正確執行此操作。 遷移最終會產生大量用 .NET 編寫的 COM 代碼,這很討厭。

我會考慮至少找一位 .NET 專家,無論是作為員工還是顧問,這樣你就不會讓舊習慣泄漏到糟糕的代碼中。 聘請該專家主要是為了讓您走在正確的道路上,而不是作為另一組編碼人員。 不是說這個人不會編碼,而是確保你不要過度利用這個人作為一個溫暖的身體,因為他的主要工作,在開發過程中,是讓你不要在自己的腳上開槍。 如果您能盡早找到此人,請考慮聘請具有一定架構經驗的人來幫助設計 .NET 的應用程序。 前期試驗比后期重構成本更高。

不要嘗試遷移計划。 他們不工作。 您不僅在進行開發平台的轉變,而且還在進行徹底的范式轉變。 如果您嘗試使用任何自動化工具來遷移代碼,您最終會得到一個劣質的應用程序。

另一件事。 如果您是 VB 商店,請考慮轉移到 C#。 這聽起來適得其反,因為存在學習曲線,但堅持使用 VB 意味着您將嘗試在 VB.NET 中編寫 VB6。 最終結果是糟糕的代碼庫難以重構。

我的經驗建議您應該將 COM 對象重新寫入 DLL,因為在轉換過程中發生故障的風險很低,而且所花費的時間比在 ZD7EFA19FBE7D3972FD5ADB602422 中重新寫入要短很多。

遷移到 .NET 只能手動完成,但是一旦在 COM DLL 中,您可以逐個完成此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM