首先安裝IIS組件,注意安裝所有"internet信息服務"的所有組件;確保正常運行asp程序.
其次創建php運行環境
1.下載和安裝php程序,提供下載地址http://cn2.php.net/downloads.php ,我下載的版本是PHP
2.解壓縮到c:\php(自己指定目錄),將PHP文件夾中的php.ini-dist復制到C:\WINDOWS目錄下并改名為php.ini,復制php5ts.dll和libmysql.dll兩個文件到C:\WINDOWS\system32
3.為了讓PHP支持MYSQL和GD庫需要編輯php.ini文件,用記事本打開該文件,查找“extension_dir”,然后把extension_dir = "./"修改為extension_dir = "C:\php\ext";另外還需要把“;extension=php_mysql.dll”前的分號去掉,改成extension=php_mysql.dll。把“;extension=php_gd2.dll”前的分號也去掉,修改為extension=php_gd2.dll。
最后配置IIS的PHP映射
打開IIS,在默認網站上點右鍵選擇"屬性"---"主目錄",更改執行權限為"腳本和可執行文件",再點"配置",打開“添加和編輯應用程序擴展名映射”窗口,添加C:\php\php5isapi.dll的可執行文件.擴展名輸入.php,這樣在解析過程中將自動調用php5isapi.dll解釋PHP語言。
將以下代碼另存為index.php
<?
echo phpinfo();
?>
創建虛擬目錄執行.
如有異常,請在默認網站屬性中的ISAPI篩選器標簽,添加一個名為PHP的篩選器,可執行文件選擇C:\php\php5isapi.dll即可.
本人機器環境為:WinXP SP2 + IIS5.1
1.安裝JDK
Groovy是基于JVM的,當然,先得裝個JDK了,并配置好Java環境
2.下載并安裝groovy
下載地址:http://groovy.codehaus.org/Download
我下載的是1.5.6 Binary Release.解壓到指定目錄(我的是C:\groovy),到這里groovy已經安裝好了
3.配置環境變量
設置GROOVY_HOME?? --->?? C:\groovy
將%GROOVY_HOME%\bin追加到Path里
4.測試
開啟命令提示符窗口,輸入命令groovy -v
到此,Groovy環境配置成功。
注意:不用加載lib下面的jar到classpath中,groovy執行時會自動加載,在%GROOVY_HOME%\conf\groovy-starter.conf文件中已經加載了。
5.常用命令
Groovy –h 幫助
Groovy – v 打印使用的版本
Groovy – e “腳本內容”
Groovy filename 執行指定腳本文件內容
Groovy –Xmx128M 可以跟java命令使用的參數
編譯groovy文件
groovyc –d classes 文件名.groovy (我這里為:Hello)
用java命令運行
java -cp %GROOVY_HOME%/embeddable/groovy-all-1.5.6.jar;classes 類名(我這里為:Hello)
6.Groovy開發工具:
默認支持
Groovysh?????????? shell方式交互執行腳本
Groovy??????????????? 命令行執行
Groovyconsole??? gui方式執行
其他相關資源鏈接
Groovy輕松入門--搭建Groovy開發環境
http://hi.baidu.com/pplog/blog/item/d3f1b77e263f5b390dd7dac7.html
Groovy輕松入門--Grails實戰基礎篇
http://hi.baidu.com/pplog/blog/item/5aae560f0a39e92b6159f3c0.html
Groovy是一種基于JVM的敏捷開發語言,它結合了Python、Ruby和Smalltalk的許多強大的特性。 Groovy已在WebWork2中的應用。它可以被編譯為標準的Java Bytecode。
該項目主頁:http://groovy.codehaus.org/,在該網站上,Groovy是這樣定義的:
SWT程序
SWT是一套獨立的庫,用戶可以在SWT的基礎上很容易地建立自己的應用,本節的目的就是要在SWT上建立一個簡單的“Hello world”程序,讀者可以在這個簡單的程序上建立自己的應用。
加入SWT依賴的包
SWT為用戶提供了一套API,用戶如果要使用SWT進行開發,必須要把所需的Jar包放在Eclipse項目的ClassPath中。在此筆者采用新建一個插件項目,插件項目會自動引用SWT相關的包,步驟如下。
1. 運行Eclipse。
單擊“File”→“New”→“Other”菜單項,在彈出的對話框中選擇 Select 對話框左邊的 Plug-in Development 向導。如圖3所示,選擇 Plug-in Project。
圖3 新建插件對話框
2. 單擊“Next”按鈕,彈出新建對話框,輸入項目名稱。此處使用了“com.free.swtjface.demo”。單擊“Next”按鈕后彈出新建對話框頁,如圖4所示。
圖4 新建項目
3. 單擊“Next”按鈕,在接下來的對話框中單擊“Finish”按鈕,建立一個空的插件項目在此項目中,Eclipse中已經自動引入了此插件所需要依賴的包,其中包括SWT/JFace所用到的包如圖5所示。
圖5 插件依賴的包
如果用戶想加入SWT/JFace相關的包,也可以手動加入下面幾個包“org.eclipse.swt.win32. win32.x86_*.jar”、“org.eclipse.swt_*.jar”和“org.eclipse.jface_*.jar”到插件的類路徑中。
提示:對于初學者,通過創建插件項目自動引入SWT的jar包是一個比較好的方法,如果開發插件項目,用戶也不用但心SWT的jar包沒有引入的問題。
“Hello world”SWT程序
現在SWT所依賴的包已經加入到了項目的ClassPath中,SWT程序和Java的程序一樣,也是通過main函數運行的,如例程1所示。
例程1 HelloWorldSwt.java
public class HelloWorldSwt { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("hello world! Window"); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } }
這段程序雖然很簡單,但是它反映了書寫SWT程序的步驟:
1. 創建一個Display對象。Display對象是SWT和操作系統通信的橋梁。
2. 創建一個或者多個Shell對象。可以認為Shell代表了程序的窗口。
3. 在Shell內創建各種部件(widget),如按鈕、下拉框和列表等。
4. 對各個部件進行初始化(外觀、狀態等),同時為各種部件的事件創建監聽器 (listener)。監聽器可以監聽窗口的消息,在此沒有添加監聽器,將會在后面的章節重點介紹監聽器的注冊。
5. 調用Shell對象的open()方法以顯示窗體。
6. 對各種事件進行監聽并處理,直到程序發出退出消息。
7. 調用Display對象的dispose()方法以結束程序。
提示:SWT程序的運行和例程1類似,讀者如果不清楚SWT程序的運行機制,可以直接復制上面的樣板代碼就可以了。
運行SWT應用
SWT程序的運行要通過JNI調用相應的操作系統控件,運行SWT程序和運行Java應用程序有點不同,在Eclipse中用戶可以選擇運行SWT程序(SWT Application)可以運行SWT程序,步驟如下:
1. 打開Java的默認視圖,在“Hello world”程序的文件上單擊鼠標右鍵。
2. 選擇“SWT Application”菜單,如圖6所示。
圖6 運行SWT程序
3. 單擊“SWT Application”菜單運行,運行效果如圖7所示。
圖7 SWT“Hello world”程序
HelloWorldSwt程序只創建了一個窗口(shell),讀者可以把shell當作其它組件的父窗口,創建其它組件。
提示:在Eclipse3.3以后,運行SWT程序和運行Java程序是一樣的。
JFace程序
JFace 是一個用戶界面工具箱,它提供很難實現的、用于開發用戶界面功能部件的 helper 類,JFace 在原始的窗口小部件系統的級別之上運行。JFace 使用戶可以專注于實現特定插件的功能,而不必花費精力來處理底層窗口小部件系統或者解決幾乎在任何用戶界面應用程序中都很常見的問題。
“Hello world”JFace程序
JFace的應用程序相對來說更簡單,它通過“ApplicationWindow”類實現應用,“ApplicationWindow”把和操作系統交互的細節封裝起來了,用戶只需要關心自己窗口的建立,程序代碼如例程2所示。
例程2
public class HelloWorldJFace extends ApplicationWindow { public HelloWorldJFace() { super(null); } protected Control createContents(Composite parent) { getShell().setText("hello world! Window"); parent.setSize(400, 250); return parent; } public static void main(String[] args) { HelloWorldJFace helloWorldApp = new HelloWorldJFace(); helloWorldApp.setBlockOnOpen(true); helloWorldApp.open(); Display.getCurrent().dispose(); } }
其中,JFace的應用程序可以通過重載“createContents(Composite parent)”方法添加窗口的組件到parent組件中。
運行JFace的程序和運行SWT程序一樣。
Tags:java,rcp,jface,swt,ibm,eclipse,ui,gui
Eclipse 是一個通用工具平臺。它是一個開放的、可用于任何東西的可擴展 IDE,它為工具開發人員提供了靈活性以及對軟件技術的控制能力。Eclipse 為開發人員提供了生產大量 GUI 驅動的工具和應用程序的基礎。而這項功能的基礎就是基于GUI庫 的SWT 和 JFace。
圖1 SWT/JFace和Workbench的關系
JFace對SWT進行了擴展,把用戶熟悉的一些組件進行了封裝,在開發中用戶可以盡可能地用JFace組件來開發自己的應用。JFace程序和SWT程序類似,只不過JFace把常用的功能進行了提煉,使用戶不必太關心SWT的一些細節。
提示:SWT提供了一套API,它因為Eclipse而生,但它完全可以脫離Eclipse而存在。
圖2 Widget類的繼承關系
幾乎所有SWT GUI都是從某些基礎部分開始創建的。所有SWT窗口組件都可以在 org.eclipse.swt.widget 或 org.eclipse.swt.custom 包中找到(一些Eclipse插件還在其他包中提供了定制的窗口組件)。窗口組件包中包含一些基于操作系統控件的控件,而定制包中則包含一些超出操作系統控件集之外的控件。一些定制的軟件包控件類似于窗口小部件包中的控件。為了避免命名沖突,定制控件的名稱都是以“C”開始的(例如,比較 CLabel 與 Label)。
在SWT中,所有控件(除了一些高級控件,比如 shell)在創建的時候都必須有一個父控件(一個復合實例)。在創建的時候,這些控件被自動“添加”到父控件中,這與必須明確添加到父控件中的 AWT/Swing 中的控件有所不同,自動添加產生了一種“自上而下”地構造GUI的方法。這樣,所有控件都可以采用一個復合父控件(或者一個子類)作為構造函數的參數。
大多數控件都有一些必須在創建時設置的標記選項,因此大多數控件還有另外一個構造函數參數,通常稱為樣式或風格,該參數提供了設置這些選項的標記。所有這些參數值都是 整型常量,并且都是在 org.eclipse.swt 包的 SWT 類中定義的。如果不需要任何參數,則可以使用 SWT.NONE 值。
提示:創建一個組件通常有兩個參數,第一個為父組件,第二個組件的顯示樣式,例如:“Button button = new Button(shell, SWT.RADIO);”。
Tags:java,rcp,jface,swt,ibm,eclipse,ui,gui
package swt.expandbar;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.ExpandBar;
import org.eclipse.swt.widgets.ExpandItem;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.Shell;
public class WindowStyle {
public WindowStyle() {
?? final Display display = Display.getDefault();
?? final Shell shell = new Shell(SWT.MIN);
?? shell.setText("ExpandBar練習");
?? shell.setSize(200, 518);
?? shell.setLayout(new FillLayout());
??
?? ExpandBar expandBar = new ExpandBar(shell,SWT.V_SCROLL);
?? {
??? Composite comp1 = new Composite(expandBar,SWT.NONE);
??? comp1.setLayout(new GridLayout(2,false));
??? new Label(comp1,SWT.NONE).setImage(new Image(display,"icons/default.gif"));
??? new Link(comp1,SWT.NONE).setText("<a>查看系統信息</a>");
???
??? new Label(comp1,SWT.NONE).setImage(new Image(display,"icons/doc.gif"));
??? new Link(comp1,SWT.NONE).setText("<a>添加/刪除程序</a>");
???
??? new Label(comp1,SWT.NONE).setImage(new Image(display,"icons/main.gif"));
??? new Link(comp1,SWT.NONE).setText("<a>更改一個設置</a>");
??? ExpandItem item1 = new ExpandItem(expandBar, SWT.NONE);
??? item1.setText("系統任務");
??? item1.setHeight(75);// 設置Item的高度
??? item1.setControl(comp1);// setControl方法控制comp1的顯現
?? }
??
?? {??
??? Composite comp2 = new Composite(expandBar,SWT.NONE);
??? comp2.setLayout(new GridLayout(2,false));
??? new Label(comp2,SWT.NONE).setImage(new Image(display,"icons/computer.gif"));
??? new Link(comp2,SWT.NONE).setText("<a>網上鄰居</a>");
??? new Label(comp2,SWT.NONE).setImage(new Image(display,"icons/inc.gif"));
??? new Link(comp2,SWT.NONE).setText("<a>我的文檔</a>");
??? new Label(comp2,SWT.NONE).setImage(new Image(display,"icons/folder.gif"));
??? new Link(comp2,SWT.NONE).setText("<a>共享文檔</a>");
??? new Label(comp2,SWT.NONE).setImage(new Image(display,"icons/cmd.gif"));
??? new Link(comp2,SWT.NONE).setText("<a>控制面板</a>");
??? ExpandItem item1 = new ExpandItem(expandBar, SWT.NONE);
??? item1.setText("其他位置");
??? item1.setHeight(95);// 設置Item的高度
??? item1.setControl(comp2);// setControl方法控制comp1的顯現
?? }
??
?? {
??? Composite comp3 = new Composite(expandBar,SWT.NONE);
??? comp3.setLayout(new GridLayout());
???
??? // setup bold font
??? Font boldFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);
??? Label l = new Label(comp3,SWT.NONE);
??? l.setText("我的電腦");
??? l.setFont(boldFont);
???
??? new Label(comp3,SWT.NONE).setText("系統文件夾");
???
??? ExpandItem item1 = new ExpandItem(expandBar, SWT.NONE);
??? item1.setText("詳細信息");
??? item1.setHeight(50);// 設置Item的高度
??? item1.setControl(comp3);// setControl方法控制comp1的顯現
?? }
??
?? shell.layout();
?? shell.open();
??
?? while(!shell.isDisposed()) {
??? if(!display.readAndDispatch())
???? display.sleep();
?? }
?? display.dispose();
}
public static void main(String[] args) {
?? new WindowStyle();
}
}
以上程序中會用到7個icon小圖片,把他們放置在工程根目錄下的icons目錄下
運行效果:
Tags:java,rcp,jface,swt,ibm,eclipse,ui,gui
1. 軟件版本階段說明
?? ?? ?? ??? * Base版: 此版本表示該軟件僅僅是一個假頁面鏈接,通常包括所有的功能和頁面布局,但是頁面中的功能都沒有做完整的實現,只是做為整體網站的一個基礎架構。
?? ?? ?? ??? * Alpha版: 此版本表示該軟件在此階段主要是以實現軟件功能為主,通常只在軟件開發者內部交流,一般而言,該版本軟件的Bug較多,需要繼續修改。
?? ?? ?? ??? * Beta版: 該版本相對于α版已有了很大的改進,消除了嚴重的錯誤,但還是存在著一些缺陷,需要經過多次測試來進一步消除,此版本主要的修改對像是軟件的UI。
?? ?? ?? ??? * RC版: 該版本已經相當成熟了,基本上不存在導致錯誤的BUG,與即將發行的正式版相差無幾。
?? ?? ?? ??? * Release版: 該版本意味“最終版本”,在前面版本的一系列測試版之后,終歸會有一個正式版本,是最終交付用戶使用的一個版本。該版本有時也稱為標準版。一般情況下,Release不會以單詞形式出現在軟件封面上,取而代之的是符號(R)。
?? 2. 版本命名規范
?? ?? 軟件版本號由四部分組成,第一個1為主版本號,第二個1為子版本號,第三個1為階段版本號,第四部分為日期版本號加希臘字母版本號,希臘字母版本號共有5種,分別為:base、alpha、beta、RC、release。例如:1.1.1.051021_beta。
# 版本號定修改規則:
* 主版本號(1):當功能模塊有較大的變動,比如增加多個模塊或者整體架構發生變化。此版本號由項目決定是否修改。
* 子版本號(1):當功能有一定的增加或變化,比如增加了對權限控制、增加自定義視圖等功能。此版本號由項目決定是否修改。
* 階段版本號(1):一般是 Bug 修復或是一些小的變動,要經常發布修訂版,時間間隔不限,修復一個嚴重的bug即可發布一個修訂版。此版本號由項目經理決定是否修改。
* 日期版本號(051021):用于記錄修改項目的當前日期,每天對項目的修改都需要更改日期版本號。此版本號由開發人員決定是否修改。
* 希臘字母版本號(beta):此版本號用于標注當前版本的軟件處于哪個開發階段,當軟件進入到另一個階段時需要修改此版本號。此版本號由項目決定是否修改。
# 文件命名規范
文件名稱由四部分組成:第一部分為項目名稱,第二部分為文件的描述,第三部分為當前軟件的版本號,第四部分為文件階段標識加文件后綴,例如:項目外包平臺測試報告1.1.1.051021_beta_b.xls,此文件為項目外包平臺的測試報告文檔,版本號為:1.1.1.051021_beta。
?? 3.
?? ?? 如果是同一版本同一階段的文件修改過兩次以上,則在階段標識后面加以數字標識,每次修改數字加1,項目外包平臺測試報告1.1.1.051021_beta_b1.xls
?? ?? 當有多人同時提交同一份文件時,可以在階段標識的后面加入人名或縮寫來區別,例如:項目外包平臺測試報告 1.1.1.051021_beta_b_LiuQi.xls。當此文件再次提交時也可以在人名或人名縮寫的后面加入序號來區別,例如:項目外包平臺測試報告1.1.1.051021_beta_b_LiuQi2.xls
?? 4. 版本號的階段標識
?? ?? 軟件的每個版本中包括11個階段,詳細階段描述如下:
?? ?? 階段名稱 ?? ?? ?? ?? ?? ??? 階段標識
?? ?? 需求控制 ?? ?? ?? ?? ?? ?? ?? ?? ?? a
?? ?? 設計階段 ?? ?? ?? ?? ?? ?? ?? ?? ?? b
?? ?? 編碼階段 ?? ?? ?? ?? ?? ?? ?? c
?? ?? 單元測試 ?? ?? ?? ?? ?? ?? ?? d
?? ?? 單元測試修改 ?? ?? ?? ?? ?? e
?? ?? 集成測試 ?? ?? ?? ?? ?? ?? ?? f
?? ?? 集成測試修改 ?? ?? ?? ?? ?? g
?? ?? 系統測試 ?? ?? ?? ?? ?? ?? ?? h
?? ?? 系統測試修改 ?? ?? ?? ?? ?? ?? ??? i
?? ?? 驗收測試 ?? ?? ?? ?? ?? ?? ?? ??? j
?? ?? 驗收測試修改 ?? ?? ?? ?? ?? ??? k
===================================================
Alpha:
Alpha是內部測試版,一般不向外部發布,會有很多Bug.除非你也是測試人員,否則不建議使用.
是希臘字母的第一位,表示最初級的版本
alpha就是α,beta就是β
alpha版就是比beta還早的測試版,一般都是內部測試的版本
--------------------
Beta:
很容易理解就是測試版,這個階段的版本會一直加入新的功能。
RC:(Release Candidate)
Candidate是候選人的意思,用在軟件上就是候選版本。Release.Candidate.就是發行候選版本。和Beta版最大的差別在于Beta階段會一直加入新的功能,但是到了RC版本,幾乎就不會加入新的功能了,而主要著重于除錯!
RTM:全稱為Release to Manufacture。
是給工廠大量壓片的版本,內容跟正式版是一樣的,不過 RTM.也有出120天評估版。但是說RTM.是測試版是錯的。正式在零售商店上架前,是不是需要一段時間來壓片,包裝、配銷呢?所以程序代碼必須在正式發行前一段時間就要完成,這個完成的程序代碼叫做Final.Code,這次Windows.XP開發完成,外國媒體用Windows XP.goes.gold來稱呼。程序代碼開發完成之后,要將母片送到工廠大量壓片,這個版本就叫做RTM版。所以說,RTM版的程序碼一定和正式版一樣。但是和正式版也有不一樣的地方:例如正式版中的OEM不能升級安裝,升級版要全新安裝的話會檢查舊版操作系統光盤等,這些就是RTM和正式版不同的地方,但是它們的主要程序代碼都是一樣的。
OEM:
是給計算機廠商隨著計算機販賣的,也就是隨機版。只能隨機器出貨,不能零售。只能全新安裝 ,不能從舊有操作系統升級。如果買筆記型計算機或品牌計算機就會有隨機版軟件。包裝不像零售版精美,通常只有一面CD和說明書(授權書)。
RVL:
號稱是正式版,其實RVL.根本不是版本的名稱。RVL.是一個Warez.Team,臺灣分部叫RVL@TW.,它之間又釋出一個.WinXP.RVL@TW.版本。它是某中文版+英文Corpfiles破解的。
EVAL:
而流通在網絡上的EVAL版,是微軟幫媒體記者編輯上課給的,是所謂的「評估版」沒錯,你輸入的金鑰是30天的,就可用30天,輸入的是180天的,就可用180天。功能上和零售版無乎沒有區別。
RTL:Retail.(零售版)
是真正的正式版,正式上架零售版。在安裝盤的i386文件夾里有一個 eula.txt,最后有一行EULAID,就是你的版本。比如簡體中文正式版是EULAID:WX.4_PRO_RTL_CN,繁體中文正式版是 WX.4_PRO_RTL_TW。其中:如果是WX.開頭是正式版,WB.開頭是測試版。_PRE,代表家庭版;_PRO,代表專業版。===============================================================
版本號:
V(Version):即版本,通常用數字表示版本號。(如:EVEREST Ultimate v4.20.1188 Beta )
Build:用數字或日期標示版本號的一種方式。(如:VeryCD eMule v0.48a Build 071112)
SP:Service Pack,升級包。(如:Windows XP SP 2/Vista SP 1)
授權和功能劃分:
試用版,通常都有時間限制,有些試用版軟件還在功能上做了一定的限制。可注冊或購買成為正式版。Unregistered:未注冊版,通常沒有時間限制,在功能上相對于正式版做了一定的限制。可注冊或購買成為正式版。
Demo:演示版,僅僅集成了正式版中的幾個功能,不能升級成正式版。
Lite:精簡版。
Full:完整版。開發階段劃分:
α(Alpha)版:內測版,內部交流或者專業測試人員測試用。Bug較多,普通用戶最好不要安裝。
β(Beta)版:公測版,專業愛好者大規模測試用,存在一些缺陷,該版本也不適合一般用戶安裝。
γ(Gamma)版:相當成熟的測試版,與即將發行的正式版相差無幾。
RC版:Release Candidate候選版本,處于Gamma階段。從Alpha到Beta再到Gamma是改進的先后關系,但RC1、RC2往往是取舍關系。
Final:正式版。
語言劃分:
SC:Simplified Chinese簡體中文版。
GBK:簡體中文漢字內碼擴展規范版。
TC:Traditional Chinese繁體中文版。
BIG5:繁體中文大五碼版。
UTF8:Unicode Transformation Format 8 bit,對現有的中文系統不是好的解決方案。
================================================================================
??????? ●alpha 內部測試版
●beta 外部測試版
●demo 演示版
●Enhance 增強版或者加強版 屬于正式版
●Free 自由版
●Full version 完全版 屬于正式版
●shareware 共享版
●Release 發行版 有時間限制
●Upgrade 升級版
●Retail 零售版
●Cardware 屬共享軟件的一種,只要給作者回復一封電郵或明信片即可。(有的作者并由此提供注冊碼等),目前這種形式已不多見。
●Plus 屬增強版,不過這種大部分是在程序界面及多媒體功能上增強。
●Preview 預覽版
●Corporation & Enterprise 企業版
●Standard 標準版
●Mini 迷你版也叫精簡版,只有最基本的功能
●Premium -- 貴價版
●Professional -- 專業版
●Express -- 特別版
●Deluxe -- 豪華版
●Regged -- 已注冊版
●CN -- 簡體中文版
●CHT -- 繁體中文版
●EN -- 英文版
●Multilanguage -- 多語言版
●Rip 是指從原版文件(一般是指光盤或光盤鏡像文件)直接將有用的內容(核心內容)分離出來,剔除無用的文檔,例如PDF說明文件啊,視頻演示啊之類的東西,也可以算做是精簡版吧…但主要內容功能是一點也不能缺少的!另:DVDrip是指將視頻和音頻直接從DVD光盤里以文件方式分離出來。
●trail 試用版(含有某些限制,如時間、功能,注冊后也有可能變為正式版)
●RC 版 就是Release Candidate(候選版本)的簡稱。從微軟的慣例來看推出RC版操作系統就代表正式版的操作系統已經離我們不遠了,因為微軟操作系統的開發步驟是這樣的:內部測試->alpha公測->beta公測->RC版->正式版上市;通常微軟的RC版本篩選會經歷2-3個過程,也就是說微軟會推出RC1、RC2或者RC3的操作系統,而隨后就是正式版操作系統上市了,因此通常來看RC1版操作系統已經同最終零售版操作系統相差無幾了。該版本已經完成全部功能并清除大部分的BUG。到了這個階段只會除BUG,不會對軟件做任何大的更改。
●RTM 版。這基本就是最終的版本,英文是 Release To Manufactur,意思是發布到生產商。
●Original Equipment Manufacturer (OEM)
You may license products through an Original Equipment Manufacturer (OEM). These products, such as Windows operating systems, come installed when you purchase a new computer.
OEM軟件是給電腦生產廠的版本,無需多說。
●Full Packaged Product (FPP)-Retail
Physical, shrink-wrapped boxes of licensed product that can be purchased in a local retail store or any local software retailer.
FPP就是零售版(盒裝軟件),這種產品的光盤的卷標都帶有"FPP"字樣,比如英文WXP Pro的FPP版本的光盤卷標就是WXPFPP_EN,其中WX表示是Windows XP,P是Professional(H是Home),FPP表明是零售版本,EN是表明是英語。獲得途徑除了在商店購買之外,某些MSDN用戶也可以得到。
●Volume Licensing for Organizations (VLO)
You may enjoy potentially significant savings by acquiring multiple product licenses. Depending on the size and type of your organization.
團體批量許可證(大量采購授權合約),這是為團體購買而制定的一種優惠方式。這種產品的光盤的卷標都帶有"VOL"字樣,取"Volume"前3個字母,以表明是批量,比如英文 WXP Pro的VOL版本的光盤卷標就是WXPVOL_EN,其中WX表示是Windows XP,P是Professional(VOL沒有Home版本),VOL表明是團體批量許可證版本,EN是表明是英語。獲得途徑主要是集團購買,某些 MSDN用戶也可以得到。
這種版本根據購買數量等又細分為“開放式許可證”、“選擇式許可證”、“企業協議”、“學術教育許可證”等以下5種版本
·Open License
·Select License
·Enterprise Agreement
·Enterprise Subscription Agreement
·Academic Volume Licensing
由此可見,平時說的什么select/corp是許可證授權方式,他的出現是為了用若干種不同級別的優惠政策賣同一種軟件,通過select/corp 許可證授權方式得到的xxx的光盤都是VOL這一種、是并不是有很多種,只不過是相同的VOL光盤配以不同的許可證方式;而Volume Licensing (Product) Keys,即VLK,它所指的只是一個Key(密匙),僅僅是一個為證明產品合法化、以及安裝所使用的Key,因為根據VOL計劃規定,VOL產品是不需要激活的!
或者說,VLK不是指一種版本,而是指這種版本在部署(deploy)過程中所需要的Key,而需要VLK這種Key的版本應該叫做VOL!只不過在實際中,沒有必要強調這種叫法、稱呼的準確性,加之很多人的VOL版本光盤是通過企業的選擇式許可證、企業協議等方式得到的等等原因,所以才會有很多人叫他為“選擇版”等等。
官方網站有一個表格,上面有一句話:“Different products require different Volume Licensing Keys (VLKs). Refer to the table below to make sure you have the correct VLK for your Microsoft product.”,我想這就很好的說明了VLK指的是Key而不是產品了。 很明顯的,FPP需要激活,VOL不需要激活
================================================================================
Beta 是希臘字母中的第二個字母β,在軟件開發中指軟件測試的第二階段,由將來用戶中的一部分人試用。以前,希臘字母alpha指軟件開發過程中的第一階段,包括部件測試,整件測試和系統測試。 Beta測試也指產品推出前的測試,軟件商把beta測試版軟件在網上發放給更多的用戶進行實用測試為以后版本的出臺做準備。
Alpha版(內部測試版):一般只在軟件開發公司內部運行,不對外公開。主要是開發者自己對產品進行測試,檢查產品是否存在缺陷、錯誤,驗證產品功能與說明書、用戶手冊是否一致。
Beta版(外部測試版):軟件開發公司為對外宣傳,將非正式產品免費發送給具有典型性的用戶,讓用戶測試該軟件的不足之處及存在問題,以便在正式發行前進一步改進和完善。一般可通過Internet免費下載,也可以向軟件公司索取。
Demo版(演示版):主要是演示正式軟件的部分功能,用戶可以從中得知軟件的基本操作,為正式產品的發售擴大影響。如果是游戲的話,則只有一兩個關卡可以玩。該版本也可以從Internet上免費下載。
Enhace版(增強版或加強版):如果是一般軟件,一般稱作“增強版”,會加入一些實用的新功能。如果是游戲,一般稱作“加強版”,會加入一些新的游戲場景和游戲情節等。這是正式發售的版本。
Free版(自由版):這一般是個人或自由軟件聯盟組織的成員制作的軟件,希望免費給大家使用,沒有版權,一般也是通過Internet免費下載。
Full Version版(完全版):也就是正式版,是最終正式發售的版本。
Shareware版(共享版):有些公司為了吸引客戶,對于他們制作的某些軟件,可以讓用戶通過Internet免費下載的方式獲取。不過,此版本軟件多會帶有一些使用時間或次數的限制,但可以利用在線注冊或電子注冊成為正式版用戶。
Release版(發行版):不是正式版,帶有時間限制,也是為擴大影響所做的宣傳策略之一。比如Windows Me的發行版就限制了只能使用幾個月,可從Internet上免費下載或由公司免費奉送。
Uprgade版(升級版):當你有某個軟件以前的正式版本時,可以購買升級版,將你的軟件升級為最新版。升級后的軟件與正式版在功能上相同,但價格會低些,這主要是為了給原有的正版用戶提供優惠。
測試版與演示版
α:代表該軟件僅僅是一個初步完成品,通常只在軟件開發者內部交流,也有很少一部分發布給專業測試人員。該版本軟件的bug較多,而且極不穩定,用了之后也有可能導致系統崩潰。不過,普通用戶難以得到它,即使得到最好也不要安裝。
β:該版本相對于α版已有了很大的改進,消除了嚴重的錯誤,但還是存在著一些缺陷,需要經過大規模的發布測試來進一步消除bug。這一版本通常由軟件公司免費發布,用戶可從相關的站點下載。通過一些專業愛好者的測試,將結果反饋給開發者,后者再進行有針對性的修改。該版本也不適合一般用戶安裝。
γ:該版本已經相當成熟了,與即將發行的正式版相差無幾,如果用戶實在等不及了,盡可以裝上一試。
trial:試用版。試用版的軟件在最近幾年頗為流行,主要是得益于因特網的迅速發展。該版本軟件通常都有時間限制,如20天、1個月等等,時間一到,用戶就無法再使用了,除非交納一定的費用進行注冊和購買正式版。有些試用版軟件還在功能上做了一定的限制。
unregistered:未注冊版。未注冊版與試用版兩者極其類似,只是未注冊版通常沒有時間限制,在功能上相對于正式版做了一定的限制,例如絕大多數網絡電話軟件的注冊版和未注冊版,兩者之間在通話質量上有很大差距。還有些雖然在使用上與正式版毫無二致,但是動不動就會彈出一個惱人的消息框來提醒你注冊,如看圖軟件 acdsee。用戶如果對該軟件感興趣,可以通過指定的方法向軟件公司注冊。
demo:非正式版軟件中數該版本的知名度最大,稱為演示版。演示版僅僅集成了正式版中的幾個功能,頗有點像unregistered。不同的是,demo版一般不能升級和通過注冊的方法變為正式版。
以上是軟件正式版本推出之前的幾個版本,α、β、γ可以稱為測試版,大凡成熟軟件總會有多個測試版,如windows 98的β版,前前后后將近有10個。這么多的測試版一方面保證最終產品盡可能地滿足用戶的需要,另一方面也盡量減少了軟件的bug,在這一點上很值得中國軟件商學習。而trial、unregistered、demo有時統稱為演示版,這一類版本的廣告色彩較為濃厚,頗有點“先嘗后買”的味道,對于普通用戶而言自然是再好不過了。
正式版
不同類型軟件的正式版本通常也有區別。
release:該版本意味“最終釋放版”,在出了一系列的測試版之后,終歸會有一個正式版本,對于用戶而言,購買該版本的軟件絕對不會錯。該版本有時也稱為標準版。值得一提的是release通常不會以單詞形式出現在軟件封面上,取而代之的是符號(r),如windows nt (r)4.0、ms-dos(r) 6.22等等。
registered: 很顯然該版本是與unregistered相對的注冊版,注冊版、release和standard版一樣,都是軟件的正式版本。只是注冊版軟件的前身有很大一部分是從網上下載的。
standard:這是最常見的標準版,不論是什么軟件,標準版一定存在。標準版中包含了該軟件的基本組件及一些常用功能,可以滿足一般用戶的需求。其價格相對高一級版本而言還是平易近人的,如金山詞霸Ⅲ標準版、office 97標準版等等。
deluxe:顧名思義即為“豪華版”,豪華版通常是相對于標準版而言,無非是多了幾個“華而不實”的功能,價格卻要高出一大塊,因此不推薦一般用戶購買。此版本通常是為那些追求“完美”的發燒友所準備的。
reference:該版本的型號常見于百科全書中,比較有名的是微軟的encarta系列,reference是最高級別,其包含的主題、圖像、影片剪輯等相對于 standard和deluxe版均有大幅增加,容量由一張光盤猛增至三張光盤,并且加入了不少新的交互功能,當然價格也不菲。可以這么說,這一版本的百科全書才能算是真正的百科全書,也是發燒友的收藏首選。
professional:專業版。專業版是針對某些特定的開發工具軟件而言的,專業版中有許多內容是標準版中所沒有的,這些內容對于一個專業的軟件開發人員來說是極為重要的功能。如微軟的visual foxpro標準版并不具備編譯成可執行文件的功能(.exe文件),這對于一個完整的開發項目而言顯然是無法忍受的,除非客戶機上也有foxpro,如果用專業版就沒有這個問題了。
enterprise:其中文譯名為企業版。企業版是開發類軟件中的極品(相當于百科全書中的 reference版)。擁有這一套版本的軟件可以毫無障礙地開發任何級別的應用軟件。如著名的visual c++的企業版相對于專業版包括了幾個附加的特性:如sql調試、擴展的存儲過程向導、支持as/400對ole db的訪問等。而這一版本的價格也是普通用戶難以問津的。如,microsoft的visual studio 6.0 enterprise中文版的價格為23000元。
其他版本
除了以上介紹的一些版本外,還有一些專有版本名稱。
update:升級版。升級版的軟件是不能獨立使用的,該版本的軟件在安裝過程中會搜索原有的正式版,如不存在,則拒絕執行下一步。如microsoft office 97 升級版、windows 95升級版等等。不過有些升級版卻是名不副實,經過改動,就可以……
oem:oem通常是出現在硬件中,如今軟件業也出現了oem產品。將自己的產品交給別的公司去賣,并打上對方的標記,雙方互惠互利,一舉兩得。
單機(網絡)版:網絡版在功能、結構上遠比單機版復雜,如果留心一下軟件的報價,你就會發現某些軟件單機版和網絡版的價格差別非常巨大,有些甚至多一個客戶端口就要加不少錢。
普及版:該版本有時也會被稱為共享版,其特點是:價格便宜(有些甚至完全免費),功能單一,針對性強(當然也有占領市場、打擊盜版等因素)。與試用版不同的是,該版本的軟件一般不會有時間上的限制,當然如果用戶想升級,最好還是去購買正式版。
具體操作如下:
右鍵單擊我的電腦,選擇“屬性”單擊“高級”選項卡,在“性能”里面單擊“設置”按鈕,選擇“高級”選項卡,最下面有“虛擬內存”一項,單擊“更改”按鈕,在虛擬內存對話框里,選擇C盤,選擇“自定義大小”,然后在最小值輸入框中輸入“0”,最大值里也輸入“0”,,單擊“設置”。
然后選擇D盤,設置你需要的最小值和最大值。完成后,單擊“設置”按鈕,最后,單擊“確定”按鈕,
系統可能要求重新啟動,按“確定”,系統重新啟動以后,虛擬內存就放到“D”盤了。
=============================
設置虛擬內存
虛擬內存的概念是相對于物理內存而言的,當系統的物理內存空間入不敷出時,操作系統便會在硬盤上開辟一塊磁盤空間當做內存使用,這部分硬盤空間就叫虛擬內存。Windows 98中采用Win386.swp文件的形式,而Windows 2000/XP則采用頁面文件pagefile.sys的形式來管理虛擬內存。
一、大小情況
1.一般情況
一般情況下,建議讓Windows來自動分配管理虛擬內存,它能根據實際內存的使用情況,動態調整虛擬內存的大小。
2.關于最小值
Windows建議頁面文件的最小值應該為當前系統物理內存容量再加上12MB,而對于物理內存容量小于256MB的用戶,則建議將頁面文件的最小值設得更大些:
①使用128MB或者更少內存的用戶,建議將當前物理內存容量的1.75倍設置為頁面文件的最小值。
②內存大小在128MB到256MB之間的用戶,建議將當前物理內存容量的1.5倍設置為頁面文件的最小值。
3.關于最大值
一般來說,頁面文件的最大值設置得越大越好,建議設置為最小值的2到3倍。
4.極端情況
假如硬盤空間比較緊張,在設置頁面文件時,只需保證它不小于物理內存的3/4即可。
如果物理內存很大(大于512MB),則可以將虛擬內存禁用。(上海 任亞維)
5.根據不同的任務環境設置
①以3D游戲為主的環境
3D游戲對CPU、顯卡和內存要求都很高,如果物理內存小于256MB,建議把虛擬內存預設得大一點,這對提高游戲的穩定性和流暢性很有幫助。
②以播放視頻為主的環境
視頻應用對硬盤空間的“胃口”很大,不過千萬不要像在3D游戲環境中一樣把虛擬內存設得很大,尤其是Windows XP的用戶。因為Windows XP不會自動把不需要的空間釋放掉,也就是說那個Pagefiles.sys文件會越來越大。如果你把虛擬內存和Windows XP放在同一分區,播放RM、ASF等視頻流文件以后,系統經常會提示你虛擬內存設得太小或是磁盤空間不足。查看此時的頁面文件,已經足有1GB大小了。所以建議經常欣賞視頻文件的Windows XP用戶,把初始數值設小一點,或者將虛擬內存轉移到系統盤以外的分區。
二、設置方法
下面以在Windows XP下轉移虛擬內存所在盤符為例介紹虛擬內存的設置方法:進入“打開→控制面板→系統”,選擇“高級”選項卡,點擊“性能”欄中的“設置”按鈕,選擇“高級”選項卡,點擊“虛擬內存”欄內的“更改”按鈕,即可進入“虛擬內存”窗口;在驅動器列表中選中系統盤符,然后勾選“無分頁文件”選項,再單擊“設置”按鈕;接著點擊其他分區,選擇“自定義大小”選項,在“初始大小”和“最大值”中設定數值,然后單擊“設置”按鈕,最后點擊“確定”按鈕退出即可。
Ben Watson,知名開發者。任職于GeoEye,是其所屬開發團隊的領導者。本文發表于他自己的博客,闡述了十種學習新技術的方法。
1、要看書
在成千上萬的編程圖書中,可能很大一部分根本毫無用處。但是仍然有很多圖書對你的(編程)能力有很大的提升。我一直堅持,相比在網絡上查找很多有用信息,在同類圖書中查找要來得更容易更快捷。閱讀技術圖書可心更好地抓住核心內容。對于理論,架構和設計等方面來說,圖書也一樣很有幫助。只不過要找到高質量的、權威的信息,就不如網絡上可供查找的范圍廣。
2、讀代碼
這也是我很喜歡的一種方式。如果我并沒有幾年的專業編程工作經驗,在學習之初我并不會去讀很多復雜的代碼。如果我要是早些開始學習,我將是一個比現在更好的程序員。但是,開始時我會從一些開源項目里,去學習那些源代碼(當然,這些代碼不能與我的工作有關,也不是我自己寫的)。要從自己會使用到的,或者自己感興趣的程序開始這項工作。我是從 Paint.net 這個網站里開始學習的,而且已經積累了很多關于 .NET 的編程技術。
讀別人的代碼可以為你提供更多不同的工作思路,這比你完全憑自己思考得到的工作方式要多。
3、寫代碼
謹記,要寫大量的代碼。從根本上來講,最好的學習方法就是實踐。如果不寫代碼,你根本不能把(某種語言中)內在的東西學習透徹。學習之初,可以從一些技術指南和圖書中照搬一些盡量簡單的程序。當然,這種照搬是要自己完全手工輸入,而不是復制和粘貼,這兩種之間的效果差別是很大的。這種方法的主旨就在于,使知識內在化,并思考其用法,而不是盲目照抄。學習過程中,要時常查找新的 API 調用方法,這其實是簡單的事情。
最重要的是,要寫一個你自己的程序,不管它是一個簡單的游戲,或者是一個參與開源項目的程序,還是一個公為你自己使用的簡單插件。用不同的方式來寫程序,盡量嘗試使用新的技術,新的技巧,新的設計方式。一定要讓現在的項目比以往的項目更好。想要成一個優秀的開發者,這一點是核心。
4、與其他開發者交流
像Apple,微軟,Google 等大公司一樣的新聞描述的一樣,(與其他開發者交流)可以讓你解決一些復雜的問題。雖然這并不能讓你感覺到自己已經成一個團隊或是社區的成員,但是這種方法可以讓你接觸到更多不同的想法。
不同類型的項目要求不同的設計方法,代碼技術,開發流程和設計思想。如果你工作在一個小團隊里,你不必與太多的人接觸,只要在用戶群會議中找到一些人(來討論)即可。如果這樣還不行的話,參與到在線論壇中與其他人討論(這時你需要更努力地尋找高質量的討論內容)。
5、教會別人
相對于僅僅讀代碼之類的工作,教其他人學習可以讓你更深入地學習某個技術,這種方法有著非凡的效果。教會別人某個技術,同樣也會讓你更專注于這種技術,并且可以比別人更深層次地理解它。同樣你也會面對一些問題。
“如果你不能向一個六歲的兒童解析清楚一個概念,那么其實是你并沒有完全理解它。”Albert Einstein說。
教學場景可以是無窮無盡的:與工作搭檔一對一交流,休息碰面,非正式周會,學習茶會,教室,討論發表會,等等。每周在相同理念開發者之間舉辦一次30分鐘的非正式會議怎么樣?每周,讓幾個人來就他們想要更深入了解話題,向大家傳授這些技術知識,并且展開討論。如果你知道你將要向團隊成員們傳授正學學習的知識,你是不是更想要了解這項技術的每個細節呢?
6、收聽網絡電臺
如果你有空閑的時間,可以訂閱網絡電臺節目。我現在最喜歡的編程節目就是.Net Rocks。這個節目還會做一些視頻節目,叫做dnrTV 。這樣會讓你即時捕捉到最新最好的技術。一個人是不能學習到所有知識的,而網絡電臺剛是一個學習了解廣泛知識的途徑。
7、閱讀博客
博客遠遠比閱讀者要多,但是其中有一些卻是極其優秀的。我這里不并不是要推薦博客,因為網絡上已經有了足夠多的博客。這是與真正在開發你所喜歡和使用的軟件的開者聯系的好方法。
8、學習新的語言
即使你已經在C(++,#) / JAVA 等語言上有很好的造詣,仍然有很多其他可以解決問題的編程語言。學習新的語言,是對你已有思維方式的挑戰。這不僅僅是另一種語言,更是對思維的重新架構。的確,所有的語言最后都會被編譯成匯編程序,但是這并不意味著高級語言毫無價值。
9、學習不正確的方式
除了要學習應該怎么做,還要學習不應該怎么做。經常閱讀 Dailywtf.com ,學習你并不知道的經驗與教訓。學習適當的面向對象設計方式,代碼寫作方式和必須要寫的代碼等,是很好的方式,但是如果不細心的話也容易養成不良習慣。學習認識不正確的思路是負責項目開發至關重要的一環。
維基百科對很多覺的不正確方式有十分透徹的分類。
10、要謙虛。
學習,意味著:
◆用更好的知識代替不完美的知識;
◆增長你所不知道的知識。
只有承認自己有所不足,才能有學習的動力。歸根到底,就是謙虛,不對嗎?如果你開始認為你已經掌握了所有需要的知識,那么你就危險了。真正的學習是如饑似渴地追逐知識并使其內在化,這需要很大的努力。我們都知道這一點,但是要必須時常不斷地提醒自己。
1、如何實現關機時清空頁面文件