源碼託管
① 託管代碼和非託管代碼有什麼區別
廣義的說,託管代碼就是集成在你所使用的開發平台內的編程語言。例如:目前最常見的 .Net 運行庫里集成了VC++, C#, VB, F#...等20多種語言的構件和處理功能。
託管代碼:
」託管「的含義就是,這些語言的後台(隱性的)操作都由這個管理系統(.Net)完成了,你把你的編程委託給了開發平台(庫)來完成。當你使用這些語言時,一些系統資源的調用、回收、編譯……各種工作都由它來完成,你只需要專注於程序功能的實現即可。
非託管代碼:
就是指不在你這個集成開發環境里,而是使用其它的開發平台寫出的程序(代碼)。比如說java語言(不是jscript),basic語言(不是VB),C語言(不是VC/C++/C#)等等……它們也有自己的開發平台和程序,用這些語言寫出的程序就屬於」非託管「。
當非託管的代碼在你的託管平台上運行時,你的託管平台就不能很好地處理一些後台(隱性的)操作,就需要編寫額外的代碼來使它們變得和諧並且安全。
舉個最簡單的例子:
C和匯編語言,它們是最早期進入計算機領域的高級語言(匯編已經不能算高級語言了:)),它們可以直接對CPU、內存、匯流排、I/O、硬碟等硬體進行操作(讀/寫),像DOS、Windows、iOs這些操作系統都是用它們寫的。
所以你在.Net集成環境中直接使用這些語言時,會遇到很大的阻礙,阻礙來源於所謂的」託管平台「,它認為這些操作是不安全的,就會拒絕編譯和執行。
但這些語言的特點是操作直接、速度奇快(跟託管平台比),而且專用性和針對性極強,當我們需要運行具有上述特點的程序時,C和匯編可以說是最理想的語言了。要想讓它們和託管平台」和平共處「的話,就需要編制額外的代碼讓它們符合這個託管平台的安全和管理規范,還需要有非常高深的編程功底。要不然等待我們的就會有兩種結果:一是程序無法運行、二是直接造成軟體或硬體的損壞(底層操作是可以損傷硬體的)。
我解釋清楚了嗎?
② 將代碼託管在 github 或 bitbucket 可靠嗎
嚴格說來,任何伺服器都存在脫褲風險,正如最安全的銀行也存在破產、被盜的風險一樣,雖說概率極低。但你要知道 github 和 bitbucket
上面託管著許多大公司、小公司的閉源項目,如果你覺得你的項目比這些公司的項目更有價值,需要採取軍用機密級別的方式來保護的話,那麼建議專門找安全意識
非常高,技術非常過硬的人來維護你們的代碼
③ 經常使用git進行代碼託管的人,求助,為什麼
1、GitHub
關於GItHub相信大家都有耳聞,我就不詳細介紹了
2、Gitlab
對於很多人,說到GitHub就會自然的想到Gitlab,Gitlab支持無限的公有項目和私有項目。
④ Github 代碼託管如何申請是免費的么
1、打開github倉庫url,復制SSH clone URL.
2、打開Git Bash進入之前創建的項目目錄.
3、執行git remote add origin [email protected]:770687650/thinkphpclj,git,其中770687650是我在網站上注冊時使用的用戶名,thinkphpclj.git是我為這個項目建立的另一個倉庫名,在網站上顯示是這樣的:
⑤ 國內各代碼託管平台各有什麼優勢或特色
既然要開發就需要管理代碼,一般的小項目託管在網上公共的代碼倉庫比較劃算,不用花太大的維護成本,除了SourceForge和Google Code外其實還有很多好的代碼託管站點,不管你是使用CVS、SVN還是Mercurial(hg)、Git,都可以在網上找到相應的支持站點。
⑥ 代碼託管是做什麼的
我曾經用它調用.NET里的數據加密組件,總得來說,託管的代碼更安全,垃圾自動回收,可以調用其他.NET服務,挺方便的
⑦ 為什麼要代碼託管
託管代碼 (managed code)同受管制的代碼,由公共語言運行庫環境(而不是直接由操作系統)執行的代碼。託管代碼應用程序可以獲得公共語言運行庫服務,例如自動垃圾回收、運行庫類型檢查和安全支持等。這些服務幫助提供獨立於平台和語言的、統一的託管代碼應用程序行為。
託管代碼是可以使用20多種支持Microsoft .NET Framework的高級語言編寫的代碼,它們包括:C#, J#, Microsoft Visual Basic .NET, Microsoft JScript .NET, 以及C++。所有的語言共享統一的類庫集合,並能被編碼成為中間語言(IL)。運行庫編譯器(runtime-aware compiler)在託管執行環境下編譯中間語言(IL)使之成為本地可執行的代碼,並使用數組邊界和索引檢查,異常處理,垃圾回收等手段確保類型的安全。
優點
在託管執行環境中使用託管代碼及其編譯,可以避免許多典型的導致安全黑洞和不穩定程序的編程錯誤。同樣,許多不可靠的設計也自動的被增強了安全性,例如 類型安全檢查,內存管理和釋放無效對象。程序員可以花更多的精力關注程序的應用邏輯設計並可以減少代碼的編寫量。這就意味著更短的開發時間和更健壯的程序。
簡單點說,託管代碼是一microsoft的中間語言,他主要的作用是在.NET FRAMEWORK的CLR執行代碼前去編譯源代碼,也就是說託管代碼充當著翻譯的作用,源代碼在運行時分為兩個階段:
1.源代碼編譯為託管代碼;(所以源代碼可以有很多種,如VB,C#,J#)
2.託管代碼編譯為microsoft系統的.net平台專用文件(如類庫、可執行文件等)。
⑧ 代碼託管及版本控制是選擇Github還是Bitbucket
您好
選擇Github
注冊GitHub後你就會有0.3G的免費空間,不過只能創建公開項目,這也滿足代碼分享的目的,我最喜歡的倒是它的代碼展示方式,可以直接瀏覽你的代碼,代碼是經過高亮、添加行號處理過的,十分漂亮,體驗一流,比如這個Webpy託管的地方。而作為想要了解你代碼的人,可以選擇直接在線瀏覽自己感興趣的,也可以直接下載壓縮包,或者直接使用Git clone到本地。
因為GitHub是基於Git版本控制系統,所以你上傳修改代碼什麼的,都需要使用Git工具。我這里主要是用來分享和展示代碼,所以不想在版本控制方面做過多的闡述,下面就簡單講解一下怎麼在GitHub上新建一個項目,還有把自己的代碼傳上去。下面的前提是你已經注冊了GitHub和下載安裝了Git——Git下載、Windows版本下載。
上傳分享代碼
1.在GitHub上建立項目
登錄GitHub後,你可以在右邊靠中那裡找到一個按鈕「New Repository」,點擊過後,填入項目名稱、說明和網址過後就可以創建了,然後會出現一個提示頁面,記下類似[email protected]:XXX/XXX.git的地址,這個就是你這個項目的地址了。
2.配置Git以及上傳代碼
安裝Git成功後,如果是Windows下,選擇Git Bash,在命令行中完成一切,可能開始有點麻煩,不過就那幾條命令行,用幾次就記住啦。首先初始設置Git:
1 git config --global user.name "Your Real Name" 2 git config --global user.email [email protected]
然後開始進行最麻煩的一步了,你需要上傳文件到GitHub的Git系統上,得需要一個SSH密匙來認證,下面就開始生成密鑰和提交密鑰。打開Git Bash,創建SSH key:
1 ssh-keygen -C '[email protected]' -t rsa
然後要你輸入SSH密匙的存放位置,可以不管,直接回車使用默認路徑。再輸入你想要的密碼,SSH key就生成了。現在你需要將這個Key提交到GitHub,首先打開Key保存的位置,裡面會有三個文件,找到id_rsa.pub,用文本編輯器打開,復制裡面的全部字元。到GitHub,在右上方工具欄里找到Account Settings。在這個頁面上有一個SSH Public Keys標簽,選擇Add another public key。Title可以隨便填一個,Key就粘貼剛才的字元,提交。
完成這些工作後,就可以上傳自己的代碼了。找到自己要分享上傳的代碼文件夾,右擊選擇Git Bash,或者在Git Bash中進入這個文件夾。建立一個倉庫:
1 git init
選擇要添加進倉庫的文件:
1 git add .
一般如果你想分享這個文件夾里的所有代碼,就在 add後面加「.」,上面的例子就是這樣,如果傳指定的,只需要把「.」改為文件名即可,現在只是選擇了要加入倉庫的文件,下面才是添加進入倉庫:
1 git commit -m 'Test'
-m後面跟一個參數,表示說明,將代碼提交到GitHub後,將會在代碼文件信息上顯示這個說明,如下圖標記的地方。
搞了這么久,現在才開始把本地倉庫上傳到GitHub了,下面兩行命令搞定問題:
1 2 git remote add origin [email protected]:XXX/XXX.git 3 git push -u origin master
這個[email protected]:XXX/XXX.git就是上面創建項目是生成的地址。現在打開你的項目網址,你就可以發現你的代碼已經展示出來了。如果你要更新代碼的話,就重復上面的吧。
如果提交了敏感信息,比如代碼中設置的自己的密碼什麼的忘刪除就上傳上去了怎麼辦?重新修改過後上傳依然有歷史記錄,而使用Git刪除歷史記錄貌似很麻煩,於是就採用刪除項目吧,刪除了再重新上傳。刪除項目需要在GitHub網站上右上方找到admin按鈕,進去後右邊最下面有個刪除的按鈕,這樣就可以刪除了。
⑨ 託管代碼與非託管代碼的區別
簡單來說,託管的代碼就是把有關內存管理(內存申請,內存釋放,垃圾回收之類的)全部都是.net的CLR來管理,就是說使用託管的代碼把底層的一些操作都封裝起來了,不能直接進行內存的讀取之類的和硬體相關的操作,優點就是比較安全,不會出現諸如內存泄露之類的問題,缺點也很明顯,不能直接讀取內存,性能上會有損失,使用起來有時也不夠靈活。
非託管的剛好相反,可以直接進行硬體操作,性能比較高,但是對開發人員的要求也比較高。
最直觀的就是c#不推薦使用指針,而c++就可以使用指針來直接讀取內存;
c#使用垃圾回收,c++要手動的釋放對象……
⑩ 什麼是託管代碼
在過去(只是幾年前),使用C和C++編寫代碼的開發人員不得不自己進行內存管理。當不再需要已分配的內存空間時,必須將其釋放,除非希望該內存被泄漏,內存泄漏將帶來嚴重的性能問題。更糟糕的是因為直接處理指針,而它很容易破壞項目正在使用的內存。在很多情況下,這將導致很長時間的故障調試,因為通常實際看到出錯的地方並不是內存初始被破壞的地方。 人們認為C和C++語言難於掌握,主要是因為具有很多這種類型的問題。許多開發人員不願意嘗試C和C++,也是因為這個原因,他們嘗試使用其他沒有這些令人頭痛問題的高級語言,例如Visual Basic。盡管這些新語言具有易用易學的優點,但也具有一些缺點。它們的性能無法與C和C++語言相比,在大多數情況下顯得特別慢。另外,因為底層操作系統是使用C++開發的,所以這些語言難以實現C++的所有功能。盡管可以使用它們處理很多非常好的工作,但是如果想要獲得操作系統的所有性能和優勢,只能依靠自己。 與.NET運行庫的第一個版本相比,.NET的大多數內容都已經改變了。Microsoft公司幾乎完全重新設計了一種新的API,竭力確保開發人員關心的問題都會被解決。這種新的運行庫必須易學易用,快速高效,並且不存在令人頭痛的內存管理問題。在本書中,將看到.NET在這些方面的好處。 託管代碼 (managed code) 由公共語言運行庫環境(而不是直接由操作系統)執行的代碼。託管代碼應用程序可以獲得公共語言運行庫服務,例如自動垃圾回收、運行庫類型檢查和安全支持等。這些服務幫助提供獨立於平台和語言的、統一的託管代碼應用程序行為。 如C#非託管代碼 (unmanaged code) 在公共語言運行庫環境的外部,由操作系統直接執行的代碼。如C++,C