Posts

Showing posts from 2014

Assigning Foreign Key names in Conceptual Model

Image
PowerDesigner 設計 CDM ,當兩個主從關係資料表的 Primary Key 均指定為自動編號欄位 (名稱均為 ID),進一步建立關聯資料表時,又希望所產生的 Foreign Key 欄位為名稱:主資料表名稱 + ID,如上圖 WBS 資料表中的 PROJECT_ID。要達成這結果,可以參考以下 Tip:

SQL Change Data Capture

Image
重要資料表要做差異 Log 檔,可以不用手刻,有方便的作法。

the enu localization is not supported by this sql server media

Image
在一次安裝 SQL Server 2008 R2 過程中遇到上面的錯誤訊息 "The ENU localization is not supported by this SQL Server media."經過多方查詢測試,找到其中一種解決方法,是調整本機上的 [地區及語言] 設定,符合安裝程式中的語言套件,即可進行安裝程序。

SQL 2014 Express

Image
SQL 2014 Express 中提供幾個套件 (LocalDB, Express, SSMS…),筆記一下以最簡單的(視覺化)方式建立一個 SQL 2014 LocalDB,及使用 SSMS 連接 LocalDB 資料庫。

地端 SQL 同步至雲端 SQL Azure

Image
SQL Azure 有提供各種情境的資料同步方式,雲端 與  雲端 或 雲端 與 本地端。而本地端 SQL Server 資料庫與 SQL Azure 進行同步,主要是透過本地端的工具程式 (SQL Azure Data Sync Agent Preview) 做媒介, 本文是說明安裝與設定細節。


VS DataBase Project

Image
Visual Studio 中約 2007 年就有提供資料庫專案,由於資料庫結構設計我都是依賴 Sybase PowerDesigner,所以一直不瞭解或說是找不到 VS 資料庫專案可以用在甚麼地方。不過近期由於調整開發工具與佈署流程時,卻發現它可以幫上不忙,本文是在我的工作環境中使用的情境。

SQL Azure 匯出與匯入

Image
SQL Azure 營運中自動建立備份,依據資料庫等級區分不同的保留檔案數,請參閱: Azure SQL Database 備份和還原。當意外發生時,還原資料庫是要透過客戶支援中心進行。我嘗試建立自己的備份與還原的計畫,將正式營運的資料庫自動備份到 Azure 儲存體上,假設災難發生時,我可以從 Azure 儲存體還原資料庫到 Azure 或本地端。

SSMS 換上黑色主題

Image
看了 mrkt 的程式學習筆記 - 換個好字型讓程式開發有效率,依樣化葫蘆將開發工具 (Visual Studio 2013) 上的字型、顏色都調整後,整個工作心情大好。
接著想另一個也常花時間撰碼的工具 SQL Server Management Studio  (SSMS) 也該要換個裝,就直接在 SSMS 中匯入 [Monokai Bright – Sublime],再手動作部分調整,結果如下圖,個人覺得挺滿意的。

Azure Web 如何設定不同模式

Image
本文說明如何在微軟的 Azure 上建立網站,如何針對不同網站設定不同的模式。

本地端部署到 Azure 流程

Image
在本地端開發單一網站 (ASP.NET + SQL Server),部署到 Microsoft Azure 有很多種方式可以達成。 但完成第一次部署後,可能會遇到幾個問題:
單一 Azure 網站,若分成多個子系統(網站專案)同時進行開發,部署流程該如何做 ? 資料庫結構或預存程序異動,日後的持續部署要如何進行 ?

Generate script for SQL Azure

Image
在本地端 SQL Server 資料庫,欲移轉至 SQL Azure 可參考 Migrating Databases to Azure SQL Database (formerly SQL Azure) 提供有四種作法:產生 T-SQL Script 直接執行使用 Microsoft Sync Framework 2.1本地產生備份檔儲存至 Blob 儲存體,再從 Azure 上還原透過 SSIS 拋轉資料本文僅針對第一種產生 T-SQL Script 作法,做各步驟貼圖,日後備忘。

Web Deploy with SQL

Image
本文說明如何在 Visual Studio 2013 直接發行 Web ,並同時更新資料庫。為了日後可以一鍵發行,事前準備工作是值得花時間瞭解,大致分為 IIS Server 端與 VS 開發端兩個部份的環境設定。

Web API Client example

Image
本文說明在 VS2013 建立一個 ASP.NET Web API 後, 先使用 Fiddler 測試 Web API 是否正常,再以 C# 撰寫用戶端程式。

從預存程序產生 MVC 查詢程式

Image
接續前面 單檔程式產生器,新開發一個搜尋程式產生器,設計出發點是這樣,開發人員在資料庫中撰寫好一個查詢的預存程序,將該程序匯入 Entity Framework,再透過 HappyGen MVC 5 for Search from EF6 (Store Procedure) 可以產生具查詢 與 匯出 Excel 功能的 MVC 5 程式。

PowerDesigner 自動編號為 int

Image
在 PowerDesigner 設計 CDM 時,若選擇資料型別為 Serial 時,選擇 SQL Server 資料庫 產生 PDM ,其欄位型別會是 Numeric。若想將調整其型別為 int 的話,參考以下作法。

解決資料庫查詢時定序衝突

跨兩個不同 SQL Server 資料庫執行查詢指令,出現錯誤訊息如下無法解析 equal to 作業中 "Chinese_Taiwan_Stroke_CI_AS" 與 "Latin1_General_100_CI_AS" 之間的定序衝突。

Google Map 多點路線規劃

Image
在 Google Map 上可以輸入目的地的地名或地址,搜尋後標示地標,並做兩點間的路線規劃。有些時候想規劃多個地點路線時,如:旅遊景點、客戶拜訪,如上述逐一標點有點耗時。
Google Map 另有提供上傳 Excel 檔案做為個人地圖的資料,將事先準備好的 Excel 檔案上傳,隨即建立好地圖標點,再手動進行路線規劃。

從資料表產生 MVC 單檔維護程式

Image
本文說明如何在不撰寫任一行程式碼下,從零開始建立一個基本的新增、修改、刪除等功能 Web 程式。
事先設計好資料表後,在 Visual Studio 2013 下建立 ASP.NET MVC 5 與 Entity Framework 6 專案,搭配
客製的程式產生器 - Happy Scaffolding for MVC5 ,可以快速產生一個 Web 單檔編輯程式。

MVC 程式產生器開發 part 2

Image
續前文<MVC 程式產生器開發 part 1> ,本文大略說明開發 SideWaffle 專案時的注意事項。

MVC 程式產生器開發 part 1

Image
ASP.NET Scaffolding 是程式碼產生框架,安裝 Visual Studio 2013 後預設就會有 MVC, API 的 Scaffolding (支架),只要在 MVC 專案下手動先建立好資料模型,或透過 Entity Framework 讀取資料庫建立資料模型,就可以透過 Sacffolding 產生 Controlle, View 等原始碼,詳細步驟可參考 < ASP.NET Scaffolding in Visual Studio 2013 >。
若產生的程式碼不如預期的話,其實可以透過以下方式改善,量身訂作一個屬於自己的程式產生器。

New Trello Card via email

Image
日前嘗試將 Trello 作為團隊的電子白板,成員可以一目了然整個 Board (可定義系統或專案) 的狀態,但外部使用者(使用單位的窗口)並未參與其中,導致使用者使用 Email 提出問題,系統負責人再複製貼上新增項目卡 (Card),這當中除了手動作業的小麻煩外,不免失去直接讓使用者自動掛號的便利性,甚至有可能遺漏。這部分在 Trello 可以透過發送 Email 新增 Card 來解決,步驟如下。不過其產生的 Email address 是一連串無意義的編碼如: robbbin+xuyw5zcrdicfx7yidluv@boards.trello.com, 若請使用者發現問題時發送 Email 給這個帳號,似乎需要費一些口舌…。後來想到,另外申請一個 Gmail 帳號,ID 就是明確表達用處例如 CDRsystem.IssueReportMe@gmail.com,在這個 Gmail 帳號中直接設定接收新Email 時就轉寄到 Trello 上。如此一來 Gmail 上也可以完整保留使用者的來信紀錄。

Azure Web Site 如何設定自訂網域

Image
Windows Azure 上新增網站後,欲將網址改為自己擁有的網域名稱,首先網站的模式(web hosting plan mode) 不可以是 FREE,須先調整為 SHARE, BASIC, STANDARD 其中一種。接著進入 [MANAGE DOMAINS] 新增自訂網域,最後回到自己的 DNS 上增加一筆CNAME。這三個步驟即可達成在 Azure Web Site 上使用自己的網域名稱 。

個人知識管理方法

Image
網路知識如洪流,網路工具推陳出新,筆者不停地嘗試與調整個人知識方法,目前採用方法如下:

安裝 PowerDesigner 165 簡易說明

Image
PowerDesigner 16.5 安裝精靈與前幾版 (V12, V15) 步驟類似,個人會將預設幾項功能移除掉,其餘按預設值 [下一步] 安裝即可,步驟截圖如下:

delpoy multi site ClickOnce with same version

Image
ClickOnce 發行時會產生新的發行版號,若需要發行多個點(網站、FTP、分享目錄),並保持相同版本的程式,可以先在本機進行發行,透過 MageUI.exe 修改 Manifest 檔案,複製到各點上。
如上圖示,從開發工作上發行版號為1.0.0.511,最終各點使用者均獲得版號的程式。

VS2013 Enable Browser edit html context

Image
ASP.NET 教學影片 Visual Studio 2013 Web Editor Features - Browser Link ,有個功能是在瀏覽器上直接編輯網頁內容文字,透過 Browser Link Dashboard 選擇正在連線的瀏覽器,啟用 Design Mode。不過,重新安裝 Visual Studio 2013 後怎麼找不到此功能? 解決方法是在 VS2013 額外安裝 Web Essentials 2013,步驟如下:

Generate Test Data using PowerDesigner

Image
本文是說明使用 PowerDesigner 產生測試資料的步驟。

ThinkPad TouchPad Gestures

Image
筆者筆電 ThinkPad E540 的觸控板是屬於多點觸控,其手勢可以在控制台 > 硬體和音效 > 滑鼠 > [ThinkPad] > [手勢類型] 中找到。

組件版本編號

Image
讀取組件的版本編號
System.Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
this.lblVersion.Text = String.Format("{0}.{1}", version.Build, version.MinorRevision);


讀取 ClickOnce 部屬時的版本編號
if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
{
System.Version version = System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion;
this.lblVersion.Text = String.Format("{0}.{1}.{2}", version.Minor, version.Build, version.MinorRevision);
}


版本編號有4個數字組成,依序為

Major : 主要
Minor : 次要
Build : 組建
MinorRevision : 修訂

參考
How to display ClickOnce Version number on Windows Forms

如何簡化 ClickOnce 發行到多台機器

Image
在 Visual Studio 中使用 ClickOnce 發行精靈時,需要指定一個路徑 (分享路徑、FTP伺服器、Web網站 ),若每次發行都須要同時部屬到多台機器時,要如何實作 ?

網站全文檢索 - 使用 Google 自訂搜尋

Image
不論大小網站幾乎都會提供一項功能:全文檢索。
若是以資料庫儲存內容為基礎的網站,自然可以透過資料庫查詢來實作。內容分散儲存在太多資料表時,再實作上再考慮最佳化,也會遇到一些不小的工程,且隨著資料量增大,這搜尋的機制將逐漸面臨挑戰。
尤其是在類似CMS系統,資料內容或甚至結構是由使用者創建的,資料庫端的查詢語法要如何設計 ?
若是沒有資料庫,要如何提供全文檢索 ?
說到 Search,自然聯想到 Google。網站全文檢索透過 Google 可以大大簡化開發工程,筆者找到幾項作法。