2009年9月30日 星期三

Windows Azure Hello World ! 我的第一個cloudapp

image

雖然很簡單,不過總算踏出第一步了…

image

2009年9月27日 星期日

Windows Azure Platform


正在整理中的資料…

Tech Days 2009的感想

參加了微軟一年一度的盛事
Tech Days 2009
在技術與知識3天的洗禮
讓我靜下來思考一些問題

自己在過去的一年裡
對新事物的追求很像變得遲頓了
自己的熊度很像變差了
是要好好的整理一番了

為什麼我看到新的技術會這麼開心
我一直在想為什麼 我給了自己一個答案
因為有一群擁有熱情的人
運用他們的生命、智慧創造了這些東西
經過這些新的技術
我感染到他們的熱情了

在工作上
我把自己寫出來的程式視為自己的作品
我希望我能投入更多的熱情
進而也讓見到它們的人
感受到我的熱情、也能夠跟我一樣有開心的感覺

VSTO Excel XmlMapping

Step1:事先準備好一個xml檔cat.xml

這個xml檔是用DataTable產生出來的

<?xml version="1.0" standalone="yes"?>
<CATs>
  <CAT>
    <NAME>Izzy</NAME>
    <BREED>Siamese</BREED>
    <AGE>6</AGE>
    <ALTERED>yes</ALTERED>
    <DECLAWED>no</DECLAWED>
    <LICENSE>Izz138bod</LICENSE>
    <OWNER>Colin Wilcox</OWNER>
  </CAT>
  <CAT>
    <NAME>Izzy</NAME>
    <BREED>Siamese</BREED>
    <AGE>6</AGE>
    <ALTERED>yes</ALTERED>
    <DECLAWED>no</DECLAWED>
    <LICENSE>Izz138bod</LICENSE>
    <OWNER>Colin Wilcox</OWNER>
  </CAT>
</CATs>


Step2:顯示開發工具



enabledevtool



Step3:



新增一個VSTO Excel 2007 WorkBook專案。新增後點選[開發人員],再按一下[來源]。就會在excel畫面的右邊



看到xml來源的actions pane。



step3



Step4:



點選[XML 對應…]。彈出[XML對應]對話視窗後,按[新增]選取cat.xml檔。選好按確定後。畫面如下。



step4



Step 5:



按住CAT。拖曳到A1放開後,按一下重新整理。就可以看到下面的畫面了



step5 



Step 6:Coding



        private void Sheet1_Startup(object sender, System.EventArgs e)
{
Globals.ThisWorkbook.XmlMaps.Add("cat.xml", "CATs").Name = "CATs_MAP";

Globals.ThisWorkbook.XmlMaps[1].Import("cat.xml", true);
}


然後就可以Testing了

VSTO -Excel+ActionsPane+WebService

這一個主題我實在想不到該如何做成一個PPT檔。

所以直接做一個Sample比較快。

為了簡化範例,所以我都Default的命名。

以下的範例是用VS2008+Excel2007

這個Sample Sheet1的功能:

1.輸入一SQL string。

2.透過Web Service去執行這段sql

3.把回傳的結果show在excel中

Step1:新增一個VSTO的Excel 2007 Workbook專案

createproject

專案成功建立後畫面會長的像這樣

VS2008裡面為什麼辦法把Excel檔開起來呢?當然是開發的機器也要安裝Excel

你會發現到在這個Project中有一個Excel檔。也就是說我們開發的程式是跟著這個Excel走的。

如果你希望你開發的是Excel外掛,請用Excel 2007 Add-in。

不過它沒有支持像下圖一樣的圖形化開發介面。所以我們先用Excel 2007 Workbook專案來當sample。

aftercreate

Step2:新增一個Actions Pane Control

add Actions Pane

你可以發現其實Actions Pane他是繼承Windows Form的UserControl而已。沒有很複雜

Actions Panecode 

加入一個TextBox1和一個Button。(允許TextBox輸入多行,不做也沒關系)

AddControlOnActionsPane

Step3. coding

到ActionsPaneControl1.cs的程式碼裡面去吧

加入2個using

using Excel = Microsoft.Office.Tools.Excel; 
using System.Data;


為button1 click的事件 加入code



        private void button1_Click(object sender, EventArgs e)
{
//停止Excel畫面上 即時的變化。
Globals.Sheet1.Application.ScreenUpdating = false;
Microsoft.Office.Tools.Excel.ListObject list1;
Microsoft.Office.Interop.Excel.Range cell = Globals.Sheet1.Range["$A$1", System.Reflection.Missing.Value];
if (Globals.Sheet1.Controls.Contains("list1"))
{
list1 = Globals.Sheet1.Controls["list1"] as Excel.ListObject;
}
else
{
list1 = Globals.Sheet1.Controls.AddListObject(cell, "list1");
}

//事先準備好的Web Service。用Add Web Reference加入
ServiceReference1.Service1SoapClient client = new ServiceReference1.Service1SoapClient();
//呼叫Web Service回傳結果dt
DataTable dt = client.ExecuteSql(textBox1.Text);

list1.AutoSetDataBoundColumnHeaders = true;
list1.SetDataBinding(dt, null);
Globals.Sheet1.Application.ScreenUpdating = true;
}


最後到sheet1.cs找到Sheet1_Startup方法加入以下的code



     private void Sheet1_Startup(object sender, System.EventArgs e)
{
Globals.ThisWorkbook.ActionsPane.Controls.Add(new ActionsPaneControl1());
}


Step4:Config



maxReceivedMessageSize="6553600"



maxBufferSize="6553600"



這是Web Service的config



預設的size有點小



所以我把他加大了



這2個config的用一樣大 。



不然會error。



想知道為什麼,可以自己試試看。



在這裡先不討論這個問題



Step5:Testing



可以看到右邊長出一個Actions Pane



test



我在TextBox輸入Select * From Orders。我的Service撈的資料是NorthWind的範例資料



test2

2009年9月26日 星期六

ASP.Net MVC

善用開放原始碼的寶藏庫 CodePlex

這是去Tech Days 2009
第一場參加的研討會
心得就是:
分享就是力量
與人分享知識
並不會讓自己失去優勢
反而可以讓自己茁壯

2009年9月19日 星期六

旅遊要注意的事

要冷靜

要思考

錢要藏

不要幻想:不要幻想自己會遇到什麼艷遇。

不要逞強:不要一被激將,就逞強砸錢。切記這不是自己的地盤。

不要慌張:遇到糾紛時,對方人越多時,不要慌張。

小人錢不能省

小人氣不能受

2009年9月12日 星期六

好的程式是…內外兼俱的

今天騎車到火車站搭車的路上
我在想一個好的程式是需要內外兼俱
程式碼寫的還完美,User都很難感受到
因為天天陪在他們身邊的就是UI
UI是最直接讓User感受到的東西
一個人性化的UI,貼心的UI。
更可以讓User提高工作效率
不僅是為User加分
也為code加分
更為自己加分

真的不要有這樣的念頭「內部用的系統,追求什麼UI。」

2009年9月10日 星期四

湯旭 媽,謝謝你MV

一切盡在不言中

聽了就知道

2009年9月9日 星期三

下班了

晚餐時間到了

可我一點都不餓

回家摸一摸九點了

是不是該要出去買東西吃呢?

真的不知道要吃什麼

到7-11吧

買點喝的比較簡單、快速

結完帳回家…

準備拿鑰匙開門時

疑…

我有拿肉燥麵嗎?

我記得我有拿泡麵

可是我怎麼會拿肉燥麵呢?

要拿應該也是拿別的吧…

算了… 買都買了…


這幾天不知道為什麼

下班一回到家

心裡沉甸甸的

好像有什麼東西

壓在心頭上

為什麼我也說不上來


是因為生氣?

是因為焦慮?

是因為壓力?

還是因為思念。

2009年9月6日 星期日

XBOX360-CAPCOM Stree Fighter IV FightStick…工欲善其事,必先利其器

這是Brandon教我的

(是不是推給別人就沒事了呢…)

IMG_0237

因為原來的RB、LB 是住在上面2個小小的。

面板上只有六個按鈕

要放一次按三顆的招式都放不太出來…

於是乎…

Brandon給了我很充分的理由…

 

 

IMG_0229

IMG_0232

IMG_0233