2012年12月22日 星期六

[.NET] 輔助開發工具

Entity Visualizer

Entity Framework Debugger Visualizer to display SQL source code generated by Entity Framework.

ADO.NET Entity Framework Query Samples


ADO.NET Entity Framework Query Samples is a small Windows Forms program which contains several basic Entity SQL and LINQ to Entities queries against that NorthwindEF Entity Data Model (a modified version of Northwind).
Its goal is to help you learn the features of the different query languages available in the Entity Framework, and to let you visualize how the results and the translated store queries look like.

LINQPad


LINQPad supports everything in C# 5.0 and Framework 4.x:
And that's not all - there's also specific support for:
LINQPad is also a great way to learn LINQ: it comes loaded with 500 examples from the book, C# 5.0 in a Nutshell.  There's no better way to experience the coolness of LINQ and functional programming.

2011年9月16日 星期五

[ASP.NET] Performance Tuning

1. 使用 SqlCommand 搭配 SqlDataReader 時,記得先呼叫 SqlCommand.Cancel() 再呼叫 SqlDataReader.Close(),順序錯誤效能會低落很多
    (若僅呼叫 SqlDataReader.Close() 效能也會很低落)

2. 資料來源控制項的 DataSourceMode 要根據實際需求選擇
    (選擇 DataSet 模式,功能雖然強大,但耗費資訊)

3. 處理大量資料避免使用 ADO.NET Entity Framework 這一類的工具,速度很慢

2011年8月3日 星期三

[.NET] 如何不安裝 Oracle Client 並與 Oracle DB 連線

恩.......我目前手邊這一台 NB 真的很怪....無法安裝 Oracle Client....

但是我要連 Oracle 阿!! 這該怎辦ㄌㄟ....

上網找了一下,必須要在程式執行目錄(bin/)中,放入以下五個 DLL 檔案:

  1. Oracle.DataAccess.dll
  2. oci.dll 
  3. OraOps11w.dll
  4. oraociei11.dll
  5. msvcr71.dll
這些檔案可以在有安裝 Oracle Client 的電腦上找到....我是請同事找給我的.....


另外在連線字串部分,沒辦法使用 OracleDBConnectionStringBuilder 物件產生連線字串,必須用自行組成語法的方式:
string DBConnectionString = @"Data Source=(DESCRIPTION = (ADDRESS_LIST =
                                    (ADDRESS = (PROTOCOL = TCP)(HOST = 這是 Oracle Server IP)(PORT = 1521)) )
                                    (CONNECT_DATA = (SID = 這裡放SID)(SERVER = DEDICATED) ) )
                                    ;Persist Security Info=True;User ID=這是使用者帳號;Password=使用者密碼;";

最後程式中引用 Oracle.DataAccess.dll 作為參考,相關的 Oracle API 就可以使用囉!


2011年6月1日 星期三

[LINQ] 集合已修改; 列舉作業可能尚未執行??

今天同事在寫程式遇到這問題.....

問我.... LINQ 可以在 multi-thread 環境下執行嗎?? 程式起來一直有問題......

我心裡想......怎麼會不行? 如果不行,微軟不就搞了一個大飛機了..........?

後來發現其實跟 LINQ 無關,而是在進行列舉作業時不能去修改集合的值

[JVM] Performance Tuning 相關資源蒐集

JVM調優總結- See World - ITeye技術網站

JVM調優總結(一)-- 一些概念- 和你在一起- ITeye技術網站

JVM調優總結(二)-一些概念- 和你在一起- ITeye技術網站

JVM調優總結(三)-基本垃圾回收算法- 和你在一起- ITeye技術網站

JVM調優總結(四)-垃圾回收面臨的問題- 和你在一起- ITeye技術網站

JVM調優總結(五)-分代垃圾回收詳述1 - 和你在一起- ITeye技術網站

JVM調優總結(六)-分代垃圾回收詳述2 - 和你在一起- ITeye技術網站

JVM調優總結(七)-典型配置舉例1 - 和你在一起- ITeye技術網站

JVM調優總結(八)-典型配置舉例2 - 和你在一起- ITeye技術網站

JVM調優總結(九)-新一代的垃圾回收算法- 和你在一起- ITeye技術網站

JVM調優總結(十)-調優方法- 和你在一起- ITeye技術網站

JVM調優總結(十一)-反思- 和你在一起- ITeye技術網站

JVM調優總結(十二)-參考資料- 和你在一起- ITeye技術網站

2011年5月31日 星期二

[Windows] 修改 JVM 啟動參數

今天早上為了 H2 執行五六個小時後會出現 out of memory 的問題在頭痛...

上到 Google Group 查了一下,有人建議先把 JVM 的 heap 開大一點試試看....

於是.......問題來了,要怎麼開大??

在 Linux 裡面可以直接透過 Alias 的方式解決.......

那 Windows 呢? 答案就是設定一個名稱為 "_JAVA_OPTIONS" 的環境變數

值的部分就設定為 "-Xms512m -Xmx1024m" 應該是很夠用了....

再來繼續長時間測試 H2 看看.....

2011年5月30日 星期一

[HTML5] 學習資源

基本觀念

教學(投)影片

工具

2011年5月26日 星期四

[LINQ] 如何直接更改物件集合中的物件值而不建立新物件

用過 LINQ 的人應該會對 LINQ 處理資料集合的功力印象深刻....

但....LINQ 是 Query 阿! 不是 Update!

那如果我只是要針對物件集合中的某幾個物件進行值的變更.......要怎麼作呢....??

答案是 => 只要自己撰寫一個 extension method,method 中回傳原本的物件集合

在網路上找到一個很不錯的參考範例連結:
LINQ: Select an object, but change some properties without creating a new object (Rob Volk's Blog)


以下寫了一個簡單的 sample


但有一點真的需要注意的是,這種方式只能用在物件集合中,若是用在基本型態的資料集合中(例如:整數陣列、整數 List) 則沒有效果......


2011/06/08 Updated: 

今天有找到初始化陣列的方式囉! 只要使用 extension method 就可以簡單達成了....以下為範例:

2010年8月31日 星期二

2010年3月12日 星期五

[Linux Programming] 在 Ubuntu 中使用 C 語言連結 MySQL

首先.......必須安裝 MySQL server,一般來說安裝 "mysql-server" 都可以裝到目前最新版的套件

接著要安裝開發程式所需要的 library:

Ubuntu 8.04 => libmysqlclient15-dev

相關的 header 檔案都會放在 /usr/include/ 裡面,而實際運作的函式庫則會存在 /usr/lib/mysql 中

若是撰寫 mysql 相關程式時,編譯方式如下:

gcc <程式名稱> -I /usr/include/mysql -L /usr/lib/mysql -l mysqlclient -o <輸出檔案名稱>

2010年3月9日 星期二

[Git] 在 Windows 上使用 Git

Git 聽說是比 cvs, subversion 還好用的 version control system 阿!!

為何要用 Git 阿?? 因為優點很多阿! 詳細說明可以看 => Why Git is Better Than X  這一篇文章~

Git 大概有以下特色:
  1. 每個 local 端都有自己的 repository

  2. 特色為 branch + merge

  3. 適合開發人數眾多的大型專案(當然小型專案也是沒有問題滴)


大部分使用 git 的人都是在 Linux 的平台上使用,但要怎麼在 Windows 上面使用呢?

簡單說明步驟如下:
  1. 下載 Windows 用的 git 核心程式,在 git 官網上為 msysgit

  2. 在所要進行版本管理的資料夾上按滑鼠右鍵,選擇 Git Bash Here

  3. 接著會跳出一個模擬 bash 環境的視窗,接著就可以跟 Linux 一樣開始使用 Git 囉!


===== 以下說明最基本的使用方式 =====

#初始化 local repository
> git init

#將目錄中的檔案全部加入 Staging Area
> git add .

#將 Staging Area 中的檔案加入 local repository 中
> git commit -a

#移動至 master branch (正常狀況下 branch 會預設在 master)
> git checkout master

#將資料 push 至遠端的 repository (以 gitorious 為例)
> git remote add origin <git push url>
> git push origin master


【備註】
在將檔案 push 到遠端 git server 之前,需要把加密用的 key pair 準備好,可以透過以下指令產生:
> ssh-keygen -rsa
接著把兩個檔案都放到 C:\Documents and Settings\<USER NAME>\.ssh ,並將 public key 的內容加入到 gitorious 的網站上即可。


相關連結


2010年3月7日 星期日

[Linux Programming] 在 Ubuntu 中使用 dbm 資料庫

在 ubuntu 中 dbm 相關開發套件是不會預先安裝的,因此如果要使用的話,必須安裝「libgdbm-dev」套件。

而由於安裝的是 gdbm 套件,若要使用 gdbm 的相關函式當然沒問題,但若是要使用 ndbm 的相關函式,則必須進行相容性的轉換,作法如下:
  1. 在程式中 include gdbm-ndbm.h

  2. 編譯時加上 -l gdbm_compat -l gdbm 兩個參數以連結函式庫
函式庫說明可以參考以下連結: