Xamarin.Forms已經(jīng)開(kāi)源了一年多了。 那時(shí)候,我們已經(jīng)接受了700多次拉取請(qǐng)求并收到了更多的請(qǐng)求。 有沒(méi)有這些是你的? 如果沒(méi)有,這是你的參與邀請(qǐng)! 在本文中,我將概述我們正在尋找什么樣的貢獻(xiàn),并提供一個(gè)指南來(lái)提交您的第一個(gè)錯(cuò)誤修復(fù)。
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括花垣網(wǎng)站建設(shè)、花垣網(wǎng)站制作、花垣網(wǎng)頁(yè)制作以及花垣網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,花垣網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到花垣省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
簡(jiǎn)而言之,我們將招募任何使Xamarin.Forms產(chǎn)品在穩(wěn)定性,質(zhì)量和能力方面更好的產(chǎn)品。 這可能采取以下形式:
Bug修復(fù)
功能實(shí)現(xiàn)
測(cè)試
自述和維基文章或更新
在GitHub項(xiàng)目開(kāi)始打開(kāi)“請(qǐng)求”之前,有一些先決條件。
當(dāng)您提交提請(qǐng)請(qǐng)求時(shí),.NET Foundation bot將檢查以確保您已經(jīng)簽署了Contribution許可協(xié)議。 如果沒(méi)有,系統(tǒng)會(huì)提示您這樣做。 在完成之前,我們不能接受任何捐款。
除了一些例外,我們堅(jiān)持使用.NET Foundation風(fēng)格指南:
不要使用私有,因?yàn)檫@是默認(rèn)保護(hù)級(jí)別。
使用硬標(biāo)簽而不是空格
將行限制為最多120個(gè)字符
有關(guān)在Visual Studio安裝中實(shí)現(xiàn)其中的一些的指導(dǎo),請(qǐng)查閱我們的自述文件。
你發(fā)現(xiàn)了一個(gè)錯(cuò)誤,并有一個(gè)修復(fù)你想貢獻(xiàn)?真棒! 在您走得太遠(yuǎn)之前,請(qǐng)快速搜索Bugzilla,查看是否有任何相同問(wèn)題的報(bào)告。 在搜索Xamarin.Forms時(shí),選擇“高級(jí)搜索”選項(xiàng),然后:
Classification:Xamarin
Product:Xamarin.Forms
Component:無(wú)或全部搜索廣泛
Status:所有的
如果存在匹配問(wèn)題,并且標(biāo)記為“正在進(jìn)行”,則有人已經(jīng)在處理此問(wèn)題。 如果在該問(wèn)題上引用了PR,那么可能會(huì)在GitHub上等待合并。 當(dāng)問(wèn)題被解決和修復(fù)時(shí),然后已經(jīng)將Pull請(qǐng)求合并以解決問(wèn)題。 目前,要查看是否已經(jīng)發(fā)布,您需要在哪個(gè)版本中搜索我們的發(fā)行說(shuō)明。 我們有計(jì)劃在未來(lái)幾個(gè)星期內(nèi)改進(jìn)。
如果在任何其他不完整的狀態(tài)有錯(cuò)誤,或沒(méi)有錯(cuò)誤報(bào)告,那么你運(yùn)氣好,準(zhǔn)備繼續(xù)!
當(dāng)您開(kāi)始探索Xamarin.Forms解決方案時(shí),可能看起來(lái)很難過(guò)。 我會(huì)為你揭開(kāi)神秘面紗,并告訴你在哪里注意力。
Control Gallery/
這些項(xiàng)目包括一個(gè)畫廊應(yīng)用程序,包括所有可用的Xamarin.Forms控件,更重要的是使用UITEST內(nèi)聯(lián)的主機(jī)錯(cuò)誤復(fù)制。 在修復(fù)錯(cuò)誤時(shí),或者只是為了調(diào)查控件是如何工作的,這個(gè)裸骨頭但是功能性的應(yīng)用程序是你想要看的地方。
Pages Gallery/
顧名思義,這是另一個(gè)庫(kù)應(yīng)用程序,但這次是DataPages實(shí)現(xiàn)。
Platforms/
這些項(xiàng)目包含平臺(tái)特定的服務(wù)實(shí)現(xiàn),最重要的是UI控件。 當(dāng)Xamarin.Forms在iOS上呈現(xiàn)一個(gè)Label時(shí),它會(huì)運(yùn)行Xamarin.Forms.Platform.iOS/Renderers/LabelRenderer.cs. 在Android上,你會(huì)得到Xamarin.Forms.Platform.Android/Renderers/LabelRenderer.cs, 或者如果您使用的是FastRenderers Xamarin.Forms.Platform.Android/FastRenderers/LabelRenderer.cs. 當(dāng)添加控件或修復(fù)控件相關(guān)的錯(cuò)誤時(shí),這將是您實(shí)現(xiàn)這些更改的位置。
Xamarin.Forms/
在查找抽象控件,布局,綁定,觸發(fā)器,應(yīng)用鏈接和其他非平臺(tái)特定代碼的核心實(shí)現(xiàn)時(shí),搜索這些項(xiàng)目。
Xamarin.Forms.Maps/ and Xamarin.Forms.Xaml/
這些文件夾是不言自明的。 你可能不會(huì)花太多時(shí)間在這些項(xiàng)目中,除非你真的明白這些領(lǐng)域。
Clone the Xamarin.Forms code from GitHub master branch or pull to make sure you have the latest.
Create a new branch to host your changes
Open the Xamarin.Forms solution and navigate to the Control Gallery > Xamarin.Forms.Controls.Issues > Xamarin.Forms.Controls.Issues.Shared
Use the _Template.cs to start a new case following the established naming convention of “Bugzilla######.cs” where ###### is the issue id in Bugzilla.
using Xamarin.Forms.CustomAttributes;
using Xamarin.Forms.Internals;
#if UITEST
using Xamarin.UITest;
using NUnit.Framework;
#endif
namespace Xamarin.Forms.Controls.Issues
{
[Preserve(AllMembers = true)]
[Issue(IssueTracker.Bugzilla, 1, "Issue Description", PlatformAffected.Default)]
public class Bugzilla1 : TestContentPage // or TestMasterDetailPage, etc ...
{
protected override void Init()
{
// Initialize ui here instead of ctor
Content = new Label
{
AutomationId = "IssuePageLabel",
Text = "See if I'm here"
};
}
#if UITEST
[Test]
public void Issue1Test ()
{
RunningApp.Screenshot ("I am at Issue 1");
RunningApp.WaitForElement (q => q.Marked ("IssuePageLabel"));
RunningApp.Screenshot ("I see the Label");
}
#endif
}
}在這里實(shí)現(xiàn)您的繁殖情況。 如果是一個(gè)更復(fù)雜的案例,請(qǐng)參考本項(xiàng)目中的其他問(wèn)題,找到類似的內(nèi)容,并遵循該模式。 最后你應(yīng)該有一個(gè)演示,演示你正在努力解決的問(wèn)題。
選擇控制庫(kù)目標(biāo)項(xiàng)目以在模擬器或設(shè)備上運(yùn)行。
你應(yīng)該看到你的重生發(fā)生。 如果沒(méi)有,那么就會(huì)出現(xiàn)這個(gè)問(wèn)題已經(jīng)解決了。
實(shí)施你的修復(fù)并重新測(cè)試。
在再現(xiàn)文件中實(shí)現(xiàn)UITest。 如果您不是UITest專業(yè)人員,請(qǐng)?jiān)俅螀⒖紒?lái)源中的其他修補(bǔ)程序。 一旦您提交拉動(dòng)請(qǐng)求,測(cè)試將自動(dòng)運(yùn)行。
您現(xiàn)在可以創(chuàng)建一個(gè)拉請(qǐng)求。 在您的IDE或Git工具中,在GitHub上為Xamarin.Forms遠(yuǎn)程創(chuàng)建一個(gè)Pull請(qǐng)求。 這個(gè)過(guò)程應(yīng)該轉(zhuǎn)到GitHub Pull Request頁(yè)面,并填入Xamarin.Forms Pull Request模板。 我們要求您填寫您可以做的一切,并省略任何不適用的內(nèi)容。
Description
目前的行為是什么,預(yù)期的行為是什么?
Bugs
列出這適用于的任何和所有Bugzilla報(bào)告
API Changes
如果任何類的表面區(qū)域在進(jìn)行此修復(fù)時(shí)更改,請(qǐng)注意此處的更改。 這些可能表示其他用戶及其遺留應(yīng)用程序的破壞或行為變化。
Checklist
指示您是否已經(jīng)包括測(cè)試。 如果不需要任何測(cè)試或使用UITest來(lái)測(cè)試問(wèn)題太難,請(qǐng)注意。
就是這樣 提交拉請(qǐng)求,我們將審查。 如果有問(wèn)題或疑慮,團(tuán)隊(duì)將提交意見(jiàn)并提出代碼請(qǐng)求。 這個(gè)審查過(guò)程可能會(huì)感到臨床,所以不要親自去。 對(duì)自己說(shuō),開(kāi)源項(xiàng)目的拉扯請(qǐng)求流程是一個(gè)很好的學(xué)習(xí)經(jīng)歷,在幾乎每一種情況下,我的貢獻(xiàn)最終都被接受。
如果您將URL復(fù)制到Pull請(qǐng)求并在引用的Bugzilla問(wèn)題上注意,這對(duì)我們和其他用戶也是非常有幫助的。
Adding Features
在開(kāi)始研究功能之前,請(qǐng)查看公共Xamarin.Forms路線圖,然后搜索Evolution論壇,我們將討論可能的新功能和其他更改的規(guī)范。 如果您沒(méi)有看到已經(jīng)覆蓋的功能,請(qǐng)?jiān)贓volution論壇上打開(kāi)一個(gè)提案,并提供實(shí)施。 Xamarin.Forms工程小組將審核該提案并提供反饋。
如果您在一個(gè)平臺(tái)上實(shí)現(xiàn)舒適,但不足以實(shí)現(xiàn)其余平臺(tái),該怎么辦? 繼續(xù)打開(kāi)提案,邀請(qǐng)他人參與。
Tests and Wiki
如上所述,我們也歡迎在這些領(lǐng)域的貢獻(xiàn)。 我們有幾個(gè)UITEST項(xiàng)目以及單元測(cè)試。 我們有相當(dāng)好的覆蓋面,但總是會(huì)更好。 測(cè)試正確的事情很重要,所以如果你有任何問(wèn)題請(qǐng)問(wèn)。
我們的文檔小組繼續(xù)對(duì)我們的開(kāi)發(fā)人員指南和API文檔做出驚人的工作。 如果您發(fā)現(xiàn)任何不準(zhǔn)確或有建議,請(qǐng)使用側(cè)欄中的“我有問(wèn)題”按鈕,并發(fā)送給我們?cè)敿?xì)信息。
如果您的維基貢獻(xiàn)不符合這些文檔類別,請(qǐng)告訴我們,我們將考慮構(gòu)建維基。
我希望你會(huì)考慮為Xamarin.Forms做出貢獻(xiàn)。 沒(méi)有什么可以讓您的拉動(dòng)請(qǐng)求合并,并且知道您剛剛幫助了一個(gè)巨大的驚人的開(kāi)發(fā)人員社區(qū)。
有關(guān)詳細(xì)信息并開(kāi)始使用:
open.xamarin.com for more guidance on contributing to Xamarin open source
github.com/xamarin/Xamarin.Forms
Evolution forum proposals
Bugzilla
網(wǎng)頁(yè)題目:Xamarin.Forms新手指南
網(wǎng)址分享:http://www.chinadenli.net/article22/igjgcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、微信公眾號(hào)、網(wǎng)站收錄、品牌網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)