<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 四十五、請問,我可以使用連接程序嗎 原因不明,不過微軟最先進又很出色的.NET開發環境少了一個重要的工具…一個 約1950年起在軟件開發環境里就很普遍的工具,這個工具是理當所然應該有的, 真奇怪竟然沒人注意到.NET真的沒有。 少了的工具是什么?就是鏈接程序啦。鏈接程序做的事如下,它會把你的程序編 譯過的版本,和所有有用到的鏈接庫函數編譯過的版本結合起來。然后會把你沒 用到的所有鏈接庫函數都拿掉。最后再產生大家可以在自己計算機上執行的單一 可執行二位程序。 .NET用了一個叫”runt ime”的想法來取代鏈接程序。這是一大團22 MB并會動態鏈接的程序代碼,每個人在用.NET應用程序之前計算機上都得先有這東西才行。 Runtime是個和DLL很像的問題,因為版本1的應用程序在設計上是要配合版本1 的runtime,而等版本2的runtime出來,版本1的應用程序突然間就會原因不明 地不太正常,這時候你麻煩就大了。舉例來說我們把runtime由1.0升級到1.1之 后,現在公司的控制面板會把銷售數字取成小數點后4位的數字。通常不相容的 狀況要比這更糟。 事實上.NET包含了一個叫”manifests”的大型技術系統,這個系統顯然很復雜,本來的用意是要確保各個應用程序只會用到正確的runtime,不過我認識的人沒 有一個知道要怎么用。 這衍生了一個故事。在Fog Creek的新年除夕宴會上,我們要讓主要房間里的很 多計算機屏幕在午夜前倒數。Michael用C#的WinForm寫了一只程序,只用了60 秒左右。真是個偉大的開發環境。 我的工作是把countdown.exe拷到三臺計算機上執行。聽起來很簡單。 才怪。在執行檔上連雙擊就看到一個荒謬又神秘的錯誤訊息,說mscoree.dll還 是什么東西有問題,然后就是沒有意義地傾印了我的路徑。一點也沒提到問題其 實只是沒有安裝.NET runtime而已。還好我是個程序員,知道這一定就是問題。 你要怎么安裝runtime呢? 「最簡單」的方法是用Windows Update。不過Windows Update—定要我先取得所有重大的更新后才能裝runtime。這很合理,對吧?「重 大」更新里面有兩個分別是Wi ndows se「v i ce pack和新版的I nternet Explorer, 這兩個都得重開機。 就這樣,為了要在這幾臺機器執行這小小的.NET應用程序,我得下載大約70或80 MB(還好我們網絡夠快)然后重開機三四次。而這還是在一家軟件公司里!我知道 這花的確實時間,因為我一開始下載就在大電視屏幕上放映上班一條蟲(Office Space),電影放完時也幾乎快裝完了。電影每播十分鐘左右我就得起來,到每臺 計算機前去按那些笨對話盒的確定按鈕。 這就我們自己用的程序來說已經夠令人沮喪的了。不過再想想我們的產品 CityDesk。我們的使用者幾乎每個人都會在購買前下載一份免費試用版。下載文 件的大小約9 MB而且不需要任何其他東西。而這些使用者幾乎全部都還沒有.NET runtime。 如果我們要求我們的試用者(通常是小型組織或家庭用戶),只為了試用我們的應 用程序,卻要經歷整部電影長的痛苦安裝過程,我想我們大概會損失95%的潛在 客戶。這些人還不:是客戶,只是期望的客戶,我實在無法承受只為了一個較好用 的開發環境而放棄95%的期望客戶。 「不過,」人們會說:「有runtime的人數總會變多,最后人數夠多這個問題就 不見啦。」 我也這么認為,然后我了解到微軟每六到十二個月就會推出的runtime,于 是逐漸增加的已安裝人數又跳回零。如果我得痛苦掙扎在三種runt i me版本上測 試我的應用程序,只為了多那1.2%有其中一個版本的客戶,那我還真該死啊。 我只想把所有用到的東西鏈接成單一個靜態的執行文件,不用先裝任何東西就能 執行。我不在意執行檔是否會大一點。我要的只是我實際展至如勺函數、bytecode 直譯器和小小的執行時期程序。我不需要屬于runtime—部份的整個C#編譯程序。 我承諾CityDesk不會編譯到任何C#原始碼。我也不需要全部的22 MB,我要的最 多只有五或六MB吧。 我知道有些公司擁有這種技術,不過沒有獲得微軟許可不能重新發送runtime里 的數據(如byte code直譯器)。所以微軟醒醒吧,給我們一些1950年代的鏈接程 序技術吧,讓我可以制作單一個執行檔在Win 98及后續系統上執行,而且沒有其 勉夕A斑關聯。否則.NET對消費者下載軟件來說有致命的缺陷。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看