2009-02-19 70 views
3

我目前正在開發一個UI開發項目,並決定在Silvelight中實現它。據我瞭解,微軟的開發人員會盡量減少分發的大小,這就是爲什麼常規.NET框架中的一些(很多)類不包括在內的原因。預計Silverlight 3庫中會包含更多的類嗎?Silverlight 3類庫

+0

是否有任何課程特別缺失? – geofftnz 2009-02-19 03:51:35

+0

ArrayList不存在,例如 – aquio 2009-02-19 04:05:26

回答

3

我希望不會,我懷疑它。

Scott Guthrie明顯負責微軟的這個項目,他表示,他不希望把「善意」放進去,以免將來有任何「必須擁有」的空間。

,我認爲他們已經得到了平衡 - 沒有太多,他們已經離開了,你不能寫自己。

0

.NET框架包含的東西堆是在像Silverlight沙盒環境,很少或根本沒有用。

我不希望看到更多的包含在覈心CLR標準的.NET框架,但有會進入Silverlight3從WPF了一堆東西。

1

Silverlight 3毫無疑問會增長。 Silverlight 3將針對移動設備,所以毫無疑問,該軟件包將保持較小。然而,人們正在尋求許多新功能:打印,WCF新增功能,3D,麥克風支持,硬件加速......毫無疑問,它會不斷增長。它只是一個問題,如果他們將這個核心集成到一起,或者您的XAP文件必須變得更大。

6

順便說一句,你總是可以使用反射在覈心.NET框架庫來獲得一些失蹤「很高興富人」以代碼的形式的。

這裏是展鵬的反射器:http://www.red-gate.com/products/reflector/

這裏是我提取的代碼和修改後的版本的HttpUtility.ParseQueryString

public IDictionary<string, string> ParseParams(string paramsString) 
{ 
    if (string.IsNullOrEmpty(paramsString)) 
     throw new ArgumentNullException("paramsString"); 

    // convert to dictionary 
    var dict = new Dictionary<string, string>(); 

    // remove the leading ? 
    if (paramsString.StartsWith("?")) 
     paramsString = paramsString.Substring(1); 

    var length = paramsString.Length; 

    for (var i = 0; i < length; i++) { 
     var startIndex = i; 
     var pivotIndex = -1; 

     while (i < length) { 
      char ch = paramsString[i]; 
      if (ch == '=') { 
       if (pivotIndex < 0) { 
        pivotIndex = i; 
       } 
      } else if (ch == '&') { 
       break; 
      } 
      i++; 
     } 

     string name; 
     string value; 
     if (pivotIndex >= 0) { 
      name = paramsString.Substring(startIndex, pivotIndex - startIndex); 
      value = paramsString.Substring(pivotIndex + 1, (i - pivotIndex) - 1); 
     } else { 
      name = paramsString.Substring(startIndex, i - startIndex); 
      value = null; 
     } 

     dict.Add(UrlDecode(name), UrlDecode(value)); 

     // if string ends with ampersand, add another empty token 
     if ((i == (length - 1)) && (paramsString[i] == '&')) 
      dict.Add(null, string.Empty); 
    } 

    return dict; 
} 

這只是一個例子,但是你可以看到,..如果你真的需要已經在.NET BCL中......那麼爲什麼要重新實現呢?只需反編譯並在Silverlight中重新實現它。

IMO的大部分東西,你就可以反編譯可能會是基本的香草的東西「很高興富人」,多數民衆贊成在Silverlight中缺少反正,所以我不認爲這會產生任何法律問題。

當然,你可以重新實現自己的查詢字符串解析邏輯,但你可以看看,有所有的小細節在那裏,你可以錯過何況性能問題。