The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

ASP.NET MVC 5.2.3 的 View 使用 Roslyn (C# 6.0) 編譯時的問題

最近發現目前的 ASP.NET MVC 5 最新版 (v5.2.3) 在搭配 Visual Studio 2015 進行開發時,在 View 頁面中使用 @Html.IdFor() 或 @Html.NameFor() 在搭配使用特定 Lambda 語法時會輸出奇怪的字元,由於所有強型別的 HtmlHeper 表單欄位輸出的內部都會用到 IdFor() 與 Namefor() 這兩個 API,所以這個問題將會導致這些表單欄位 HTML 輸出的時候產生錯誤的 id 與 name 屬性,當表單 POST 回 Controller 時將無法正確執行模型繫結 (Model Binding),所以會有接不到資料的情況,本篇文章將詳加說明發生的原因與暫時的解決方案。

... 繼續閱讀 ...

介紹好用工具:Win 10 內建的 PackageManagement 套件管理器 (OneGet)

OneGet 是微軟新一代 Windows 套件管理器 ( 類似 Ubuntu Linux 底下的 apt-get 工具 ),這名字還蠻漂亮的,不過前陣子卻把名稱改為 PackageManagement,但無論如何,我覺得 OneGet 比較好聽,你只要知道這兩個是一樣的東西就好了。 目前這套工具已經內建於 Windows 10 作業系統中,透過 PowerShell 的 Cmdlet 就可以呼叫使用,這個鮮為人知的全新工具試圖解決未來所有軟體安裝的問題,本篇文章將詳細介紹 OneGet 的基本概念與使用方式。

... 繼續閱讀 ...

我要成為前端工程師!給 JavaScript 新手的建議與學習資源整理

今年有越來越多企業開始跟我們接洽企業內訓的事,想請我幫他們培訓前端工程師,但你知道一個好的前端工程師絕對不是兩三個月可以養成的,需要多年的努力與磨練才會有點成績。而這幾年可謂前端正夯,有為數不少的人開始大規模的往前端開發移動,而我被問到最多的問題就是「請問 JavaScript 要怎麼學?」或「請問 JavaScript 該怎樣入門?」諸如此類的問題。大家都知道,對於一門程式技術來說,「會寫」與「會教」是兩個截然不同的領域,會寫 JavaScript 的人到處都是,但是會教的人就相對少很多了。我這幾年教授 JavaScript 開發實戰課程已經超過 15 梯次,在將近 500 位學員裡面,我所看到的大部分學員都是對 JavaScript 不勝理解,普遍處於一種一知半解、模糊不清的狀態。另一方面,我在公司內部也帶過不少工程師,總是有人會想學習 JavaScript 但不知道如何入門的情況,這讓我陷入深思,該如何幫助一個人學習 JavaScript 從入門到精通呢?本篇文章將說說我個人的一些想法與建議。

... 繼續閱讀 ...

介紹好用工具:Git Credential Manager for Windows (記憶 Git 常用密碼)

我在兩年前曾經分享過【透過 HTTP 與 HTTPS 連接 Git 儲存庫時如何記憶常用密碼】文章,當時該篇文章所提到的 Windows Credential Store for Git 專案已經不再維護了,取而代之的則是由微軟官方支援Git Credential Manager for Windows 版本。本篇文章主要用來介紹這個工具的使用方式與注意事項。

... 繼續閱讀 ...

如何將已經設定為 A3 紙張大小的 Word 文件縮小列印到 A4 紙張

最近收到一份電子報,由於內容還蠻不錯的,我想印出來放包包裡,隨時可以拿起來看。為什麼要印出來呢?因為他把內容版面都寫死了,由於版面很寬,要用桌上型電腦來看才會比較舒適,用手機看就很累了。另外,也因為版面很寬,就算印出來,輸出的版面也是大亂,所以只好將內容另存到 Word 文件中另行排版。但由於內容還不短,版面配置也有點複雜,所以重新排版內容也太浪費時間了。因此,我覺得將文件調整為 A3 大小,讓版面看起來至少是舒適的 (我好龜毛),所以我最後得到一份 A3 大小的 Word 文件。但是我手邊目前卻只有 A4 大小的紙張可以印,所以就找了一下 Word 2013 要如何設定,結果找了好久才找到,決定還是寫篇文章備查好了,以免日後再遇到相同的需求遇到找不到功能的情況。

... 繼續閱讀 ...

如何將 Open Live Writer 的草稿文章自動同步到 Dropbox 雲端硬碟

我原本已經把 Windows Live Writer (WLW) 編輯中的草稿文章設定自動與 Dropbox 同步,讓我在多台電腦之間都能同步撰寫到一半的文章,可惜的是 Open Live Writer (OLW) 將機碼路徑都改了,害我找不到新的機碼在哪,感謝開源的 Open Live Writer 讓我在短時間內就從原始碼中找到機碼的確切位置,不但能正確設定,甚至還能讓 Windows Live Writer 與 Open Live Writer 兩套軟體之間都能無縫接軌,因為這兩套軟體所支援的設定格式完全相容,以下就看我如何設定吧!

... 繼續閱讀 ...

Jenkins on Windows 心得分享 (01):從終端機輸出隱藏 Batch 批次命令

有鑑於 Jenkins CI 連續性整合工具相對較少有專門針對 Windows 環境整理的文章,我將打算出一系列 Jenkins on Windows 文章,幫助 Windows 平台的開發人員可以更加順利的導入 CI 架構。我的第一篇文章將介紹如何有效地從 Jenkins 的 終端機輸出 (Console Output) 隱藏建置過程執行的 Batch 批次命令。

... 繼續閱讀 ...

ASP.NET MVC 開發心得分享 (27):讓 Razor 在 HTML 屬性中輸出 @ 符號

我們有個 ASP.NET MVC 專案上周在做程式碼安全性檢查 Code Review 時,發現開發人員在 Razor 頁面中使用了一些 @Html.Raw() 輸出未經 HTML 編碼的內容,正常來說,在 ASP.NET MVC 網站應用程式中,不應該太過頻繁地出現這種用法,所以只要看到就會特別查看一下,這才發現原來 Razor 從 V2 版開始,就存在著這個小問題 (Bug),所以大家還是要注意一下。

... 繼續閱讀 ...

如何修復 PowerShell 無法執行任何 Cmdlet 的問題

在我目前這台 Windows 10 電腦中,有兩個 Windows PowerShell 捷徑,分別是 Windows PowerShellWindows PowerShell (x86) 這兩個,從捷徑名稱很容易看得出其差異,Windows PowerShell 這個是在 64 位元環境下使用的 PowerShell,可以載入 64 位元的各式 PSModules 或 PSSnapin 到執行環境中。而 Windows PowerShell (x86) 則是在 32 位元的 x86 架構下使用的 PowerShell,可以載入那些只支援 x86 架構的 PSModules 或 PSSnapin 到執行環境中。不過今天在我的電腦,又再次發生 Windows PowerShell (x86) 視窗開啟後,任何 Cmdlet 都無法執行的窘境,這個問題我在 4 個月前曾經遇過一次,當時花了我一個多小時才找到解法。但今天又花了我將近一個小時找出問題並修復他,真是太浪費時間了,因此我決心寫一篇文章,記錄這個詭異的靈異現象與更詭異的解決方法 (至今尚未能理解這個問題發生的原因)。

... 繼續閱讀 ...

還在用 Azure 線上信用卡繳費的客戶請注意:全新 30% 現金回饋方案啟動

如果你正在使用 Azure 雲端服務,每個月已經有帳單產生,我發現有許多人還是採用 隨選隨付 (Pay-As-You-Go) 的方案,這種看似「用多少、算多少」的計費方式看似非常方便,但其實你也可以採購 Azure in Open 授權,透過預購信用額度的方式降低成本。我們公司 (多奇數位創意有限公司) 前陣子獲選為台灣微軟 Azure / Office 365 雲端合作夥伴,不但能提供 Azure / Office 365 的技術支援與教育訓練,更能提供許多優惠的採購建議,幫助客戶大幅降低成本。最近微軟提供給我們的 雲端週年慶 30% 現金回饋專案 就提供了一個非常非常優惠的採購方案,可以幫客戶節省高達 30% ~ 35% 的雲端採購成本,有在使用 Azure 或是正打算採用 Azure 的人,請務必繼續看下去!

... 繼續閱讀 ...