在正式實際撰寫程式碼前,可先對整個系統建置流程中的發行網站先做了解,程式碼的撰寫很重要,但並不是專案中唯一要注意到的事情,可以視做一個重要的部分,但絕對不是全部,很多工程師會認為程式碼寫出來,才是整個專案中的要角,原則上是沒錯,但並不完全正確,除非是很間單的網站,否則一個複雜的系統專案,程式碼雖然要佔開發成本的至少一半強,但其餘的需求的範圍,流程的釐清,及和客戶確認整個開發時成,甚至硬體的架構,軟體的開發只是規劃了layer,但若是大型的系統還要規劃tier的部分,還有很多環節要費心思,如可能要做ssl,要做load balance,資料庫要做cluster,web主機要和wcf主機分開,可能就要有六台主機,而專案若包含硬體的規劃並且包含在專案內,則還要評估購買什麼型號的主機,並且實際至客戶機房評估,因此若以一個大的角度往回看,程式碼的開發呢?似乎只是專案中的小角色,事實上是有這樣認為的人,但那是因為軟體工程師只看軟體,硬體架構人員只看硬體,而專案經理呢?那要看他是什麼出身的,他就會偏向那一方,因為人都會有本位主義,認為自己的東西是最重要的,事實上上面全都錯了..
若是一個剛進入IT工作的工程師,是可以只要會寫程式,但若以經混了好幾年,就不該只會寫程式,而是都要會,包含專案經理都一樣,而不是每個人都認為自己的工作最重要,因為對別人的工作都不了解,因此結論是,無論軟硬體都要會,會多會少而已,而不是用本位主義去看事情,之所以會變成常態,是因為很多愛爭著掛專案經理的人,太懶惰了,也太不專業了,給人一種因為它不懂軟體 也不熟硬體,所以...他只好去做那個位置,若是有個三寸不爛之舌可以安撫客戶,打打雜也好,若是連哪些都不會,也不想放下身段,去做些雜事,那真的只是多餘的成本...
因此一個好的專案經理,是真的有專業的,他懂硬體也懂軟體,即使不能到非常細節的部分,但至少不會和人討論起來,覺得好像和外星人討論,而這樣的廣泛學習,會讓專案的成員仿效,也會彼此尊重和學習,而專案中無論負責軟體還是硬體的人,也都能瞭解不屬於自己的工作範圍,也才知道原來專案中其他人員的角色,也是不簡單的...
實務上,有太多專案經理給人的印象,就是出一張嘴,那是不會有什麼綜效的,專案成員中,萎靡不振,因為大家都累了,而變成一種常態,會去搶做那個位置的人,覺對他的嘴,比他的認為有關IT的專業都要強..結論是,一個不稱職的專案經理,的確是專案的最大耗費成本..
拉回主題,ASP.NET 網站發行選項,歸納如下
發行網站時選取[ 使用固定命名和單一頁面組件],發行後是一個aspx對應一個dll,必然會有非常多的dll,這樣佈署時,若要更改單一的.cs時,只要直接改就可,不必全部的檔案都重新Build一個dll,當用者瀏覽時,他會動態編譯,因為只會動到修改的.cs和.aspx單一檔案,好處就是動態編譯,但會產生一對一的dll,因.net2005後,由code behind改為code beside(後置程式碼置於web server,瀏覽時動態編譯,面時,ASP.NET 執行階段將會判斷已變更檔案的相依性,並僅重新編譯受到變更影響的檔案).
另外可使用建立web application project的方式,而不要用建立web site project的方式開發,也可避免上述問題,web applicaton project建置時是單一的dll,直接發行即可。
發行時介面中有個選項[allow this precompiled site to be updatable],取消選項,可做到保護智慧財產權,因aspx頁面中只會顯示一段預設的文字,無法看到完整的前端頁面程式,且一個資料夾對應一個dll。
若發行時,將所有選項取消,無cs檔,根據對應的資料夾,編譯成對應個數的dll,aspx頁面檔被加密,只有一段預設的文字
這些只是簡短的歸納,一定要實際自行操作一遍,或自行摸摸看,否則一定是瞎子摸象,摸不著邊際,無論軟體也好硬體也好,除了看技術文件外,最重要的一點就是實作,實作一遍,勝過空談萬遍,最後還是要帶到一開頭講的,很多掛主管或經理的,就是從來都沒有實作過任何東西,所以他不知道很多東西的細節部分,無論是專案中的任何一個環節,也無論是軟體開發還是硬體的規劃,但是他卻有PMP,以至於問題來了,當大家忙得焦頭爛額時,他絕對幫不上任何忙,但是...這時他反而要求大家要交很多表格和文件,問他為什麼,他的回答也很妙,他說因為書上有寫那些每個階段要產出的文件和表格...其實他有時應該自問一下,到底除了要所有人交一大堆和專案無關的表格文件外,真的都沒事情做了嗎?
markshu提到:
若是一個剛進入IT工作的工程師,是可以只要會寫程式,但若以經混了好幾年,就不該只會寫程式,而是都要會,包含專案經理都一樣
認同 做久了自然會被要求