2009年7月3日

[Tips]當Silverlight遇上Win Forms的WebBrowser

今天在MSDN Forum, WMLin朋友問了一個有關Silverlight的問題,事情是這樣的:

 

有一天WMLin朋友建立了一個Silverlight程式,Silverlight程式可以在IE上順利的奔跑著,

但是當他在WinForm中用WebBrowser觀看這個Silverlight網頁時,卻出現了下列的圖案:

image

 

怎麼會這樣,說好的網頁呢?

所謂「冰來就吃,水來就喝」,既然要我們安裝,我們就來按看看,看葫蘆裡賣的是什麼藥?

按下去後,網頁就自動幫我們導向天堂,喔,錯,是下載Silverlight Runtime的網頁,然後就出現了下面的畫面:

image

 

看來這個WebBrowser內使用的IE是64 Bits的版本。

在我先前的文章-[Silverlight]相容的作業系統和瀏覽器 ----- Day22有提到,目前Silverlight runtime僅支援32bits的瀏覽器。

 

所以接下來該怎辦? 就把這個Winforms compile成32bits的吧。

調整設定管理員(Configuration Manager),把這個WindowsApplication設定成"x86"。

image

 

 

然後,你就可以看到Silverlight程式可以在WebBrowser中自由的奔跑著:

image

 

 

問題出處:

http://social.msdn.microsoft.com/Forums/zh-TW/1511/thread/6bf91179-27bf-4f81-98f1-d66cf7d540bd#d0d99358-6c27-4219-93bc-1a4c5bd4cfd9

2009年6月26日

[Info]立即體驗Windows Vista強大效能 並在Windows 7上市後升級到最新版本

為了讓有更換新機需求的消費者能夠放心添購所需的電腦,立即體驗Windows Vista的強大效能,並且未來可輕易升級到Windows 7,正式推出Windows 7作業系統軟體升級方案,只要在2009年6月26日至2010年1月31期間,購買預載Windows Vista Home Premium家用進階版、Windows Vista Business商用版和Windows Vista Ultimate旗艦版之特定品牌電腦、組裝電腦或彩盒包裝版的消費者,皆可在Windows 7上市之後,將Windows Vista升級到相對應的Windows 7版本。所以,

 

  • 要錢嗎? 要。微軟未收取軟體授權費,但還是會有處理的工本費與相關寄送費用。
  • 多少錢? 要看各品牌電腦廠商所收取的費用,各家價格不一。像是彩盒版的升級費用是880元,採貨到付款。
  • 怎麼知道符合資格? 要購買的日期對,版本也對。才能符合升級資格。如果符合資格的電腦或軟體,都會在包裝裡面看到升級表格offer form
  • 怎麼做升級? 檢付相關購買證明,憑升級表格上網登記或依網站規定流程處理。請查詢升級說明
  • 字太多,看得頭好痛,有沒有簡單一點的說明? 有,請直接到升級路徑連連看,點進去就可以查到細節

image

首頁

http://www.microsoft.com/taiwan/windows/buy/offers/upgrade.aspx

升級路徑

http://www.microsoft.com/taiwan/oem/promo/windows7_upgrade/default.htm

升級說明

http://www.microsoft.com/taiwan/oem/promo/windows7_upgrade/intro.htm

2009年6月24日

[Info]Bing~Bing~Bing~, Bing也有出主題曲了

剛剛在CSDN看到原來Bing也有出主題曲:

 

Bing鈴聲下載:

BingTones: http://www.microsoft.com/downloads/details.aspx?FamilyID=043C49DB-E33B-4603-A699-9F1FBA8E9245&displaylang=en

 

引述CSDN jerryge blog內容:

微軟就製作了3首以“Bing”為題材的手機鈴聲。當手機鈴聲響起,會發出“bing、bing、bing”的聲音。雖然下載網站指出,這些鈴聲是專為Windows Mobile的手機設計的,但因為它們是MP3格式,所以他們應該可以在任何手機使用。

 

 

Bing的廣告:

 

Bing的大本營:http://www.bing.com/community/

 

這下要我們玩到Bing過去阿...Orz

 

 

 

ref:

http://www.cnblogs.com/jerryge/archive/2009/06/24/1509852.html

2009年6月18日

[How to]Bing API - Translation Service

image_thumb1

在Bing的服務中,也提供了翻譯的功能。

像你在畫面中輸入「translate I love you」,它就會翻譯出西班牙文、法文、德文...等的版本。

image

當然你也可以限定翻譯的語言,透過「translate I love you to chinese(japanese)」,就可以指定語言翻譯(目前限定在英文版的Bing才有效)。

image

那如果您要實做這個功能,Bing API也有提供這個Translation SourceType的API。

同樣地,如果您有看過第一篇 [How to]Bing API開發初體驗 ,就知道使用Bing API的時候,會需要設定一些必要的參數,以及一些選擇性的參數。

必要參數

The following parameters are required for all requests:

選擇性參數

The following optional parameters are applicable to this SourceType.

回覆的內容

The following response fields are common to all source types:

The following response fields are specific to the Translation SourceType:(下列兩個欄位只有使用Translation API才會出現)

程式我們參考範例程式,並略為修改:



執行結果:

image


我們再略作修改,把目標語言指定為DropDownList所選的值:



顯示結果:
image

接下來,我們再來玩一個介面變換:
一開始的畫面如下:
image


變換成日文:

image



法文:

image



繁體中文:

image

怎樣? 是不是很好玩呢? 來玩玩看吧..

[How to]Bing API開發初體驗

image

在Bing搜尋推出後不久,Bing search service API也跟著推出了- http://msdn.microsoft.com/en-us/library/dd900818.aspx

Bing Search提供了哪些 API 功能呢?

  • Retrieve information from the Internet
  • Monetize your application with advertisements
  • Improve and enhance search requests and results
  • Find location-specific information
  • Translate terms and blocks of text

 

image

除了搜索外,也提供了廣告、影片、phonebook以及翻譯等等的功能.

 

就讓我們開始來試看看Bing API吧:

http://msdn.microsoft.com/en-us/library/dd251020.aspx

 

首先,要先註冊一個AppID,每一個應用程式會對應使用一個AppID - http://bing.com/developers

透過Live Passport登入註冊,註冊成功後,就會產生一組序號(就是黑色噴墨的地方)。

image

 

 

接下來,我們開啟Visual Studio 2008,並開啟一個新的Web專案。

在專案中,我們加入Service Reference,並且在Address中輸入 http://api.search.live.net/search.wsdl?AppID=您申請的AppID

按下Go按鈕之後,就可以看到LiveSearchPortType服務。

image

 

Bing提供三種protocol:

 

  • JavaScript Object Notation (JSON)
  • Extended Markup Language (XML)
  • SOAP (originally an acronym for Simple Object Access Protocol)

 

http://msdn.microsoft.com/en-us/library/dd251062.aspx

 

這裡我們以SOAP來作為範例。

 

在畫面上,我們拖拉一個TextBox、一個按鈕以及一個ListBox。

image

 

然後,我們參考MSDN上的sample code,做了一些調整:

 






其中有些是必填屬性,有些是選擇性: http://msdn.microsoft.com/en-us/library/dd250898.aspx



Required Parameters


The following parameters are required for all requests:





Optional Parameters


The following optional parameters are applicable to this SourceType.





 



回應的屬性欄位:Response Fields



The following response fields are common to all source types:





The following response fields are specific to the RelatedSearch SourceType:





 



 



當我們執行時,可以在TextBox輸入查詢條件:



image



查中文也可以:



image



 



如果把request.Market 改成 "zh-tw",會發現搜尋結果變多了(142000->154000)(這告訴我們要選對區域阿).



image



 



希望這篇文章對您有所幫助. :-)

2009年5月17日

[KB]How to set up Visual Sourcesafe 2005 over Internet?

過去我在使用Visual Sourcesafe 2005經驗中,通常都是在區域網路中使用。但Co-Workers如果沒有在同一個地方一起工作(非區域網路內),要使用這個工具,原本透過資料夾分享去讀取srcsafe.ini這個檔案的方式就無法作用了。

要怎麼解決這個方法呢?

Visual Sourcesafe 2005在設計的當時就有考慮到這部份,所以可以透過下列步驟來做處理:

 

1.

首先,我們要建立可以存取VSS的Web Service。在安裝完Visual Sourcesafe之後,就可以看到在目錄中有一個「VSSWebService」的資料夾。

image

 

2.

把這一個資料夾複製,且放到IIS的目錄下,然後我們透過VSS管理工具建立一個存放程式碼控管的資料庫。

image

 

image

 

這裡選建立一個新的資料庫:

image

 

命名資料庫路徑,這裡指定路徑為VSS Web Service底下的一個目錄。

image

 

對所要連結的資料庫名稱命名:

image

 

請依照您的管理模式設定所需的方式:

image

 

完成。

image

 

3.

然後你會發覺,在原本放置VSS Web Service的目錄下,多了一個資料夾。

image

 

4.

如果要設定讓VSS能夠透過Internet來作存取,必須在資料庫的目錄下新增兩個目錄 - 「VssWebDownload」以及「VssWebUpload」

一個是檔案上傳時所用的暫存資料夾,另一個則是下載所用的暫存資料夾。

image

 

* 新增完畢後,請記得開啟共用,並給予「MyTest」目錄適當的被存取權限。

image

 

在MyTest目錄下的srcsafe.ini檔案添加下列紅色字體資訊(IP請設定為您的Web Service所在電腦的IP):

; The following line contains common file groupings.
File_Types = VB(*.vb;*.resx;*.xsd;*wsdl;*.vbproj;*.sln;*.cls;*.bas;*.vb?;*.fr?),VC(*.c;*.cpp;*.cxx;*.vcproj;*.sln;*.def;*.ds?;*.h;*.hpj;*.hpp;*.hxx;*.ico;*.inl;*.mak;*.rc;*.rc2;*.rgs;*.bmp;*.cur),WEB(*.aspx;*.ascx;*.asmx;*.master;*.asax;*.config;*.asa;*.asp;*.css;*.dbp;*.dtq;*.ht?;*.htm*;*.pkp;*.sql;*.stm;*.sct;*.htx;*.shtml;*.alx),VCSharp(*.cs;*.csproj;*.sln),VJSharp(*.jsl;*.java;*.vjproj;*.vjp;*.sln),XML(*.xml;*.xsl;*.xsd;*.xslt;*.xsx;*.xss),VFP(*.cdx;*.db?;*.dc?;*.fpt;*.fr?;*.idx;*.lb?;*.mn?;*.mpr;*.pj?

UploadVDir = MyTest/VssWebUpload
DownloadVDir = MyTest/VssWebDownload
Web_Service =
http://XXX.XXX.XXX.XXX/SourceSafe/VssService.asmx

PrjEntryTimeout = 300
Multiple_Checkouts = No
Checkout_LocalVer_Disabled = Yes
UseHelperService = Yes

 

5.

然後記得把您的VSS Web Service建置成站台。

 

6.

開啟Visual Studio,在工具(tool)→選項(options)。

clip_image002

 

7.

選擇原始檔控制(Source Control)→外掛程式選擇→選擇Microsost Visual SourceSafe(Internet)。

clip_image004

 

8.

外掛程式設定→選擇Visual SourceSafe。

clip_image006

 

9.

在VSS的存取權限中可以透過SSL來作存取,但是因為目前我們這邊不需要,所以先將這個功能取消。

選取進階

clip_image008

 

取消SSL

clip_image010

 

10.

在Visual Studio 2005開啟一個新專案:

image

 

11.

把檔案加入SourceControl囉:

image

 

選新增。

image

 

image

 

設定存取來源。Address填入ip或是DNS, Folder則是填入分享的目錄名稱。

image

 

如果在連結VSS Web Service上有出現問題,請記得檢查

Web Service是否有正確運作?

File and Printer Sharing for Microsoft Networkd有沒有開啟?

image

 

12.

按下開啟:

image

 

 

13.

設定存放路徑:

image

 

14.

搞定後,就會上鎖了:

image

 

 

希望這些資訊對需要使用VSS的人有所幫助~

 

_

2009年4月30日

[KB]如何讓DBA精準的掌握效能不好的網頁?

身為一個DBA,最痛恨的應該是知道某個網站效能不好,但是又苦於無法找出這個麻煩的網頁。

那要怎麼作才能達到這個需求?

 

在連線字串中,可以透過設定Applicaion Name,然後在SQL Profiler查到一些相關資訊:

1.

還沒加Application Name之前:

image

 

你會發現,當網頁連接時,Application Name因為是透過.Net SqlClient Data Provider來作連結,所以這邊顯示就是「.Net SqlClient Data Provider」。

 

2.

如果在連線字串(ConnectionString)加上Application Name呢?

"Data Source=localhost;Initial Catalog=MyTest;Integrated Security=True;Application Name=ERP"

image

 

只要在連線字串簡單的加上Application Name=系統名稱,SQL Server的DBA就可以比較輕鬆的找到發生問題的系統。

 

 

但是,如果想要更明白的知道是那個網頁發生問題,要怎麼處理?

   1:    Dim connStr As String = System.Configuration.ConfigurationManager.ConnectionStrings("MyTestConnectionString").ConnectionString


   2:   


   3:    Dim conn As New System.Data.SqlClient.SqlConnection(connStr & "&Page=Default")


   4:    Dim cmd As New System.Data.SqlClient.SqlCommand("SELECT * FROM [T1]", conn)


   5:    Dim da As New System.Data.SqlClient.SqlDataAdapter(cmd)


   6:    Dim dt As New Data.DataTable


   7:   


   8:    da.Fill(dt)


   9:   


  10:    GridView1.DataSource = dt


  11:    GridView1.DataBind()





在連線字串的處理中,我們多加了一個這個網頁的名稱,然後在SQL Server Profiler中就可以看到:



image



 



那如果是用DataSource當來源呢? 我們可以去它的selecting事件中處理(如果是Insert、Update、Delete事件,請在對應事件處理)




   1:   Protected Sub SqlDataSource1_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles SqlDataSource1.Selecting


   2:          e.Command.Connection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("MyTestConnectionString").ConnectionString & "&PageIsDefault"


   3:   


   4:  End Sub




 



image



 



那如果是用強型別的SQLDataAdapter呢?



可以透過Partial Class去處理:




   1:  Namespace DataSet1TableAdapters


   2:      Partial Class T1TableAdapter


   3:          Private _conn As System.Data.SqlClient.SqlConnection


   4:          Public Property MyConnStr() As System.Data.SqlClient.SqlConnection


   5:              Get


   6:                  Return _conn


   7:              End Get


   8:   


   9:              Set(ByVal value As System.Data.SqlClient.SqlConnection)


  10:                  Me._conn = value


  11:                  For Each cmd As Data.SqlClient.SqlCommand In Me.CommandCollection()


  12:                      If cmd IsNot Nothing Then


  13:                          cmd.Connection = _conn


  14:   


  15:                      End If


  16:                  Next


  17:                  If Me.Adapter.InsertCommand IsNot Nothing Then


  18:                      Me.Adapter.InsertCommand.Connection = _conn


  19:   


  20:                  End If


  21:                  If Me.Adapter.UpdateCommand IsNot Nothing Then


  22:                      Me.Adapter.UpdateCommand.Connection = _conn


  23:   


  24:                  End If


  25:                  If Me.Adapter.DeleteCommand IsNot Nothing Then


  26:                      Me.Adapter.DeleteCommand.Connection = _conn


  27:   


  28:                  End If


  29:              End Set


  30:          End Property


  31:      End Class


  32:  End Namespace





然後頁面上這樣呼叫:




   1:  Dim da As New DataSet1TableAdapters.T1TableAdapter


   2:    da.MyConnStr = New System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("MyTestConnectionString").ConnectionString & "&StrongPageIsDefault")


   3:   


   4:  GridView1.DataSource = da.GetData()


   5:  GridView1.DataBind()





 



image



 



 



透過這種方式,雖然在開發上會麻煩一點,但是在後續的管理上,可是會輕鬆許多,讓公司的SQL Server DBA可以比較好找到問題發生的網頁。



 



 



希望以上的資訊對您有所幫助。 ^^

2009年4月29日

[Info]免費的Windows 7電子書部份章節試讀

image

為了即將到來的Window 7 RC版,MS Press也釋出了Windows 7 Inside Out 電子書的部份章節:

 

  • Chapter 21, “Performing Routine Maintenance,” from Windows 7 Inside Out
  • Chapter 23, “Support Users and Remote Assistance,” from Windows 7 Resource Kit
  • Chapter 29, “Deploying IPv6,” from Windows 7 Resource Kit
  • Chapter 1, “Explore Windows 7,” from Windows 7 Step by Step
  • Chapter 2, “Navigate Windows and Folders,” from Windows 7 Step by Step

     

     

    有興趣的朋友可以去下載來看, 順便等待Windows 7 RC的到來...

    (有訂閱MSDN的朋友,在台灣時間5/1就可以下載到Windows 7 RC)

     

    下載網址:

    http://www.microsoft.com/learning/windows-7/default.mspx#BOOKS

     

  • 2009年4月26日

    [Game]這是個Bug很多的遊戲 - MLB2K9

    在TV Game的眾多種類中,我最喜歡玩的就是運動類,尤其又以NBA跟MLB的遊戲最為喜歡。

    當我知道MLB 2K9的消息後,便趕快到網站上預購,深怕不能第一時間跟Papi老爹在球場上擊落共匪米格機。

    image

     

    拿到手後,當然要玩的就是王朝季賽模式,你知道的,身為一個紅襪球迷,所使用的隊伍一定是紅襪隊。

    image

     

    基於同胞愛,我努力的搜尋台灣球員,用買低賣高的心態,把小王、小郭跟小胡都給找進來了。

    (我不會把用Penny加Smoltz換小王這種下流事講出去的)

     

    當小王交易到我這隊的時候,我發現小王竟然沒有速球。X! 洋基給了我一個山寨版的小王,沒有速球的小王,難道要我從頭Sinker到尾嗎?

    image

     

    事情如果發展到這裡,感覺還沒有很糟,接下去就更精彩了。

    隨著比賽的進行,有幾個傷兵也是很理所當然的事。我的松阪跟捕手隊長很快地在第兩、三場的比賽後就受傷了。

    進入DL的他們,彷彿被魔咒纏身,好像都好不了,整個球季都過了快一半了,60天的DL還是保持一樣。

    大概跑過兩輪了,原來這是個Bug,我上網查了一下,要解除這個Bug,就是在剩下最後一天的時候,下一場用模擬的。

    (我已經把松阪給解救出來了,隊長目前還在Loop中)

    image

     

    當然,這還不是最誇張的Bug,接下來這個Bug,實在很讓人無言。

    image

     

    看圖就知道了。

    image

     

    有沒有發現什麼?

    為什麼明星賽投票,SS第一名的票數是最少的?對,這個Bug就是在比票數時,竟然是比第一個數字....Orz

    我的媽阿,97萬票竟然贏220萬票,你說MLB有沒有收錢,還是220萬票的都是阿飄票?

    image

     

    其他的像是外野手追全壘打球會追到穿牆而過,然後在練投區接到以及外野手常常在站好位置後,突然眼睛被鬼遮眼而漏接,其他族繁不及備載。

    不過還好得是,XBOX 360會有更新檔...Orz (但是我練出的兩個大Bug還沒更新阿)

     

    2K,我實在猜不透你阿..

    [CookBook]台式豬肉丼飯

    今天不搞技術,我們來學煮菜。

     

    之前在Mobile01看到有善心人士分享如何作豬肉蓋飯,心裡一直蠢蠢欲動,很想自己動手試看看。

    跟著原創者的步驟,我們先準備好材料:

    image

     

    接下來就要開始了:

     

    將醬油倒入碗中,大約1/6,然後將鰹魚露也倒入碗中,也是1/6,然後加水加到滿。

    image

     

    接下來,我們拿出洋蔥,對,是洋蔥,我加了洋蔥,但是我們今天不是要作「黯然消魂飯」。

    image

     

    看這男人刀起刀落,洋蔥紋風不動,你就知道他還沒有發功。

    image

     

    在這個男人使用李逍遙的「萬劍歸一」招式後,洋蔥變成了這個樣。(叔叔有練過,小孩子不要學)

    image

     

    然後我們開火準備Fight了!

    開小火,放入一點沙拉油,千萬不要放成沙拉脫,今天我們不是要製作殺人武器。

    image

     

    熱鍋後,放入剛剛發功切好的洋蔥

    image

     

    如果家裡有奶油,記得放下去會更香。

    image

     

    炒阿炒,越炒越多...,這是支奇妙的鍋子。

    image

     

    過了約20秒,把剛剛的醬料倒進去

    image

     

    然後等到洋蔥煮到有點軟(據說,此時可以一邊聽任賢齊的「心太軟」,會軟的比較快)

    image

     

    當洋蔥漸軟的時候,此時就是豬肉上場的時候。 我彷彿看到豬肉在對我笑。

    image

     

    煮了幾分鐘,要等豬肉入味。

    image

     

    這時候可以趁機裝碗白飯。

    image

     

    身為專業的中國廚藝學院的院生,加兩顆雞蛋也是應該的。

    image

     

    在我鏟氣的導引下,蛋黃跟蛋白倉皇逃命。(有看到旁邊「鏟氣」的厲害了吧),此時也煮好了。

    image

     

    準備上菜。

    image

    image

     

    配碗紫菜湯去油解膩。

    image

     

     

     

    友情加贈:親子丼作法。

    材料如下:

    這裡的差別是把豬肉換成雞肉,然後再加杏鮑菇。

    (為啥要加杏鮑菇? 因為我吃完豬肉丼飯後,感覺很像壽喜燒,所以就加上壽喜燒最愛加的杏鮑菇)

    (如果可以,雞肉先醃過,比較有味道)

    image

     

    最後的成果:

    image

     

     

    看起來是不是很讚? 吃過後,室友們都讚不絕口(我發誓,他們脖子上沒有架著刀)

    母親節快到了,下廚煮給老爸跟老媽吃,嚇他們一跳吧。

     

    (對了,我的肚子目前安然無恙)