顯示具有 Visual Studio 標籤的文章。 顯示所有文章
顯示具有 Visual Studio 標籤的文章。 顯示所有文章

2010年6月22日

[ASPNET] 在 FormView 中使用 WebUserControl 可能會導致 Visual Studio 罷工

標題好長,不過真的有這回事嗎?

起先是坎尼的同學問有沒有碰過類似的問題
坎尼一開始也是很莫名,但發現 Visual Studio 跑他的程式就會掛
經過一陣推敲及實驗之後,總算是發現了肇事的主因

I. 問題描述

首先是怎麼個停擺法呢?

當在 FormView 中放入有問題的 WebUserControl 時
用 DesignMode 進入 FormView 的 EditTemplates 編輯模式
會看到 WebUserControl 不停的閃爍,接著 IDE 就會停擺在那邊

(註:IDE = Integrated Development Environment,本篇指 Visual Studio)

若運氣好,在發生問題之前就將游標移到 FormView 以外的位置
可以用快速鍵 Ctrl + PgUp/PgDn 切換成 Source Mode
運氣不好,大概就要叫 Task Manager 出來結束它的生命

先來看一下問題發生的影片 (請自行放大影片

影片中第一次打開 EditTemplates 時是沒有問題的
所以標題才會用 "可能" 而非 "絕對"

II. 問題解決

就在坎尼看著同學的 Code 百思不得其解時
想說再依樣畫葫蘆自己造一個一樣的 sample 來試試
咦?! 實驗結果很正常!!!

但當把坎尼同學寫的 FormView 內容 Code 直接貼到新建的 FormView 時,它又開始不停閃爍,這難道就是傳說中的鬼打牆?

接著坎尼眉頭一皺,發覺同學的 Code 裡有不對勁的地方
該不會是 WebUserControl ID 是用中文命名的關係吧?

測試結果證明:還真的就是這個原因!!!
但一般的 Controls 用中文命名都沒問題,只有 UserControl 會

原本坎尼以為所有容器型的 Template 編輯模式都會發生此情況
嗯,坎尼又猜錯了,只有 FormView 才會……

目前測試 VS2008 和 VWD2010Express 都有此情形
更之前的 VS2005 坎尼手邊沒有,無法測試
歡迎有心提供測試結果的讀者留言 ^^

III. 小結


這問題一直沒人發現 (坎尼 Google 不到)
大概是大家不怎麼用中文命名,或是沒在用 FormView 吧?
雖然 Visual Studio 為支援 unicode 的 IDE
但使用上除了文字屬性以外,還是盡量以英數字為主吧 :P

第一次錄影片,有點手忙腳亂,還請多多包涵 :D

2009年12月26日

[Tips] 匯入 ItemTemplate 到其他機器上

上一篇 中坎尼介紹了如何匯出 ItemTemplate
本篇將介紹如何把 ItemTemplate 搬到其他機器上去

I. 匯入 ItemTemplate

話說坎尼小時候發現可以匯出 Template
心想「哇,這東西不得了啊,快分享給同事」就很開心的做了很多共通的頁面
但換到另一台機器時才發現...怎麼 Visual Studio 沒有匯入的選項?
所以年輕可愛的坎尼就笨笨地在另一台機器重新把 Source Code 貼上再匯出

一定要這樣才能匯入嗎? 那要匯出的功能幹嘛?
這個自然,只出不進非強調人性化的 Visual Studio 作為
坎尼找到許久,總算是找到了簡單的方法

II. 上一節廢話太多,真的要講如何匯入啦

首先,開啟 Visual Studio (2005、2008、2010)
選擇 Tools -> Options 

 找到 Projects And Solutions 
右邊的內容頁分別可以看到 User Project Templates Location 
User Item Templates Location
這兩個實體路徑就是 Templates 的讀取路徑

 此時只要簡單的把匯出的 .zip 檔,放到路徑下即可

 雖然沒有 UI 的匯入選項,但也是比手動複製 Code 好上許多

III. 新增的 Webform Item 怎麼會建置出錯?

其實這個問題印象中是 vs 2008 以後才出現的
建立好項目之後,無法直接進行建置的原因在於 .designer.cs


可以看到,雖然 .aspx.cs 的 Class 名稱已經改過,但 .designer.cs 卻沒有

要修正此項問題很簡單,首先把 Template 的檔案解壓縮,出現了五個檔案


把 aspx.cs 和 designer.cs 打開比較一下




可以發現 designer.cs 的 Class 名稱並未被修改
從aspx.cs那邊抄來的 $safeitemname$ 取代後存檔
再將檔案壓縮成 .zip 即可 (壓縮檔變小了?!)



馬上新增個新頁面看看,designer.cs 的 Class 總算是一樣了




IV. 小結

第三小節提的這個問題,目前在 vs2010 中仍出現若有匯出 Template 需求的讀者,可以依上列的方式修改
如果有人知道 Visual Studio 哪邊可以用 UI 匯入,也歡迎留言 ^^

2009年12月25日

[Tips] ItemTemplate 讓你省去 copy/paste 的時間

今天來聊一下怎麼用 ItemTemplate
其中包含了如何匯出及匯入

I. 什麼是 ItemTemplate?

其實說到這個東西,visual studio 2005 時早已支援
(vs 2003 由於年代太久遠,目前無法考證)

其目的在於讓工廠型的頁面,直接匯出成 Template
使重覆性高的頁面無需再到處貼 code,增加工程師的產量及效率

II. 如何製作 Template?

其實很簡單,只要先製作好要量產的頁面
再點選 File -> ExportTemplate,跟著指示走即可

首先,製作好 Item




接著選 File -> ExportTemplate

接著可以看到有 Project Template Item Template 的選項 
(本次範例是介紹 Item Template)


也可以選擇和這個頁面有相依的參考

再輸入相關資訊及設定顯示的 Icon 選擇完成即可
這邊可以勾選匯出時自動匯入到本機 Visual Studio


完成後去新增項目的地方,即會看到剛剛匯入的樣板


點選新增會出現提示,如果是來歷不明的樣板,建議還是先打開原始檔看一下


登登,建立成功!!! 連基本的 Source Code 也建立完成


III. 小結

ItemTemplate 對要大量生產同類型的 Code Page 很好用
和 ClassLibrary、CustomControl 有異曲同工之妙
要是三個一起用,這豈不飛天啦?!

由於本篇抓的圖太多
容待坎尼下一篇再介紹如何把 ItemTemplate 匯入到其他機器上 :D

下一篇:[Tips] 匯入 ItemTemplate 到其他機器上

2009年11月27日

[Tips] RunToCursor 讓你不必設定中斷點也能暫停


以往坎尼要用 Visual Studio 進行除錯模式
都會先在要停留的地方設定中斷點中斷條件

 不過真的有時很懶惰只想用滑鼠,就會用到今天介紹的小技巧

I. 使用方式

首先把游標移到要中斷的地方點右鍵,選 Run To Cursor (中文好像是「執行至游標處」)
然後就會看到 Visual Studio 自己進入 debug 模式


接著只要程式運行到要中斷的地方,便會停止


可以配合快速監看式,一整個左手就是閒置狀態


不過可以看到的是,其實這邊並無中斷點
因此只要讓程式繼續進行,下次再到這個位置就不會停下來

II. 小結

此次小技巧提供給和坎尼一樣懶惰的人 :D

另外再報個小技巧給不知道的人
中斷點如果是在 for 迴圈內,不想每次都一直按執行只為了看某個變數
可以在中斷點上按右鍵設定條件,當符合條件時,程式才會中斷

今天就到這邊,下次再見 :D

2009年9月18日

[Tips] 在方案總管(Solution Explorer)中顯示未加入專案的資料

有鑒於坎尼同事不知道 visual studio 還有很多很好用的功能
以後會不定時推出 Tips 系列,說明一些好用的小技巧
讓 visual studio 不只是用來當文字編輯器 (那還不如用 notepad++)

I.功能按鈕所在

如下圖,當把focus放在專案時,上面會出現此項 圖示

點選之後,會出現淺灰色的資料檔或資料夾
這就是包含於專案實體路徑裡,但又沒加入專案的資料

II.檔案管理

直接在灰白色的圖示上點選右鍵,即可將檔案加入專案中,如下圖
(可以搭配 shift ctrl 選取多個檔案)

當然有加入就會有移除,可以在要移除的檔案圖示上點選右鍵移除

移除有什麼用呢? 一般在發佈時,若沒有把檔案設為「不要複製」到專案資料夾中
檔案在每次進行部署時就會把檔案給複製過去

要是有些比較大且不需更新的圖片、資料庫檔、A片種子
就可以先從專案中移除,需要時再用手動複製到部署的資料夾中

另外像是 vs2008 sp1 提供的 js intellisense 定義檔功能 (ex. jquery-vsdoc.js)
其實可以把 -vsdoc.js 檔案從專案中給移掉,開發時一樣可以抓到定義的說明

III.小結

本篇是 Tip 第一篇,未來會陸陸續續的提供實用的技巧
當然也歡迎指教和提供意見 ^^

2009年2月1日

Visual Studio “Tip of the Day” Series in Video!

See Sara Ford’s post.

在過年前剛好看到這個消息,Sara 的朋友 Scott Cate 先生自願將 Sara 整理的 382 個 VS Tip 從頭開始一個一個的錄成 demo 影片(RSS),這真是個好消息, 畢竟影片的形式比純文字的敘述更容易理解,這也給我一個機會從頭 review 一遍這些有用的小技巧,今年接下來理論上要多寫點程式,應該會很有幫助吧 XD

PS.
1. 影片是以 Silverlight Streaming 的方式播放的,品質不錯唷!
2. 一開始看到 Scott 我還以為是 Scott Guthrie,嚇了一跳,想說 .NET Division 的 VP 有沒有這麼悠閒 XD 原來是 Scott Cate ….

2008年12月21日

Sara Ford 的 Visual Studio Tips 系列結束囉

前天看到 Sara 的 blog 上 po 了最後一個 VS 小技巧 (#382), 講的是如何從Command Prompt下指令執行”System Information”(好像沒甚麼用XD), 同時也宣告 VS Tips 系列的結束,剛剛用 Google Reader 看了一下她的 blog, 「Did you know…」系列的第一篇文章大約是 2007年7月發表的, 所以 382 個小技巧大約寫了將近一年半(都是用她自己的下班時間), 真是令人佩服(跟保哥有得拼)。

不過她又講說,明年會再另外開一個 blog 來延續這個系列@@
看來之後還是有辦法以多多學習如何增進使用 VS 的工作效率囉 ^_^
VS 中有非常多好用的小技巧,若不靠他們這些熟知內情的專家的說明的話,
相信一般人根本就不會注意到,而Sara自己也常說,很多技巧對她來說也很難發掘,
必須要追根究底的去問 VS Team 才能瞭解如何使用,所以這些技巧真是得來不易呀!
善用工具可以大大增進工作的效率,如果沒有看過她的 blog 的朋友,
建議抽空去晃晃,可以先看一下標題,很可能剛好就 hit 到你的需求哦!

以下是一些我覺得蠻有用的小技巧:

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D