自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

.Net Framework布局實(shí)踐經(jīng)驗(yàn)分享

開發(fā) 后端
.Net Framework布局在我們應(yīng)用中是非常重要的一個(gè)基礎(chǔ)操作。因?yàn)槲覀円幸粋€(gè)良好的布局才能夠方便我們接下來的各種程序編寫。

 .Net Framework在實(shí)際應(yīng)用中有很多經(jīng)驗(yàn)值得我們?nèi)タ偨Y(jié)探討,方便我們將來的應(yīng)用。在這里我們會(huì)為大家總結(jié)一下.Net Framework布局的相關(guān)實(shí)踐總結(jié),希望可以幫助大家提高編程效率。#t#

剛剛完成了TopGo程序的第一個(gè)版本,朋友們建議將此程序的開發(fā)過程共享。我也有此想法,唯恐自己能力有限,辜負(fù)了朋友們的期望。最后我還是決定把它寫出來,作為大家閑來無事時(shí)討論的話題也未嘗不可,同時(shí)我也真誠(chéng)地希望各位同好們提出批評(píng)和建議。

TopGo是一款使用.Net Framework3.0(WinFx) 編寫的計(jì)算機(jī)圍棋軟件(由于本人喜歡下圍棋,不知道有沒有人知道幾年前的心弈1.0, 那就是拙作。),嚴(yán)格的說TopGo并不是一款有關(guān)于圍棋的游戲軟件,更多是作為工具軟件來設(shè)計(jì)的。之所以采用.Net Framework3.0,一則為了熟悉.Net Framework3.0, 二則是新的Windows Vista即將問世。

軟件編程方法

TopGo的編寫過程,既不是團(tuán)隊(duì)下的產(chǎn)物,甚至連作坊式都談不上。但是,既然是軟件開發(fā),必然涉及到設(shè)計(jì)方法。十多年的軟件開發(fā)生涯,我有我個(gè)人的開發(fā)方法,它是一種需求驅(qū)動(dòng)的方法。

大家都有共同的體會(huì),那就是在軟件開發(fā)過程中,客戶的需求總是琢磨不定,反復(fù)無常。尤其是當(dāng)今社會(huì)的快速變換,各種需求的變化更加頻繁。所以那種傳統(tǒng)式的編寫好所有的需求分析,讓客戶認(rèn)可簽字后在實(shí)現(xiàn)的方法已經(jīng)不能適應(yīng)目前的需要,于是,極限編程、敏捷編程陸續(xù)登上舞臺(tái)。其實(shí)我的方法可以在極限和敏捷編程中找到影子,也許是受它們的影響吧,但它不是極限編程或者敏捷編程。 我的大體步驟是:

1、確定部分需求

2、編寫代碼實(shí)現(xiàn)上述需求,盡可能采用測(cè)試驅(qū)動(dòng)方法

3、逐步擴(kuò)展需求

4、如果軟件還沒有完成了全部需求,回步驟1。

具體的實(shí)施過程,大家可以從后面描述的內(nèi)容中看到,這里就不做詳細(xì)說明了。

.Net Framework布局詳解

每個(gè)人都可以說出,開發(fā)軟件的第一步就是要明確軟件的需求,然后是對(duì)需求進(jìn)行分析。大部分公司還要求系統(tǒng)分析員寫出詳細(xì)的需求分析文檔以及設(shè)計(jì)規(guī)范書。無疑這些并沒有錯(cuò),問題是對(duì)于TopGo并不適合,TopGo首先假定對(duì)要編寫的軟件功能并不是太明確,其次TopGo并不是一個(gè)需要多人團(tuán)隊(duì)協(xié)作的大項(xiàng)目。

對(duì)于TopGo, 讓我們看看如何開始。同許多程序員一樣,面對(duì)一個(gè)項(xiàng)目,會(huì)有一種馬上動(dòng)手編寫代碼的渴望,而不是去寫什么文檔、做什么計(jì)劃,當(dāng)然我并不是反對(duì)這樣做,何況每個(gè)人都有自己的做事方式。我的意思就是說一種行之有效的方法并不比寫在教科書上的方法差。

不過如何開始寫你的第一行代碼呢?記得有一本書叫做編程之道,書中描述到如果一個(gè)人在黑暗中要開槍擊中目標(biāo)的話,有三種方法,第一種是任意向一個(gè)方向開槍,期望瞎貓碰到死老鼠;第二種方法則是對(duì)著四周掃射,這樣總有一顆子彈會(huì)命中目標(biāo);第三種那就是使用自動(dòng)跟蹤彈,就象魚雷或者導(dǎo)彈那種,讓子彈去尋找目標(biāo)。第三種方法也是我要使用的方法,首先我們確定一個(gè)大概的方向,然后對(duì)準(zhǔn)這個(gè)方向開槍,然后看看會(huì)發(fā)生什么。 下面是我最初想到的需求:

1、TopGo必須能夠顯示一個(gè)棋盤;

2、TopGo的棋盤必須可以在一個(gè)指定的位置顯示指定顏色的棋子;

3、棋子的位置可以通過鼠標(biāo)來指定(準(zhǔn)確地說是鼠標(biāo)左鍵)

OK, 需求并不一定要一次性的全部列出來,三個(gè)需求目前對(duì)我們開始工作已經(jīng)夠了,它們也可以看成是三個(gè)編程任務(wù)或者三個(gè)目前要實(shí)現(xiàn)的目標(biāo)。但是我們一次只能從中挑選一個(gè)出來。大致思考片刻,不難發(fā)現(xiàn)第一個(gè)任務(wù)是最好的開始(其實(shí)可以從任何一個(gè)開始)??疾斓谝粋€(gè)任務(wù),我們可以分成更小的任務(wù):

1、TopGo必須能夠顯示一個(gè)棋盤

1.1 棋盤在界面上的位置

1.2 畫棋盤的縱橫線(標(biāo)準(zhǔn)為19*19),棋盤的大小必須可以動(dòng)態(tài)設(shè)置比如說(10*10)
……

啟動(dòng)VS2005, 新建一個(gè)WinFx的Windows項(xiàng)目,起名為TopGo。對(duì)自動(dòng)生成的Window1進(jìn)行改名為MainWindow,并修改其它有關(guān)的部分,項(xiàng)目就這樣開始了。

接下來,我們大致考慮一下.Net Framework布局,經(jīng)過考慮,我把界面分成了一個(gè)2*3的Grid:頂上一行合并用來布置菜單或者工具條,最底下一行也進(jìn)行合并作為操作工具欄。中間一行分成兩個(gè)部分,左邊作為信息顯示面板,棋盤顯示在右邊一欄。它們的Xaml定義如下:

  1. < Window x:Class="TopGo.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/
    2006/xaml/presentation"
     xmlns:x=
    "http://schemas.microsoft.com/winfx/
    2006/xaml"
     Title="TopGo" MinHeight=
    "600" MinWidth="800" WindowState=
    "Maximized" >   
  2. < Grid>   
  3. < Grid.RowDefinitions>   
  4. < RowDefinition Height="50" />   
  5. < RowDefinition Height="*" />   
  6. < RowDefinition Height="36" />   
  7. < /Grid.RowDefinitions>   
  8. < Grid.ColumnDefinitions>   
  9. < ColumnDefinition Width="280" />   
  10. < ColumnDefinition Width="*" />   
  11. < /Grid.ColumnDefinitions>   
  12. < /Grid>   
  13. < /Window> 

.Net Framework布局中設(shè)置窗體最小尺寸為800*600的目的是因?yàn)槿绻绑w太小,棋盤可能就太小了,而且目前大多數(shù)顯示器基本都可以支持這個(gè)尺寸,如果不支持這個(gè)尺寸的顯示器,那么我想這些機(jī)器可能也不支持Windows XP以上的操作系統(tǒng),程序也不能運(yùn)行在這些機(jī)器上面。還有我們把信息顯示面板欄的寬度以及上下兩行的高度設(shè)置為固定的,這樣我們可以保證剩下的空間最大可能的用于棋盤的顯示。

責(zé)任編輯:曹凱 來源: IT168
相關(guān)推薦

2015-06-03 14:14:17

dockeropenstackIaaS

2022-08-10 13:54:40

云存儲(chǔ)存儲(chǔ)私有云

2014-10-29 13:52:38

程序員

2013-10-10 13:50:02

智能交通華為

2022-07-29 09:54:42

數(shù)據(jù)庫分布式

2010-01-25 14:25:33

Android Int

2021-07-26 17:22:02

Java

2023-06-07 14:19:27

2020-11-16 18:12:33

數(shù)據(jù)價(jià)值DCMM行業(yè)

2023-11-22 11:15:56

數(shù)據(jù)中心機(jī)房

2015-05-08 10:39:10

InfoQ

2015-05-08 12:47:58

Docker

2021-07-30 17:11:21

EnginePlus亞馬遜云科技

2011-12-09 15:37:10

CTO俱樂部

2023-07-11 10:23:00

Lakehouse數(shù)據(jù)湖

2023-10-07 11:58:52

PythonPygame

2011-12-22 09:34:39

需求分析

2022-08-30 07:39:37

GPFSSAN存儲(chǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)