網頁

螢幕錄影轉Gif極品 - ScreenToGif

螢幕錄影轉Gif極品 - ScreenToGif

ScreenToGif Translator

寫Blog也已經超過七年的時間,七年總會有個癢,什麼癢?那就是圖都是靜態的,老實說,抓圖的工作量常常比寫作還來得高。明明滑鼠點點選選只要十秒,為了讀者能按圖操作,常常需要把那十秒抓成十幾二十張圖,再一一排版說明,經常是為十秒費十分(其實更多)。

黑大的介紹

在一個月黑風高的晚上,突然發現黑大的文章開始出現大量的Gif圖,效果實在很好,我實在忍不著,也動用了沒關係找關係(那時,我連黑大的臉都沒見過)問黑大是用那一套軟體,黑大很好心的回答外,後來可能問的人多了,黑大還特地撰文介紹。免費版有30秒的限制,付費版200美金。

不過從下載回來的檔名(DemoWorks_2009_1_0_19.msi)來猜,這套軟體從2009年就沒再更新了。現在更慘的是,你在官網上已經找不到它了。:(

ScreenToGif

ScreenToGif是筆著在無意見發現的極品,為何稱極品:

  • 開放原始碼。
  • 免費。
  • 簡單。
  • 無錄影時間限制。
  • 多語系支援。
  • 功能實用為主。
  • 檔案相當小。
  • 綠色軟體,不必安裝
  • 持續開發。

功能說明,一Gif圖勝萬文,請直接看專案網頁。

筆者在1.2發現使用,發現它需要正體中文的火力支援,馬上決定加入譯著的行列,目前最新1.4已加入正體中文的支援。

下載 Multilanguage - Single .Exe

Apache Cordova for Visual Studio 2013 CTP3之Windows平台憑證過期錯誤

Apache Cordova for Visual Studio 2013 CTP3之Windows平台憑證過期錯誤

指定的憑證已到期

話說,昨天更新Update 4之後出現套件問題,意外在更新Apache Cordova for Visual Studio 2013 CTP3過程中解決了。但又碰到一個問題,新增BlankCordovaApp範本專案,然後選擇任何【Windows】平台進行編譯都會碰到以上【指定的憑證已到期】的錯誤。

指定的憑證已到期

圖片裡的錯誤訊息算是清楚,而且有給連結,連結到一篇【共用應用程式套件 (Windows 市集應用程式)】的文件,找到文章中的【更新憑證】。看起來算是順利。

但以上步驟無法在Cordova專案進行操作,因為Cordova專案並無說明中的【.appxmanifest】,又心想,在Cordova專案裡提示憑證過期,那麼我開個App專案執行更新憑證步驟,那麼應該就能簡單解決問題。

WindowsApp憑證

哈,見鬼了,我的憑證2015年才會過期,那麼Cordova專案的訊息是…假訊息,錯誤的錯誤訊息,這是CTP3的雷嗎?

Visual Studio 2013 Update 4之AutoLoadPackagePackage錯誤

Visual Studio 2013 Update 4之AutoLoadPackagePackage錯誤

今日技術界大新聞就是Microsoft的.NET開源、Visual Studio 2013社群版、Visual Studio 2015 Preview…等等。除了這些大新聞之外,也同步發行Visual Studio 2013 Update 4等一堆更新的正式版。詳情可參考小朱黑大的部落格。

AutoLoadPackagePackage錯誤

ActivityLog.xml提示
ActivityLog.xml訊息

安裝Visual Studio 2013 Update 4更新之後,馬上來個套件的錯誤,實在苦腦,我的電腦Visual Studio 2013擴充套件超過三十幾套,實在不想一套一套試。而且從ActivityLog.xml提供的錯誤訊息,其實也了無頭緒。

devenv /SafeMode

這邊要先感謝Dino提醒"/SafeMode",這是很有用的參數(尤其是我們這種套件裝很多的人),可以讓Visual Studio不載入擴充套件的方式來啟動。也就是說,在停用擴充套件之後如果訊息不見了,就可以證明是套件出了問題,通常ActivityLog.xml裡的錯誤訊息會有那一套擴充套件出錯相關訊息。

我使用devenv /SafeMode啟動Visual Studio之後錯誤訊息確實不見了。

執行Windows Store App出現WWAHost.exe錯誤

執行Windows Store App出現WWAHost.exe錯誤

WWAHost.exe執行時期錯誤
WWAHost.exe執行時期錯誤訊息

看著MVP Ian Chen在TechDays的DEV207 | 跨平台 Hybrid App 開發簡介 使用 Visual Studio Tool for Apache Cordova + HTML/JavaScript與部格格文章(1)(2)(3),很高興的學習試著Cordova這個服務。只能說,很高興微軟能把Visual Studio與Cordova整合那麼方便,讓我們很快的將原本Web專業就能延伸到App之上。但甜蜜總是短暫的,在快樂切換著各種平台測試時,獨獨Windows Store模式下,總是出現上述WWAHost.exe的錯誤。

IE 11傳遞中文參數值在ASP.NET MVC產生HTTP 502

IE 11傳遞中文參數值在ASP.NET MVC產生HTTP 502

這是網友在MSDN論壇提出的問題《MVC在IE11因網址未編碼發生502問題,新增Route之後同樣未編碼卻沒問題,想問為什麼?,想想,這算不錯的題目,未來拿來當課程考題好了 XD

問題備份

原網址在IE 11下因中文未編碼出現502,嘗試新增一個Route後即解決問題,不知為何一樣傳送未編碼的中文Request竟然就沒有問題了? 新增的route如下:

routes.MapRoute(
    name: "StoreBrowse",
    url: "store/{genre}",
    defaults: new { controller = "store", action = "browse" , id = UrlParameter .Optional }
);

原URL為: /Store/Browse?genre=健康飲品

修改後:/Store/健康飲品

接收URL的Action:

public ActionResult Browse( string genre) 
{ 
 // Retrieve Genre and its Associated Albums from database 
 var genreModel = storeDB.Genres.Include("Albums" )
          .Single(g => g.Name == genre); 
 return View(genreModel); 
}

原本的問題是因為網址列傳送中文,但是更改Route後還是有傳送中文,為何就沒有問題了?

IE11的QueryString

以下使用 Visual Studio 2013新增一個 MVC 專案,修改一下"/Home/Index"的程式碼:

  public ActionResult Index(string name)
  {
      return Content(name);
  }
 

我的Word排版突然亂七八糟

我的Word排版突然亂七八糟

Word畫面排版大亂

在我撰寫《ASP.NET MVC 5網站開發美學》時,一直有個問題困擾我,如上圖,經常在文字稿上下滑動時,整個畫面、排版就會大亂,有時是連上面的工具列都跟著來亂(很機車)。只好被迫關閉Word重開。

老實說,第一次發生時,嚇的半死,因為這篇搞子已經寫了好多天,想說如果毀了,我大概會把給電腦砸了。但事後發現,每次發生這現象時,其實只要把Word關閉重開就會還原了。

停用硬體圖形加速功能

後來問了其他MVP前輩才找到原因(感謝璉大):

檔案 → 選項 → 進階 → 顯示

停用硬體圖形加速功能

就這樣,把硬體圖形加速功能關閉,Word不用重開立即還原回正常排版的樣子。

清除Selenium自訂Format快取(暫存)檔

清除Selenium自訂Format快取(暫存)檔

使用Selenium進行Web Test時,可以使用91哥的[Tool][Selenium IDE]Export to C#/WebDriver/MSTest,來把Web Test轉成C#,然後讓Visual Studio來執行。但因Script有點問題,在刪除重新匯入時發現Selenium會對自訂Format Script進行快取(或暫存),刪除動作並不完整,而重新執行Web Test會執行到舊Script。

歷史懸案 - 關鍵Selenium WebDriver 46秒

歷史懸案 - 關鍵Selenium WebDriver 46秒

Selenium WebDriver 46秒錯誤訊息

上面是在2013年12月4日抓的,怎麼會留那麼久,其實是因為從fb上抓回來的。上圖是一個Selenium的錯誤,這個錯誤從twMVC#12跟91哥學習到Selenium的技巧後,就不停的在我的本機電腦發生。基本上,它會啟動Firefox以進行UI測試,但不管我電腦重灌幾次,這個Selenium的WebDriver的技巧一直無法在我本機成功執行,而且每一次都是一模一樣的錯誤訊息。(言外之意,其他的電腦、Hyper-V虛擬機都能正常執行此動作。)

訊息:初始設定方法SeleniumTests.xxxx.SetupTest擲回例外狀況。
OpenQA.Selenium.WebDriverException:
Failed to start up socket within 45000ms。
耗用時間:46 秒

Visual Studio 2013無法儲存字型與色彩設定

Visual Studio 2013無法儲存字型與色彩設定

Visual Studio 2013字型與色彩設定

在我的主機發生過好幾次,不知道動到什麼設定或套件,會莫名字型被還原為「細明體」大小為「10」。而且,只要這個問題一發生,就算重新設定好,只要Visual Studio重新開啟就又會被還原。

解決辦法

極短篇,請參考「Visual Studio 中的自訂開發設定 - 還原您的變更」,我是選擇「Web 程式開發」進行還原。這不會影響其他擴充套件的設置,選原之後的設置就能重新儲存。

重設為Web程式開發

我個人碰到過數次,簡單筆記一下。

極速產生樣版範例圖片與範例文字

極速產生樣版範例圖片與範例文字

在進行網頁prototype設計時,因為是在prototype階段,經常會需要不同大小的假圖片與假文字。以下是要教大家如何使用Visual Studio 2013加上Web Essentials擴充套件來進行極速產生假圖片與假文字。

Youtube

請用看的與聽的。

NDepend v5 - (5)PowerTools與VisualNDepend

NDepend v5 - (5)PowerTools與VisualNDepend

如果要在沒有Visual Studio的地方整合或使用NDepend,放心,也很方便。在NDepend解壓縮目錄下還有幾支好用的程式,讓我們來看看。

NDepend v5 - (4)超神奇report

NDepend v5 - (4)超神奇report

有了想像力

NDepend最讓人為之一亮的功能就是那「超神奇report」。

NDepend v5 - (3)Code Rules

NDepend v5 - (3)Code Rules

Code Rules就是程式碼規則,NDepend幫我們收集歸類好非常多的規則,並利用這些規則你檢測你的程式碼,規則是透過CQLinq(Code Query LINQ)來執行,也就是,我們能修改或客製它。

NDepend v5 - (2)初體驗篇

NDepend v5 - (2)初體驗篇

現在我們要來體驗一下,如何利用NDepend來進行專案靜態程式碼分析。

NDepend v5 - (1)安裝篇

NDepend v5 - (1)安裝篇

NDepend是一套靜態程式碼分析工具,它強大程式碼分析功能與報表,重點是分析效果與效率佳,很難相信他只個11MB的外掛程式。

LINQ Insight - 整合Visual Studio的LINQ分析工具

LINQ Insight - 整合Visual Studio的LINQ測試利器

LINQ Insight是一套有別於LINQPad的產品,LINQPad雖然一開始是以LINQ為出發點,但發展到最後已經算是一個簡化版的編輯器環境。而LINQ Insight是一套專注在Visual Studio與LINQ的產品,它與LINQPad有幾項差異:

  • LINQ Insight與Visual Studio 2010/2012/2013整合。(LINQPad是獨立執行)
  • LINQ Insight的一大特色是,直接在Visual Studio編輯器裡執行你所撰寫好的LINQ(不用啟動專案哦)並取回結果分析。
  • LINQ Insight在有LINQ含參數的部分,也非常容易測試,不用特別進行事前準備。(後面會有範例)
  • LINQ Insight會自動偵測目前專案裡的連線字串(ADO.NET / EDMX)並使用。(LINQ需額外設置)
  • LINQ Insight支援更多元的LINQ Provider。
  • LINQ Insight特有ORM Profiler

以下以一個ASP.NET MVC 5專案與Northwind資料庫產生的ProductsController來說明各項特性。

Google Chrome封鎖ThinkVantage Password Manager?

Google Chrome封鎖ThinkVantage Password Manager?

ThinkVantage Password Manager是一套Lenovo筆電的密碼管理軟體,因為整合了指紋功能,反正登入過期,““的一下就幫你登入了,因為方便好用,一些非機敏網站我都是用ThinkVantage Password Manager來進行登入管理。

Chrome封鎖ThinkVantage Password Manager

Chrome block ThinkVantage Password Manager 4.5

今天一大早開啟Google Chrome立即收到一個通知,說ThinkVantage Password Manager不是從Google Web Store安裝,然後就把ThinkVantage Password Manager給取消啟用,重點在「無法重新啟用」!!!

難到是Google要表Lenovo?

何時使用Azure Blobs or Azure Files or Azure Disk?

何時使用Azure Blobs or Azure Files or Azure Disk?

Microsoft Azure File Service

TechEd 2014 NA在Storage發表了一個非常好用的新服務:Azure Files,關於Azure Files,Azure MVP 小朱已經在5月20日就為大家介紹Azure Files: 超自由的網路儲存體,而這週末5/31日,我的帳號也終於開通了Azure File服務,操作的部分可各位參考小朱的文章。

何時使用Azure Blobs or Azure Files or Azure Disk?

這一篇算是翻譯筆記,主要是取自Introducing Microsoft Azure File Service文章,因為我想很多人和會有一樣的疑問,Storage(儲存體)現在有那麼多種服務,到底要使用那一種?

大師兄回來了 - Microsoft Web Protection Library 4.3.0

大師兄回來了 - Microsoft Web Protection Library 4.3.0

大師兄回來了

Microsoft Web Protection Library曾經是.NET Framework防禦XSS攻擊的最佳外掛,但在AntiXSS 4.2.1版(2012年)中它做了一個重大行為的改變,即GetSafeHtmlFragment方法會完完整整的過濾所有HTML Tag,換句話說,它不在只是過濾高風險性的HTML Tag,例如:<script />

Microsoft Web Protection Library 4.3.0

經過二年的反應,2014/6/2官方終於更新了Microsoft Web Protection Library 4.3.0,而且又改回原始白名單的方式。

下載:Microsoft Anti-Cross Site Scripting Library V4.3

也可以直接由NuGet直接下載使用。

測試程式碼

Action方法:

 public ActionResult Test()
 {
     return View();
 }

 [HttpPost]
 [ValidateInput(false)]
 public ActionResult Test(FormCollection form)
 {
     ViewBag.SafeHtmlFrag = Sanitizer.GetSafeHtmlFragment(form["content"])
     return View();
 }  
 

[ValidateInput(false)]此屬性有極高安全性風險。這裡只是為了測試方便。

View Page:

 @{
     ViewBag.Title = "Test";
 }

 <h2>Test</h2>

 @ViewBag.SafeHtmlFrag

 <br />

 @using (Html.BeginForm("Test", "Home"))
 {
     <input type="text" name="content" id="content" />
     <input type="submit"/>
 }  
 

Lenovo雙顯示卡筆電外接投影機不斷跳出跳入

Lenovo雙顯示卡筆電外接投影機不斷跳出跳入

Lenovo雙顯示卡筆電

如果你的Lenovo筆電是雙顯示卡機型,那麼很有可能碰到一個問題,那麼就是在外接投影機時會一直跳出跳入,跳出跳入的意思是,本來應該投影至投影機的畫面會跳出,然後再跳入(也就是畫面不斷在Lenovo筆電與投影機之間切換),有時一分鐘內可能跳個三、五次。我想,簡報者很痛苦,看簡報者更痛苦。(向被我傷過眼的觀眾深深的抱歉)

雙顯示卡

國外有篇不錯的參考資料:「Lenovo W520 and an External Projector with NVIDIA Quadro 2000M and NVIDIA Optimus」。

一般而言,Lenovo含雙顯示卡的BIOS預設是NVIDIA Optimus,意思是會自動在Intel顯示晶片與NVIDIA顯示晶片之間切換。

在外接第二、第二顆螢幕上,我沒碰過什麼問題,但在外接投影機時,只能說碰運氣。在BIOS有三種選項:

  • Integrated Graphics:最省電、圖形處理效能最差。單純使用在一些商用應用程式(如Office),而不需要外接顯示器或投影機時使用。(VGA還是可以輸出,外接應是指DP)
  • Discrete Graphics:最不省電,圖形處理效能最好。需要豐富圖形處理的應用程式,或是需要外接多個顯示器時使用。(internal and one external or two external,internal是指NB本身,external指VGA與DP)
  • NVIDIA Optimus (default):依圖形處理需求自動切換,換句話說,在文書與豐富圖形處理會時會自動管理。需要使用NVIDIA Control Panel進行管理。最多支援三個顯示器(Laptop and two external)。

簡單記,外接顯示器數量是:0、1、2。

解決外接投影機無法正常運作

有二個方式可以嘗試:

OOP繼承技巧:BaseController與BaseApiController

繼承技巧:BaseController與BaseApiController

BaseController與BaseApiController類別技巧不算是ASP.NET MVC或ASP.NET Web API的技術,它是一個OOP(Object-oriented programming,物件導向程式設計)繼承的應用,這在早期Web Forms就已經被大量使用,因為它只是單純的OOP繼承應用,並不會被語言或框架所限制。

ASP.NET MVC - Controller類別

我們先來看看我們在進行開發的Controller類別繼承關係:

IController繼承關係

ControllerBase類別繼承自IController介面,Controller類別繼承自ControllerBase類別,而ControllerBase與Controller都是抽象類別:

 public abstract class ControllerBase : IController {}
 public abstract class Controller : ControllerBase, IActionFilter, IAuthenticationFilter, IAuthorizationFilter, IDisposable, IExceptionFilter, IResultFilter, IAsyncController, IAsyncManagerContainer {}  
 

而我們開發者所在的ASP.NET MVC的Controller都是繼承自Controller抽象類別,Controller抽象類別提供開發者所需的大部分功能:

 public class HomeController : Controller {}  
 

從程式設計的角度來看,ASP.NET MVC的Controller也只是一個類別。如果你發現自己在其他Controller寫了完全相同邏輯的程式碼(相同的成員、屬性或方法等),那麼我們有非常合理的理由來建立一個共用的基礎類別,之後將Controller裡相同的成員、屬性或方法往上層的基礎類別移動,Controller只需重新繼承此基礎類別,就能發揮物件導向的繼承的優勢。

NLog - 新版<target xsi:type="Database" />設置方式

NLog - 新版<target xsi:type="Database" />設置方式

ASP.NET MVC4網站開發美學出版後不久,NLog調整了<target>裡Database的設置方式,目前我在網路上看到所有NLog Database的設置,有99.9%都還是舊版範例,這裡提供新的組態設置方式給大家參考。

NLog - 舊版<target xsi:type="Database"設置方式

以下是舊版Database設置方式,也是你在網路上都可以查詢的到的組態:

 <target xsi:type="Database" name="database">
     <dbprovider>mssql</dbprovider>

     <!-- database connection parameters -->
     <!-- alternatively you could provide a single 'connectionstring' parameter -->

     <dbhost>.</dbhost>
     <dbdatabase>NLogDatabase</dbdatabase>
     <dbusername>nloguser</dbusername>
     <dbpassword>nlogpassword</dbpassword>

     <commandText>
         insert into NLog_Errro(time_stamp,level,logger,message) values(@time_stamp, @level, @logger, @message);
     </commandText>

     <parameter name="@time_stamp" layout="${date}" />
     <parameter name="@level" layout="${level}" />
     <parameter name="@logger" layout="${logger}" />
     <parameter name="@message" layout="${message}" />
 </target>  
 

ASP.NET Web API 2:安全的PATCH方法的三種實作

ASP.NET Web API 2:安全的PATCH方法的三種實作

之前「ASP.NET WEB API的HTTP PATCH動詞與PATCH方法實作」被網友反應有問題,經驗證後證實,ASP.NET MVC的Bind屬性對於ASP.NET Web API無效。真的是犯了程式碼會動的大錯,非常抱歉,以下重新整理三種Patch方法的實作方向。

Model - TodoItem

以下是範例用的Model:

 public class TodoItem
 {
     public int Id { get; set; }
     public string Name { get; set; }
     public bool IsDone { get; set; }
 }  
 

請先利用基架(Web API 2 - Entity Framework)產生TodoItemsConteoller。建置之後,先利用POSTMAN / Fiddler等工具新增幾筆資料。

Patch方法的安全性問題

PATCH動詞在HTTP規範中代表著「部分更新」,而Patch方法即是要拿來實作對應PATCH動詞的方法。但預設的Model Binding機制是將所有傳入的資料盡量(盡其所能)進行Binding動作。

  public IHttpActionResult Patch(int id, TodoItem todoItem) {}
 

這在我們進行部分更新的可能會有一些安全性問題,例如,可疑用戶端傳入{"Id":1,"Name":"Is Patch?","IsDone":false},Name與IsDone都會被修改。所以我們要保護好資料,不應該被更新的部分就要剔除。

Patch方法 - 指定更新屬性

第一種方法就是之前那一篇的方法,透過指定更新屬性名稱來進行部分更新的動作:

  TodoItem item = db.TodoItems.Find(id);
  // 一一指定
  item.IsDone = todoItem.IsDone;
  db.Entry(item).State = EntityState.Modified;
  
  try
  {
      db.SaveChanges();
  }
  // 省略
 

我們的範例比較簡單,工作項目只許修改是否完成(IsDone)的狀態。此種方式在有大量屬性(欄位)時比較麻煩。記得,如果你不是一一指定的方式,那麼此PATCH方法等於是PUT方法。

在ASP.NET Web API 2進行動態的ApiController層級組態

前一篇「在ASP.NET WEB AP 2進行APICONTROLLER層級的組態」是透過屬性(Attribute)設置方式來為ApiControler加入靜態設置。它無法在執行期間改變。

實作IControllerConfiguration介面

方法前一篇已經介紹過了:

 public class JsonOnlyAttribute : Attribute, IControllerConfiguration
 {
     public void Initialize(HttpControllerSettings controllerSettings, HttpControllerDescriptor controllerDescriptor)
     {
         controllerSettings.Formatters.Clear();
         controllerSettings.Formatters.Add(new JsonMediaTypeFormatter());
     }
 }  
 

以上是僅提供JSON Formatter的範例,這樣的好處是不用整個ASP.NET Web API 2專案都完全關閉XML Formatter,需要關閉時才關閉。

如果你是希望動態進行Controller層級組態的話,其實前一篇的參考文件有留下一篇MVP Filip的參考文章,以下簡述Filip文章以瞭解如何進行動態Controller組態。

在ASP.NET Web AP 2進行ApiController層級的組態

在ASP.NET Web API進行Controller層級的組態

在ASP.NET Web API要進行組態設置的話,一般會到WebApiConfig.cs進行設置。不過有個好玩的問題,在WebApiConfig.cs進行的組態都是以HttpConfiguration物件在進行操作,MSDN說明表示 HttpServer 執行個體的設定。。也就是說,不管你在何處進行設置,設置之後,它影響是的整個ASP.NET Web API(即HttpServer執行範圍)

Model:TodoItem

以下是範例Model:

 public class TodoItem
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public bool IsDone { get; set; }
    }
 

然後利用基架含Entity Framework產生TodoItemsConteoller。建置之後,先利用POSTMAN等工具,新增幾筆資料:

api/TodoItems

小寫開頭(CamelCase)

JSON.NET預設序列化依照TodoItem的屬性名稱來輸出,現在有個簡單的需求,希望可以改採小寫開頭(CamelCase)的方式,那麼可以在WebApiConfig.cs這樣設置:

 public static class WebApiConfig
 {
     public static void Register(HttpConfiguration config)
     {
         config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

         // 省略
     }
 }  
 

設置CamelCasePropertyNamesContractResolver之後,解決第一個需求:小寫開頭。

Change CameCase Global

利用lprun.exe把.linq當command-line的執行檔

利用lprun.exe把.linq當command-line的執行檔

以前一般情況下會介紹LINQPad是因為要寫LINQ,但現在LINQPad已經是除了Visual Studio寫測試程式第二選擇。但有個問題,這支測試程式剛好就是一個command-line(命令提示字元)的專案程式,那麼可不可以直接執行寫好的*.linq檔案,而不是「開Visual Studio,開新專案,"Copy & Paste",compiler ...」。這需求lprun聽到了。

lprun.exe使用簡介

lprun.exe使用方式很簡單,只需要把你寫好的*.linq指定給他,它會動態幫你編譯並執行。

LINQPadRunner

LINQPadRunner以前是個github專案,後來被LINQPad作者直接包進安裝檔之中,如果你的LINQPad一直是採用Update方式,可能會沒有lprun.exe,只需要重新安全最新安裝檔或獨立執行檔,其中都已經包含lprun.exe執行檔。

lprun.exe使用範例

首先來個Hello world:

   void Main()
   {
    Console.WriteLine ("Hello world, LINQ run-time.");
   }
  

將*.linq儲存,利用lprun.exe來執行:

Markdown撰寫工具:Windows MarkdownPad 2.4正體中文抵達

Markdown撰寫工具:Windows MarkdownPad 2.4正體中文抵達

MarkdownPad 2正體中文

如果各位是經常需要撰寫「網頁」內容(例如“我”在撰寫Blog)的人,可能都有一種困擾,那就是經常為了搞HTML標籤,搞得比內容還久,內容應該才是我們所需要關心的重點,不是嗎?Markdown是一個輕量的標記語言,這就要來解決這樣的問題,它透過一些非常簡易的標記語法來進行與HTML標籤的對應,讓我們可以專心在內容上,完成之後即可轉換為HTML格式。

MarkdownPad 2.4正式支持正體中文

2014年3月3日,MarkdownPad 2.4正式發行,也很高興在這一次更新的版本中將Chinese(Taiwan)加入。

翻譯MarkdownPad 2正體中文

Markdown方便是方便,但寫HTML方便性在即見即所得上,筆者約2013年接觸使用MarkdownPad 2,它是一套即見即所得的Markdown語法撰寫工具。MarkdownPad 2提供的即見即所相容方便,而且一些額外的功能也都不錯,而且免費基本功能已經能滿足一般性需求。

也在去年發現MarkdownPad 2有請大家幫忙翻譯(有許多佛心人幫忙),會下去幫忙翻譯的原因,說來好笑,因為看到一些人在Chinese(Taiwan)選項裡留著大量對岸用語的翻譯文字,看不過就下去給他好好的翻一翻。

2014年2月12日收到一封來信,是MarkdownPad 2的作者邀請我當Chinese(Taiwan)的Validator(其實我已經忘記有翻譯過MarkdownPad 2),我很高興的接受並且用極快的時間前後審校了三次,讓翻譯狀態達100%,也讓此次發行可以將Chinese(Taiwan)包含進去。

MarkdownPad 2對於我的價值在於省下的時間,正體中文的MarkdownPad 2希望可以給各位更親切的操作介面,好軟體推薦給你。

如何使用ASP.NET Web API 2.1的Query Parsing

MVC 5.1, Web API 2.1 RTM

時間2014/1/20,ASP.NET MVC 5.1與ASP.NET Web API 2.1與公告RTM,並且可以透過NuGet正式下載使用。使用MVC 5.1與Web API 2.1之前必須先進行Visual Studio開發工具的更新,之後才能正常使用MVC 5.1與Web API 2.1。

MVC 5.1與Web API 2.1有什麼更新?

此次更新主要是功能增強與問題修正:

ASP.NET MVC 5.1功能改善與增強

  1. 屬性路由改善
  2. Bootstrap在Editor範本的支援
  3. View支援Enum(列舉)
  4. Unobtrusive validation的MinLength與MaxLength屬性
  5. 在Unobtrusive Ajax支援"this"內容

ASP.NET Web APi 2.1功能改善與增強

  1. 全域錯誤處理
  2. 屬性路由改善
  3. Help Page改善
  4. IgnoreRoute支援
  5. BSON媒體格式支援
  6. 非同步過濾器支援
  7. 用戶端支援Query解析

完整的更新內容請參考asp.net說明:

Acer ICONIA W510 - 進入Windows 8.1平板電腦世界

Windows 8.1平板電腦

W510直立模式

一直想要採購一台平板,這台平板想要解決三個需求:

老婆

家中只有一台電腦,雖然老婆用的少,但總是有需要用一下,她的需要非常簡單,就文書與上網查資料。用是沒問題,但總會有碰撞產生(兩人都需要使用),這時就必須採用同步處理,你等我,我等你。

小孩

小孩慢慢長大,雖然從小到大我們沒有給她們玩什麼手機或平板,但從其他親戚好友那裡也學會了不少「滑功」,而且自從知道爸爸媽媽的手機很好滑之後,有時真的在忙,小孩會用非常甜美的聲音說:「那我可以玩你的手機嗎?」沒時間陪你們是我們的問題,通常就會妥協當個3C保母,但總覺得手機螢幕太小,要滑也滑大一點的螢幕。

極速產生JSON測試資料

JSON是顯學

多年前還在手刻AJAX時,前端後端要進行資料交換還是很辛苦的事。後來發現JSON這個好物,不過那個年代(也不過三年前)不管是瀏覽器或是伺服器端的JSON環境都還不太成熟。現在,JSON已成為顯學,不管是前端應用程式還是後端伺服器應用程式都已大大支持JSON格式。JSON格式的好,用過都知道。如果在開發階段要準備JSON資料,嗯,就不是那麼好玩了。今天就是要介紹一套起方便的網頁工具,讓我們可以極速來產生所需要的JSON測試資料。

前端開發神器 - Emmet LiveStyle

從Emmet到Emmet LiveStyle

之前介紹過Zen Coding,而Emmet是ZenCoding更進一步的進化版(PS. ZenCoding 已停止維護)。目前Emmet更發展一套Emmet LiveStyle的前端開發神器,各位可以先看一下範例影片:

Emmet LiveStyle主要功能

  • 即時更新。即見即所得 -- 不需要進行檔案儲存,不需要頁面重載。
  • 不需要本地端檔案。
  • 跨平台。
  • Multi-View與Multi-Device更新。你可以在不同的視窗中打開同一頁面並獲得即時更新。如果你的顯示器夠大,可以輕鬆地調整響應式設計是前所未有的!在一個視窗中 DevTools 所做的變更將自動反應到其他視窗。
  • Multi-site更新。你甚至可以Live edit不同的Web-sites,例如,desktop和你的mobile版本網站共享相同的CSS程式碼。
  • 極其簡單的設置:在編輯器中打開CSS檔,並將其與LiveStyle瀏覽器進行關聯。

MVA - Web Services開發實戰:使用 ASP.NET Web API 2

MSDN講座

ASP.NET Web API 2 EDM

2013/12/12被邀請至微軟分享主題:「Web Services 開發實戰: 使用 ASP.NET Web API 2」,這一次的分享很不同的是,這個主題要與MVA(微軟虛擬學院,Microsoft Virtual Academy)合作放到網路上讓大家學習。

MVA - Web Services開發實戰:使用 ASP.NET Web API 2

極速.新增MVC 5與Web API 2專案

新增專案,慢慢慢!

我們經常需要新增專案來測試一些內容,但不知道各位電腦有沒有安裝SSD,雖然SSD很快,而且Visual Studio 2013裡的One ASP範本也盡量幫各位瘦身,但在新增MVC 5或Web API 2專案時還是會慢慢的?如果各位是傳統HDD,那更是起身運動的好時機。不過時間應該浪費在更美好的地方。以下就是要教各位如何透過Visual Studio 2013的基架(Scaffolding)來極速新增ASP.NET MVC 5或ASP.NET Web API 2專案。

極速.新增MVC 5與Web API 2專案