Posts
Web.Config Transformation - Transform on build
Web.Config Transformation 功能在我們有多個環境需要部署時很方便,但預設只會在發佈時做對應的轉換,因此當我們需要針對特定環境下去排解問題時,就不能很直接的切換 Profile 去做偵錯的動作。
若要在建置時也做 Web.Config 的轉換,讓除錯時更為方便。我們可以複製 Web.Config,降之更名為 Web.Base.config,然後卸載並開啟專案檔,將 Web.Base.config 設定為 DependentUpon Web.Config。
... <Content Include="Web.Base.config"> <DependentUpon>Web.config</DependentUpon> </Content> ... 然後在專案檔中設定建置前用 Microsoft.WebApplication.targets 將 Web.Base.config 套用 Web.$(Configuration).config 的轉換設定產出實際我們需要的 Web.config。
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio11.0\WebApplications\Microsoft.WebApplication.targets" /> <Target Name="BeforeBuild"> <TransformXml Source="Web.Base.config" Transform="Web.$(Configuration).config" Destination="Web.config" /> </Target> 設定好存檔,將專案檔載回方案檔,以後建置時即會運行轉換的動作。
除了建置時驅動轉換外,若是想要將 Web.Config Transformation 功能套用到 Web.Config 外的 Config 檔,也可以使用該方法如法泡製。
read morePosts
Web.Config Transformation - Add Config Transform File
當我們建立一個 Web 專案,Visual Studio 預設就會幫我們產生好 Debug 與 Release 這兩個轉換檔。但隨著專案的進行,專案中的 Build Configuration 可能會隨之增加。此時我們需要為新建的建置組態建立對應的 Config Transform 檔。
建立新的 Config Transform 檔很簡單,只要在方案總管中找到 Web.config 檔,在檔案上按下滑鼠右鍵。在彈出的滑鼠右鍵快顯選單中,選取 Add Config Transform 選單選項。Visual Studio 即會比對 Build Configuration 去產生缺少的 Config Transform 檔案。
{% img /images/posts/AddConfigTransform/1.png %}
read morePosts
Web.Config Transformation - Transform Web.config When Deploying a Web Application Project
Web.Config Transformation 允許開發人員依照特定的語法設定部署時 Web.Config 所要做的轉換動作,像是移除除錯設定、或是連線字串。該功能在 Visual Studio 2012 開始整進 Visual Studio,若要在 Visual Studio 2010 使用,需為 Visual Studio 加裝 Visual Studio Web Publish Update 套件。
在使用上,當我們用 Visual Studio 建立一個 Web 專案,預設就會幫我們建好 Debug 跟 Release 最基本的轉換設定。以預設的設定來說,Debug 沒作任何的轉換動作,而 Release 會將 Web.Config 中除錯的設定拔除。
... <system.web> <compilation xdt:Transform="RemoveAttributes(debug)" /> ... 我們可以參閱 Release 的轉換設定檔,設定檔內的註解會稍稍提示使用的方式,以及說明文件的位置,確實參閱後做些基本的設定應該都不成問題。
<?xml version="1.0" encoding="utf-8"?> <!-- 有關使用 web.config 轉換的詳細資訊,請造訪 http://go.microsoft.com/fwlink/?LinkId=125889 --> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <!-- 在下面的範例中,"SetAttributes" 轉換只會在 "Match" 定位程式找到 值為 "MyDB" 的屬性 "name" 時,才將 "connectionString" 的值變 更為使用 "ReleaseSQLServer"。 <connectionStrings> <add name="MyDB" connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings> --> <system.
read morePosts
Visual Studio 2013 - 64-bit Edit and Continue for .NET Framework code
Visual Studio 的 Edit And Continue 功能可以允許開發人員在除錯的同時進行程式的修改,Visual Studio 會自動套用變更的程式碼,不需中斷除錯或是重新編譯,能有效的節省時間,增加除錯與開發上的效率。
不過在舊版的 Visual Studio 只支援 32 Bit 的程式使用 Edit And Continue 功能,若是開發 64 Bit 程式則不能啟用。
{% img /images/posts/VSEditAndContinue64/1.png %}
Visual Studio 2013 後解除了這項限制,開始支援在 64 Bit 程式上使用。
{% img /images/posts/VSEditAndContinue64/2.png %}
Link Debugging support for 64-bit Edit and Continue in Visual Studio 2013 - Microsoft Application Lifecycle Management - Site Home - MSDN Blogs What’s New in Visual Studio 2013 Edit and Continue
read morePosts
MediaWiki - Unlock upload file size limitation
MediaWiki 在檔案上傳這邊預設是有 2MB 的限制在。
{% img /images/posts/MediaWikiUnlickFileLimit/1.png %}
若要對此設定值做些調整,我們可以開啟 Php.ini。
{% img /images/posts/MediaWikiUnlickFileLimit/2.png %}
調整 upload_max_filesize 設定值。
{% img /images/posts/MediaWikiUnlickFileLimit/3.png %}
以及調整 post_max_size 設定值。
{% img /images/posts/MediaWikiUnlickFileLimit/4.png %}
調整完存檔退出,檔案上傳這邊就會生效。
{% img /images/posts/MediaWikiUnlickFileLimit/5.png %}
read morePosts
Octopress - Add About Me section in sidebar
新增 About Me 檔,檔案位置存放在 source/_includes/custom/asides 下。
{% img /images/posts/OctopressAboutMe/1.png %}
編輯後存檔退出。
{% img /images/posts/OctopressAboutMe/2.png %}
接著開啟 _config.yml 設定檔找到 blog_index_asides 設定,將剛編輯好的 About Me 檔設上。
{% img /images/posts/OctopressAboutMe/3.png %}
存檔退出,編譯網頁後啟用預覽功能,即會看到側欄這邊多出剛我們設在 About Me 檔的內容。
{% img /images/posts/OctopressAboutMe/4.png %}
Link Theming & Customization - Octopress
read morePosts
Octopress - Add categories page
要為 Octopress 新增 Categories 頁面,首先需先叫用下列命令產生新的頁面:
rake new_page[page] 像是下面這樣:
{% img /images/posts/OctopressCategories/1.png %}
然後開啟剛所建立的頁面,加入用來產生 Categories 頁面的程式。
{% img /images/posts/OctopressCategories/2.png %}
這邊頁面的 Sharing ,Comments 與 Footer 都可以順帶修改將之關閉,一般來說 Categories 頁面是不需要這些的,修改完後存檔離開。
接著開啟 /source/_includes/custom/navigation.html 設定檔設定上方的選單,把我們剛建的 Categories 頁面設定上去。
{% img /images/posts/OctopressCategories/3.png %}
存檔離開,建置後啟用預覽功能,即會看到上方選單多出 Categories 這個選單選項,點擊切換可看的到 Categories 頁面正常的運作。
{% img /images/posts/OctopressCategories/4.png %}
Link Theming & Customization - Octopress
read morePosts
MediaWiki - Install MediaWiki
欲安裝 MediaWiki,首先需先準備 Apache 網站伺服器及 MySQL 資料庫,這邊偷懶一點就不個別裝了,直接安裝 Xampp 軟件。
{% img /images/posts/SetupMediaWiki/1.png %}
{% img /images/posts/SetupMediaWiki/2.png %}
{% img /images/posts/SetupMediaWiki/3.png %}
{% img /images/posts/SetupMediaWiki/4.png %}
{% img /images/posts/SetupMediaWiki/5.png %}
{% img /images/posts/SetupMediaWiki/6.png %}
{% img /images/posts/SetupMediaWiki/7.png %}
安裝完後將 Xampp Control Panel 開起,啟用 Apache 與 MySQL 服務。
{% img /images/posts/SetupMediaWiki/8.png %}
接著將 MediaWiki 解壓縮放至 Apache 的網站放置目錄下。
{% img /images/posts/SetupMediaWiki/9.png %}
輸入對應的網址瀏覽 MediaWiki,因為還未進行安裝,所以會偵測到尚未有相關的設定,這邊點選 ‘set up the wiki’ 開始進行安裝的動作。
{% img /images/posts/SetupMediaWiki/10.png %}
安裝時比較重要的是一開始會要求選定所要使用的語系。
read morePosts
.NET - A Simple Finite State Machine Solution
想要用實現有限狀態機的功能,看了一下網路上的解決方案以及 State Pattern,覺得都不怎麼適用,因此利用 Tuple 與 Dictionary 去實作了一個簡易又可重複使用的 State Machine:
public sealed class StateMachine<TState, TCommand> { #region Fields Dictionary<Tuple<TState, TCommand>, TState> _transitions; #endregion Fields #region Properties /// <summary> /// Gets the m_ transitions. /// </summary> /// <value> /// The m_ transitions. /// </value> private Dictionary<Tuple<TState, TCommand>, TState> m_Transitions { get { return _transitions ?? (_transitions = new Dictionary<Tuple<TState, TCommand>, TState>()); } } /// <summary> /// Gets the state of the current. /// </summary> /// <value> /// The state of the current.
read morePosts
JQuery DataTables - Table plug-in for jQuery
JQuery DataTables 是 JQuery 的 DataTable 元件,需要使用 jQuery 1.7 以後的版本。
使用時需再 HTML 檔建立 Table,設定 Header 與 Footer,如果是要用 Client side 處理的話,這邊可連帶設定欲呈現的資料:
<table id="table_id" class="display"> <thead> <tr> <th>Column 1</th> <th>Column 2</th> </tr> </thead> <tbody> <tr> <td>Row 1 Data 1</td> <td>Row 1 Data 2</td> </tr> <tr> <td>Row 2 Data 1</td> <td>Row 2 Data 2</td> </tr> </tbody> </table> Table 建好後,加上對應的 JavaScript 檔引用:
<!-- DataTables CSS --> <link rel="stylesheet" type="text/css" href="/DataTables-1.10.0/css/jquery.dataTables.css"> <!-- jQuery --> <script type="text/javascript" charset="utf8" src="/DataTables-1.
read more