公告資訊

未經授權,禁止轉載網站文章與內容。如有需要可以跟我聯絡,謝謝!!




2010年11月27日 星期六

ASP.NET開發日簡報下載

昨天在台灣微軟的會議廳跟許多朋友分享了有關ASP.NET 4以及Visual Studio 2010 在升級方面的一些實務,各位朋友可以透過下面的連結下載簡報:

昨天的場次中也為各位介紹了.NET Framework 4.0所提供的新功能,以及可以為您的應用程式所帶來的好處。當然,這些都必須要搭配Visaul Studio 2010開發在.NET Framework 4.0當中執行的應用程式,才可以使用這些新功能(如:平行運算)所帶來的好處。當然,搭配Visual Studio 2010對於"多目標.NET Framework"的支援,既有的ASP.NET應用程式也可以直接透過Visual Studio 2010 維護,不一定需要立即升級目前的ASP.NET應用程式。如果有需要升級既有的ASP.NET應用程式的話,Visual Studio 2010也提供了升級精靈,讓你可以快速地將ASP.NET應用程式升級到新的環境中,使用.NET Framework所提供的新功能!!!

2010年11月16日 星期二

在多執行緒/平行運算中使用集合

 

.NET Framework 4.0 當中,其中一項很重要的特色,就是加入了對於平行運算的支援,讓你的應用程式可以發揮多核處理器的運算能力,甚至於搭配Windows HPC Server 2008 R2進行分散式運算。使用.NET Framework 4.0當中的Task Parallel Library,C#與VB.NET所建立的程式很容易就寫出在多核的環境中執行平行運算的程式。

然而,在平行運算的的程式使用集合一向是個問題,因為在.NET Framework 4.0以前所提供的集合物件,都不是執行緒安全(thread-safe)的物件;換句話說,在平行運算的程式中使用,必須要透過特別的同步鎖定(synchronization)寫法,才可以正常的使用集合中的資料。

這一個問題,.NET Framework 4.0 提供了解決的方式。在.NET Framework 4.0當中,加入了 System.Collections.Concurrent 命名空間,提供了許多可以使用在平行運算程式當中的執行緒安全(thread-safe)集合類別,包括了:

  • BlockingCollection
  • ConcurrentBag
  • ConcurrentDictionary
  • ConcurrentQueue
  • ConcurrentStack
  • OrderablePartitioner
  • Partitioner

在支援平行運算的程式碼當中,只需要將原本使用的集合換成新的集合就可以了。例如原本的程式碼:

pulblic class MyData{

public List<byte[]> Data {get; set;}

}

因為 List集合物件不支援執行緒安全,因此當你將MyData物件直接在平行運算的程式中使用,並且沒有特別同步鎖定的話,可能會出現下面的錯誤:

System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at System.Collections.Generic.List`1.Enumerator.MoveNext()

而在.NET Framework 4.0 的程式當中,你可以將 List集合換成 BlockingCollection集合物件:

pulblic class MyData{

public BlockingCollection<byte[]> Data {get; set;}

}

因為 BlockingCollection物件本身就支援執行緒安全,因此直接將BlockingCollection物件使用在平行運算的程式碼當中,就不會有前述的錯誤發生!!!

2010年11月15日 星期一

在PHP程式中使用Windows驗證

在IIS 7.5當中,可以使用" Windows Platform Installer” 工具,安裝支援PHP的延伸模組之後,就可以在IIS上執行PHP應用程式了。當然,此時你就可以使用IIS或是ASP.NET的Membership,建立PHP應用程式所需要的使用者驗證功能。在這裡我先介紹最簡單的WIndows驗證的作法。

Windows驗證在ASP或是ASP.NET的應用程式中,是驗證企業內部網域使用者最簡單的方法;同時使用者在支援Windows驗證的不同Web應用程式間切換時,也不需要再重新登入,對使用者來說也是相當的方便。若是要在裝載在IIS 7.x上執行的PHP應用程式當中使用Windows驗證,首先你必須要開啟PHP應用程式目錄的Windows驗證功能:

1. 用滑鼠雙擊應用程式目錄的Authentication(驗證)設定。

image

2. 取消匿名驗證(標示 1),並且啟用Windows驗證(標示 2):

image

完成之後,將來所有來自用戶端的HTTP要求,IIS就會使用網域帳號驗證使用者;驗證成功之後,使用者的Window網域帳號就會被自動寫入 "LOGON_USER" 的Server變數當中。而在PHP應用程式中,只需要透過下面的程式碼,就可以取出驗證過的使用者帳號:

image

除此之外,也可以結合ASP.NET的Forms驗證檢查使用者身分,或是透過URL方式進行授權。

2010年11月12日 星期五

加入AppFabric Cache Cluster 發生錯誤

當透過AppFabric設定工具,要將目前機器加入已經存在的快取叢集時,若是出現下面的錯誤訊息:

image

錯誤發生的原因,就是在 "C:\Windows\System32\AppFabric\DistributedCacheService.exe.config" 檔案中,<clusterConfig>標籤中沒有正確的資料。解決的方式,可以從任一台叢集中的機器中,開啟這一個檔案之後,再將資料複製到config檔案之後,再重新執行AppFabric設定工具就可以了。

2010年11月11日 星期四

建構私有雲叢集運算核心–Windows HPC Server 2008 R2

雖然最近相當忙,但是發現技術的東西用過之後如果沒有記錄一下,很快就會忘記了。

雲端運算是最近相當熱門的題材,為了讓無法自行建置雲端平台的新興網路產業,以及希望降低公有雲TOC的企業,微軟提供了Windows Azure,讓需要企業可以隨時調配所需要的公有雲架構。然而,在企業當中,還是有需要可以將一些內部的企業級應用程式,建置在企業內私有雲端執行的需求。

Windows High Performance Computing (HPC) Server 2008 R2 是微軟叢集運算的核心,搭配.NET Framework 4.0 所提供的TPL(Task Parallel Library),你就可以將C#或是VB.NET所建立的WCF服務,進行分散式的運算;而像是ETL、Data Mining等需要大量運算資源的Job,也可以透過HPC Cluster的Head Node進行分散式運算,並且還可以監控每台機器的執行狀況,產生報表。再加上Windows Server AppFabric Caching 的分散式快取,其實要建立企業內私有雲平台並不難。下面是Windows HPC Server 2008 R2的叢集運算基本架構:

ClusterComputing

Windows HPC Server 不是新的作業系統,而是架構在Windows Server 2008 R2 64 位元作業系統上面的叢集運算服務,由下面幾個基本的角色構成:

1. Head Node:負責集中管理與分派工作(Job)的節點,透過SQL Server資料庫紀錄工作與執行狀態。

2. WCF Broker Node:負責裝載WCF服務,並且將用戶端要求傳送到叢集中運算,回傳結果。

3. Compute Node:負責運算的節點,可以是Windows Server或是Windows 7的工作站。

設定Job的時候可以指定需要使用多少運算的資源:

image

image

但需要注意的是,若是要發揮叢集運算的最佳效果,程式在撰寫的時候,就必須要把平行運算的設計考量,加入到程式碼當中。關於.NET Framework 4.0的平行運算是一個很大的課題,有時間再慢慢分享。

2010年11月8日 星期一

該怎樣看待HTML 5?

今年TechDays 之後,有很多朋友詢問我有關於是不是需要等 HTML 5標準的問題。我先跟大家分享一個身邊的故事:

我有一位好朋友,幾年以來,一直想在台北市買間房子。他跟我說,希望可以找一間室內有35坪以上,總價兩千萬以下的房子。其實這條件並不會太難找,但是找到的都是中古屋,要不然就是交通比較不方便的區域,所以他就不考慮了;再加上常常會有房價泡沫化的新聞,於是乎迄今,屬於他的房子還不知道在哪裡 -- 即便是他有兩千萬的預算…

HTML 5 從2007年開始制定到現在,一直被視為下一代網際網路的一個重要標準;然而到現在為止,也還在 "Working Draft"的階段,"最快" 應該也是明年六月以後才有機會變成 "Recommandation" 的標準(很樂觀的看法)。而備受爭議的CSS 3,則可能會需要再拖一陣子。在現在這標準還是曖昧不明的階段,Chrome、Safari等不同的瀏覽器廠商,為了搶瀏覽器的市場,也舉辦許多的研討會,每家都試圖證明自己是HTML 5的領導廠商。更甚者,希望讓IT人員相信,只有HTML 5才是下一代Rich Internet Application的唯一標準。

我在五月份的文章中,已經把HTML 5發展的可能做了一些分析;在 IE 9 Beta1釋出之後,情勢又更加的明顯。微軟從2007年,也就是大約是 HTML 5標準開始發想的時間,就推出了Silverlight 1.0版。在Silverlight 1.x中,微軟就已經試著使用 XAML標籤,來描述網頁中動畫、影片、聲音等等,與使用者互動的技術,再透過JavaScript控制這些網頁中的物件,建立RIA應用程式。但是也就是為了要讓 XAML標籤所設計的使用者操作介面可以在不同的環境中(特別是未來的行動裝置),不受瀏覽器與JavaScript引擎的影響,而可以有一致的效果,因此從Silverlight 2.0開始,Silverlight就轉變為現今的架構。而從2007年迄今,Silverlight也已經根據實際應用的需求,進化了四個版本;如果從這樣的經驗來看, HTML 5 的標準就算在制定完成之後,也還有一段長路要走…

另外,若是要讓 RIA應用程式可以在不同的瀏覽器中可以有一致的效果,瀏覽器本身除了需要有很好的JavaScript執行引擎之外,更需要與作業系統有更緊密的結合,才能善用圖形加速的功能(GPU、DirectX…)去呈現網頁。在我TechDays 2010的demo當中(http://ie.microsoft.com/testdrive/Performance/PsychedelicBrowsing/Default.html),其實就可以看出有支援GPU加速的 IE 9 Beta 1,在執行HTML 5的網頁時,效果就比Chrome(7.0.517.44)好上很多。當然,現在離HTML 5的標準制定完成至少還有半年以上的時間(很樂觀的看法),瀏覽器廠商都還有進步的時間與空間。但在這些問題都還沒有解決或是最佳化之前,使用HTML 5開發出來的網頁對於使用者來說,不會有太多的感覺。當然,對於瀏覽器廠商來說,若是 IE 9在執行大部分的HTML 5網頁時的速度與效果都比Chrome或是Safari好的話,自然市占率就會增加 -- 然而在 HTML 5標準確定之前,目前所有 "號稱"支援HTML 5 的瀏覽器,也都沒有支援全部的功能(http://www.w3.org/QA/2010/09/how_do_we_test_a_web_browser_o.html),自然對於使用者來說,也沒辦法帶來好處。

image image 

(差很大的使用者操作經驗…)

HTML 5 會一統江湖嗎? 從幾個地方來看:

1. 大部分的HTML 5的規格,都是參考自2007年迄今,RIA應用程式技術(Flash、Silverlight)現有的功能所制定的。然而應用程式的發展日新月異,參考現在的需求所制訂出來的規格,通常是無法滿足未來的需求。換句話說,在環境變化多樣性的網際網路平台中,HTML 5 應該是繼續扮演目前的角色,做為Web基礎的框架;而各種 RIA的技術,包括Silverlight以及未來的其他裝置,勢必會繼續發展滿足未來使用者需求的功能;而HTML 5標準所無法支援的環境,則應該依然是可以透過plug-in的方式,執行在瀏覽器中。

2. 根據這幾年來Silverlight的發展經驗來看,未來HTML 5應該會發展成為設計工具間,轉換使用者操作介面的一種標準。每一種不同的UI 技術都會有各自的profile,如同MDA(Model Driven Architectur)當中 PIM(Platform Independent Model)到PSM (Platform Specific Model)的過程一樣,設計人員可以先使用工具設計好一個通用的模型之後,再套上不同執行環境所需要的profile,就可以轉換成所需要的使用者操作介面

會需要這樣做的原因是,未來可以上網的裝置越來越多,需求也會不同,要讓RIA應用程式在這些裝置中都有良好的操作經驗,就不可能都靠瀏覽器去執行這些程式。換句話說,除非裝置本身的作業系統就是最佳化過的瀏覽器(Chrom OS ?),否則會有越來越多的RIA應用程式需要支援於瀏覽器外執行。此時不同的裝置,設計工具就可以透過不同的profile,轉換成各自支援的UI標準 (類似MDA當中的PIM->PSM),開發人員再透過 MVVM 等開發模式,就可以快速的將使用者操作介面與程式結合,轉換成在不同裝置中執行的應用程式。

我們需要等 HTML 5嗎? 不需要! 就像買房子一樣,有現在就已經成熟的技術可以解決問題,為什麼要等以後不確定能做到多少的標準? 在未來,Silverlight技術將會繼續演進,支援更多裝置與平台;而同時,HTML 5無法滿足的部分,也繼續會有新的技術會出現,請問你還可以等多久???

參考資料:

W3C Statndards and Drafts

HTML 5: Getting to Last Call

HTML 5+ CSS 3 會殺了Flash 跟Silverlight ?
HTML 5+ CSS 3 會殺了Flash 跟Silverlight ? -2

2010年9月27日 星期一

Windows Server AppFabric Caching (3) - 與資料庫存取在效能方面的比較

在利用Windows Server AppFabric Caching,建立大量資料存取的系統時,Windows Server AppFabric可以大大的減輕系統存取資料庫時所造成的I/O負擔,同時其Key-Value的存取方式也讓程式可以透過Key值直接取得所需要的物件,不需要花時間建立資料連線。下面分享一個實際的測試結果:

在這一個測試當中,我將4000萬筆資料從資料表搬到Cache當中儲存,再與資料庫查詢同一筆資料的結果作比較;資料庫與Cache Server都在美國的Data Center中。在沒有啟用Local Cache功能時,第一次查詢資料的結果為:

image

相同的條件再執行一次,結果為:

image

從結果可以看出,使用資料庫查詢在第一次建立資料連線時,需要耗費相當的時間;而當資料連線建立完成之後,後續的存取時間使用Cache或是使用資料庫其實差異不大。但就如同一開始所說的,使用Cache可以減輕資料庫I/O的負擔,這對於我們一天有幾十GB資料要新增的系統來說,有相當的幫助。

接下來,我們啟用LocalCache之後,再重新測試一次:應用程式第一次查詢資料的結果和之前差不多:

image

(請想想,相對於對第一次資料庫存取而言,為何這一次快了一倍? )

相同的條件再執行一次,結果為:

image

0 毫秒!!

對於大量提供資料的應用程式而言,Windows Server AppFabric Caching 除了可以減輕資料庫的負擔之外,當啟用LocalCache之後,AppFabric Caching會自動將使用過的物件快取在應用程式當中,當下次要再使用相同的物件時,就不需要再從Cache Layer當中去存取物件,因此幾乎是即時就可以取得資料!!

但需要注意的是,雖然Cache可以讓我們在近乎即時的狀況之下使用物件,但是在設計上,Key-Value相對於關聯式資料庫而言,是完全不同的效果,同時資源的消耗上也是完全不同的。下次,再來談設計上的考量…

2010年9月15日 星期三

如何結合網域帳戶,自訂ASP.NET應用程式授權

預設在ASP.NET應用程式當中,支援兩種驗證模式:

  • Windows 驗證:利用IIS驗證使用者的Windows帳戶,然後存取ASP.NET應用程式。
  • Forms驗證:利用ASP.NET當中自訂的登入表單,搭配MemberShip資料庫驗證使用者身分。

在企業內部,比較常用到的,應該會是Windows驗證,因為如此一來,使用者就不需要為了存取不同的ASP.NET應用程式,而重複進行登入的動作。然而,因為Windows驗證預設必須要搭配使用者的Windows群組資訊來授權,為了管理使用者在不同的應用程式中不同的執行權利,往往必須要在AD當中建立不同的群組;同時IT管理人員也必須要常常隨著使用者的升遷或是轉換部門,而調整使用者AD的群組狀態。

另一個問題是,擁有(管理)應用程式的部門,也通常不是管理AD的IT單位,因此若是要在應用程式當中建立新的群組授權,就必須要知會其他單位,不僅不方便,協調與溝通若是出錯的話,對於使用者也會是一大困擾。

"何不就讓使用者透過Windows帳號登入ASP.NET應用程式,然後再由ASP.NET應用程式自行針對Windows帳號授權 ?"

解決之道,就是結合Windows驗證與Forms驗證,讓企業內部的使用者可以透過Windows帳號登入ASP.NET應用程式之後,再使用MemberShip資料庫的資料進行授權。這樣使用者一樣可以使用Windows帳號存取應用程式,同時每個ASP.NET應用程式的管理人員也可以自己管理使用者的登入與授權的權利。。[筆者按:這不是微軟建議的標準使用方式,ASP.NET的課程也不會這樣教]

image

請參考上面的概念圖,當每個Http Request傳送到Web Server時,會先被IIS攔截,並且根據Web應用程式目錄設定的驗證模式驗證使用者(標示 1);有了存取Web應用程式目錄的權限之後,Http要求才會被送到ASP.NET應用程式當中。一般若是要使用ASP.NET的Forms驗證模式的話,通常IIS的應用程式目錄會設定 "匿名驗證 " (標示 1),再由ASP.NET自訂的Login表單與MemberShip資料庫進行驗證授權(標示 2)。

了解了ASP.NET與IIS的驗證/授權概念之後,要結合網域帳戶,自訂ASP.NET應用程式授權的工作其實相當簡單,我們只需要在Web應用程式目錄啟用Windows驗證模式(標示 1),再將Windows使用者帳號設定到MemeberShip資料庫中,就可以直接在ASP.NET應用程式當中根據該Windows帳號進行授權(標示 2)。操作步驟如下:

1. 首先,在IIS上先啟用 "Windows 驗證",由IIS驗證使用者的Windows帳號

image

2. 在 ASP.NET應用程式的web.config檔中,設定啟用Forms驗證,同時排除匿名使用者:

image

3. 在Login表單的程式碼當中,先透過 "Request.LogonUserIdentity.Name" 屬性,取出IIS所驗證的使用者Windows帳號,再送到MemberShip資料庫當中比對。

image

如此一來,你只要將可以存取ASP.NET應用程式的使用者Windows帳號名稱,透過程式或是管理介面加入MemberShip資料庫當中,再設定該Windows帳號在ASP.NET應用程式當中所屬的群組,就不需要到AD當中去設定群組資訊了!!

image

4. 最後,在需要檢查授權的程式碼中,只需要透過 "User.IsInRole" 方法,就可以檢查該Windows使用者帳號在ASP.NET應用程式當中,是否屬於已被授權的群組:

image

透過這種方式,在企業內部的ASP.NET應用程式,就可以自行管理Windows使用者帳號的存取權限,而不需要透過AD的群組了….

2010年7月18日 星期日

如何學習UML ?

最近,或許是跟微軟一直在倡導跟軟體品質、軟體生命週期有關的一些理論有關,很多朋友都對UML(Unified Modeling Language)有興趣,也來跟我討論了一些問題。比較有趣的是,這些朋友大多上過一些UML的課,卻還是不清楚,究竟要怎樣將UML應用在實務上。還有一些書籍,自己創造了一些翻譯的名詞(Use case diagram –> 用例圖 ??),讓想好好學UML的人一開始接觸就一頭霧水…

如何學習UML,必須要先從 "你希望UML可以為你做甚麼 ?" 開始看起。UML 大致上分成兩個部分:Notation 與 Metadata。所謂的Notation,指的就是在繪製UML圖表的時候,所使用的 "標記",像是最簡單的Actor (動作項目):

Actor Notation

而在UML的定義中,所有的Notation都有特定的Attributes,彼此之間也都有特別的關連與限制,這些就是在UML模型後面的Metadata。然而,對於90%以上的UML使用者來說,學會正確的使用Notation表達系統的設計,會比去搞懂Metadata來得重要。Metadata主要是給研究UML的大師們討論,以及開發UML工具的廠商使用的;對於一般使用者而言,深入了解像是”Classifier”的定義為何,不會是學習UML的重點。

"我該使用甚麼工具好 ?"

自從UML被神化之後,很多人一開始接觸UML,就開始先比較這個工具支援多少種UML模型圖、可不可以產生程式碼或是反向工程等等的課題 ---- 忽略掉原本UML的初衷,是要用來幫助專案開發團隊溝通的一種模型。

理論上,UML模型是系統的藍圖,藍圖做好了,根據藍圖來產生程式碼,應該是沒有太大問題。但就像是建築學發展了幾千年,到目前為止,藍圖畫好了,也沒有辦法直接變成大樓一樣;你永遠不要期望任何UML工具,可以在模型建置好之後,可以直接建立系統出來。就算你所使用的工具有這樣的能力,但是在這個很多PM連使用案例圖(Use case diagram)都畫不好的情況下,你又如何能確保你的模型是完整的 ?

雖然在UML 2當中,定義了十多種的圖形,然而在實務上,通常使用其中的4、5種模型圖就可以將系統描述得很清楚。若是各位有興趣學習UML,請記得學習如何建立基本的UML模型圖,遠比學習UML工具來的重要 -- 沒有人規定不可以用小畫家繪製UML模型圖,不是嗎 ?

因此,要學習UML,只需要使用容易上手,具親合力的工具即可。簡單、容易上手的工具,可以讓UML更容易導入專案當中;而過於複雜的工具,雖然看起來很厲害,但往往因為加了太多東西而導致不容易使用,反而增加專案與開發團隊的困擾…

另外,因為UML模型不可能脫離系統文件與專案的程式而獨立存在,因此你所選用的UML模型工具,最好還要支援專案團隊所使用的專案管理平台(ex: Team Foundation Server),以及開發團隊所使用的開發工具(ex: Visual Studio),以確保在專案開發的過程中,任何的角色都可以在任何時候存取或是修正UML模型。

我在新書<<Visual C# 2010與UML 開發實戰>>的最後一章,介紹了如何使用Visual Studio 2010 在解決方案當中建立UML模型,其中也包含了UML基本圖形的介紹。如果各位有使用Visual Studio 2010開發工具,或是對於UML模型有興趣的,不妨參考看看。

2010年7月17日 星期六

悅知文化 Visual Studio 2010 書系出版!!

最近真的是忙到不可開交,連自己寫的書正在預購中都沒有打廣告....

悅知文化針對Visual Studio 2010以及.NET Framework 4.0的應用程式開發技術,邀請了國內各方面學有專精的專家,出版了一系列的技術書籍。有興趣的朋友可以參考下面的DM,或是在天瓏網路書局(http://tlsj.tenlong.com.tw/WebModule/News/newsDispAction.do?sid=329) 以75折預購 !

2010年7月4日 星期日

總統府網站分析 -- 全民驗收(4)

沒想到到今天(2010.07.04) 還有這麼多defects … 居然第3頁開始了…

21. 月曆格式不一樣 (感謝仁哥提供)

這問題可以看出開發流程是有問題的…

image (日曆格式 - 1)

image (日曆格式 - 2)

image (日曆格式 - 3)

22. 無法查詢 (未完全修正)

某些操作下,選好日期之後,無法正常執行查詢功能:

image

[2010.07.04 15:19] 修改之後,變成不用輸入,或是隨便輸入都可以執行:[安全漏洞]

下面是輸入"22",然後按下 "查詢" 之後的結果:

image

23. 部分內容來源未通過無障礙網頁A+等級 –> 是否有弊端 ?

感謝Jerry網友分享的資料,根據行政院研考會的測試報告,這一個網站上線迄今仍有頁面未通過合約中所規範的無障礙網頁A+等級標準。檢驗報告連結網址:http://www.webguide.nat.gov.tw/enable/Servlet1?inputURL=http://media.president.gov.tw/MediaTotalView.aspx&analyzingGrade=APlus&isOnlyText=yes

image

而總統府的首頁也很巧妙的把"無障礙網頁A+等級" 的Logo拿掉:

這是6/29號的首頁文字,可以看到無障礙Logo

通過A+等級無障礙網頁檢測, 另開視窗. <-- 無障礙 Logo長這樣

image 這是7/4的首頁文字,無障礙Logo 已拿掉

感謝朋友的建議,有了圖片的證據,這些驗收的弊端都一覽無遺…

*********************************************************************************************************

另外一件很令人生氣的事,就是關於行政院研考會測試無障礙的網站,居然無法連結到總統府的網站提供測試報告;難道是有內神通外鬼,想要防堵民眾知的權利嗎?

證據如下:

監察院網站的無障礙測試報告結果:

image

總統府的無障礙測試報告結果:

image

我很確定我輸入的網址沒問題,各位網友也可以自己到研考會上試試:http://www.webguide.nat.gov.tw/wSite/sp?xdUrl=/wSite/enable/senseSinglePage.jsp&mp=1

很不可思議的,只有總統府的網站沒辦法測 !?

[有朋友使用IP位置可以測,但整件事還是很詭異]

**********************************************************************************************************

24. 出現無效的錯誤訊息

image

25. 錯誤日期送出後無錯誤訊息

image

26. 這是一個Bug,一般寫程式的人不會注意到。

當我在關鍵字欄位中,輸入"關鍵字"三個字的時候,查詢的結果必須是要和"關鍵字"三個字有關的,而不是傳回所有的資料。

image

27. 某些操作下,會出現下面頁面 :

image

這不是查詢沒有資料的結果,正常查不到資料是顯示這一頁:

image

28. 消失的網頁內容

某些操作下,網頁內容就會消失…

image

29. 中文版的調整好了,英文版也該檢查一下吧? (2010.07.07)

國際的門面,該注意一下….

image

[2010.07.04 23:00] 發現把今天日期搞錯了,已更正。

[2010.07.07] 上線一星期多了,還是一堆問題....唉

2010年7月3日 星期六

總統府網站分析 -- 全民驗收(3)

繼續編號下去:

11. 版面錯亂

某些操作之下,版面會亂掉:

image

12. 消失的兒童版內容:

兒童版的網頁內容某些操作下會消失,如:

image 這是原本頁面。

image 頁面內容不見了。

13. 網頁停止回應

某些操作下,網頁會停止回應,然後看到下面錯誤訊息:

image

14. 總統手稿

沒想到總統會親手回覆這種問題;頁面中也出現HTML標籤。

image

15. 網頁內容消失

在某些操作下,網頁內容會完全消失不見。

下面是清空的總統府建築歷史網頁:

image

正常的總統府看板:

image

清空的總統府看板:

image

16. 停用JavaScript之後,網頁亂掉,並且表單按鈕失效

提示訊息就這樣顯示在網頁外:

image

Banner 整個格式跑掉,字也擠在一堆:

image

更慘的是,表單的按鈕沒反應:

image

17.

某些操作下,系統會出現無法服務的錯誤訊息(系統沒有掛,但出現錯誤的頁面)

image

image

18. 安全漏洞

某些操作下,網站的內容會消失,同時出現 "登入" 按鈕:

image

19. 總統出訪專輯送輓聯

image

 

20. 模組無法載入? (安全漏洞)

某些操作下,網頁會出現下面錯誤:

image

英文版也有:

image

 

有空再繼續更新,不過這些問題也反映了程式開發與測試流程有許多問題。我也很想知道,花了納稅人700萬,到底UAT是怎樣驗收的?

(註:標題旁邊沒有加上"已解決"的都是未解決的問題。)

最新回應

Loading...

即時與版主對話


(若狀態顯示"忙碌"時,我可能無法馬上回應。你可以留下Email,我會盡快跟你聯絡,謝謝喔!!)