- 前言
- DataContractJsonSerializer 反序列化物件時,發現 Json 的欄位名稱多了"k__BackingField"。
查找問題時發現是 Serializable 屬性造成的。 - 主文
- 解決方法:物件屬性加入 DataContract, DataMember
- 如下:
- JSON的內容: "{\"Name\":\"Adm\",\"PID\":\"1\"}"
- "ID" 因為設定屬性 Name="PID" 所以 JSON 的 Key 為PID
- Age 沒設定 DataMember 所以沒有值。
- 參考
2013年3月1日 星期五
DataContractJsonSerializer 序列化成 JSon時,欄位名稱主動擴展的問題
C# 用 sqlite 筆記
單純筆記
- 下載 sqlite3:
- C# 元件:
- 可使用 NuGet 下載 System.Data.SQLite.dll, System.Data.SQLite.Linq.dll
- 程式語法、範例:
- 其他:
- In - Memory 用法
- 用 sqlite3 建立DB後, 會產生檔案。
2013年2月26日 星期二
Silverlight 無法進入 breakpoint
- 前言
- 執行 Silverlight 專案時,無法進入 Breakpoint。
- 主文
- 下面有我試過的方式,包括很無腦的動作 ...
- 結束 ASP .Net Framework Develope Server
- 網頁更新數次:
- 有時候是 browser 問題
- 修改專案的 Property(這才是正解!!):
- 打開引用 Silverlight Web 的專案,記得是 Web 的,不是Silverlight 專案本身。
- 打開專案的 Properties,選擇 Web
- Debuggers 項目(最下面),勾選 Silverlight,完成。
2013年2月6日 星期三
Node.js筆記 - 加入自己的 module
- 前言
- 我們可以將不同的 method、function,放在不同的實體檔案(xxx.js),之後再根據需要,適當的用
require('./xxx')語法加入。 - 這裡只談加入自己的文件,而module 的機制可以看參考提供的連結。
- 主文
- 加入自己的 module 有幾種方式:
- 使用 require("檔案名") 的方式直接引入單一檔案
- 檔案名必須由 ./ 開頭。Ex. require("./route.js");
- 可簡略附檔名(.js);實際上Node.js 會搜尋附檔名決定引用方式。
- 三種附檔名
- .js:通過 fs 讀取檔案,同時編譯執行內容。
- .json:使用 JSON.parse( ) 解析檔案。
- .node:通過 C/C++ 所寫的Add On,使用dlopen方式載入。
- 檔案名可以包含相對路徑。Ex. require("./../public/routes/user.js");
- 使用 require("資料夾名") 引入資料夾底下的所有檔案。
- 同樣可包含相對路徑。
- 資料夾底下要包括 index.js 檔案。
- 可在 index.js 內容引入資料夾內的其他檔案。
- exports.something = require("./routes/something.js");
- exports.something = require("./routes/others.js");
- 使用 package.json:
- 這方法在此不討論,跟 npm 的機制有關。
- 參考
2013年1月29日 星期二
Node.js 筆記 - npm install (-g) 差別 - Local V.S Global
- 前言
- 使用 npm 安裝元件時, 有兩種模式- local & global
- 說明
- npm install (-g)
- local:
- 預設的安裝方式
npm install - 安裝位置在當下資料夾的
./node_modules - 使用
require()語法時, 用此安裝方式 - global:
- 必須明確加入
npm install -g指令 - 安裝位置在 /usr/local 底下, 或是 node.js 安裝的資料夾
- 以 command line 的方式使用。
- 範例
- express 安裝為 global 時, 可以使用 command line 建立基本的 Web 專案
- 參考
2013年1月17日 星期四
Node.js筆記 - 非同步的try/catch
執行非同步的 methods 時,
若要用try/catch 去抓錯誤,
需要特殊的方式
參考如下
http://syshen.cc/post/10726736762/catch-exception-thrown-in-javascript-callback
http://benno.id.au/blog/2011/08/08/nodejs-exceptions
若要用try/catch 去抓錯誤,
需要特殊的方式
參考如下
http://syshen.cc/post/10726736762/catch-exception-thrown-in-javascript-callback
http://benno.id.au/blog/2011/08/08/nodejs-exceptions
2013年1月11日 星期五
Node.js筆記 - REPL
說明
Repl 指的是交互作用的介面
簡單的說 我們可以直接在如 終端機, 執行 node 的指令
可參考 (http://nodejs.org/api/repl.html)
幾項重點
Repl 指的是交互作用的介面
簡單的說 我們可以直接在如 終端機, 執行 node 的指令
可參考 (http://nodejs.org/api/repl.html)
幾項重點
- 可以同時開啟多個 REPL的介面
- 共用所有的全域變數
- 擁有各自的IO
- 可用 repl.start(), 啟動一個 repl
- _ => 代表上一個表達示(expression)的執行結果
- 特殊的 Command:
- .break:中斷目前的輸入, .break前面打的訊息 都不算數
- .clear:將context 重置為空的物件, 還有清除 multi-line expression.
- .exit:退出當前的 repl
- .help:展示有哪些特殊的 Command.
- .save:將目前 repl 的 session 存在檔案裡,
- Ex. .save ./file/to/save.js
- 預設起始位置為呼叫 node 指令時的資料夾
- .load:將上面存起來的檔案, 載入到當前的 session.
- Ex. .load ./file/to/load.js
- Ctrl:
Ctrl + C:如同 .break Ctrl + D:如同 .exit - Tab鍵:自動填滿變數名稱, 若有多個可能, 則會顯示所有選項.
2013年1月10日 星期四
Node.js筆記 - Eclipse 元件
網路上有找到可以用 Eclipse 的擴充元件
nodeeclipse(http://www.nodeclipse.org/)
可以在eclipse上 用以下網址下載
http://www.nodeclipse.org/updates
安裝完後 只要在編寫好的檔案
按下 "Run" 就能直接執行了
或者不用元件 直接打指令執行檔案
node xxx.js
2012年11月23日 星期五
javascrip 效能
有幾種方式提升效能
- Lookup Table
- 空間換取時間.
- E.X. 將 Math.Sin( ) 的運算結果先放入到Array, 之後再用Array 查詢.不用每次重覆運算。
- Bitwise
- 位元操作
- Ex. 範例要再想想 ..
- Loop unrolling
- 使用 Duff's device
- 適合多迴圈時, 內外迴圈有交錯作用時
- 多數狀況不實用
2012年10月24日 星期三
ubuntu + postgreSQL 筆記
- 安裝
- 可以不用下載 直接到終端機打指令安裝
- 指令:sudo apt-get install postgresql
- 執行 postgres console
- 指令:sudo -u postgres psql postgres
- 設定root password
- 進入 postgres console,輸入指令
- 指令:\password postgres
ubuntu 終端機基本指令
- top:顯示執行中的 process
- Ex. top
- sudo:管理者身份執行後續的指令
- sudo mv ~/home/file ~/dev/otherfile
- mv:搬移檔案,需要兩個參數
- Ex. mv source_file_path distination_file_path
- 可以藉由搬移時 順道改檔案名稱
- cp:複製檔案
- Ex. cp src_file dist_file
2012年4月19日 星期四
2011年10月20日 星期四
關於架構 ...
剛跟朋友討論架構是否重要
記錄一下內容 ..
P:
你會不會覺得 我們太強調架構
東西有寫出來 可以跑 不會錯就好
記錄一下內容 ..
P:
你會不會覺得 我們太強調架構
東西有寫出來 可以跑 不會錯就好
B:
是這樣說沒錯
東西要能跑 跑出來符合預期的 是最重要的
我自己覺得啦 架構就有點像作文大綱
如果熟悉某個大綱模式 像是 起承轉合
這樣在寫作的過程中 可以比較明確的知道 每個段落要寫啥
而不是想到啥 就填啥
P:
整個文章 要看懂你的目的 必須整篇看完
之後要修改也是
B:
段落分明 有層次 看的人也懂得快
寫的人 也不用想說該怎麼表達 或忘了該表達的
而且既然是大綱 寫的時候可以保持彈性的
重點還是需求
2011年7月15日 星期五
Windows Service : 如何對已經安裝的Service 修改登入帳號/密碼 ( 3 )
3. Coding, 使用WMI更改特定服務的帳號密碼。
使用WMI也可以修改Service的資訊
關於WMI的資訊 可以參考這裡
我們使用C#來建立相關的code。
開啟專案後,要先加入必要的Reference。
System.Management
再來加入using ~
最後就是相關的code了
這裡有幾個注意的要點:
如此即可改變Windows Service相關的資訊了
更多的參考 可以看這裡
使用WMI也可以修改Service的資訊
關於WMI的資訊 可以參考這裡
我們使用C#來建立相關的code。
開啟專案後,要先加入必要的Reference。
System.Management
再來加入using ~
最後就是相關的code了
這裡有幾個注意的要點:
- 路徑的格式:
- Win32_Service.Name=MyServiceName
- 使用ManagementObject 與 ManagementPath 獲得該Service。
- 建立大小為10的 object 陣列,做為傳入的參數。
- 設定矩陣的第6、第7個,分別為user name 與 password。
- 使用InvokeMethod,呼叫"Change" method,並且傳入參數。
如此即可改變Windows Service相關的資訊了
更多的參考 可以看這裡
Windows Service : 如何對已經安裝的Service 修改登入帳號/密碼 ( 2 )
2. 在Visual Studio Command 直接下sc指令。
接下來是進階版的修改方式
直接在Visual Studio Command 下sc指令
首先,開啟Visual Studio Command,
(如果是用Win7,記得要用管理者權限開啟。)
接著輸入 "sc"。
可以看到關於sc的相關說明,
而其中的 config參數,是我們要的。
關於config參數,
我們可以看到它可以修改Service的基本資訊,
其中就包括我們所需要的帳號/密碼。
按照說明:
輸入 sc config MyServiceName password= NewPassword
記得!! "= " 等號後面要空一格,否則會失敗。
至於成功的畫面,留給大家囉 ~
接下來是進階版的修改方式
直接在Visual Studio Command 下sc指令
首先,開啟Visual Studio Command,
(如果是用Win7,記得要用管理者權限開啟。)
接著輸入 "sc"。
可以看到關於sc的相關說明,
而其中的 config參數,是我們要的。
關於config參數,
我們可以看到它可以修改Service的基本資訊,
其中就包括我們所需要的帳號/密碼。
按照說明:
輸入 sc config MyServiceName password= NewPassword
記得!! "= " 等號後面要空一格,否則會失敗。
至於成功的畫面,留給大家囉 ~
Windows Service : 如何對已經安裝的Service 修改登入帳號/密碼 (1)
之前工作遇到一個需求
客戶為了資安需求 會定期的更新主機的密碼
而公司的Service 會在密碼變更後 無法啟用
原因在於 當初安裝Service的帳號/密碼 是根據特定user
而非直接使用 Local Service等預設帳號
知道了問題 就開始尋找解決方案
有三種解決方式
1. 直接到控制台的"服務" 修改密碼。
路徑:開始 -> 控制台 -> 系統及安全性 -> 系統管理工具 -> 服務
開啟後如下:
選取要修改的服務 按滑鼠右鍵 選擇內容
選擇"登入",修改帳密,選擇確定,完成了 ~
這算是最簡單的修改方式囉 ~
至於 上圖"帳號"旁邊的瀏覽
可以讓我們直接選擇系統有的帳號
這邊就不詳述了
有需要的話 下次再說 ~
客戶為了資安需求 會定期的更新主機的密碼
而公司的Service 會在密碼變更後 無法啟用
原因在於 當初安裝Service的帳號/密碼 是根據特定user
而非直接使用 Local Service等預設帳號
知道了問題 就開始尋找解決方案
有三種解決方式
- 直接到控制台的"服務" 修改密碼。
- 在Visual Studio Command 直接下sc指令。
- Coding, 使用WMI更改特定服務的帳號密碼。
1. 直接到控制台的"服務" 修改密碼。
路徑:開始 -> 控制台 -> 系統及安全性 -> 系統管理工具 -> 服務
開啟後如下:
選取要修改的服務 按滑鼠右鍵 選擇內容
選擇"登入",修改帳密,選擇確定,完成了 ~
這算是最簡單的修改方式囉 ~
至於 上圖"帳號"旁邊的瀏覽
可以讓我們直接選擇系統有的帳號
這邊就不詳述了
有需要的話 下次再說 ~
2011年7月14日 星期四
Windows Service : 權限基本觀念
Windows Service撰寫好後 常會遇到一個問題
究竟要開給新出爐的Service 什麼權限
各個權限的差別 又在哪
MSDN上有對 Windows Service權限的說明
簡單的說
Windows Service對於權限有兩種定義:
- Service account permissions:
- 該Service 根據登入帳號的權限,可以使用的電腦資源。
- Services permissions
- 根據不同的 user or group,提供不同的操作權限。
簡單的說,
前者是決定Service能做哪些事情;後者是決定哪些人能對Service做操作。
Service account
有四種類型:
- Local System:
- powerful account,具有系統的完整存取權限。
- 權限範圍包括網域控制站上的目錄服務(directory service)。
- Local Service:
- 類似 user account,是一個特別的內建帳戶。
- 具有與 [Users] 群組相同等級的資源及物件存取權。
- 作為 此帳戶執行的服務,會以不含認證的 null session 來存取網路資源。
- Network Service
- 前兩項與Local Service相同
- 作為此帳戶執行的服務,會使用電腦帳戶的認證來存取網路資源。
- User Account
- 所有的權限( 網路使用權限、資料夾使用權限 ... 等),都與該帳號相同。
Services permissions
這權限就複雜多了,
簡單的說,Services permissions是針對哪些user 或是哪些 group,
可以對Service做哪些操作。
這些操作包括Service的 啟動、停止、查詢Service資訊、更改Service資訊 ... 等。
2011年7月6日 星期三
使用SQL 2008 SQL Server Management Studio 更改資料表結構 出現錯誤訊息不允許儲存變更
今天在修改SQL Server欄位資料時
跳出了這個錯誤
不允許儲存變更。 您所做的變更會需要下列資料表卸除並重新建立。 您有做任何變更一個資料表,無法重新建立或啟用選項會防止儲存變更,需要重新建立資料表。
可以用下列的方式來修改
請參考這裡
跳出了這個錯誤
不允許儲存變更。 您所做的變更會需要下列資料表卸除並重新建立。 您有做任何變更一個資料表,無法重新建立或啟用選項會防止儲存變更,需要重新建立資料表。
可以用下列的方式來修改
請參考這裡
2011年7月1日 星期五
訂閱:
文章 (Atom)









