史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 程式 & 網頁設計技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-05-17, 03:16 AM   #1 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 Together與Visual.Studio.NET的結合使用

這是我在51Delphi上寫的原貼,可是沒辦法貼圖,如果感興趣,可去hxxp://www.51delphi.com/wz/22.mht,看看。


謝謝大家。

最近一段時間因為工作需要,抽時間瞭解了一些關於.NET方面的東西。在其中感觸最多的是.NET關於企業架構方面一些獨樹一幟的地方,包括VS.NET自身帶的那些個企業範本,在很大程度上簡化了企業套用開發的難度。

對於企業級的開發套用,相信大家都會想到建模的問題,如何在VS.NET中套用建模就在VS.NET的開發中顯得尤為重要。


這段時間,我試了幾種工具,包括Visio.2003.Enterprise.Edtion、Visaul.UML.v.3.02等 (Rose我連想也沒有想,對一般的程序開發來說Rose實在是太龐大了。


而且那個什麼XDE當前還不支持VS2003。


^_^),Visio2003中文版可以和VS.NET結合,但其UML的建模功能比較差一些,Visual.UML的執行速度實在不 敢恭維。

昨天又看到有的論壇上在談論Boaland公司的Together.for.Visaul.NET,抱著試一試的態度安裝了一個,感覺真的是不錯。

有些心得,不敢獨享,現寫出來與大家共同學習探討。行文匆忙,不當之處,請批評指正。如需轉載,請標明出處。如需問題探討,可聯繫我。再次感謝Xalion的51Delphi網站,如果沒有他的指導與說明 ,相信也沒有這些文章的產生。

註:本文的執行環境為中文版Visual Studio .NET 2003及Borland Together Edition for Microsfot Visual Studio .NET version 1.0版。

1、Borland Together Edition for Microsoft Visual Studio .NET 的安裝
Together是一個跨平台的UML工具,我選項的是Borland Together Edition For Microsoft Visual Studio.NET Version 1.0版,從ReadMe來看,其最後的更新時間是August 28,2003,大家可以在Borland的網站上來下載

。註冊機。

該註冊機須JDK.v.1.3的支持,請確保您的電腦上安裝有Java的執行包才成。安裝程序沒什麼好說的,一路Next下來。然後啟動VS.NET,如果安裝成功的話,會見到如下的畫面(圖一):


圖一:Boland Together Edition for Microsoft Visual Studio .NET的安裝界面

然後執行:Registry Together VS .NET表單指令,將產生的註冊號進行註冊即可。如果發生註冊不成功的情況,可以用Licence Managerment表單指令將無效的註冊號刪除,並重新產生(我也是第一次不成功,而後又重新產生一個註冊碼後才註冊成功的)。

2、Borland Together Edition for Microsoft Visual Studio .NET的簡介
Borland Together Edition for Microsoft Visual Studio .NET主要的功能包括以下幾方面:UML建模、雙向程式碼產生、模式支持、HTML我的文件產生、匯入、出XML格式等主要的幾項功能。

所需的軟體平台,當然首要的是你的電腦上已經安裝並成功執行了Microsoft Visual Studio .NET 2003並且使用的編程語言是C# .NET。另外,硬體的需求不算太高:PentiumIII/500Mhz,最小記憶體512M、30M磁牒空間、SVGA 1024X768以及需要需要W2K+SP2或者WinXP Professional的操作系統來支持。

Borland Together Edition for Microsoft Visual Studio .NET並不是一個單獨的可執行的程序,而是被集成到了VS.NET的環境當中,主要有三大部分組成:第一部分是Model View(模型視圖,圖二)、第二部分是Digram View(圖表視圖,圖四)、第三部分是內容視窗(圖三)。
圖二:模型視圖 圖三:內容視窗

圖四:圖表視圖


3、通過實例來套用Together

下面通過一個實例來看一下如何套用VS.NET環境下的Together。這個例子相當簡單,它模仿實現一個音像帶出租店的實現模型。

它涉及的Actor主要有兩個:一個是店員,一個是客戶。



店員主要是對實現對店內錄像帶的管理功能,而客戶主要是實現租賃 錄像帶的功能。首先,在VS.NET中新增一個項目文件:Video Store(圖五)。


圖五:新增一個VS.NET項目文件

然後VS會新增一個項目文件Video Store。


選項視圖->Together VS .NET Model View表單指令會開啟一個Module視圖(這是Together為新增的項目文件產生的一個預設的視圖,圖六):


圖六:預設項目裡的Modul視圖

下面新增一個用戶用例圖(Use Case Diagram),選項Default->Video_Store->Add->Other Diagram(圖七):


圖七:新增一個用戶用例圖(Use Case Diagram)

Together會彈出一個對話視窗(圖八),輸入Video Store Use Case來新增一個用例圖:


圖八:新增用戶圖

注意:如果是開啟一個曾經建立過的項目文件,想著套用Together的話,那麼請在「項目管理器」當中選項:
Together VS .NET Support,則會彈出一個對話視窗(圖九),請選它,然後驗證,以開啟已存在的Module文件(圖十)。


圖九、對已存在項目開啟Together 圖十:
對已有項目套用Together

新增成功之後,選項該用例圖,在左側的工具箱內會顯示一專門的做圖工具,包括:Actor、Use Case、Communicates、Extends、Includes、Generalization、System Boundary、Pattern、Note、Note Link等幾項,我們選項一個Actor,將其加入到用例圖中,並更改其名為:Clerk,用以代表售貨員。

可以雙按圖示或者選之後按F2鍵更改名字,當選一個圖形的時候,周邊會有一個邊框,亦可以移到邊框來調整圖形的大小。

選項「System Boundary Button」,在圖中做一個系統邊界,並重命名為「Inventory System」,使用「Use Case Button」,在系統邊界裡面新增兩個用例,一個是「Find Item by Keywords」,一個是「Find Item by Title」,分別代表通過關鍵字來找尋錄像帶及通過標題來找尋錄像帶兩種不同的用例。

選項「Communicates Button」,在圖中選Actor(Clerk),並將其移到到Use Case(圖十一):


圖十一:用例圖示例

選項Actor(Clerk),按F4鍵,可以開啟右側(預設情況下)的內容視窗,選項General->Stereotype右側的對話視窗按鈕(圖十二),會彈出一個對話視窗,請你選項該角色的原形,我們在這裡可以選項Manager(代表是管理者,圖十三):


圖十二:Clerk的內容視窗 圖十三:定義Clerk的Stereotype

增加一個新的用例Rent Item到System Boundery,另外再增加一個Actor-Customer,並使用Communicates link來連接Customer和Rent Item。最終形成的用例圖(圖十四):


圖十四:出租錄像帶的用例圖

先到這裡吧。斷斷續續已經寫了兩天了,再不拿出來,恐怕都已經變質了。呵呵,在後續文章裡面,我會將Together的套用寫完。謝謝大家!

3、通過實例來套用Together(二)

下面主要是用來建立靜態類圖。


開啟預設的圖(),在工具箱內選項Class(),然後在圖中建立一個類「Store」。選項該對象,按F4開啟內容視窗,點擊Stereotype右側的按鈕選項原型為「Place」(地點,表明錄像店的性質),重複以上的 步驟,將Clerk置成「Role」(角色),將「Item」置成「Description」(說明)。

另外,可以直接在圖上擊右鍵,選項Add->Class,或者在Model視圖中,右擊根結點,然後選項Add->Class。

靜態類圖建立完畢,如圖十五:


圖十五:初始靜態類圖

為一個Class新增成員:右擊Store,並選項Add->Field,增加一個新的內容,並對其賦值:address:string。



點擊F4鍵,可以彈出內容編輯視窗,點擊其中的Visibility域,並從下拉列表中選項Private內容。預設的情況下,Together VS.NET會新增public int域及public void方法。

為Store增加方法,右擊Store類並選項Add->Method,使用內嵌的編輯器為方法命名為:findByTitle。關於所填寫的各個類的內容及方法可參考表一。最終的Store如圖十六所顯示:


圖十六:Store類的構成
Class Fields Methods
Store address findByTitle
storeNumber findByKeywords
hours findByItemNumber
Clerk employeeId
name
Item itemNumber getItemNumber
title setItemNumber
getTitle
setTitle

表一:各類的內容及方法

圖十七:設定內容別名

可以通過Ctrl+W鍵來增加一個內容,Ctrl+M來增加一個方法,並利用F2鍵來進行命名或重命名工作。

選項storeNumber內容,在內容視窗中的alias裡面可以設定其別名,如:「Store Number」,如圖十七。當然,你也可完全可以設定一個中文的別名,以利於交流。點擊右鍵選項Goto Definition可以檢視Together產生的程式碼(如圖十八)


圖十八:Together自動產生的程式碼及別名

新增關係與連接。在該實例中存在兩個關係:一是Clerk關聯到Store,一是Store包括若干個Items。Clerk與Store之間的關係類似於「客戶」與「供應商」之間的關係,而對於Store和Items則明顯的是一個聚合關係(Aggra gation)。點擊Association Link按鈕,而後點擊Store並拖至Clerk,此行為會為所謂的客戶與供應商之間建立關係(圖十九):


圖十九:在Store與Clerk之間建立關係

在Store與Item之間另一新的關聯,使用內容視窗來定義連接的類型,從Type內容中定義Aggregation內容。

新增超級連接。Video Store有一個方法findByKeywords用以搜尋錄像帶。通過使用超級連接,可以快速確定圖與元素的關係類型並將其在模型中記錄下來,以用於其他的用例中。開啟用例圖,右擊「Find Item by Keywords」用例,選項Hyperliks->Edit,會出現一個對話視窗(圖二十),從「Available Content」面板中選項Video Store->Store->findByKeywords,然後點擊Add按鈕將所選元素加入到右側面板,點擊OK,此時,新增立的用例超級連接會以藍色字體顯示(圖二十一)。


圖二十:超級連接對話視窗

圖二十一:建立完成超級連接之後的用例圖

新增序列圖。序列圖用於設計對像模型的動態效果。在Model視圖,右擊Video Store根節點,Add->Other diagram,在彈出的對話視窗中選項「Sequence Diagram」,重命名為「Rent Movie Sqquence」,並點擊OK。從ToolBox中選項「UML Interaction Diagram」,點擊Actor按鈕,放置到圖中,重命名為「Clerk」,點擊對像按鈕,並點擊Actor時間線的右側,將該對像重命名為「theStore」。點擊工具盒中的「Message」按鈕,增加一個消息連接,並從Actor的時間線移到到 theStore的時間線,完成該序列圖(圖二十二):


圖二十二:序列圖

右擊theStore對象,選項Choose class->Store,最終的序列圖會顯示出來,注意此時的對象名稱已經關聯到對應的類中了。點擊消息鏈,選項Choose method->findByTitle():void,將消息鏈與一個方法聯繫起來(圖二十三):


圖二十三:消息鏈與方法進行關聯

在序列圖與協作圖之間進行轉換。在序列圖上右擊,選項「Show as Collaboration」表單指令,開啟協作圖,此時,在工具箱內會顯示與協作圖相關的作圖工具。在協作圖上右擊滑鼠,則可以通過上下文表單轉換到序列圖中。


4、Together的擴展套用之一:對模式的支持
Together支持常用的模式,像「四人幫」(這個詞也許只有咱們中國的程序才可以想得出來,呵呵)提出的那個著名的23種設計模式。設計人員可以使用模式來新增或修改已存在的連接和類。

在下面的例子中,假設Item需要一個動態系統,那麼一個Item被返回後,計數器被更新及其他系統得到通知。套用Observer(觀察模式)到Item類,可以實現這些功能。

右擊Video Store類圖,選項「Apply Pattern」,一個模式嚮導對話視窗會開啟(圖二十四):


圖二十四:模式嚮導對話視窗

從左邊的Patterns面板,選項Gof->Behavioral->Observer模式,在右邊的Pattern內容中,更改Class Subject名稱為Item,接受預設的內容設定,點擊OK,則類圖更改為圖二十五的樣子:


圖二十五:套用觀察員模式之後的類圖

Item被更新,包括通知消息及觀察方法(attach和detach),其他所需的類及接頭也被新增。Together以橢圓形來組織該模式及其他的視覺元素,列出了模式的參與者及連接,可以通過展開橢圓形Observer元素中的Participan ts(參與者)來觀察參與者的資訊。右擊Observer元素,選項Add可以觀察特殊模式的有效動作。

5、Together的擴展套用之二:產生我的文件
Together可為項目產生標準的HTML我的文件。在Model視圖中,右擊項目的根節點,選項Generate Documentation,找開一個對話視窗(圖二十六):


圖二十六:我的文件產生對話視窗

預設的情況下,我的文件產生嚮導會為整個項目產生我的文件,可以通過選項不同的範圍選項來限制我的文件的產生範圍。包括以下幾項:Current namespace:產生的我的文件輸出僅包括Model視圖中所選項的名字空間;Current namespace with descendent namespaces:產生的我的文件輸入包括Model視圖中所選名字空間及其後代名字空間;Current diagram:產生的我的文件輸出為圖表視圖中當前的焦點視圖;All:產生的我的文件輸出覆蓋全部的項目。

選項項包括:Output folder:產生的我的文件輸出的目標路徑;Include diagrams:產生的我的文件輸出中是否包括圖像;Include navigation tree:產生的我的文件輸出中是否包括導航樹;Launch HTML browser:是否在Visaul Studio .NET的WEB瀏覽器中裝入我的文件。如果不選項此項的話,可以在產生我的文件的目錄中開啟一個Index.html文件來瀏覽產生的輸出我的文件。產生的我的文件示例(圖二十七):


圖二十七:產生的我的文件輸出示例

可以通過左下角的導航樹,瀏覽你所有的工作。應該說,這個我的文件的輸出是相當完備的,如果在設計的時候做的比較周全的話,隨著設計的完成,一份系統的我的文件已然產生,省卻了開發人員的不少氣力,是功能最強及Together中最具特色的部分之一。


6、Together的擴展套用之三:匯入、匯出XMI項目文件
匯出XML項目文件。在Model視圖中,右擊Video Store項目,選項Export Project to XMI指令,會彈出一個XMI匯出對話視窗(圖二十八):


圖二十作:以XMI格式匯出項目

可以設定匯出XMI文件的類型及路徑。預設的情況下是「..<project_directory>\out\xmi\Video Store.xmi」。匯入的情況與些類似,不再贅述。

下一篇文章將對Together的一些設定選項做一綜述,時間已經很晚了(已經凌晨一點多了),先這樣吧。不當之處,請大家海涵。


7、Together的設定選項簡介

通用選項:


圖二十九:通用選項

Delete confirmation:此選項定義當你刪除一個元素的時候是否需要進行驗證。

Automatically enable Together VS.NET support for opened projects:當開啟一個已存在的項目時,是否自動啟用Together。

Automatically enable Together VS.NET support for the new prjoects:當新增一個項目文件時,是否自動啟用Together.

製圖選項:


圖三十:作圖選項

Font in diagrams:圖表視圖中字體的設定。

Meber format:設定顯示的方式。一個UML方式,是預設的表示方法,一個Language是自然語言表示法。

Show page borders:是否顯示頁面的邊框。

Gird height(pixels):格子的高度,以像素為服務機構,預設值是10點。

Gird width(pixels):格子的寬度,以像素為服務機構,預設值是10點。

Show grid:是否顯示格子。

Snap to grid:圖形是否對格式進行吸附。

3D look:每個圖形元素是否以三維形式顯示。

我的文件產生選項:


圖三十一:我的文件產生選項

Bottom:我的文件底端文字。

Documentation Title:我的文件的標題。

Footer:腳注。

Header:頭注。

Window Title:視窗標題。

internal:是否包含內部值。

private:是否包含私有值。

protected:是否包含保護值。

protected internal:是否包含保護性的私有值。

public:是否包含公開值。

Genarate Help:是否產生說明 。

Genarate Index:是否產生索引。

Genarate Navbar:是否產生導航條。

Genarater Tree:是否產生樹形表示。

Genarate Use:是否產生用戶用例。

模型視圖選項:


圖三十二:模型視圖選項

Show diagram nodes expandable:是否顯示擴展的圖形元素。

Sorting type:圖形元素的排序規則。

列印選項:


圖三十三:列印選項

Print compartments as line:是否以線方式列印間隔。

Print shadows:是否列印陰影。

Footer alignment:腳注對齊方式。

Footer text:腳注列印文本。預設內容是Printed by %user%(%longdate%),%user%代表用戶名,%longdate%代表長日期。

Print footer:是否列印腳注。

Fit to page:是否適合整頁。

Font:列印我的文件用字體。預設值是9.75磅的Microsoft Sans Serif字體。

Print border:是否列印邊框。

Print empty page:是否列印空白頁。

Print zoom:列印時放大倍率。

Header:每頁我的文件頭部文本內容。

Header alignment:我的文件頭部文本的對方式。

Print header:是否列印我的文件頭部。

Botoom margin:我的文件底部留空。預設為1英吋。

Left margin:我的文件左側留空。預設為1英吋。

Top margin:我的文件頂部留空。預設為1英吋。

Right margin:我的文件右側留空。預設為1英吋。

Page number alignment:頁號對齊方式。

Print page numbers:是否列印頁號。

Custom page height:自訂頁高。預設為11.88英吋。

Custom page width:自訂頁寬。預設為8.4英吋。

Paper orientation:列印方向。預設為Portrait(縱向)。

Page size:頁的大小。預設為A4型紙。

來源碼選項:


圖三十四:來源碼選項

Autocreate association links in interfaces:是否在接頭中自動新增關係連接。

Autocreate dependency links:是否自動新增依賴連接。

UML選項:


圖三十五:UML選項

Show referenced classnames:是否顯示引用的類名稱。此選項在當前項目中控制顯示/隱藏被引用的類名稱。

視圖管理選項:


圖三十六:視圖管理選項

Show association links:是否顯示關係連接。

Show classes:是否顯示類。

Show dependency links:是否顯示依賴連接。

Show generalization links:是否顯示泛化連接。

Show implementation links:是否顯示實現連接。

Show interfaces:是否顯示接頭。

Show members:是否顯示成員。

Show methods:是否顯示方法。

Show namespaces:是否顯示名稱空間。

Show non public classes:是否顯示非公開類。

Show non public members:是否顯示非公開成員。

Show notes:是否顯示註釋。

Show properties:是否內容。

Show shortcuts:是否顯示建立捷逕。


8、李維的法螺(轉貼)原作者:Raptor
Xalion推薦,覺得還有一些看的必要。不同政見者,權當一笑。呵呵

昨天BORLAND在上海錦滄文華開了個研討會,李維做了一個關於Borland的MDA產品演示。想想有一年多沒看到李胖子了,所以請了個假跑去看,從我們這鄉下旮旯跑到位於靜安區的會場還真TMD遠,害我換了三種交通工具才總算在一點半前趕到。到那裡 時,諾大的會場已經快坐了一半,只好找了個中間的位置坐坐,沒過多久,後面的位置也坐得差不多了。前後看看,BORLAND的用戶中,還是有不少PLMM的嘛

過了一點半,李胖子才出現,開始吹他的法螺了。距離上次見他已經有一年半了,當年他說的BORLAND要推出的galileo和charlotte至今還是蹤影全無,只是SideWinder變成了C#Builder,C++Builder變成C++Bu ilderX,看來真的是計劃沒有變化快啊。李胖子這回主要推的是BORLAND收購Together後的新產品:Together for .net,號稱目前.net平台下最好的MDA工具,當然順便也把BORLAND的ALM那一套(CaliberRM, StarTeam, OptimizeIt...)全又吹了一通,大多數偶是沒用過,不好說:P。

還是就拿昨天的那個Together來說吧。這次對Together的宣傳重點是:它是一個MDA解決方案。能夠agile地解決OOAD/OOP之間的問題,能通過Modeling的方式,非常快速地實現應用程式的開發。8過說實話,李胖子有誤導之嫌,彷彿BORLAND這次要宣傳的產品是MDA,而不是Together似的。8過其實關係也不大,至少目前炒作MDA的概念對Togethe r是絕對有利的。

其實MDA是OMG所提出的一個概念,就是Model Driven Architecture(這個東東包括其縮寫MDA都是OMG的註冊商標),其主要思想是將傳統的Modeling做法,從兩步變為三步,但本質還是關於UML的。

在傳統的UML Modeling程序中,一般是先用UML把各種Use Case Diagrams/Class Diagrams等等畫出來,然後產生程式碼,Coding。而MDA則對此作了改進,在二者之間加入一步Modeling。MDA中第一次Modeling所建的Models被稱為:PIM(Platform-Independent Model),這是一個高度抽像的Model,與具體的平台無關,即它完全是為了描述軟體的邏輯而做,與它將要用什麼技術實現無關,不管是要用.net還是J2EE或是CORBA,而且這個Model是MDA中最關鍵的部分。在MDA中,第二步的Mode ling被稱為:PSM(Platform-Specific Models),到這一步,Model就要被轉為與具體實現技術相關的了,根據不同的實現技術,同一個可以產生不同的PSM。最後,才是根據PSM產生程式碼並Coding。

雖然MDA比傳統兩步Modeling方式要多一個步驟,但實際上,PSM是通過工具自動從PIM產生,所以並不需要增加工作量。

關於MDA,可以參考OMG關於它的一個FAQ:http://www.omg.org/mda/faq_mda.htm

中場休息後,李胖子演示了一下Together for vs.net,一個集成在vs.net中的two way tools式的modeling工具。功能是粉強,8過很多方面跟一年前Rational發佈的XDE(http://www.rational.com/products/xde/index.jsp)有不少相似之處。XDE偶只是看過,沒有用過,看著像也只是看著像,也許Together也有一些特別的強處,因為李胖子也沒用過XDE,無法比較。Together現版本有很多吸引人的特色:完全的two way tools,反向工程(李胖子演示了把Duwamish做了一個反向工程,有誰做出來請來信探討,我怎麼沒做出來呢?bnpysse注^_^),支持多種Design pattern(包括GoF的和Borland自己的以及一些其它的DP,甚至可以自己定義DP),自動我的文件產生等。

最值的一提的應該還是C#Builder的Architect版,這是一個比較完整的MDA開發工具。之所以說是「比較完整」是因為現在的版本中,Modeling還是有一定的平台依賴(現在主要是針對.net),沒有完全實現PIM的Modeling。 現在的解決方案是把Model匯出為XMI(XML Metadata Integerchange),然後用其它Modeling工具匯入。

值得一提的是在C#Builder中,Borland提供了一個被稱為ECO(Enterprise Core Object)的O/R Mapping(Object/Relational Mapping)技術,利用這個技術,在Modeling中產生的Object可以直接映射到資料庫中成為Persistent Object。這是一種完全OO化的套用開發技術,過去那些Database Schema Script之類的煩心事都可以不用管了,省事太多。

其它的小道消息就只有:Delphi.net將於今年第四季度發佈,Delphi8將於明年第二季度發佈了。

關於Borland Together for VS.NET 1.0的簡介,到這裡就算是告一段落了(有點虎頭蛇尾的感覺,沒辦法,水準有限,大家將就著看吧)。
05-08-2004, 18:56

bnpysse
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2004-05-17, 10:14 AM   #2 (permalink)
YXH5063
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設

推推推...
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 12:00 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1