一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

《架構(gòu)師雜志》評述:Scott Guthrie(轉(zhuǎn)與MSDN)

 快樂學(xué)習(xí) 2007-04-02

《架構(gòu)師雜志》評述:Scott Guthrie

發(fā)布日期: 2007-03-29 | 更新日期: 2007-03-29

Scott Guthrie 是 Microsoft 開發(fā)事業(yè)部的總經(jīng)理。他領(lǐng)導(dǎo)著負(fù)責(zé)構(gòu)建 CLR(公共語言運行庫)、ASP.NET、WPF (Windows Presentation Foundation)、"WPF/E"、Windows Forms、IIS(Internet 信息服務(wù))7.0、Commerce Server、.NET Compact Framework 和 Visual Studio Web 和客戶端開發(fā)工具的開發(fā)團隊。在編寫新的《架構(gòu)師雜志》評述系列文章期間,Ron Jacobs 就職業(yè)生涯及對體系結(jié)構(gòu)的看法這兩個主題與 Scott 進行了一次訪談。

RJ:有人認(rèn)為您所從事的“是一份很棒的工作”,今天就讓我們來聊聊您和您的職業(yè)。您目前在 Microsoft 負(fù)責(zé)哪方面工作?

SG:我現(xiàn)在負(fù)責(zé) .NET 開發(fā)人員平臺組。其中包括 CLR(公共語言運行庫)、.NET Compact Framework、IIS(Internet 信息服務(wù))、ASP.NET、Atlas、Commerce Server、Windows Presentation Foundation、Windows Forms 和用于在 Visual Studio 中開發(fā) Web 應(yīng)用程序的工具。

RJ:哇,涉獵廣泛!

SG:也樂趣無窮。這其中包括我們的核心應(yīng)用程序模型、運行庫、工具及其基層的所有引擎。涵蓋了許多絕妙的技術(shù),有許多值得研究的東西。

RJ:大多數(shù)人會因為 ASP.NET. 而記住您。讓我們回到您初到 Microsoft 的日子。您最初都做些什么?

SG:我最早是在 IIS 團隊工作,那是在 96 到 97 年,主要從事核心 Web 服務(wù)器技術(shù)的研究工作,并參與了一個 IIS 版本的研發(fā)。IIS 4 發(fā)布后,我們開始研究下一代的 Web 編程模型組件。我們當(dāng)時認(rèn)為,“我們可能已經(jīng)做到極至了。就功能集來說還能有什么要做呢?”

于是,我們開始和眾多的客戶溝通,仔細(xì)了解他們在構(gòu)建哪些類型的應(yīng)用程序。我們很快就意識到需要做的事還有很多。人們當(dāng)時都在為代碼/內(nèi)容分離以及如何編寫干凈代碼這兩個問題所困擾。我們常開玩笑說我們編寫的代碼“一次編寫,終身不讀”。從工具和運行時管理的角度來講,要使當(dāng)時現(xiàn)有的基礎(chǔ)結(jié)構(gòu)真正良好地運行存在許多挑戰(zhàn)。為了實現(xiàn)這個目標(biāo),我們成立了一個小組來專門研究針對 IIS 的未來體系結(jié)構(gòu)。正是這個小組發(fā)明了我們隨 Windows Server 2003 引入的 HTTP.SYS 內(nèi)核驅(qū)動程序。我和另一個同事一起,開始研究 Web 編程模型組件并編寫了 ASP.NET 最初的原型。

RJ:你們當(dāng)時似乎正在考慮將這再提高一個層次,利用在那時還相當(dāng)神秘的某種東西。我還記得 .NET 的那些日子;你們那時稱它為 ASP+。

SG:我們最初叫它 XSP;總有人會問 X 代表什么。那時它真的什么都不代表。XML 以它開頭;XSLT 以它開頭。一切美好的事物似乎都從 X 開始,因此我們最初會這樣命名。在最初的六個月中,我們沒有使用 .NET。那時候還沒有 CLR(它大約是和我們一起起步的),因此我們大部分的原型設(shè)計使用的都是 C++、JavaScript 和 ActiveScript 腳本引擎。我們知道我們需要一個面向?qū)ο蟮沫h(huán)境,我們非常喜歡受管編程模型在垃圾回收、精細(xì)封裝和面向?qū)ο蠹夹g(shù)方面的特性。盡管如此,我們開始編寫生產(chǎn)代碼時實際上使用的卻是 C++,因為當(dāng)時的確沒有一個理想的運行時平臺來構(gòu)建代碼。我們就這樣編寫了兩星期,直到和 CLR 團隊不期而遇;當(dāng)時這個團隊在公司內(nèi)部還沒有上層產(chǎn)品的合作伙伴。他們唯一擁有的編譯器是叫做“simple managed C”的東西,我們親切地稱它為“smack”。我們最終決定,“我們或許應(yīng)該以它為基礎(chǔ)”。這要冒極大的風(fēng)險,我們的團隊在那時總共才三四個人。我們之所以能夠賭一把,主要因為沒有人真正在乎我們的成敗。謝天謝地,我們做到了,而且取得了巨大的成功。后來的事可以說是眾人皆知了。

RJ:我還記得那時候的事。CLR 剛剛問世的時候,幾乎沒有人愿意下這個賭注。許多團隊都在說“我不這么認(rèn)為”,但是你們做到了,而且取得了驚人的成績。

SG:是的,盡管在服務(wù)器上實現(xiàn)垃圾回收在今天已經(jīng)司空見慣,但整個想法在當(dāng)時卻著實令人們嚇了一跳。他們說:“不可能構(gòu)建出能在后臺運行垃圾回收的應(yīng)用程序。服務(wù)器永遠(yuǎn)都不會伸縮”。當(dāng)時出現(xiàn)過很多非常糟糕的情況。從項目的角度講,我們所做的一件事取得了巨大的成功。我們說:“我們要拿托管代碼賭一把,它不會成為某些本機內(nèi)容的打包程序。我們要將它深深地置入到平臺之中。我們 95% 的代碼將用托管代碼編寫”。

我們這樣做有兩重原因。一是要利用其提供的擴展性,真正將面向?qū)ο蟮臄U展性深深置入到平臺中。二是,我們知道客戶應(yīng)用程序?qū)⒉捎猛泄艽a,而且相對于客戶所占的份額而言,我們在調(diào)用堆棧方面的代碼的比例相對較小。如果我們連用托管代碼編寫代碼都沒想到,還認(rèn)為客戶應(yīng)用程序能輕易成功,那簡直就是自欺欺人。它有著巨大的促動作用。從第一天開始直到創(chuàng)建出較為復(fù)雜的示例,我們一直在根據(jù)需要不斷調(diào)整核心的 CLR 引擎,當(dāng)我們開始著手在上面構(gòu)建更為復(fù)雜的客戶應(yīng)用程序時,我們的工作轉(zhuǎn)化為客戶巨大的成本節(jié)約優(yōu)勢。這是一次不錯的賭博。

RJ:您將這看成是推動引擎改進的方式,這很有意思。您曾說:“我們不但要做這件事,還要通過這件事進一步改善引擎”。

SG:我想這是一次風(fēng)險很高的賭博,但這種方式確實很奏效。這在很大程度上得益于我們是一個小團隊,而且是從一個全新的代碼庫入手。如果我們的團隊再大一些,或者擁有一個現(xiàn)有的大型舊代碼庫,實施起來可能會更加困難,因為 COM 互操作性在那時還根本不存在。但我們是從頭開始,而且開始時人員較少,這些確實有助于我們將這些核心的改進深入到引擎內(nèi)部。隨著我們的不斷壯大和功能集的不斷翻新,我們得到了源源不斷的回報。

RJ:我想管理層肯讓你們?nèi)L試真的很不錯。

SG:這的確是一場賭博,但卻是經(jīng)過周密計劃的。如果我們能夠成功將會帶來巨大的優(yōu)勢,但不利的方面是我們只有三四個人,在接下來的一年我們總可以嘗試一些新的東西。Microsoft 經(jīng)常下這樣的大賭注,而且往往都會取得巨大的成功。當(dāng)然偶爾也會失敗,而且敗得一塌糊涂,但作為公司來講,我們會盡可能確保將賭注押在一些關(guān)鍵的環(huán)節(jié)上。

RJ:您必須說服所有人允許你冒這個風(fēng)險嗎?或者要比這簡單得多?

SG:我們的確不得不說服很多人朝著這個目標(biāo)努力。在項目早期,我們所做的就是力爭讓運行代碼在原型上運行,以展示給他人。通常你在處理一個全新的項目或者做之前沒有人做過的事兒時,將許許多多聽起來還不錯的 PowerPoint 幻燈片整理起來非常容易,但真實地展示代碼并讓人們親身經(jīng)歷這些代碼的運行是尤為重要的。不僅可以用原型證明其真實性,而且在這一過程中你也可以學(xué)會很多。

我和我的團隊努力去做的一件事就是及早構(gòu)建原型,構(gòu)建示例應(yīng)用程序,尤其是可以讓客戶親身體驗的演示應(yīng)用程序,我們要向客戶說,“看,你可以這樣來構(gòu)建應(yīng)用程序”。我們設(shè)法盡早地做這件事,以便發(fā)現(xiàn)哪些環(huán)節(jié)可行,哪些不可行,并相應(yīng)做出響應(yīng)。ASP 項目開始的一個半月后,我寫出了一個原型,讓人們親身地感受了一下。這里有組件控件驅(qū)動模型(那時我們還沒有叫它控件,它們是聲明性的標(biāo)記或組件),這里有 Web 編程的事件驅(qū)動方法。我們得以構(gòu)建出應(yīng)用程序,并很快發(fā)現(xiàn)我們計劃中的一些事情的確無法用代碼編寫出來。與此同時,我們也了解到“這項功能或那項功能確實很棒”,我們就這樣不斷周而復(fù)始,反復(fù)迭代。在我們試圖讓人們知道我們并不是瘋子的時候,這一過程發(fā)揮了很大的作用。我們展示了我們的代碼,而人們也得以親身體驗。這仍然是一次賭博。

RJ:這聽起來像是測試驅(qū)動開發(fā)的思路。我們完成一些短迭代周期;發(fā)現(xiàn)一些行之有效的東西。我們會使用自己的作品,針對自己的 API 編寫代碼,以便了解它們的使用效果。

SG:原理的確是相同的。我將測試驅(qū)動開發(fā)的意義劃分為兩層:第一,它是用來盡早提升質(zhì)量的方法,第二,它會為在不必?fù)?dān)心回歸的情況下重構(gòu)和調(diào)整代碼庫奠定基礎(chǔ)。在開發(fā)生產(chǎn)代碼時,我們內(nèi)部當(dāng)然會遵循這個基本原理。我想甚至在開始編寫生產(chǎn)代碼前的原型階段也是有意義的。對于 ASP.NET.,那是我們成功的之處。那時我們就決定要拋掉后幾個月中所要編寫的每行代碼。我們就此達成一致。我們不會說:“哦,留著這個做修改吧;我們可以把它整理出來”。不。我們要把它徹底拋棄。我們會在某個時候?qū)⑦@個子目錄徹底“刪除”,那樣一來,我們就可以更加大膽地去嘗試新事物。我們不必戰(zhàn)戰(zhàn)兢兢地去保證每樣?xùn)|西的穩(wěn)定性,就因為它將進入最終版本。

事實上我們這樣做了幾個月,然后說:“我們做完了,把它刪除;從頭開始吧;現(xiàn)在我們來編寫全部的生產(chǎn)代碼并且要確保質(zhì)量”。我想很多團隊都可以從這一點上受益。保證刪除原型代碼是最最艱難的事。項目通常都是伴隨著“嗯,有點相近”的思維而開發(fā)出來的。從原型入手并且確??煽啃允呛茈y的。我堅定地認(rèn)為應(yīng)該從原型階段入手并隨后將它刪除。

RJ:這說明從原型階段,我們應(yīng)該著眼于學(xué)習(xí),而不應(yīng)看重這些文件和代碼。

SG:每次做項目的時候,只要是重新編寫,無論是否從零開始,代碼都會變得更好。這在一定程度上是因為你了解了前一種方法的問題和缺陷,并且能夠進行反思并做出改進。難就難在你不能一次又一次輕松地做到這一點。但是,當(dāng)你最先涉足一個項目或是一個全新領(lǐng)域,根本不知道該如何從頭開始研究出最終產(chǎn)品時,專門花一段時間來構(gòu)建原型并不斷嘗試是至關(guān)重要的。

RJ:有人稱之為“體系結(jié)構(gòu)刺探”(architectural spike)。這是一個全新的領(lǐng)域,有待于我們進一步探索。我們來換個話題,那在來 Microsoft 前您做過什么?

SG:實際上我大學(xué)一畢業(yè)就來 Microsoft 工作了。在大學(xué)期間我就在 Microsoft 實習(xí)。我在大學(xué)和高中期間參與了幾次創(chuàng)業(yè),搞過一些開發(fā),并以此為樂,但是大學(xué)畢業(yè)后我還是直接加入了 Microsoft。

RJ:我們和許多對結(jié)構(gòu)體系感興趣的人都交談過。好像幾乎沒有人是只做些設(shè)計而根本不編寫代碼的純粹的架構(gòu)師。多數(shù)人都是多面手:他們有時參與開發(fā),有時進行架構(gòu)設(shè)計。對于一直在做開發(fā)但打算更多進行架構(gòu)方面構(gòu)思的人,您有什么建議?

SG:編寫代碼對于架構(gòu)師而言是非常重要的。你不一定要簽入生產(chǎn)代碼,但要不斷嘗試新技術(shù)、新方法,并體會系統(tǒng)的工作方式。最近我并沒有編寫大量的生產(chǎn)代碼,但我每天要花一或兩小時編寫代碼??梢允鞘纠⒃突蛞恍┯腥さ乃饺隧椖?;無論什么,我都要進行嘗試,思考事物的構(gòu)建方式。從代碼架構(gòu)師的角度來說,動手實驗非常重要。

我的另一條建議是要研究核心系統(tǒng)理論,探索如何架構(gòu)高度可靠的系統(tǒng)。想一下你要考慮的一些原則,并應(yīng)用到實際工作中。這并不是說要考慮具體的代碼內(nèi)容,而是思考簡易性、可靠性或容錯性。這些因素在成功的系統(tǒng)中起著核心作用;無論是客戶端應(yīng)用程序、服務(wù)器應(yīng)用程序還是游戲程序,都是如此。一個認(rèn)真考慮這些原則并配以良好編碼背景的架構(gòu)師可以在很大程度上給團隊以指導(dǎo)。

這些原則并不是要探索出一個向?qū)Щ蚴情_發(fā)不錯的新東西,而是要研究 Windows 或 Unix 應(yīng)用程序中進程地址空間的工作方式。什么是線程技術(shù)?如何深刻理解它在多處理器或多核系統(tǒng)上的工作?要消化吸收這種類型的知識、考慮由此衍生的結(jié)果,花些時間專門研究未來的趨勢(即從硬件和軟件角度研究技術(shù)未來的走向),并考慮如何進行修改并為我所用。這就是我的建議。

RJ:Microsoft 有開發(fā)人員、項目經(jīng)理和架構(gòu)師。人們通常對架構(gòu)師這一角色充滿好奇。您希望架構(gòu)師在團隊中發(fā)揮怎樣的作用?

SG:我們希望或期待架構(gòu)師能夠在團隊中擔(dān)負(fù)起幾個責(zé)任。一是我剛剛談到的,要在體系結(jié)構(gòu)、開發(fā)和軟件原理方面擁有非常深厚和堅實的背景。我們希望這樣的背景會將一些有用的東西逐步滲透,給其他團隊成員帶來潛移默化的影響。尤其是在指導(dǎo)年輕和資深的開發(fā)人員時,走廊里的對話或者辦公室中的閑談都可以給團隊以很大程度的指導(dǎo)。

我們希望架構(gòu)師能夠從技術(shù)角度為產(chǎn)品的未來鋪平道路。架構(gòu)師通常要做一些更高級的原型構(gòu)建工作并研究產(chǎn)品的開發(fā)方向。我們希望他們就研發(fā)方向提出建議,就實現(xiàn)而言,要求他們既要探索下一代產(chǎn)品,又要著眼于當(dāng)前產(chǎn)品,以發(fā)現(xiàn)我們應(yīng)進一步改進的地方。例如,我們應(yīng)該將哪些地方的分解略加調(diào)整?我們需要在代碼庫中做些什么來進行改進?

RJ:除了深厚、堅實的技術(shù)技能外,您認(rèn)為一個成功的架構(gòu)師還應(yīng)具備哪些品質(zhì)?

SG:至少在 Microsoft,對于那些想要在架構(gòu)領(lǐng)域有所建樹的具有深厚背景的技術(shù)人員來說,最難的是要保證將自己的技術(shù)技能與公司團隊內(nèi)部和團隊之間的協(xié)調(diào)工作能力相結(jié)合。

一些軟技能更難培養(yǎng),這就意味著架構(gòu)師需要動手實踐,但還要注意不要危及開發(fā)人員或其他團隊。他們也應(yīng)當(dāng)避免“這是我的,那是你的”這樣的對話。架構(gòu)師必須能夠自如地跨多個團隊開展工作。他們在工作時注意不要給人留下這樣的印象:那就是架構(gòu)師只是暫時投身于最有趣的問題,然后在遇到難題時便會抽身而去。其他團隊成員必須相信架構(gòu)師是忠于團隊的,與團隊之間保持長期的合作關(guān)系,會對問題的解決有所貢獻。這些是架構(gòu)師需要培養(yǎng)的技能。具有最強影響力的資深架構(gòu)師能夠?qū)⑸詈竦募夹g(shù)和設(shè)計技能與人際交往技能和協(xié)作能力結(jié)合在一起。

RJ:許多人都在說,如今社會變化的速度越來越快,新生事物無時無刻不在涌現(xiàn)。您也提到過跟上發(fā)展的腳步是何等重要,但是每天的時間是有限的。您是如何跟上發(fā)展的腳步的呢?

SG:這很困難,在開發(fā)領(lǐng)域更是如此。就日新月異的創(chuàng)新步伐和信息流動的速度而言,我實在想不出有哪個時代會像現(xiàn)在這樣快?;叵?90 年代的 Internet 大戰(zhàn),Internet Explorer 與 Netscape 的競爭硝煙四起。那個時候,我們好像不斷地在發(fā)布新的產(chǎn)品,又總會有新的東西涌現(xiàn)。

從開發(fā)的角度講,我想我們現(xiàn)在所處階段的發(fā)展速度比那個時候更快。要跟上時代的腳步當(dāng)然十分困難。你必須找時間去不斷充電。你必須騰出時間專門關(guān)注業(yè)界的動態(tài)。我想就這點而言博客是一個很好的機制。我訂閱了 Bloglines,這是一項不錯的免費服務(wù)。我大概訂閱了 300 或 400 個博客,我盡量每天早晚花 20 到 30 分鐘閱讀所有人的帖子。這樣可以很好地了解當(dāng)今的熱門話題和有趣的想法。

在某種程度上,為了跟上發(fā)展的腳步,還要每天花一小時專門構(gòu)建原型,用自己的產(chǎn)品或其他技術(shù)來進行各種嘗試;充分掌握現(xiàn)有的組件并知道如何使用它們。在研究任何新技術(shù)、API、方法或編程手段時,還有一項重要的工作,那就是不僅要仔細(xì)研究有趣的事物本身,而且還要盡量推演出其有用的原則,以便你能夠在別處加以應(yīng)用。因此,如果你研究的是一本有關(guān) Java 重構(gòu)的書,很好。書中會講到許多具體的 Java 重構(gòu)技術(shù),但有哪些更為廣義的重構(gòu)概念是你能夠消化理解并應(yīng)用于 VB 或 C# 的?如果是針對某項專門任務(wù)的非常理想的 AJAX JavaScript 框架,也很好?,F(xiàn)在,回想一下,盡量找出它的哪個方面可以應(yīng)用于其他 JavaScript 框架。架構(gòu)師應(yīng)當(dāng)善于研究某些事物并推演事物本身及其中蘊涵的有趣方面,而不是僅僅關(guān)注于某個個別的技術(shù)元素。

RJ:回顧這些年在 MS 的經(jīng)歷,您有什么遺憾的事情嗎?

SG:回首往事,總會有些想要換種做法的事情。有時,可能是曾做過的技術(shù)工作,是某種功能的實現(xiàn)方式,你會想“每個人都濫用了那項功能”?;蛘咚麄冏鍪碌姆绞奖畴x了我們的預(yù)期。當(dāng)然,在我們構(gòu)建了像 .NET 那樣廣泛的開發(fā)平臺后,我會后知后覺地想出許許多多本可以換種做法的事情。還有一些事情的處理方式,或者與不同團隊的合作方式,你會想,“唉,要是我稍微換個方法處理那次談話就好了”。所以,我肯定能舉出許多個別的例子。

總的來說,我對 .NET 的結(jié)果非常滿意,就結(jié)果而言我們已經(jīng)相當(dāng)成功。但是,也確實有很多事情我們本可以換種做法,比如“唉,要是不封裝那個類就好了”,或者“唉,要是將那個類封裝起來就好了”。

如果說有一件重要的事情令我感到遺憾,那就是對于 .NET 客戶端應(yīng)用程序的構(gòu)建,我們應(yīng)當(dāng)早一點花更多時間去仔細(xì)考慮客戶端的安裝過程。我認(rèn)為我們所采用的方法,即下載的單一可再發(fā)行組件包并不比其他任何的 Windows 可再發(fā)行組件包差,但我們本應(yīng)當(dāng)一開始就抓住這個機會去減少安裝帶來的影響,并簡化客戶端應(yīng)用程序的部署。這就是我們現(xiàn)在正在花大量時間研究的東西,將來一定會有極大的改進,但是我們本應(yīng)該在六年前就完成這項工作,本應(yīng)該早一點花更多時間來研究其中的一些情況。

RJ:在您的辦公室中,擺放著全部頗有淵源的演講者徽章,您曾有機會拜訪過許多地方,結(jié)識了許多人。遇到過什么特別的事嗎?有什么人尤其讓您記憶深刻?

SG:關(guān)于開發(fā)人員平臺的應(yīng)用有一件很有趣的事,我發(fā)現(xiàn)人們基于我們的平臺所構(gòu)建的應(yīng)用程序真是五花八門,千差萬別。無論是世界最大的社會網(wǎng)絡(luò)平臺 MySpace、還是倫敦股票交易所或英國國民健康服務(wù)中心、甚至是華爾街的眾多公司(Costco、Dell.com 或 Match.com),都離不開 Microsoft 的技術(shù)。前者每天要使用 .NET 瀏覽 15 億的網(wǎng)頁,而后面的機構(gòu)有許許多多非常好的客戶應(yīng)用程序是基于 Microsoft 技術(shù)構(gòu)建的。其中許多采用了 Web 方面的技術(shù);其他的則采用其他方面的技術(shù)。再看看“迪斯尼樂園”的設(shè)施,運行“快速通行證”的儀表都是在精簡框架和 CLR 上運行的。如果美國人口局或美國郵政總局的人來敲門,這個人手里拿的設(shè)備也是在 .NET Framework 上運行的。

于我而言,印象最為深刻的事就是看到 .NET 在全世界如此廣泛而多樣化的應(yīng)用。有時候采用奇異而怪誕的方式,有時候則用于關(guān)鍵任務(wù)應(yīng)用程序,但每一次都那么獨一無二,坦率地說真的是超乎你的想像。我認(rèn)為好的框架并不體現(xiàn)在人們按你的預(yù)想在上面構(gòu)建應(yīng)用程序,而在于客戶和開發(fā)人員能夠?qū)⑺淖饔冒l(fā)揮到超乎你想象的程度。對我來說,這就是 .NET 最突出的地方。

Scott Guthrie 在 Microsoft 的職業(yè)生涯

Scott Guthrie 于 1997 年加入 Microsoft,最初從事 IIS4 和 Windows NT Option Pack 的研究工作。在其發(fā)布后不久,他設(shè)計了最初代號為“XSP”的新服務(wù)器編程模型并構(gòu)建出原型。隨后的 1998 年,與 Mark Anders 一起組建了一個新的團隊,構(gòu)建了最終被稱為 ASP.NET 的框架。

Scott 于 2002 年初成為 ASP.NET 的生產(chǎn)單元總經(jīng)理 (PUM),并隨 Windows Server 2003 發(fā)布了 ASP.NET V1.1。在這一期間,他還領(lǐng)導(dǎo)開發(fā)了備受歡迎的 Web Matrix 開發(fā)工具,這是一個免費的 ASP.NET 開發(fā)工具,有助于激發(fā) Web 開發(fā)工具的新思維,是為編程愛好者和熱衷者提供的一個新方法。2002 年底,他又成為 Visual Studio 內(nèi)部 Web 工具功能的 PUM,負(fù)責(zé)開發(fā)新的 Visual Web Developer 獨立產(chǎn)品(將作為 Visual Studio 2005 系列的一部分發(fā)布)和 Visual Studio 中的全部 Web 開發(fā)功能。Visual Web Developer 和 ASP.NET 2.0 于 2004 年夏季進入第一次大范圍公測,將于 2007 年上半年發(fā)布。

在 2003 年底,Scott 的團隊與 IIS 團隊合并,他擔(dān)任結(jié)合了 IIS、ASP.NET 和 Visual Studio 資產(chǎn)的聯(lián)合 Web 平臺和工具團隊的 PUM。隨著 ASP.NET 2.0 和 Visual Web Developer 的完成,這個團隊目前正積極開發(fā) Microsoft Web 應(yīng)用程序服務(wù)器的下一個主版本,它將作為 Longhorn 的一部分發(fā)布。

Scott 現(xiàn)任 Microsoft 開發(fā)事業(yè)部的總經(jīng)理,領(lǐng)導(dǎo)負(fù)責(zé)構(gòu)建 CLR、ASP.NET、WPF、"WPF/E"、Windows Forms、IIS 7.0、Commerce Server、.NET Compact Framework 以及 Visual Studio Web 和客戶端開發(fā)工具的開發(fā)團隊。

Scott 于 1997 年畢業(yè)于杜克大學(xué)的計算機科學(xué)專業(yè),并取得學(xué)位。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲国产丝袜一区二区三区四| 婷婷九月在线中文字幕| 日韩精品中文字幕亚洲| 午夜午夜精品一区二区| 日韩一区欧美二区国产| 国产中文字幕一二三区| 国产av天堂一区二区三区粉嫩| 欧美又黑又粗大又硬又爽| 国产精品久久三级精品| 久久免费精品拍拍一区二区| 中文字幕亚洲精品在线播放| 日韩在线视频精品视频| 一区二区福利在线视频| 黄片免费播放一区二区| 99热中文字幕在线精品| 成人欧美精品一区二区三区| 欧美日韩国产成人高潮| 国产成人午夜福利片片| 精品人妻久久一品二品三品 | 日韩精品一区二区三区av在线| 精品国模一区二区三区欧美| 欧美日韩亚洲国产av| 国产中文字幕一区二区| 好吊日在线视频免费观看| 日韩中文字幕欧美亚洲| 夫妻性生活动态图视频| 日韩毛片视频免费观看| 国产日产欧美精品大秀| 日本妇女高清一区二区三区| 亚洲中文字幕亲近伦片| 欧美日韩国产另类一区二区| 欧美一区日韩一区日韩一区| 在线观看国产成人av天堂野外| 国产精品白丝久久av| 久久精视频免费视频观看| 在线一区二区免费的视频| 欧美日韩国产另类一区二区 | 亚洲中文字幕在线视频频道| 五月天丁香婷婷狠狠爱| 日系韩系还是欧美久久| 日韩精品人妻少妇一区二区|