如何以及為何創(chuàng)建Search .NET版(3)_.Net教程
推薦:ASP.NET網(wǎng)絡(luò)編程中常用到的27個(gè)函數(shù)集1、DateTime 數(shù)字型 以下為引用的內(nèi)容: System.DateTime currentTime=new System.DateTime(); 1.1 取當(dāng)前年月日時(shí)分秒 currentTime=System.DateTime.
構(gòu)建并行解決方案
當(dāng)時(shí)我們遇到的最大挑戰(zhàn)是,我們在開發(fā) Search 2.5 的同時(shí),也在將整個(gè) Search 應(yīng)用程序移植到 .NET 框架的 ASP 技術(shù)。由于要在 PDC 日期之前推出此應(yīng)用程序并將其移植到 .NET,周轉(zhuǎn)時(shí)間緊,因此我們當(dāng)時(shí)決定同時(shí)推出這兩種版本,并將它們同時(shí)上市。很明顯,這是一項(xiàng)艱巨的任務(wù),因?yàn)槲覀儽仨毠芾硇碌陌姹�,了解新�?.NET 框架的所有功能和新的語言隱喻,構(gòu)建具有各種軟件平臺(tái)服務(wù)的服務(wù)器,等等。
關(guān)于我們是如何搞成這個(gè)項(xiàng)目的,還有一段有趣的故事呢。為了確保同時(shí)推出兩種版本(Search 2.5 和 .NET 框架,我們在項(xiàng)目規(guī)劃階段確定了首先把握住哪些組件不變、哪些組件在開發(fā)過程中變化最大以及哪些組件適合于哪種技術(shù)和語言。
我們還及早確定目標(biāo),努力分解此應(yīng)用程序,并按照客戶可能會(huì)采用的方式移植。因?yàn)槲覀?microsoft.com 的人總是認(rèn)真對(duì)待客戶在進(jìn)行技術(shù)決策和研究投資回報(bào)時(shí)面臨的各種問題,所以,我們將此應(yīng)用程序移植過程分解成許多部分,每個(gè)部分都盡可能與客戶可能采取的方法接近。我們希望確保做好每項(xiàng)工作,其中包括最簡單的移植(即,小腳本移植到 Jscript 類)直到最大的時(shí)間和技術(shù)利益投入 – 充分利用 C# 編程語言完全移植到 .NET 框架 (100% 可管理的代碼空間)。
下面是我們在應(yīng)對(duì)這個(gè)挑戰(zhàn)時(shí)所采取的一些步驟:
首先,我們將主要的 ASP 頁面轉(zhuǎn)換為 ASP 。最初,我們是通過 .NET Reflection 技術(shù)調(diào)用小腳本,這樣我們可以在運(yùn)行時(shí)通過查詢類型庫來調(diào)用典型的 COM 對(duì)象。
重要知識(shí):我們從具有 ASP 的編程模型出發(fā)(其中,數(shù)據(jù)、業(yè)務(wù)邏輯以及表示全都被混合在一起),然后采用 ASP 的一種完全面向?qū)ο蟮姆椒�,最后是�?shù)據(jù)分離、編程以及 UI。
其次,處理最簡單的小腳本并將其移植。BestBets 是最簡單的組件,并且不依賴于 COM 組件。我們決定使用 System.IO、XML Data Navigator 以及 C# 編程語言將這個(gè)組件作為 DLL 移植。我們希望將這個(gè)組件完全移植到受控環(huán)境,并使其充分利用 XML Data Navigator。
重要知識(shí):我們了解了 NewXml 命名空間。同時(shí),我們在移植組件時(shí)去除了 .NET Reflection。這樣我們就可以在本地調(diào)用這些組件。
然后,我們以同樣方式處理 Vocabulary 小腳本。這個(gè)組件在復(fù)雜性和代碼行方面處于此應(yīng)用程序的中間。它由一個(gè)小腳本組成,這個(gè)小腳本包含用于 Search 的業(yè)務(wù)和文本解析規(guī)則,并對(duì) C 組件進(jìn)行調(diào)用,我們創(chuàng)建該組件的目的是包裝 COM 對(duì)斷字程序的引導(dǎo)調(diào)用。這個(gè)組件在移向受控空間方面具有最大優(yōu)點(diǎn)。這個(gè)復(fù)雜組件被全部移植到 .NET 框架和 C# 編程語言。這需要一些技巧,因?yàn)椋鼮閺?fù)雜的函數(shù)邏輯,并需要利用一個(gè)自定義 COM 對(duì)象。但這還不算太難。下一步將拋棄 C 包裝并直接調(diào)用這些接口。
重要知識(shí):我們更改了函數(shù)和邏輯以便受益于象類型安全這樣的 C# 的關(guān)鍵優(yōu)勢。在使用 Jscript 時(shí),開發(fā)人員必須銘記每個(gè)變量的類型(整數(shù)、字符串)。C# 會(huì)為您做到這一點(diǎn)。所有變量在聲明時(shí)確定,并且 C# 會(huì)檢查您的工作以便確保沒有越界。這在處理復(fù)雜代碼時(shí)幫助很大。備注: 在 JScript 的下一個(gè)版本中,程序員將可以選擇完全確定變量的類型。
移植最終組件:SearchResults。最初,我們通過 .NET Reflection 調(diào)用這個(gè)組件,而且情況良好。由于這個(gè)代碼太大并相當(dāng)復(fù)雜,同時(shí)由于在我們推出 Search 2.5 版本之前對(duì)該版本作了一些根本性的更改,因此移植該代碼的工作一直持續(xù)到現(xiàn)在。在 .NET 測試版中找不到它,但該項(xiàng)工作已取得重大進(jìn)展。10 月份晚些時(shí)候?qū)l(fā)布該版本的更新。
總之,這個(gè)體系結(jié)構(gòu)是一個(gè)杰作。我們擁有一些真正的 C# .NET 組件,我們擁有所有的 ASMX 頁面。而且,我們演示了可以通過 Interop 調(diào)用自定義 COM 對(duì)象,以及通過 .NET Reflection 調(diào)用小腳本。傳統(tǒng)的對(duì)象(比如,SearchResults)可以消耗由 C# 對(duì)象(比如,Vocabulary) 創(chuàng)建的數(shù)據(jù)結(jié)構(gòu),這是非常好的事。
在您審查 .NET Search 測試版之前值得一提的是,這個(gè)體系結(jié)構(gòu)中沒有用戶界面。您所看到的是一項(xiàng) Web 服務(wù)的默認(rèn)情況。我們本來是可以添加一個(gè) UI 的,但是我們之所以保留成現(xiàn)在這樣,是想讓您看到其本來面目。
請(qǐng)作者聯(lián)系本站,及時(shí)附注您的姓名。聯(lián)系郵箱:mb5u#vip.qq.com(把#改為@)。
分享:關(guān)于ASP.NET在IIS一些問題的經(jīng)驗(yàn)總結(jié)很多開發(fā)人員對(duì)于IIS和ASPNET的安裝等問題困擾,特此做下面的小總結(jié),請(qǐng)大家多交流!iis 壞了修復(fù)辦法! 一般IIS運(yùn)行不了ASP.NET,試一下下面四種方法,99%有效: 1。.NET 安裝的順序應(yīng)該是
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過程實(shí)現(xiàn)分頁示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 如何在.NET環(huán)境下為網(wǎng)站增加IP過濾功能
- 關(guān)于一些很酷的.Net技巧的翻譯
- 如何在VB.NET中利用Split和Replace函數(shù)計(jì)算字?jǐn)?shù)
- ASP.NET中利用存儲(chǔ)過程實(shí)現(xiàn)模糊查詢
- 為GridView新增記錄的功能
- 解析運(yùn)行asp.net服務(wù)器權(quán)限設(shè)置的6個(gè)問題
- 淺談ASP.NET2.0中配置文件的加密與解密
- 投票結(jié)果的圖片進(jìn)度條顯示
- ASP.NET頁面事件:順序與回傳詳解
- 談ASP.NET創(chuàng)建Web服務(wù)的使用事務(wù)
- 相關(guān)鏈接:
- 教程說明:
.Net教程-如何以及為何創(chuàng)建Search .NET版(3)
。