丝袜人妻一区二区三区_少妇福利无码视频_亚洲理论片在线观看_一级毛片国产A级片

當(dāng)前位置:首頁 > 話題廣場 > 攻略專題 > 游戲問答

.net項(xiàng)目如何打包發(fā)布?終于找到答案了.NET跨平臺操作應(yīng)用遷移

南昌藍(lán)鳥accp軟件的開發(fā)與學(xué)習(xí)

技術(shù)是去創(chuàng)造之美的非常好的旅行。南昌南航校區(qū)提醒你值得擁有

在一個操作系統(tǒng)和硬件結(jié)構(gòu)上運(yùn)行的軟件將在另一個操作系統(tǒng)和硬件結(jié)構(gòu)上重新編譯,以便在新平臺上運(yùn)行。此過程稱為應(yīng)用程序遷移。

有些情況下,把應(yīng)用程序從一個平臺移植到另一個平臺非常簡單直接,僅需要重新編譯并進(jìn)行一些驗(yàn)證測試即可。但是有些情況下,移植程序并不是那么容易。

本章是在應(yīng)用程序移植方面對當(dāng)前項(xiàng)目管理的一個補(bǔ)充,關(guān)于如何使用正規(guī)化的需求管理過程、如何更好的與軟件開發(fā)人員交流,以及如何進(jìn)行項(xiàng)目管理,今天的項(xiàng)目經(jīng)理們都已經(jīng)非常熟悉了,但是,軟件開發(fā)和軟件移植畢竟并不完全相同,這也就是本章要講述的內(nèi)容。

本章重點(diǎn)講述軟件移植的詳細(xì)過程和技術(shù)風(fēng)險,并列出一些實(shí)現(xiàn)高質(zhì)量應(yīng)用程序一致的習(xí)慣和方法。

軟件程序商業(yè)過程

在開始一個移植項(xiàng)目之前,很重要的一點(diǎn)就是要搞清楚在這個應(yīng)用程序的生命周期中那些商業(yè)過程會受到影響。那些受到影響的商業(yè)過程必須進(jìn)行修改,以適應(yīng)移植后的應(yīng)用程序,因?yàn)樾枰С中碌钠脚_、新的測試環(huán)境、新的工具、新的文檔,最重要的是,是需要支持新的客戶并建立客戶關(guān)系。

在應(yīng)用程序的生命周期中,可能會影響到商業(yè)過程的三個主要領(lǐng)域是開發(fā)和測試、客戶支持,以及應(yīng)用程序發(fā)布:

  • 開發(fā)和測試。在開發(fā)和測試部門,必須在以下方面對開發(fā)測試人員進(jìn)行Linux/Windows技能測試:應(yīng)用程序編程接口(API)的區(qū)別、開發(fā)工具、調(diào)試功能根據(jù)、性能工具,以及待移植的應(yīng)用程序需要的第三方軟件。

  • 客戶支持。在客戶支持部門,必須在以下方面對支持人員進(jìn)行培訓(xùn):Linux/Windows系統(tǒng)管理、移植后的應(yīng)用程序需要的第三方軟件、安裝和管理方法、Linux/Windows環(huán)境下的包管理工具、調(diào)試工具和方法,以及所需要的其他內(nèi)容。

  • 應(yīng)用程序發(fā)布。在應(yīng)用程序發(fā)布部門,必須在Linux/Windows整體特性和知識方面對銷售人員和技術(shù)顧問進(jìn)行培訓(xùn)。對軟件發(fā)布渠道人員,必須對其進(jìn)行培訓(xùn),使其成為Linux/Windows軟件程序的培訓(xùn)者。從客戶的角度看,他們也希望獲取Linux/Windows集成方面的知識,一并能夠把Linux/Windows和他們已有的IT系統(tǒng)集成在一起。

.NET應(yīng)用移植應(yīng)用程序到.NETCore平臺,也就意味著修改可能受到新移植的應(yīng)用程序影響的商業(yè)組織過程。應(yīng)該在真正的移植開始之前,認(rèn)真考慮這三個主要的方面,并將他們包含在整個移植項(xiàng)目過程中。

移植過程

參與移植項(xiàng)目的開發(fā)人員在移植任何項(xiàng)目時都可以遵循類似的步驟。這些步驟包括:調(diào)查、分析、移植及測試。過程中的每一步都是后一步的基礎(chǔ)。每一步都做好,后續(xù)的步驟也就會很容易完成。

調(diào)查

”調(diào)查“這一步主要是項(xiàng)目經(jīng)理召集移植專家(在應(yīng)用程序方面比較有經(jīng)驗(yàn),并且對開源平臺、目標(biāo)平臺及應(yīng)用程序使用的第三方產(chǎn)品比較了解的軟件開發(fā)人員)和某一領(lǐng)域內(nèi)的專家一起來確定待移植的應(yīng)用程序所依賴的產(chǎn)品、開發(fā)和測試環(huán)境等。在調(diào)查階段要明確的幾個關(guān)鍵內(nèi)容包括:產(chǎn)品/軟件依賴關(guān)系、開發(fā)環(huán)境組件、編譯環(huán)境組件和測試環(huán)境組件。

  • 產(chǎn)品/軟件依賴關(guān)系。確定待移植的應(yīng)用程序所依賴的產(chǎn)品,也就是要確定該應(yīng)用程序使用那個版本的數(shù)據(jù)庫、中間件以及第三方類庫等。知道了所依賴的產(chǎn)品和版本,移植專家就可以估計(jì)在.NET Core平臺上是否有這些產(chǎn)品和版本。

  • 開發(fā)環(huán)境組件。確定開發(fā)環(huán)境包括確定待移植的應(yīng)用程序時用哪種編程語言編寫的。使用較新的編程語言(例如C#)編寫的應(yīng)用程序比較容易移植,但是使用C/C++語言編寫的應(yīng)用程序需要花費(fèi)較多的時間來分析和移植。

  • 編譯環(huán)境組件。確定編譯環(huán)境包括確定需要的編譯工具是否在Linux/Windows上可用。對于在源平臺上使用的平臺相關(guān)的編譯和鏈接標(biāo)志必須進(jìn)行調(diào)查,以確定在Linux/Windows上是否存在對應(yīng)的標(biāo)志。有些編譯環(huán)境可能依賴于原平臺,這可能要花費(fèi)較多的功夫才能移植到Linux上。

  • 測試環(huán)境組件。確定移植后的應(yīng)用程序所使用的測試環(huán)境,會引入一些測試人員應(yīng)該關(guān)注的問題。通常情況下,移植工程師只對他們移植的部分做單元測試,然后就把程序交給測試組來做更完整的驗(yàn)證和系統(tǒng)測試。但是,誰是測試組呢?

多數(shù)情況下,“調(diào)查”這一步也會明確一些項(xiàng)目開始后可能遇到的風(fēng)險。在調(diào)查階段可以明確的風(fēng)險如下:

  • 需要的數(shù)據(jù)庫、中間件和依賴的第三方程序集在.NET Core上不可用。

  • 應(yīng)用程序包括一些需要轉(zhuǎn)換成Linux匯編指令的匯編例程。

  • 應(yīng)用程序使用了源平臺特有的API或編程模型。這也包括編寫程序時對字母大小寫和字節(jié)序的假設(shè)。

  • 應(yīng)用程序時按照.NET的某個版本編寫的,而該標(biāo)準(zhǔn)的實(shí)現(xiàn)又依賴于原平臺上特有的編譯器。

  • 測試環(huán)境需要復(fù)雜的客戶端/服務(wù)器架構(gòu)。

  • 開發(fā)環(huán)境需用第三方工具,而該工具需要移植到.NET Core上。

  • 應(yīng)用程序的發(fā)布或安裝需要源平臺的特有的工具。

“調(diào)查”這一步需要關(guān)注每一個新信息,這些信息可以通過問一些問題得到,例如關(guān)于文檔、打包、性能調(diào)整等的問題。

分析

“分析“這一步需要從兩個角度來考慮:項(xiàng)目管理和移植。從項(xiàng)目管理的角度看,分析就是要評估在前一個步驟中確定的各種移植問題和風(fēng)險,以及它們會對項(xiàng)目移植產(chǎn)生怎么樣的影響?!狈治觥斑@一步要制定項(xiàng)目計(jì)劃,包括確定項(xiàng)目的范圍和目標(biāo)、創(chuàng)建工作進(jìn)度計(jì)劃、獲取資源,以及分配項(xiàng)目角色。

確定項(xiàng)目的范圍和目標(biāo)也定義了項(xiàng)目經(jīng)理和組員的職責(zé)范圍和責(zé)任。項(xiàng)目范圍指的是項(xiàng)目要完成的一系列工作。例如,像“應(yīng)用程序ABC的模塊A需要移植到平臺B上,并在B上測試”,這樣的簡單陳述就是一個很好的定義項(xiàng)目范圍的例子。

項(xiàng)目范圍定義以后,移植工作的具體任務(wù)也就是可以定義了,這就產(chǎn)生了一個工作詳細(xì)分類的進(jìn)度表。該進(jìn)度表可以幫助確定哪些工作需要做,以及這些工作是順序做還是可以并行來做。另外,該進(jìn)度表還列出了所需要的資源。一個完整的進(jìn)度表可以通過定義項(xiàng)目任務(wù)和所需的資源得到。

從移植的角度看,“分析”這一步就是移植工程師詳細(xì)地分析應(yīng)用程序的結(jié)構(gòu)。移植工程師要確定應(yīng)用程序所使用的API和系統(tǒng)調(diào)用,并且評估應(yīng)用程序使用的動態(tài)鏈接和裝載、網(wǎng)絡(luò)、線程等。分析得到這些信息反饋給項(xiàng)目經(jīng)理,項(xiàng)目經(jīng)理據(jù)此確定更為詳細(xì)的任務(wù),并制定出更為準(zhǔn)確的計(jì)劃。

移植

“移植“這一步就是移植工程師開始執(zhí)行分配給他們的具體工作。根據(jù)前一步得出的工作細(xì)目表,移植工程師可能只能串行的工作。這主要是因?yàn)榇浦驳某绦蚩赡苁蔷o耦合的。也就是說,應(yīng)用程序的一個模塊高度依賴于其他模塊,只有那些被依賴的模塊移植完成后,這些模塊才能開始移植。一個典型的例子就是編譯環(huán)境的移植。如果原來的編譯環(huán)境是設(shè)計(jì)成一次編譯整個應(yīng)用程序,那么必須在任何移植工作之前,把各模塊所依賴的通用配置文件修改完畢。

如果移植工作相互之間沒有關(guān)聯(lián),則移植可以并行進(jìn)行。松耦合模塊的移植可以分開來讓不同的工程師同時進(jìn)行。一個典型的例子就是共享庫的移植,這樣的共享庫相互之間沒有影響,可以各自獨(dú)立編譯,并且只是供其它模塊編譯鏈接使用。確定哪些工作可以并行進(jìn)行是很重要的,并且這一工作應(yīng)該是在分析階段完成。

在.NET Core上編譯代碼的工作包括確定并消除代碼對體系結(jié)構(gòu)的依賴,以及非標(biāo)準(zhǔn)的編程習(xí)慣,包括檢查代碼并使用可移植的數(shù)據(jù)結(jié)構(gòu)或編碼標(biāo)準(zhǔn)。有經(jīng)驗(yàn)和質(zhì)量意識較強(qiáng)的移植工程師會糾正編譯錯誤的同時檢查后者。

移植工作也包括移植編譯環(huán)境到Linux/Windows平臺。該工作應(yīng)該在調(diào)查階段明確下來。有些編譯環(huán)境是可移植的,但有些并不是。確認(rèn)編譯環(huán)境不會導(dǎo)致潛在的問題是很容易被忽略的工作,需要非常仔細(xì)的調(diào)查和分析。

應(yīng)用程序移植完成以后(也就是說,在.NET Core上編譯完成了),移植工程師需要對移植的應(yīng)用程序進(jìn)行單元測試。單元測試可以很簡單,例如可以簡單的運(yùn)行程序,看是否產(chǎn)生運(yùn)行時錯誤,如果產(chǎn)生運(yùn)行時錯誤,就需要在把應(yīng)用程序交付給測試組以前修改完成這些錯誤。如何,測試組會對程序進(jìn)行更完全的測試。

測試

在測試過程中,指定的測試人員會對移植后的應(yīng)用程序運(yùn)行一些測試用例,這些測試用例都有不同的測試目的,從僅僅運(yùn)行應(yīng)用程序的簡單測試到測試應(yīng)用程序在.NET Core平臺上是否足夠健壯的壓力測試。在目標(biāo)平臺上對應(yīng)用程序進(jìn)行的壓力測試,可以發(fā)現(xiàn)那些除體系結(jié)構(gòu)依賴和壞的編碼習(xí)慣之外的問題。大部分應(yīng)用程序,尤其是多線程程序,在不同平臺上進(jìn)行壓力測試時,往往會表現(xiàn)出不同的行為,部分原因是因?yàn)椴煌牟僮飨到y(tǒng)實(shí)現(xiàn),尤其是不同的線程的實(shí)現(xiàn)。如果在測試過程中發(fā)現(xiàn)問題,移植工程師就應(yīng)該去調(diào)試和解決這些問題。

有些應(yīng)用程序移植也包括移植一套測試工具來測試該應(yīng)用程序。移植測試工具也是應(yīng)該在調(diào)查和測試階段確定的一個任務(wù)。多數(shù)情況下,測試人員往往需要接受一些對應(yīng)用程序的培訓(xùn),才能測試該應(yīng)用程序。學(xué)習(xí)應(yīng)用程序是一個與移植工作完全獨(dú)立的任務(wù),可以與移植任務(wù)并行進(jìn)行。

測試發(fā)現(xiàn)問題后,需要解決這些問題并重新編譯應(yīng)用程序;然后重新測試該問題,直到應(yīng)用程序通過所有的測試用例。

支持

移植工作完成后,開發(fā)階段就算結(jié)束了,支持階段也就隨之開始。一些移植工程師會留下來幫助回答客戶可能提出一些一直相關(guān)的問題。另外,開發(fā)人員也應(yīng)該培訓(xùn)客戶怎樣在Linux/Windows平臺上配置和運(yùn)行應(yīng)用程序。在移植結(jié)束后,支持階段一般需要持續(xù)60到90天。在這期間,針對新移植到.NET Core的應(yīng)用程序,移植工程師對技術(shù)支持人員和銷售人員進(jìn)行培訓(xùn),并回答他們提出的問題。在培訓(xùn)完成以后,移植工程師的工作就算完成了。

定義項(xiàng)目范圍和目標(biāo)

定義項(xiàng)目范圍就是定義清楚項(xiàng)目的結(jié)束點(diǎn)和邊界,以及項(xiàng)目經(jīng)理和項(xiàng)目成員的責(zé)任。定義清晰的項(xiàng)目范圍可以確保該項(xiàng)目的所有相關(guān)者(參與項(xiàng)目或者受項(xiàng)目影響的人員或組織,如項(xiàng)目組、架構(gòu)師、測試人員、客戶或贊助商、合作部門等)都明確該項(xiàng)目的目標(biāo)。

清晰的項(xiàng)目目標(biāo)或需求可以讓人更好地理解項(xiàng)目范圍。在移植過程的分析階段,客戶的目標(biāo)和需求被收集上來,然后被細(xì)分成各個結(jié)構(gòu),并最終定義成項(xiàng)目的交付物。項(xiàng)目的目標(biāo)和需求是定義項(xiàng)目范圍的起點(diǎn)。所有的項(xiàng)目目標(biāo)都確定以后,項(xiàng)目的范圍也就變得更加明確了。

定義項(xiàng)目范圍的一種方法是,列出項(xiàng)目要包含和不包含的目標(biāo)。從客戶收集需求列表是個很好的開始方法。需求收集上來后,項(xiàng)目經(jīng)理和技術(shù)領(lǐng)導(dǎo)詳細(xì)的檢查需求列表。如果對某些需求有疑問,應(yīng)該把它們列到不被包含的目標(biāo)列表中,至少最初時應(yīng)該這樣做。然后客戶再次檢查該列表,并對有異議的地方進(jìn)行糾正。最后,知道所有人員都認(rèn)為該列表已經(jīng)正確表述了項(xiàng)目應(yīng)該包含的所有目標(biāo)。

需要再次強(qiáng)調(diào)的是,該列表需要足夠詳細(xì),以便能夠列出那些要包含在項(xiàng)目中,那些不要。的確,對超出項(xiàng)目范圍的需求列出詳細(xì)說明也是很重要的。對定義項(xiàng)目范圍不能提供足夠信息的目標(biāo),隨著項(xiàng)目發(fā)布日期的臨近,會逐漸成為爭論的焦點(diǎn)。例如各個部分移植工作怎樣交付給移植小組---是多次迭代還是一次性交付?每次交付時作為一個階段,還是有一些更小的工作包含在該階段中?在一個完整的項(xiàng)目中有多少個迭代?該列表不僅定義了項(xiàng)目本身,也列出了該項(xiàng)目的所有相關(guān)干系人所期望的結(jié)果。

下面列出創(chuàng)建項(xiàng)目目標(biāo)列表時需要遵循的一些基本原則:

1、盡可能詳細(xì)定義項(xiàng)目范圍。

2、確認(rèn)項(xiàng)目的所有相關(guān)干系人都同意該項(xiàng)目范圍。

3、在“不包含/不在范圍內(nèi)”列表中列出未解決的內(nèi)容,直到全部解決。

定義項(xiàng)目目標(biāo)的一部分工作是列出項(xiàng)目的接收和完成標(biāo)準(zhǔn)。關(guān)于項(xiàng)目的完成標(biāo)準(zhǔn),所有的項(xiàng)目干系人必須達(dá)成一致意見。項(xiàng)目完成可能是指在Linux/Windows平臺上通過了百分之多少的系統(tǒng)測試,或者是通過了系統(tǒng)性能所設(shè)定的某個性能標(biāo)準(zhǔn)—也就是說,項(xiàng)目目標(biāo)是運(yùn)行一組具體的測試用例或者性能分析。不管項(xiàng)目完成的標(biāo)準(zhǔn)是怎樣定義的,如果可能的話,所有的項(xiàng)目干系人在移植開始之前都必須理解并且同意這些標(biāo)準(zhǔn)。任何在移植過程中對標(biāo)準(zhǔn)的修改早替代現(xiàn)有標(biāo)準(zhǔn)前都必須與所有相關(guān)干系人交流協(xié)商并得到批準(zhǔn)。

1.《.net項(xiàng)目如何打包發(fā)布?終于找到答案了.NET跨平臺操作應(yīng)用遷移》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。

2.《.net項(xiàng)目如何打包發(fā)布?終于找到答案了.NET跨平臺操作應(yīng)用遷移》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時性不作任何保證。

3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/gl/2216784.html

上一篇

Gucci紅包封面讓不少人抽了個寂寞 網(wǎng)友:這都能搞饑餓營銷

下一篇

10306怎么注冊不了?我來告訴你答案浙江擬率先為電子商務(wù)立法,侵犯消費(fèi)者信息權(quán)最高罰五萬

關(guān)于.net項(xiàng)目如何打包發(fā)布,你需要知道這些.NET跨平臺操作應(yīng)用遷移

關(guān)于.net項(xiàng)目如何打包發(fā)布,你需要知道這些.NET跨平臺操作應(yīng)用遷移

.net項(xiàng)目如何打包發(fā)布相關(guān)介紹,南昌藍(lán)鳥accp軟件的開發(fā)與學(xué)習(xí) 技術(shù)是去創(chuàng)造之美的非常好的旅行。南昌南航校區(qū)提醒你值得擁有 在一個操作系統(tǒng)和硬件結(jié)構(gòu)上運(yùn)行的軟件將在另一個操作系統(tǒng)和硬件結(jié)構(gòu)上重新編譯,以便在新平臺上運(yùn)行。此過程稱為...

.net項(xiàng)目如何打包發(fā)布看這里!.NET跨平臺操作應(yīng)用遷移

.net項(xiàng)目如何打包發(fā)布看這里!.NET跨平臺操作應(yīng)用遷移

.net項(xiàng)目如何打包發(fā)布相關(guān)介紹,南昌青鳥accp軟件開發(fā)學(xué)習(xí) 技術(shù)是開往創(chuàng)造之美的一次很好的旅行,南昌南航校區(qū)提醒你值得擁有 把一個運(yùn)行在某個操作系統(tǒng)和硬件結(jié)構(gòu)上的軟件,在另一個操作系統(tǒng)和硬件結(jié)構(gòu)上重新編譯(包括一些必要的修改),以...

.net項(xiàng)目如何打包發(fā)布?總結(jié)很全面速看!.NET跨平臺操作應(yīng)用遷移

.net項(xiàng)目如何打包發(fā)布?總結(jié)很全面速看!.NET跨平臺操作應(yīng)用遷移

.net項(xiàng)目如何打包發(fā)布相關(guān)介紹,南昌青鳥accp軟件開發(fā)學(xué)習(xí) 技術(shù)是開往創(chuàng)造之美的一次很好的旅行,南昌南航校區(qū)提醒你值得擁有 把一個運(yùn)行在某個操作系統(tǒng)和硬件結(jié)構(gòu)上的軟件,在另一個操作系統(tǒng)和硬件結(jié)構(gòu)上重新編譯(包括一些必要的修改),以...

.net項(xiàng)目如何打包發(fā)布?終于找到答案了NET Core:搭建私有Nuget服務(wù)器以及打包發(fā)布Nuget包

.net項(xiàng)目如何打包發(fā)布?終于找到答案了NET Core:搭建私有Nuget服務(wù)器以及打包發(fā)布Nuget包

.net項(xiàng)目如何打包發(fā)布相關(guān)介紹,1.使用docker搭建私有Nuget服務(wù)器 docker run -d -p 8085:80 -v /home/nuget/db:/var/www/db -v /home/nuget/package...

關(guān)于.net項(xiàng)目如何打包發(fā)布,你需要知道這些NET Core:搭建私有Nuget服務(wù)器以及打包發(fā)布Nuget包

關(guān)于.net項(xiàng)目如何打包發(fā)布,你需要知道這些NET Core:搭建私有Nuget服務(wù)器以及打包發(fā)布Nuget包

.net項(xiàng)目如何打包發(fā)布相關(guān)介紹,1.使用docker構(gòu)建專用Nuget服務(wù)器 docker run-d-p 8085336080-v/home/NUGET/db :/var/www/d B- v/home/NUGET/packet ...

關(guān)于.net項(xiàng)目如何打包發(fā)布,你需要知道這些從一張圖開始,談一談.NET Core和前后端技術(shù)的演進(jìn)之路

關(guān)于.net項(xiàng)目如何打包發(fā)布,你需要知道這些從一張圖開始,談一談.NET Core和前后端技術(shù)的演進(jìn)之路

.net項(xiàng)目如何打包發(fā)布相關(guān)介紹,鄒溪源,李文強(qiáng),來自長沙.NET技術(shù)社區(qū) 一張圖 2019年3月10日,在長沙.NET 技術(shù)社區(qū)組織的技術(shù)沙龍《.NET Core和前后端分離那些事兒》上,我們曾經(jīng)試圖通過一系列抽絲剝繭的過程來引導(dǎo)大...

.net項(xiàng)目如何打包發(fā)布?我來告訴你答案NET Core:搭建私有Nuget服務(wù)器以及打包發(fā)布Nuget包

.net項(xiàng)目如何打包發(fā)布?我來告訴你答案NET Core:搭建私有Nuget服務(wù)器以及打包發(fā)布Nuget包

.net項(xiàng)目如何打包發(fā)布相關(guān)介紹,1.使用docker構(gòu)建專用Nuget服務(wù)器 docker run-d-p 8085336080-v/home/NUGET/db :/var/www/d B- v/home/NUGET/packet ...

.net項(xiàng)目如何打包發(fā)布看這里!NET Core:搭建私有Nuget服務(wù)器以及打包發(fā)布Nuget包

.net項(xiàng)目如何打包發(fā)布看這里!NET Core:搭建私有Nuget服務(wù)器以及打包發(fā)布Nuget包

.net項(xiàng)目如何打包發(fā)布相關(guān)介紹,1.使用docker搭建私有Nuget服務(wù)器 docker run -d -p 8085:80 -v /home/nuget/db:/var/www/db -v /home/nuget/package...