顯示具有 2.3.1 程式設計 標籤的文章。 顯示所有文章
顯示具有 2.3.1 程式設計 標籤的文章。 顯示所有文章

2011年11月29日 星期二

如何刪除Notepad++搜尋歷史-教學分享2U

1
開啟「config.xml」。



2
【尋找】→【尋找】。


3
於「尋找目標」欄位中輸入「opened files」後按〔找下一個〕。



4
刪除XML中的「FindHistory」標籤內容即可!當然也可以直接手動修改內容。


--------------------------------------------------------------------------------
文章作者:阿榮(http://azo-edu.blogspot.com/2011/02/notepad.html

軟體下載:http://freeshare2u.blogspot.com/2011/11/notepad-5962.html


2011年11月27日 星期日

PHP 簡介/歷史/特點

為什麼要選擇PHP ?

競爭對手﹕ASP,mod_perl,JSP
  用於實現交互式動態網頁的技術有好多,其中CGI又稱通用網關接口(Common Gateway Interface),是外部程序和WEB伺服器之間的標準編程接口,但是CGI程序帶來的缺點實在太多;而Perl很好地解決了CGI中的問題,被用來驅動複雜的WEB技術;微軟的ASP(Active Server Pages)的出現,以它容易上手、輕鬆編寫程序和微軟件強有力的支持後盾使得ASP一下子成了許專業編程人員和非專業編程人員的寵兒;Middle ware和Allaire的Cold Fusion是另一種解決方法,並且Cold Fusion有一個已證實可靠的搜索引擎組件;JSP 是Sun公司推出的新一代站點開發語言等等。有這麼多的動態WEB技術,也許你會問﹕“為什麼我要選擇PHP呢?”
在回答這一問題之前,讓我們先來看看ASP,PHP和JSP之間的優缺點。

1. 關於ASP
ASP 由於其簡單功能實用等方面受到廣大朋友的喜歡,再加上MS的強有力支持,可以說是時下作站點最為流行的語言之一,他借助MS的Com+ 技術,幾乎可以實現在C/S 能夠實現的所有功能,可以說確實具有相當的競爭力。ASP的代碼實現也很簡單,MS 提供的InterDev 在RAD 的基礎上,使ASP 的開發一夜之間火遍了大江南北。但是他的缺點是,由於MS 長久以來的霸道作風,他只能執行在MS的平台上,因此在關鍵性的應用上使人難以輕易接受。

2. 關於JSP
  JSP 是Sun公司推出的新一代站點開發語言,他完全解決了目前ASP,PHP的一個通病--腳本級執行(現在PHP4 也已經在Zend 的支持下,實現編譯執行).Sun 公司借助自己在Java 上的不凡造詣,將Java 從Java 應用程序 和 Java Applet 之外,又有新的碩果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能強大的站點程序。
  據我所知,JSP基於Java,因此Java程序員可以輕鬆開始編碼。ASP只是一個一般的引擎,具有支持多種語言的能力,不過默認的並且是最常用的還是VBScript。mod_perl與Perl一樣強大,只是更快一些。
  對於ASP、JSP、PHP等,到底哪種語言更好?不同的人有不同的看法。不過有一點我們必須要明確的﹕對於ASP、JSP等,你是否清楚購買它們會有多昂貴以及它們需要多麼昂貴和強大的硬件。如果你有什麼中立的觀點(比如說沒有被SUN和Microsoft的百萬美金所影響),請順便通知我。

3. 關於PHP
  PHP 是秉承Linux 的GNU 風格,借助與源碼公開,使他迅速成為世界上目前應用最為廣泛的站點製作語言之一。借助與C++的形式,引用類的概念,使得代碼的可重複性應用便的異常簡單。加上他和Linux,Apache 和MySql 的緊密配合,關鍵性的應用也沒有問題(有名的Sina就 是采用Php)。同時,PHP第四代Zend(PHP4)的核心引擎正式版也已經發布了,整個程序的核心得到了大幅度的改進,讓PHP程序的執行速度變得更快。PHP在最佳化之後的效率,已比傳統CGI或者ASP等程序有了更好的表現。而且正因為PHP是免費的,因此任何人都可以訪問PHP WEB站點,下載完整的源代碼。更重要的是﹕用PHP編寫的代碼執行起來會更快,能實現同樣功能的PHP代碼,不用改變就可以在不同的WEB伺服器上、不同的操作系統下執行。就憑這一點,你就已經有足夠的理由選擇PHP。

本文轉貼自:伊莉論壇

程式語言基本介紹

*什麼是程式語言?
    身為電腦使用者,我們常會說:「用某種程式來做某些事情」。這些能做不同事情、發揮不同功效的應用程式是如何產生的呢?簡單的說,是程式設計人員(programmer)寫出來的。而程式設計人員撰寫程式所使用的語言,就稱為電腦程式語言,或簡稱「程式語言」(Programming Language)。


*程式語言的演進與分類
  如果不考慮一百多年前的差分機(Difference Engine),第一個程式語言的出現至今才不過半個世紀多,在短短的五十多年就已發展出數量多到令人眼花撩亂的程式語言種類。而程式語言大略可依如下的方式分類:

機器語言 (Machine Language)
    對於電腦來說,它真正所懂得的語言只有一種,也就是「機器語言」。所謂的機器語言,其實是以特定的數字來表示電腦所能進行的各個動作。我們稱這些數字為機器碼 (Machine Code)或機器語言。舉例來說,如果把電腦比喻為一個人,而「0」代表向前走一步、「1」代表向後退一步、「2」代表往左轉 90 度、而「3」代表往右轉 90 度。那麼當我們要命令這個人往前走三步、再往右走三步時, 就必須下達「0003000」的指令。

組合語言 (Assembly)
   為了解決機器語言的難題,有人想到了用一些符號來替代數字,以方便人們辨識各個指令。以前面的例子來說, 如果以 forward 代替原本的 0、backward 代替 1、left 代替 2、而用 right 替代 3。

高階語言
   不論是機器語言還是組合語言,對於程式的描述都是以電腦所能進行的最基本動作為步驟,因此這兩種語言被稱為低階語言 (Low-Level Language)。換言之,本來是希望這個人向前走三步,再向右走三步,但是因為電腦所能進行的基本動作的限制,使得我們所寫出來的程式必須以向前走一步、向前走一步、向前走一步、向右轉 90 度、向前走一步、向前走一步、向前走一步這樣繁瑣的方式一步步描述實際進行的動作,寫起程式來其實並不便利。為了解決這樣的問題,有人開始設計新的語言,運用比較接近人類思考的方式來撰寫程式。而這種新的程式語言就稱為高階語言 (High-Level Language)。從第一個廣被使用的 Fortran 語言開始,至今曾流行過的高階語言還有 C、Pascal、Basic 等。它不但更容易閱讀和理解,也比使用低階語言所寫出來的程式精簡多了。不過電腦並無法看懂這樣的程式,和組合語言一樣需要一個轉譯的動作,將使用高階語言所撰寫的程式轉換成電腦所能看懂的機器語言,然後才能依此執行。這個轉換的動作是由各程式語言的編譯器 (Compiler) 或是解譯器 (Interpreter) 來進行。

物件導向程式語言
   隨著軟體技術的不斷演進,高階語言也仍不斷在改良、演進。約在 1960 年代興起了物件導向 (Object-Oriented) 的觀念。簡單的說就是將資料和程式結合成物件,在設計程式時以物件的方式來思考及設計程式的內容。而目前比較著名的物件導向程式語言,除了有 C++ 外, 還有 C# 、VB.Net和Java 等。


*程式語言介紹
C語言
  ‧ C 語言是 1972 年在 AT&T 貝爾實驗室 (Bell Laboratory) 中發展出來的,原創者 Dennis Ritchie 當時為了要發展 UNIX 作業系統,需要一種具有類似組合語言般的高效率以及能方便移植到各機型 (高可攜性) 之程式語言,於是創造了 C 語言。後來,由於 C 語言所具備的效率、彈性、可攜性等各項優點,逐漸成為一種廣受歡迎的程式語言。
  ‧ C 語言的優點包括:
  1. 程式碼精簡,產生的程式執行效率佳。
  2. 具有很高的可攜性。
  3. 完全支援模組化的程式設計。
  4. 彈性大而擴充性強。

C++ 語言
  ‧ C++ 和 C 語言一樣,也是在貝爾實驗室中發展出來的。其原創者 Bjarne Stroustrup 創造 C++ 的目的是希望把寫程式變成一種相當愉快的事情,同時讓設計者可以輕鬆地寫出好的程式來。他從 1979 年開始,以 C 語言為基本架構再加上物件導向程式設計相關功能,發展出一個名為 C with Classes 的新語言,也就是最初的 C++ 語言。
此後 C with Classes 不斷被改良,並在 1983 年時正式命名為 C++。在 C 語言中,++ 是一個遞增運算子 (Increment operator),如果將 C 當成是變數,則 C++ 就代表 C=C+1 之意。由此可看出 C++ 的目標就是要創造一個更好的 C,並且可與 C 相容並保有 C 原來的各項優點。
  ‧ 由於 C++ 可與 C 相容,所以大部份在 C 語言上發展出來的軟體仍可以在 C++ 中繼續使用。因其本身具有許多比 C 更強的特性,使得 C++ 在短短幾年之間就搖身一變成為目前最熱門的語言之一。
  ‧ 最初的 C++ 只是在 UNIX 上的一個轉譯器 (名為 Cfront),可將 C++ 程式先轉成 C 語言後再加以編譯;其後,隨著使用者不斷增加而逐漸有了在各作業系統上的編譯器,使 C++ 應用程式的產生更加方便。

Visual C++
  ‧ 微軟公司的 Visual C++ 是 Windows 平台上主流的 C++ 整合開發環境之一。Visual C++ 的 IDE 和微軟公司其它程式語言產品 (包括 Visual Basic、C#、J# 等) 其實是共用一個名為 Visual Studio 的 IDE。對於想同時用微軟其它語言或技術的開發人員而言,由於只需熟悉一套操作介面即可,所以使用起來較為方便。
  ‧ 近幾年來,微軟為推展其 .NET 技術,也將相關技術加到 Visual C++ 中。其特色之一就是能以微軟自家的 Managed C++ 語法來撰寫專門用在 .NET 環境下執行的 C++ 程式。

Visual Basic .Net 
  ‧ Visual Basic.NET是基於微軟.NET Framework之上的物件導向的中間解釋性語言,可以看作是Visual Basic在.Net Framework平台上的升級版本,增強了對物件導向的支援。
  ‧ VB 2005 延續 VB 6 的諸多優良的傳統,再加上非常完整的物件導向功能,以往無法做到或支援不完整的物件導向功能,現在都可做得到。

Microsoft Visual C# 
  ‧ Visual C#是微軟爲了實現.NET Framework中最有效率地進行開發的編程語言而被開發。Visual C#與Java一樣,是中間碼型的語言。不過,如果是對Write once, run anywhere作為詞句的話,Java基本地支持了Windows。C#和共通語言基礎自體作為開放協議的跨平台。
  ‧ Visual C# 單就程式語法來說有點類似 C++,或者說更像Java,因此有著易用、彈性大的特點,不但擁有完整的物件導向支援,在程式語法的執行效率上也比 VB 2005 快一點,所以說 C# 2005 是 .NET 上的欽定語言也不為過才是。

Java 
  ‧ Java,是一種可以撰寫跨平台應用軟體的物件導向的程式語言,由Sun公司1990年代初開發。Java伴隨著網際網路的迅猛發展而發展,逐漸成為重要的網路程式語言。
  ‧ Java 程式語言的風格十分接近C++語言。繼承了 C++ 語言物件導向科技的核心,Java捨棄了C++語言中容易引起錯誤的指標。
  ‧ Java平台是基於Java語言的平台。這樣的平台目前非常流行,因此微軟公司推出了與之競爭的.NET平台以及模仿Java的C#語言。

2011年11月26日 星期六

ASP.NET與PHP速度對比

PHPChina資訊:剛剛在9月編程語言排行榜上取得歷史性突破的PHPWeb開發領域最到的對手可能就是基於微軟.NET技術的ASP.NET。近日,微軟的Joe Stagner在博客上發表了一系列文章比較了PHP和ASP.NET性能方面的文章,引起了來自雙方程序員的大量回應。Joe表示,他會將這樣的測試持續下去,並尋求更為合適的方式,以獲得對實際項目來說盡可能有參考價值的結論。
一般來說,作性能測試的目的是要嘗試證明一方比令一方要快。受雇於微軟,同時編寫PHP和ASP.NET代碼。我在.NET出現之前就在使用PHP,兩個東西我都很喜歡。
所以,很難說出哪個更好。當說PHP好話時,微軟同事們會寫信來批評我,而當發表傾向於ASP.NET的言論時,PHP朋友們會說是微軟的托。
進行這個測試是因為每個人都對PHP的性能有自己的看法(Windows vs. Linux & 5.2 vs. 5.3),卻沒人能給出明確的數據。

ASP.NET比拚PHP的測試環境如下:
  • 所有的測試都在同一台機器上運行(擁有4G內存和60G 7200轉硬盤的Toshiba Tecra M5)。
  • Ubuntu 9和Windows Server 2008標準版分別安裝於獨立(但相同)的硬盤中。
  • Linux使用Apache2,Windows使用IIS 7作為各自的Web服務器。
  • 雙方的操作系統都進行了完整的patch或升級。
  • 雙方的系統和運行時都沒有進行額外的性能增強。
  • 從實驗結果上看,PHP在Linux和Windows的執行性能各有千秋:
  • 純粹的語句執行在Windows上表現更好。
  • 函數調用在Windows上更快。
  • 對象的創建和訪問,對於PHP 5.2來說在Linux上更快,但是對於PHP 5.3來說則是Windows更快。
  • 類庫調用在Linux上快得多(如在Ubuntu上進行加密要比Windows要快3到5倍)。

ASP.NET MVC 學習資源整理[轉貼]

最近手邊的工作還是讓我忙的焦頭爛額,根本都沒時間進修什麼新技術,像是 ASP.NET MVC 想學很久了,卻遲遲沒時間著手學習,不過這段時間只要看到關於 ASP.NET MVC 的相關資訊都會收集下來,等待日後學習時可以一鼓作氣。以下是相關學習資源整理:
當然,學新技術的第一步通常都是從官方提供的網站開始找資料:

我學新技術最喜歡從「影片」看起,看影片可以很快速的學到別人在使用新技術開發時的一些技巧,可以很快的抓到技術的重點與精髓。以下前四則影片是濃縮版的影片,短短幾分鐘就能讓你快速上手,最後一個連結是所有 ASP.NET MVC 的影片教學網址:

另外,範例程式絕對少不了,前幾天介紹的 Oxite 是一個非常完整的範例,沒有一點功力的人要看懂整個架構應該會有點吃力,在 ASP.NET MVC 官網上還另外提供三個 ASP.NET MVC 寫成的範例應用程式可供初學者下載

另外還有 QuickstartsTutorials 系列的文章也是我的最愛之一:

幾個知名的部落格也是必要的資訊來源:

要是這些資料能消化完的話,菜鳥也能變天王了~ 但我知道大部分的人看到這些資料的第一印象一定是「怎麼都是英文的」,若各位想走在技術的最前線,英文的聽、讀能力絕對是少不了的,只有當下開始努力學習,才會有你想要的未來。
中文文章

其他連結 / 延伸閱讀

保哥的開發筆記


感謝保哥提供的豐富資料!!!  保哥的網站:http://blog.miniasp.com/

Java掌握的30個基本概念==初學者==

基本概念
1.OOP中唯一關係的是物件的介面是什麼,就像電腦的銷售商她不管電源內部結構是怎樣的,他只關係能否給你提供電就行了,也就是只要知道can or not而不是how and why.所有的程式是由一定的屬性和行為物件組成的,不同的物件的訪問通過函數調用來完成,物件間所有的交流都是通過方法調用,通過對封裝物件資料,很大限度上提高複用率。

2.OOP中最重要的思想是類,類是範本是藍圖,從類中構造一個物件,即創建了這個類的一個實例(instance)。

3.封裝:就是把資料和行為結合起在一個包中)並對物件使用者隱藏資料的實現過程,一個物件中的資料叫他的實例欄位(instance field)。

4.通過擴展一個類來獲得一個新類叫繼承(inheritance),而所有的類都是由Object根超類擴展而得,根超類下文會做介紹。

5.對象的3個主要特性
ehavior---說明這個物件能做什麼。
tate---當物件施加方法時物件的反映。
dentity---與其他相似行為物件的區分標誌。
每個物件有唯一的indentity 而這3者之間相互影響。

6.類之間的關係:
use-a :依賴關係
has-a :聚合關係
is-a :繼承關係--例:A類繼承了B類,此時A類不僅有了B類的方法,還有其自己的方法.(個性存在於共噸?

7.構造物件使用構造器:構造器的提出,構造器是一種特殊的方法,構造物件並對其初始化。
例:Data類的構造器叫Data
new Data()---構造一個新物件,且初始化當前時間。
Data happyday=new Data()---把一個物件賦值給一個變數happyday,從而使該物件能夠多次使用,此處要聲明的使變數與物件變數二者是不同的.new返回的值是一個引用。
構造器特點:構造器可以有0個,一個或多個參數
構造器和類有相同的名字
一個類可以有多個構造器
構造器沒有返回值
構造器總是和new運算符一起使用

8.重載:當多個方法具有相同的名字而含有不同的參數時,便發生重載.編譯器必須挑選出調用哪個方法。

9.包(package)Java允許把一個或多個類收集在一起成為一組,稱作包,以便於組織任務,標準Java庫分為許多包.java.lang java.util java,net等,包是分層次的所有的java包都在java和javax包層次內。

何謂JSP?

JSP(全稱JavaServer Pages)是由Sun Microsystems公司倡導和許多公司參與共同建立的一種使軟體開發者可以響應客戶端請求,而動態生成HTMLXML或其他格式文檔的Web網頁的技術標準。JSP技術是以Java語言作為指令碼語言的,JSP網頁為整個伺服器端的Java函式庫單元提供了一個介面來服務於HTTP的應用程式。
JSP使Java代碼和特定的預定義動作可以嵌入到靜態頁面中。JSP句法增加了被稱為JSP動作的XML標籤,它們用來呼叫內建功能。另外,可以創建JSP標籤函式庫,然後像使用標準HTML或XML標籤一樣使用它們。標籤函式庫提供了一種和平台無關的擴充套件伺服器性能的方法。
JSP被JSP編譯器編譯成Java Servlets。一個JSP編譯器可以把JSP編譯成JAVA代碼寫的servlet然後再由JAVA編譯器來編譯成機器碼,也可以直接編譯成二進位碼。


JSP和Servlets
從架構上說,JSP可以被看作是從Servlets高階提煉而作為JAVA Servlet 2.1 API的擴充套件而應用。Servlets和JSPs最早都是由Sun Microsystems(昇陽公司)開發的。從JSP1.2版本以來,JSP處於Java Community Process(有人譯為:JAVA社群組織)開發模式下。JSR-53規定了JSP 1.2和Servlet 2.4的規範,JSR-152規定了JSP 2.0的規範。2006年5月,JSP 2.1的規範作為Java EE 5的一部份,在JSR-245中發布。

Windows 2003安裝並註冊jmail組件

Windows 2003安裝並註冊jmail組件

一、下載jmail

二、安裝jmail:把JMail45_free.msi上傳到伺服器上安裝。為了今後備份方便可以安裝到C盤。

三、註冊jmail:在運行裏輸入:regsvr32 “C:\Program Files\Dimac\w3JMail\jmail.dll”會提示註冊成功即可。

四、修改目錄許可權:
此時用探針探測可能仍然提示不支援jmail元件。可能是C盤program files的目錄許可權設置所致。修改Dimac的目錄許可
權,
增加一個everyone組,然後刷新探針頁面,馬上就可以看到支援jmail.SMTPMail的Jmail郵件發送了。
為了目錄安全,我們要刪掉everyone組,探針仍然提示支持jmail。

Update:必須一直開放著everyone組許可權,否則過後(可能是重啟後)又會提示不支援該組件。現在就可以正常發送郵件了。

Gmail的SMTP配置:
要顯示的發送郵箱:可任意設
伺服器地址:smtp.gmail.com
SMTP登錄用戶名:Gmail的登錄帳號。
SMTP登錄密碼:Gmail的登錄密碼。
GMail的smtp要求SSL的安全鏈結
GMail的smtp埠號不是25是465

2011年11月25日 星期五

[專案管理]關鍵 4 用報表追蹤專案進度和效率

在 VS 2010中增加了很多專案報表,除了在專案入口網站的專案儀表板中,提供各種進度報表,如最新專案進度、待完成工作進度、程式碼簽入記錄等資訊,還導入了Scrum方法論,新增加了本文點(Story Point)的概念,可以讓專案經理估算開發專案所需的時間成本。

本文點是一種抽象的單位概念,通常可用來代表時間成本,例如人時,或人天。在VS 2010中專案經理可以設定每一個Work Item的本文點點數,例如這一項工作需要10個本文點,代表需要10個單位的工作時間。專案經理可自行定義1個本文點要對應多少人時,例如1個本文點等於2個人時,這樣10個本文點就等於實際上的20個人時。

估算Work Item需要的本文點點數,可依據可能的工作量來估算,例如有兩個User Story,A和B,A的工作量是B的兩倍,就可以定義A有兩點本文點,而B只有1點。依照同樣的作法,在專案建立Work Item時就一併設定本文點,VS 2010就會自動估算出專案進度的各項報表。這些本文點也可以隨著專案執行過程隨時修正。定義出每一項Work Item的本文點數,最後可以加總出一個專案的本文點總數,待這個專案完成後,就用這個專案所花費的時間成本來估算一個本文點所對應的時間成本。經過幾次專案的調整,最後就能得到有效的本文點和工時的對應規則。


[專案管理]關鍵 3 建立Work Item才能整合開發與管理

在VS 2010中,Work Item(也就是工作項目)是管理開發專案最重要的關鍵,任何專案任務、工作、程式碼異動、測試計畫、測試結果都可以透過Work Item建立彼此的連結關係。建立連結後,就像是一串粽子一樣,抓住其中任何一顆粽子,就能帶出整串粽子。打開Work Item可以透過連結找到所有相關連的專案項目。

VS 2010提供了兩種專案形式,一般常用的是Agile專案,這種類型的專案提供了6種Work Item,不過比較常用的只有User Story(使用者本文)、Task(任務)、Bug和Issue等4種。

User Story可視為是需求單,而Task就是工作單。User Story的ID就是需求單的編號。一張需求單會派出多張工作單,完成需求單下的所有工作單,才算完成這張User Story。

Bug則分成兩類,一類是在開發過程由內部人員發現錯誤而建立的Bug項目,歸屬於特定需求單下,視為完成這個User Story成本之一。另外一種就是客戶回報的Bug項目,可以不和其他User Story產生關聯。而Issue則可作為專案各階段里程碑的查核清單或專案經理的備忘錄。

在VS 2010中新增了一種Excel格式的Work Item報表,專案經理利用這些報表,可以很方便地進行整體規畫,以及快速建立專案的Work Item,不用再透過Team Explorer逐項輸入。



過去建立Work Item(工作項目)的作法是到VS 2010的Team總管中,逐一新增需要的Work Item,或者是到專案入口網站上,透過瀏覽器新增需要的Work Item。但VS 2010增加了一種透過Excel快速建立Work Item的方式。

[專案管理]關鍵 2 建立原始碼分支原則與文件控管

程式碼版本控制是臺灣多數開發團隊一定會做的事,但不一定每一個團隊都會建立自己的程式碼分支原則(Branch Model),往往專案從頭到尾,所有人都同時共用相同版本的程式碼,只是這份程式碼的每個版本記錄了過去不同階段的修改情形。

只有一份程式碼無法發揮團隊開發的功效,每一個人都要等其他人簽入完成後的程式碼後,才能簽入自己的開發成果。開發流程變成一道線性的生產線,難以分工。每個專案無論如何都要建立程式碼分支原則,才能提高團隊開發的效率。

博暉科技採取了最簡單的三層分支原則,區分成主要版本、開發版本和維護版本,依序分別建立了Main、Development和Maintenance三個目錄。Main目錄是穩定的主要版本,也是與客戶同步的版本。完成第1版本後,陸續新增功能的版本都先分支到Development目錄繼續開發,測試無誤後才合併到Main目錄。測試過程發現Bug,就將發生問題的版本分支到Maintenance目錄處理,待解決錯誤後才合併回Main目錄。

建立專案之初,同樣需要建立開發文件的控管政策,訂定文件使用規則、格式和客戶需要的文件等,可以透過VS 2010的專案入口網站進行管理,利用文件庫來分類文件與管制不同使用者的存取權限。




在開發專案的版本控制主目錄下,必須依據Branch Model建立版本控制的目錄架構,例如建立Main、Maintenance和Development。

[專案管理]關鍵 1 運用集合和區域來組織專案結構

定義Team Project是管理開發團隊的第一個關鍵,常見作法是每成立一個專案就建立一個VS 2010中的Team Project,但如果有人同時參與多個專案時,這個作法就無法從單一專案報表中,追蹤到這個人的所有工作狀況,A專案的PM看不到他在B專案的工作項目,不曉得可能會指派過多任務而導致成效不彰。

博暉科技的作法是善用VS 2010的集合(Collect)和區域(Area)功能。因為集合可以設定存取權限,可用來管制成員瀏覽其他部門的開發專案。

對博暉這類資服業者而言,一種產品下可能有3個團隊要服務十個不同的客戶,有的成員同時要參與多個客戶專案,但很少有同時跨不同產品的開發人員。所以,博暉針對每項產品就建立一個Team Project,然後使用Team Project的區域功能,來分組Work Item。每一組區域等同就是一個客戶的專案。

專案經理可以在Team Project的報表中,檢視這個產品中每一個成員的整體工作量,也可以檢視區域資料,看到每一個客戶專案的進度。在專案建置時,就要同時完成這些專案結構的設定。

遇到不同專案同時指派工作時,開發人員可將每個區域(也就是不同客戶)的Work Item並排,在Team Project層級按優先順序排列,找出必須先完成的工作。



VS 2010的專案提供了專案集合的選項,可管制團隊成員存取的專案集合,例如可依據不同部門來建立專案集合,可用來管制成員瀏覽其他部門的開發專案。


VS 2010提供兩種類型的專案,包括Agile和CMMI,不同類型的專案所支援的Work Item不同。CMMI專案內建Work Item項目更多,結構更複雜,不過,非必要可直接選擇Agile專案。


建立VS 2010的開發專案時,也要一併設定專案入口網站,用來分享和管理各類專案文件,也可用來蒐集成員對專案的回饋意見。



建立專案時要一併設定程式碼版本控管的存放主目錄,待稍後再進一步設定版本控管的目錄結構。開發專案必須先建立程式碼分支原則(Branch Model),才能透過分工來提高開發效率。


建立專案後打開,可進一步新增專案的區域,用來將不同客戶自製專案的Work Item分組,方便日後按客戶專案檢視報表。
回本文[用Visual Studio 2010實踐團隊開發]

[專案管理]用Visual Studio 2010實踐團隊開發



在Visual Studio 2010專案中有一項整合開發與專案管理的關鍵,可以讓所有工作記錄相互串連,從開發流程中的任何一點都能找出相關內容,不論是工作記錄、程式碼、測試結果無所遁形,這個關鍵就是Work Item,也是管理開發團隊的利器。只有做到原始碼版本管控還不夠,要善用Work Item才能有效管理開發團隊。

善用Work Item串聯所有開發工作
Work Item能夠讓工作記錄相互勾稽,軟體開發流程中的每一個點,都可以串出其他行為,就像是一串粽子一樣,抓住任何一顆粽子,都可以拉出其他粽子

首度在非洲舉辦的世界盃足球賽剛結束,由擅長全能攻守型的西班牙獲得冠軍,這些球員不見得是全世界技術最頂尖的人,但是他們的確是團隊合作最好的球隊,足球是最重視團隊合作的競賽,前鋒、中場、後衛,守門員各司其職才能打勝仗。

程式開發其實也是團隊合作的成果,不同角色的專案成員,從專案經理、系統分析、系統設計、程式開發、測試人員等各司其職,才能順利執行專案,尤其是複雜的大型專案,更是需要團隊的專業分工才能完成。

開發過程中有很多細節,開發團隊為了有效溝通,需要借助工具和方法,就像是足球教練必須擬定球員互相搭配的戰法,讓前鋒知道如何相互短傳搭配進攻,讓後衛懂得同步移動創造越位陷阱。專案開發也需要一套有效的利器。

不過,經常擔任開發專案顧問的微軟特約顧問胡百敬觀察,臺灣的.NET開發團隊大多只有進行程式碼版本控管,再搭配電話或電子郵件來討論工作和管理文件,並沒有發揮專案管理的功能。

PHP及JSP的比較

  PHP:
  1. 數據庫連接 

  PHP可以編譯成具有與許多數據庫相連接的函數。PHP與MySQL是現在絕佳的組合。你還可以自己編寫外圍的函數去間接存取數據庫。通過這樣的途徑當你更換使用的數據庫時,可以輕鬆地更改編碼以適應這樣的變化。PHPLIB就是最常用的可以提供一般事務需要的一系列基庫。但PHP提供的數據庫接口支持彼此不統一,比如對Oracle, MySQL,Sybase的接口,彼此都不一樣。這也是PHP的一個弱點。

  2. 面向對像編程 

  PHP提供了類和對象。基於web的編程工作非常需要面向對像編程能力。PHP支持構造器、提取類等。



  JSP:
  1. 將內容的產生和顯示進行分離

  使用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本來產生頁面上的動態內容。產生內容的邏輯被封裝在標識和JavaBeans群組件中,並且捆綁在小腳本中,所有的腳本在服務器端執行。如果核心邏輯被封裝在標識和Beans中,那麼其它人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的產生。在服務器端,JSP引擎解釋JSP標識,產生所請求的內容(例如,通過存取JavaBeans群組件,使用JDBC技術存取數據庫),並且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這有助於作者保護自己的代碼,而又保證任何基於HTML的Web瀏覽器的完全可用性。

  2. 強調可重用的群組件

  絕大多數JSP頁面依賴於可重用且跨平台的組件(如:JavaBeans或者Enterprise JavaBeans)來執行應用程序所要求的更為複雜的處理。開發人員能夠共享和交換執行普通操作的組件,或者使得這些組件為更多的使用者或者用戶團體所使用。基於組件的方法加速了總體開發過程,並且使得各種群組織在他們現有的技能和優化結果的開發努力中得到平衡。

  3. 採用標識簡化頁面開發

  Web頁面開發人員不會都是熟悉腳本語言的程序設計人員。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容產生所需要的。標準的JSP標識能夠存取和實例化 JavaBeans組件,設定或者檢索群組件屬性,下載Applet,以及執行用其它方法更難於編碼和耗時的功能。

  通過開發定制化標識庫,JSP技術是可以擴展的。今後,第三方開發人員和其它人員可以為常用功能建立自己的標識庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同標識一樣的執行特定功能的構件來工作。

  JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,並且擴展到能夠支持企業級的分佈式應用。作為採用Java技術家族的一部分,以及Java 2EE的一個成員,JSP技術能夠支持高度複雜的基於Web的應用。

  由於JSP頁面的內置腳本語言是基於Java程序設計語言的,而且所有的JSP頁面都被編譯成為Java Servlet,JSP頁面就具有Java技術的所有好處,包括健壯的存儲管理和安全性。

  作為Java平台的一部分,JSP擁有Java程序設計語言「一次編寫,各處執行」的特點。隨著越來越多的供貨商將JSP支持加入到他們的產品中,您可以使用自己所選擇的服務器和工具,修改工具或服務器並不影響目前的應用。


應用範圍
  PHP3可在Windows,Unix,Linux的Web服務器上正常執行,還支持IIS,Apache等一般的Web服務器,用戶更換平台時,無需變換PHP3代碼,可即拿即用。

  JSP同PHP3類似,幾乎可以執行於所有平台。如Win NT,Linux,Unix。在NT下IIS通過一個外加服務器,例如JRUN或者ServletExec,就能支持JSP。知名的Web服務器Apache已經能夠支持JSP。由於Apache廣泛應用在NT、Unix和Linux上,因此JSP有更廣泛的執行平台。雖然現在NT操作系統佔了很大的市場份額,但是在服務器方面Unix的優勢仍然很大,而新崛起的Linux更是來勢不小。從一個平台移植到另外一個平台,JSP和JavaBean甚至不用重新編譯,因為Java字節碼都是標準的與平台無關的。

2011年11月24日 星期四

VB與Windows API 間的呼叫技巧

    一般會使用WINDOW API的情況,實在是因為VB本身不提供某些功能,但是,程式所需又不得不然,例如:讀取Registry內的資料,VB只提供SaveSetting、Getsetting 等系列的指令,但是它只能讀取特定地區的值,要讀、刪、更動其他區域的值時,就無法仔細看一看Combo Box的Events,其中沒有MouseMove,但這是我們經常用上的一個Event,那該如何呢?是的,那只有透過Winodow API。而VB呼叫Window API一般不都使用API檢視員,直接將相對應的API  COPY到我們的程式中就好,那還用什麼技巧嗎?其實不然,因為VB資料格式的問題,又加上VB本身沒有指標,在許多地方需要一些小技巧才能解決,而且我們經常因應不同的需求,將API 檢視員的宣告COPY過來後再做一些修改,最重要的,如果有一個.DLL檔,它不在API 檢視員中定義,那時,就只有自己想辦法啦。

--------------------------------------------------------------------------------

 
 一、 整數參數

 Windows                                                 API32位元VB

--------------------------------------------------------------------------------
Int,  INT_________________________ByVal  Long
UNIT,  DWORD__________________ByVal  Long
BOOL__________________________ByVal  Long    ture時為1
WPARAM,  LPARAM,  LRESULT___ByVal  Long
Handle(如HKEY)_________________ByVal  Long
WORD,  ATOM,  SHORT__________ByVal  Integer
BYTE, CHAR ___________________ ByVal  Byte

 
 Eg.
-----------------------------------------------------------------------------
Windows API 宣告
  SHORT GetKeyState( int  nVirtKey )

對應的VB宣告
 Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
--------------------------------------------------------------------------------------------------------------
    這個API 可用來檢視某些KEY (如Insert鍵、Num Lock、CapsLock等)是on/off。程式如下:這個例子應該可十分楚的看到各個整數間的宣告對應。
----------------------------------------------------------------------------------------------------------------
Dim InsertMode as Integer
InsertMode = GetKeyState(vbKeyInsert) And vbShiftMask
If InsertMode = 1 then
  Debug.print "表示 Insert Mode"
Else
  Debug.print "表示 OverWrite Mode"
End If

--------------------------------------------------------------------------------

MySQL與ASP.NET配合更強大

經驗之談:MySQLASP.NET配合更強大
  開放源代碼社區為了擴展MySQL的使用範圍,開發出了.Net框架(.NET Framework)中可以使用的資料庫連接器。我們就來學習一下如何在.Net應用程式中使用MySQL
  開放源代碼社區為了擴展MySQL的使用範圍,開發出了.Net框架(.NET Framework)中可以使用的資料庫連接器。我們就來學習一下如何在.Net應用程式中使用MySQL
  由於富有競爭力的價格和易於使用,MySQL在市場佔有率方面逐步提升。開放源代碼社區為了擴展MySQL的使用範圍,開發出了.Net框架(.NET Framework)中可以使用的資料庫連接器。我們就來學習一下如何在.Net應用程式中使用MySQL
  每週三發佈的TechRepublic.NET通訊,包含有網路服務, ASP.NET, ADO.NET, Visual Studio .NET相關的實用技巧與代碼實例. 現在就自動訂閱!
  MySQL漸漸的成為了在選擇資料庫平臺時一個切實可行的資料庫方案。能夠證明這一點的就是許多公司都選擇mySQL作為他們的資料庫平臺,例如 Google、美聯社(The Associated Press) 以及美國國家航空宇航局( NASA)。雖然對於一個開放源代碼來說,低廉的價格常常被當作主要優點來說服客戶,但是對於象Google那樣的大規模的組織來說,他們不會放心的把非常有用的資訊存放在一個只有價格優勢的資料庫產品中。MySQL真正的實力遠遠的超過了他的價格優勢,他提供了豐富的來自開放源代碼社區和商業化的附加工具。

網頁程式的比較

執行效能最強的是:
ASP.NET > PHP > ASP
網頁程式基本上不需要考量跨平台,你的 Server 一開始就是已知的,只有 client 是未知的,要比較應該以佔用 Server 資源時間最短、資源最少來比較,喜歡 Server 端程式跨平台是程式設計師太懶了,此外,大型網頁會需要的包含叢集伺服器或是多 CPU 的系統,完整支援叢集伺服器的比較有價值。而 ASP.NET 相同程式碼也可輕易轉為 Web Service 或 Moblie Web ,也可轉為 Windows Form/Console ,真正要比懶的話,也應該選這個。

目前功能最強的是 :
ASP.NET > PHP > ASP
若無權限調整,ASP.NET 等於是幾乎不受限的情況在 Server 跑,必要時,可調整權限提高 ASP.NET 控制範圍(比如說預設不允許 ASP.NET 存取 Server 印表機),在 Session 及 Cookies 支援 ASP.NET 也是最強的,除常用的 Server 模式外,可由系統自動轉換為 Web Service 、或資料庫模式紀錄。

也有很多網站可以搜尋到其他編輯器,包含 MSDN 網站都有含原始碼的編輯器範例(有 ASP.NET 及 ASP,讓你在無網站伺服器下也可以跑),.Net framework 2.0 也已釋出即時測試的工具 Beta 版(目前只支援 C# 及 VB),供開發人員在單一網頁內部分程式碼完成就可測試。

我的ASP.NET學習地圖(給初學者、入門參考),如何變成Web程式設計師?

想要作網頁程式(Web Application),原因有很多。
當然,它這幾年很熱門,我們日常使用的系統,絕大部分都變成Web系統了。
例如:E-Mail(我都用Gmail,不用Outlook下載了)、BBS(改用網站論壇)、看新聞與網路拍賣等等。

要學習網頁程式,首先,HTML傳統的靜態網頁,要稍微會一點。
就算不會背誦HTML碼,至少也要會用FrontPage或DreamWeaver來設計一個網頁。
Q: 您可以設計一個自我介紹的網頁嗎?
    上面要有三種字體變化(大小、粗體)、有超連結、有一個表格(<table>)

完成後,您就過關了。