ASP.NET多國語言開發快速體驗

在ASP.NET之中,如果要開發多國語言的網頁,已經比其他程式語言簡單許多。而我們在開發多國語言時,都會使用組件資源檔(*.resx),加到「\App_GlobalResources」資料夾中,資源檔的內容是字串構成的對照表格,而且除了字串,也能將圖檔或其他檔案加入資源檔之中。

我們先在\App_GlobalResources中新增一個資源檔

Resource.resx

名稱:PageTitle
值:English Sample Page

再新增一個繁體中文資源檔

Resource.zh-TW.resx

名稱:PageTitle
值:繁體中文抬頭網頁


新增Default.aspx網頁,在@Page指示詞最後加上「Culture="Auto" UICulture="Auto"」兩屬性,跟ASP.NET說,此網頁請自動幫忙選擇文化屬性。

最後我們在Page_Load新增以下程式碼:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
   '由資源檔Resource讀取PageTitle的值
   Page.Title = Resources.Resource.PageTitle
End Sub

要取得資源檔裡名稱與值很簡單,使用Resources.資源檔.名稱就可以取得名稱的值。這樣我們馬上就完成一個自動判定語系的網頁,而且會自動抓取抬頭設定值,如果你是使用繁體中文的瀏覽器,那網頁的抬頭應該是「繁體中文抬頭網頁」,其他語系瀏覽器應該都是「English Sample Page」。ASP.NET會自動判定你的語系,抓取對應的資源檔,如果沒有對應的資源檔,會使用預設資源檔的值(Resource.resx)

在設計上,我們會先計設一個預設語言的資源檔,再依序新增其他語言的資源檔,例如:
WebResource.resx (預設)
WebResource.zh-TW.resx
WebResource.zh-CN.resx

這裡有一點要注意,就是後面新增資源檔的「語系」命名不能隨便亂設,例如你把繁體中文的資源檔命名為WebSource.Big5.resx、WebSource.GB2312.resx,而是要依照.NET Framework中CultureInfo類別的規定來命名。

另外,如果你只想讓某一個.aspx網頁使用資源檔,則需要將資源檔新增至「\App_LocalResources」資料夾之下,然後依網頁名稱來命名資源檔名稱及相關資源檔。

例如,我有一個讓User下載資料的網頁Download.aspx,所以我們在\App_LocalResources新增以下資源檔:
Download.aspx.resx
Download.aspx.zh-TW.resx
Download.aspx.zh-CN.resx

這樣明白了吧,就把是直接用網頁名稱來命名資料檔,然後再依照預設資源檔來新增相關語系(zh-TW、zh-CN…)的資源檔,當ASP.NET執行到Downloads.aspx時,會自動去判斷瀏覽器的語系,再去找相對應的資源檔,再顯示出相關語言的頁面。

記得,語系(zh-TW…)的命名一樣是要照規定。

全球一動WiMAX(4G)初體驗,新竹測試募集

http://event.g1.com.tw/cb/

細節請入內自行觀看,明天(10/30)是最後一天,想要的人手腳要快。

SQL語法之Insert-Update-Delete三部曲

如果你常下SQL語法,久了就會了解,不外呼兩大部份,一是Select,一是異動,含Insert-Update-Delete,雖然標題是三部曲,但今天主要是介紹Insert及Update這兩個使用上的一點小技巧。

Insert語法


標準語法:
Insert into orders values ('2009/10/29', 1010, NULL)

Insert into orders(order_num, cust_num, order_date) values (200, 1010, '2009/10/29')

以上兩種是標準Insert的用法,而且我們在寫網頁時,常常要「組合」這種語法,欄位一多,跟看3D立體圖差不多,常常為了對應欄位與值,少一個「'」符號,在那裡Debug。

但在Insert語法中還可以使用execute statement,通常我們使用Select可以從資料表中取回資料,但資料可能是一筆,可能是十筆、百筆、萬筆等大量資料,也可能什麼都沒有,但我們可以搭配Insert語法,將Select取回的資料全部Insert進指定的資料表中,來簡省大量輸入及除錯的時間,想想用手輸入1000筆和執行兩三行指令,你要選那一個。

進階語法

Insert into [kk].[dbo].[orders] (order_num, order_date, customerid)
Select order_num, order_date, cust_num from orders

將原本Insert後面values的語法修改為Select語法,而且這個語法的好處可以把原本在Insert語法的重心,重新拉回來Select的身上,只要將規則或條件(Where…)設好,就可能取回你想要的資料,又不用怕輸入錯誤,真的是一舉二得。

Update語法

標準語法:
Update products set phone='035678901' where cust_num=1010

Update product set unit_price=unit_price * 1.05

以上兩種也是常見的Update使用方法,但Update還有一種用法是修改的來源是從某張資料表內的資料,像是Insert可以從別的資料表取得資料一般。

進階語法

update items set unit_price=products.unit_price
from products
where items.prod_num=products.prod_num and items.supp_code=products.supp_code and order_num>888

第一行,我們將products中的價格指定給items;
第二行,指定來源資料表;
第三行,Where條件,確認products中PK;

以上紹介的這兩種進階語法,都是一般入門書中比較不易看到的,提供出來給大家參考。

小巧(108KB)好用的SQL指令執行工具--QueryExpress

你是否想過,SSMS是非常強大的SQL Server管理工具,但安裝檔又大,安裝步驟又麻煩,又是.NET Framework,又是powershell,installer還要4.5以上…如果只是為了下幾行的Select * From Customer,就要安裝SSMS,實在划不來。

今天介紹一個工具「Query Express」,其實這個工具已經出來很久了,但實在好用,而且作者還提供原始程式碼,程式complier出來後,了不起108KB,透過這個工具,加上SQL語法,你已經可以完成資料庫裡應該80%以上的工作沒有問題,而且我測試SQL Server 2005/2008 (Express)都可以正常使用。

再更簡單的說,你也只能透過Query Express來向SQL Server執行SQL語法或T-SQL,只要SQL Server能接受的指令,通通可以透過Query Express來執行。

User → QueryExpress(T-SQL) → SQL Server

因為使用上太簡單了,我就不多介紹,因為重點是在SQL語法T-SQL身上,而不是軟體,軟體只是中介。另外作者有提供原始程式碼,所以我就手癢癢,使用VS2008重新complier及正(繁)體中文化了一下。而且Query Express本身是綠色免安裝軟體,你可以放在隨身碟裡,想用就用,實在太得我心了。

補充:從原作者網站還可以發現另一個好用的linqpad,這有空再介紹。

ps:原始程式是使用vs.net 2003寫的,程式部份是使用C#。
ps:原始網頁:http://www.albahari.com/queryexpress.aspx

Query Express繁體中文版:

$1,688 免費 AdWords 關鍵字廣告試用

有需要的人拿去吧,但請回覆你已使用了。

$1,688 免費 AdWords 關鍵字廣告試用,讓您立刻上網招攬客戶

親愛的 Google Analytics 用戶
較早前我們送您的 $1,688 Google AdWords 關鍵字廣告試用券,必須在 10 月 30 日前申請,逾期無效!現在,請立即前往 Google AdWords 網頁登記!
Google AdWords 的五大優點
  • 傳播範圍最大: Google 的內容聯播網涵蓋73%* 亞太區網路使用者,並是全球最大的廣告平台
  • 廣告有效,才須付費: 廣告刊登是免費的,有人點擊廣告,您才須付費
  • 有效控制廣告預算: 無預算門檻限制,且隨時可依需求調整每日預算
  • 廣告最彈性: 隨著您的促銷活動或新產品上市,隨時設計新廣告或調整廣告投放地區及網站等設定
  • 設定最快速: 15分鐘就能建立廣告並開始播放
如何兌現 AdWords 關鍵字廣告試用券及連結您的 Analytics 帳戶:
1. 前往 http://adwords.google.com.tw 首頁,按「立即開始」建立您的帳戶。
2. 進入您登記的電子信箱收帳戶啟用信,登入 AdWords,依照指示逐步設定廣告活動、群組及廣告和關鍵字。
3. 請在「帳單」-->「帳單偏好設定」填寫完整資訊以啟動帳戶。
4. 並請在「兌現促銷的相應號碼」一欄內,輸入您的試用券折換代碼-AXU9-2VUC-6F2T-KMG5-C8N
5. 按「儲存並啟用」後,您的廣告過不久就會上線!
要結合您的 Analytics 及 AdWords 帳戶,請依照這裡的 指示設定。結合 Analytics 及 AdWords,將能幫助您明確監測廣告效果,及瞭解如何持續優化您的關鍵字廣告。
需要協助嗎?請於週一到週五9:00到17:30間致電免費新客戶服務專線 0800-777-799,Google 將有專人協助您建立帳戶。
Google 台灣 Analytics 小組
P.S. 現在就申請使用 Google AdWords,幾個步驟就能取得$1,688元免費關鍵字廣告費。請注意此優惠方案僅限新客戶。折換代碼須於2009年10月30日前使用。

使用條款
這個優惠必須在新 AdWords 帳戶啟動後14日內使用,並必須為自行操作帳戶的線上廣告客戶,其他管道的客戶並不適用。如果您的廣告費用超過試用券贈送的金額,我們會向您收取超出的費用;若不願付出額外費用,客戶需在贈送金額用畢後停止廣告活動。廣告客戶必須擁有有效的 AdWords 網上廣告帳戶,同意廣告通過 Google審核,並接受 Google AdWords Program 條款。若此優惠方案違反法律,則優惠方案無效。試用券金額不得供轉贈、出售或交換。Google Taiwan Limited 保持更改或取消這個活動的最終權利。每一個試用券代碼只供一位客戶使用。廣告客戶須繳付新台幣200元開戶費,但我們提供的試用券已多出200元以抵銷您支付的開戶費。選擇預付方式的客戶,必須先繳付新台幣400元,其中200元為開戶費,200元為可使用的廣告費。有效日期截至:2009年10月30日。
*comScore Media Matrix, July 2008
© 2009 Google Inc. 版權所有。Google 及 Google 商標為 Google Inc. 的註冊商標,
1600 Amphitheatre Parkway, Mountain View, CA 94043.

電郵設定:我們寄這個電郵給你,由於你曾表示願意收到 Google Analytics 及其他 Google 產品的資訊。如果不想再收到這些推廣郵件,請前往您的 Google Analytics 帳戶修改設定版面 (https://www.google.com/analytics/settings/my_account - 需要使用Google Analytics 帳戶登入),取消勾選「特別推廣」(Special Offers)的方格並儲存。