[C#] 將英文字半型轉全形的方法

最近遇到需要將半型英文轉為全型的需求, 查了一下可.net framework已經內建了相關實做, 不過是放在Microsoft.VisualBasic這個namespace下

不過.net framework最大優點就是跨語言使用, 所以當然還是能夠以C#來操作這些功能

1. 首先專案必須加入Microsoft.VisualBasic參考

2. 加入Microsoft.VisualBasic namespace

3. 使用Strings.StrConv

收工~~

Microsoft.VisualBasic.Strings.StrConv有一些轉型實作可以參考如簡體繁體轉換, 平假名片假名轉換等等, 可以參考MSDN: VbStrConv 列舉類型

另外Strings下面也有一些不錯的字串操作函數, 可以參考MSDN: Strings類別

 

Node.js使用同步I/O的處理方式

Node.js快速的原因絕大部份都歸功於非同步I/O以及事件驅動的原因,在傳統瀑布式程式碼開發方式,在不使用執行緒的情況下必須等前面的程式碼執行完才能繼續下一個;而非同步則是每個task獨立各自處理不需互相等待(有種射後不裡的感覺XD)。

但實務上還是會有需要先等前一個task完成才能繼續下一個task的情況,這時候若以node.js非同步&事件驅動開發的方式,就會變成很深層的巢狀程式碼,對於後續維護非常不方便。比較常用的解決方法是使用setTimeout或process.nextTick來解決,但也很麻煩。

好在npm上有一個超好用的套件async,裡面有非常多種處理方式,可以解決問題

使用npm安裝也很簡單

相關的使用可以參考: https://www.npmjs.com/package/async

另外github上也有高手針對async做了很完程的範例說明: https://github.com/alsotang/async_demo

而且還是中文說明(簡體字),由於說明都很完整還有中文,這篇文章就不貼範例程式碼了XD

Visual Studio 好用的Extensions(不定期更新)

目前主要開發都會以Visual Studio 2013為主,所以以下Extensions都是Visual Studio 2013上可裝的,其他版本則不是很清楚。

以下Extensions應該都可以在NuGet上找到:

(1) Web Essentials: 開發Web人員必裝!好用到無法想像這竟然是免費的

(2) VSCommand: Visual Studio檔案管理工具,滿多好用的功能

(3) CodeMaid: 清理程式碼的好幫手,增加程式可讀性

(4) StyleCop: 可以依照一些開發的程式碼風格準則做檢查,讓團隊程式碼風格一致化

(5) StyleCop Fixer 2: 可以修復一些由StyleCop檢查出來的問題

(6) T4 Editor: 如果有在撰寫T4 Template的話可以安裝,讓撰寫時可以有auto complete功能可用

(7) Indent Guides: 程式碼縮排時加上對齊虛線,增加可讀性

(8) Productivity Power Tools: 顧名思義,就是讓程式生產力加強的工具

還有一些Code Snippet Packs

(1) Bootstrap Snippet Pack

(2) jQuery Code Snippets

Zen Coding – 快速生成HTML與CSS的好幫手

Zen Coding是一款支援多種文字編輯軟體的外掛,可以讓HTML開發人員快速生成HTML和CSS

例如我今天想要產生一組id為test的ul清單,並包含3個li標籤,每個元素裡面要放一個span標籤且該span標籤的class都是test2

那麼可以在裝好Zen Coding的文字編輯器輸入

按下tab鍵之後就會自動產生這樣的HTML代碼

非常簡單吧!這種開發好處是可以節省大量的HTML撰寫時間,不過對於習慣自己撰寫HTML的開發人員來說會需要一段適應期,從想到就寫變成想好再寫,不過當習慣之後就會有一種回不去的感覺了XD

至於CSS產生我就沒有特別研究了,因為我大部分時間都在Visual Studio 2013中開發,對於CSS的auto complete支援非常完整,Zen Coding相對就不是那麼重要了。

Zen Coding的語法其實非常簡單,只是基本HTML思維加一點轉換而已,相關語法可以參考以下網頁:

Zen Coding官網: https://code.google.com/p/zen-coding/

基本語法說明(非常清楚易懂): http://www.johnpapa.net/zen-coding-in-visual-studio-2012/

Zen Coding Cheat Sheet: https://code.google.com/p/zen-coding/downloads/detail?name=ZenCodingCheatSheet.pdf

Placehold.It 做網頁雛型時暫放圖片的小工具

在設計前端網頁的雛型時,往往會預留一些空間是用來置放圖片的,通常都會規畫空間的大小,然後塞個暫存的圖片進去,Placehold.It就是一個省時間的工具。

在設計時只需要加入類似以下的code

就能立刻顯示一張像下圖一樣指定大小的圖片

除了指定大小外,也可以指定圖片格式、文字(不支援中文)、顏色等等,非常的方便

Placehold.It網站上說明的都很詳細了,有興趣的可以參考看看。

另外還有一個分流站Quickimage.It可以交替使用。

[App Inventor 2]打包APK後App名稱改成中文的方法

App Inventor 2在設計時,新增專案只能用英文名稱,而打包時的apk檔安裝後app名稱會顯示這組專案名稱,難以辨識

不容易辨識的app name

網路上搜尋了一下發現這款AppToMarket可以將apk檔解開後修改App name,但程式本身不支援修改成中文名稱,研究了一下發現其中一個步驟要自己修改

步驟如下

1. 打開程式後直接進入頁籤「2> De/Re compile and wrap-up」後,按Browser選擇要修改的apk檔

AppToMarket

 

2.  按下「1> Decompile」 解開apk檔案後,點下方按鈕「2> Update Manifest」

3. 解開後在AppToMarket資料夾中會有一個「temp_myDecompiles」資料夾,接下來要用文字編輯器修改「AndroidManifest.xml」的內容(推薦使用Notepad++)

解開apk檔後修改AndroidManifest.xml

4. 找到<application android:label="XXXX" …>文字,將label內容修改成正確的中文名稱

修改label name

 

5. 跳過「3> Edit Manifest」,直接按下「3> Create New Apk」、「4> Sign」、「5> Verify」、「6> ZipAlign」,會後會多產出兩個檔案

AppToMarket多產出的檔案

6. xxxxx_new_zipAlign.apk就是最終產出的檔案,可以利用這個檔案上傳到google play中供人下載,且apk檔按裝完後就能夠正常顯示中文名稱了!

[App Inventor 2]MIT App Inventor 2試玩心得

App Inventor 2是一款可以靠像拼圖一樣組裝畫面跟程式碼,不用寫程式就可以完成Android App程式的線上工具。

App Inventor 2 程式開發畫面

優點:
1. 簡單易學,不用程是基礎也可以設計出勘用的Android App
2. 資源還算豐富(英文)

缺點:
1. 雖然簡單易學,但沒有程式的邏輯思維要開發還是容易卡關
2. 另外對於熟悉Java+Android SDK的開發人員來說,像App Inventor 2這種拖拉元件的方式實在太慢了,以目前做了一隻「要吃什麼呢?」App,沒什麼漂亮畫面,只有基本元件操作,竟然就花了兩個晚上!如果熟悉Java開發的話,大概1~2小時內就可以搞定了吧!
3. 因為是元件拖拉方式,相關程式碼很難複製,看到可以參考的部分,也只能照著人家開發的畫面自己拖拉,這也會大幅度降低開發速度
4. 對於習慣寫程式的人,這種拼圖組裝式的開發模式,可閱讀性其實不太高
5. 資源不豐富(中文)

玩了兩個晚上勉強做出了一個醜醜的APP,再順手做了一個介紹網頁(網頁還比APP好看),有興趣的請加減參考順便評個分XD
http://wellwind.idv.tw/whatdoyouwanttoeat/

App Inventor 2對於不懂程式設計的人來說算是滿容易上手的工具,不過雖然不用學習程式語言,但還是得要學App Inventor 2元件的使用,當然有好的邏輯概念還是開發必備能力;而對於比較熟練的程式設計師來說,還是自己寫code比較快速。

整體來說,App Inventor 2對想開發Android App但沒有程式底子的人來說依然是不錯的上手工具!

[RDLC]修正RDLC報表不會被發佈的問題

最近再寫一隻Web App需要用到RDLC報表,過去再做時都是將報表部屬到Reproting Server,但這隻報表是要跟著Web App一起發布到主機上的,不過這發布後卻發現報表沒跟著發佈上去,搜尋了一下找到解法,再報表屬性的「建置動作」中要選擇「內容」,如此發布時即可將報表檔發佈到主機上

發布RDLC報表

正確發布RDLC報表的方式

[Jquery.Unobtrusive]動態增加驗證資訊

在使用jquery.unobtrusive時,可以在html表單欄位標籤中加入特殊屬性,讓表單在送出時自動驗證欄位而不必額外撰寫javascript就可以達到client端的驗證。

最近遇到一種狀況是,當某個下拉選單選到1時,另一欄位須為必填,否則非必填,原本是這樣寫

不過當表單送出時,依然沒有正確檢查,上網查了一下,必須讓validator重新處理過相關欄位,才會正常檢查

如此就能正常運作了。

文章分類

全部展開 | 全部收合