portaldacalheta.pt
  • หลัก
  • การจัดการวิศวกรรม
  • Kpi และ Analytics
  • เทคโนโลยี
  • ว่องไว
ส่วนหลัง

วิธีใช้ Bootstrap และสร้าง. NET Projects



สร้างโครงการ. NET

ในการสร้างโปรเจ็กต์. NET ตั้งแต่เริ่มต้นทำได้ง่ายเพียงแค่ใช้ วิซาร์ด Visual Studio . และก File => New Project , หรือ Add New Project สำหรับโซลูชันที่มีอยู่ เมื่อสร้างโปรเจ็กต์ใหม่แล้วคุณสามารถเริ่มเขียนโค้ดได้ทันที อย่างไรก็ตามการตั้งค่าโครงการเริ่มต้นที่สร้างโดย พ่อมด พวกเขาได้รับการยอมรับจากทีมงานมืออาชีพเพียงเล็กน้อยเนื่องจากพวกเขาลดคุณภาพทั่วไปลง นอกจากนี้ไม่มีอื่น ๆ พ่อมด อาจทราบเกี่ยวกับขั้นตอนการกำหนดค่าอื่น ๆ ที่คุณต้องดำเนินการในสภาพแวดล้อมการพัฒนาเฉพาะ

ในบทความนี้ฉันจะแนะนำคุณเกี่ยวกับการตั้งค่าที่สำคัญหลายอย่างที่คุณควรเปิดใช้เมื่อสร้างโครงการใหม่ซึ่งเป็นสิ่งสำคัญในการลดหนี้ทางเทคนิคในอนาคต นอกจากนี้เราจะทบทวนแนวทางปฏิบัติทั่วไปบางประการ นักพัฒนา. NET ใช้เมื่อจัดโครงสร้างโซลูชันและโครงการใหม่ แม้ว่าคุณจะไม่ได้นำแนวคิดเหล่านี้ไปใช้ แต่ก็เป็นเรื่องดีที่จะเรียนรู้และดูสรุปสิ่งที่ทีมเหล่านี้ส่วนใหญ่ทำ



โครงสร้าง

การมีโครงสร้างที่กำหนดไว้อย่างดีมีความสำคัญสำหรับโครงการที่ซับซ้อน สิ่งนี้ช่วยปรับปรุงประสบการณ์การเข้าสู่ระบบสำหรับสมาชิกใหม่ที่เข้าร่วมทีมและยังทำให้ชีวิตของคุณง่ายขึ้นเมื่อสนับสนุนโครงการเก่า โครงสร้างที่ดีมีสองตัวบ่งชี้หลัก:



  • ใช้โฟลเดอร์โครงการและโซลูชัน
  • ตั้งชื่อให้เรื่อย ๆ

บันทึก

โฟลเดอร์โซลูชัน บางครั้งเรียกว่า โฟลเดอร์เสมือน เป็นเครื่องมือที่มีประโยชน์มากในการจัดกลุ่มโครงการของคุณ ในมุมมอง โซลูชัน Explorer คุณเพียงคลิกขวาและเลือก Agregar => Nueva Carpeta de Solución จากนั้นลากและวางโครงการที่มีอยู่ลงในโฟลเดอร์ใหม่นี้ โฟลเดอร์เหล่านี้ไม่มีสำเนาในระบบไฟล์ซึ่งจะช่วยให้คุณไม่เปลี่ยนแปลงโครงสร้างทางกายภาพดังนั้นเมื่อย้ายโปรเจ็กต์จากโฟลเดอร์โซลูชันหนึ่งไปยังอีกโฟลเดอร์หนึ่งจะไม่ถูกย้ายจริง



การมีคำนำหน้าอยู่ในรายการไม่จำเป็น แต่ต้องจัดเรียงโฟลเดอร์ในหน้าต่าง โซลูชัน Explorer , ถ้ามันเป็น.



Visual Studio สามารถทำงานกับโซลูชันหลายอย่างในเวลาเดียวกันได้โดยใช้ประโยชน์จากโมเดล โซลูชั่นเฉพาะพาร์ติชัน หรือ หลายโซลูชัน . ไม่ค่อยได้ใช้ดังนั้นฉันจะไม่พูดถึงพวกเขาในบทความนี้

ไม่เหมือน โฟลเดอร์โซลูชัน , โฟลเดอร์โครงการ ผูกโครงสร้างโฟลเดอร์ทางกายภาพดังนั้นจึงยังคงเป็นโฟลเดอร์จริงบนดิสก์ นอกจากนี้โฟลเดอร์โครงการที่มีรหัส C # ควรตรงกับไฟล์ เนมสเปซ . ทำให้การนำทางเป็นธรรมชาติมาก คุณสามารถเปิดใช้กฎ ReSharper เพื่อเตือนคุณถึงความไม่ลงรอยกันเหล่านี้



ชื่อ

มีกฎแนะนำบางประการที่เกี่ยวข้องกับการตั้งชื่อ:

  • ใช้ CamelCase .
  • ชื่อโปรเจ็กต์ควรตรงกับชื่อแอสเซมบลีเอาต์พุตของคุณ
  • โครงการที่มีการทดสอบอัตโนมัติควรมีคำต่อท้าย .Tests
  • ชื่อโปรเจ็กต์ทั้งหมดควรมีคำต่อท้ายร่วมกันเช่น Company.Product



นอกจากนี้ยังมีกฎบางประการที่สมเหตุสมผล คุณควรตัดสินใจด้วยตัวเองว่าจะใช้เมื่อใดโดยพิจารณาจากสามัญสำนึก (และไวยากรณ์แน่นอน):

  • ใช้หัวเรื่องในรูปพหูพจน์เมื่อคอนเทนเนอร์ (โปรเจ็กต์หรือโฟลเดอร์) มีอินสแตนซ์ประเภทเดียวกันหลายอินสแตนซ์ (เช่น Tests หรือ System.Collections)
  • ใช้รูปแบบเอกพจน์เมื่อคอนเทนเนอร์ทั้งหมดมีรหัสเกี่ยวกับเอนทิตีเดียว (เช่น System.Collections.ModelObject`)
  • สำหรับคำย่อสั้น ๆ ให้ใช้ตัวพิมพ์ใหญ่เช่น System.IO does
  • สำหรับคำย่อแบบยาวให้ใช้ CamelCase เป็น Modules.Forex..

หลักประการหนึ่ง: คำย่อสั้น ๆ ควรมีความยาวไม่เกินสามอักขระ



โซลูชันการกำหนดค่า

การตั้งค่าโซลูชันทำได้ง่ายเพียงแค่จัดเตรียมไฟล์โครงสร้างพื้นฐานทั้งหมดที่คุณต้องการสำหรับสภาพแวดล้อมของคุณ แม้ว่าบางไฟล์จะสามารถเพิ่มได้ในภายหลัง (เช่นไฟล์การรวม CI) คุณควรมีไฟล์เพียงไม่กี่ไฟล์ในตอนเริ่มต้น

ผ่านการเป็นเจ้าของ แต่เพียงผู้เดียว vs s corp

การตั้งค่า ReSharper

หากคุณเป็นนักพัฒนา. NET มืออาชีพคุณอาจใช้ ReSharper ReSharper มีความยืดหยุ่นในการจัดการการตั้งค่า ในฐานะหัวหน้าทีมคุณสามารถสร้างและแจกจ่ายการกำหนดค่าได้ * แชร์ทีม * ซึ่งจะถูกใช้โดยนักพัฒนารายอื่น การกำหนดค่า * แชร์ทีม * จะถูกเก็บไว้ในไฟล์ที่มีนามสกุล .DotSettings. ReSharper จะเลือกการตั้งค่าเหล่านี้โดยอัตโนมัติหากชื่อไฟล์ตรงกับชื่อโซลูชันของ Visual Studio :



MyCompany.MyProduct.sln MyCompany.MyProduct.sln.DotSettings

ด้วยเหตุนี้คุณควรสร้างไฟล์นี้ในตอนแรกหากคุณต้องการใช้การตั้งค่าบางอย่างกับทั้งทีม ตัวอย่างที่ดีอาจเป็นกฎที่จะใช้ (หรือไม่ใช้) คีย์ var ไฟล์กำหนดค่าของคุณ แชร์ทีม คุณสามารถมีกฎนี้เท่านั้นในขณะที่กฎอื่น ๆ เป็นความต้องการของนักพัฒนา เป็นมูลค่าการกล่าวขวัญในลักษณะเดียวกับการตั้งค่า ReSharper สามารถตั้งค่าได้หนึ่งระดับต่อโปรเจ็กต์เนื่องจากคุณอาจมีรหัสเดิมที่คุณไม่สามารถแก้ไขได้ (เช่นเปลี่ยนไปใช้คีย์ var)

หากคุณตั้งชื่อไฟล์นี้อย่างถูกต้องดังที่แสดงในตัวอย่างอินสแตนซ์ใหม่ของ Visual Studio ด้วยการติดตั้งใหม่ของ ReSharper มันจะเลือกไฟล์นี้โดยอัตโนมัติและบังคับใช้กฎ อย่าลืมส่งไฟล์นี้ไปยังคอนโทรลซอร์ส

กฎ StyleCop

เช่นเดียวกับการตั้งค่า ReSharper คุณสามารถแบ่งปันการตั้งค่า StyleCop . ถ้าคุณใช้ ReSharper จากนั้นคุณต้องติดตั้งปลั๊กอินการรวมซึ่งจะทำให้ได้เปรียบ StyleCop บน ReSharper . แต่ถึงอย่างไร, StyleCop จัดเก็บการตั้งค่าอย่างอิสระในไฟล์ชื่อ Settings.StyleCop ในทำนองเดียวกันคุณสามารถมีไฟล์นี้พร้อมไฟล์โซลูชันและไฟล์โครงการ

หากคุณกำลังใช้ StyleCop อย่าลืมเรียกใช้เครื่องมือกำหนดค่า StyleCop และปิดการใช้งานการตรวจสอบที่คุณไม่ต้องการทำ โดยค่าเริ่มต้นการตรวจสอบทั้งหมดจะเปิดใช้งาน บันทึกการตั้งค่าใหม่ในไฟล์นี้และกำหนดเข้ากับซอร์สโค้ด

ไฟล์ข้อความ

หากคุณกำลังสร้างผลิตภัณฑ์สาธารณะและกำลังจะเผยแพร่ซอร์สโค้ดอย่าลืมสร้างและส่งไฟล์เหล่านี้ด้วย:

README.md LICENSE

ฉันขอแนะนำให้ใช้รูปแบบ markdown สำหรับไฟล์ README.md เนื่องจากกลายเป็นมาตรฐานอุตสาหกรรมซึ่งรองรับโดยบริการควบคุมแหล่งข้อมูลสาธารณะเช่น GitHub รวมถึงเซิร์ฟเวอร์ภายในเช่น BitBucket (Stash เก่า)

ข้อมูลจำเพาะของ NuGet

หากคุณกำลังสร้างไลบรารีซึ่งจะเผยแพร่ใน NuGet Gallery คุณอาจต้องสร้างไฟล์แพ็คเกจข้อมูลจำเพาะเช่น MyProject.nuspec ฉันชอบสร้างแพ็กเกจเหล่านี้ด้วยตนเองและกำหนดให้กับการควบคุมแหล่งที่มา โดยปกติแล้วแพ็กเกจจะเปิดเผยต่อสาธารณะโดยหนึ่งในงาน Continuous Integration (IC สำหรับระยะสั้น) ของคุณ แต่คุณสามารถสร้างและเผยแพร่แพ็คเกจจากคอนโซลด้วยตนเองได้ตลอดเวลาดังที่แสดงด้านล่าง:

nuget.exe pack MyLibrary.nuspec

อย่าลืมเพิ่มเวอร์ชันของแพ็กเกจก่อนเรียกใช้คำสั่งนี้

ไฟล์ IC เฉพาะ

เราทุกคนใช้บริการ IC ที่แตกต่างกันและทั้งหมดมีสคริปต์การกำหนดค่าและการตั้งค่าที่แตกต่างกัน ฉันจะพูดถึงส่วนเพิ่มเติมทั่วไปที่คุณสามารถพิจารณาเพิ่ม:

  • การตั้งค่า NUnit ระบุว่าแอสเซมบลีใดมีการทดสอบที่จะรันบนเซิร์ฟเวอร์ IC สำหรับงานเฉพาะ การทดสอบทั้งหมดแบ่งออกเป็นสองสามประเภท มี การทดสอบหน่วย ที่ควรดำเนินการในการก่อสร้างแต่ละครั้ง การทดสอบประสิทธิภาพ ที่ดำเนินทุกคืนและ การทดสอบการรวม พวกเขาทำงานในทุกการเปิดตัว
  • การตั้งค่า NCover ระบุว่าควรวิเคราะห์ชุดทดสอบใดเพื่อความครอบคลุมการทดสอบ
  • การตั้งค่า SonarQube กำหนดเมตริกซอฟต์แวร์ที่จะรวบรวม
  • สคริปต์งาน เช่น NAnt, PowerShell หรือเฉพาะไฟล์แบตช์ของ Windows

วิธีการ * Bootstrap * และสร้าง. NET Projects

โครงการที่ทำอย่างถูกต้องด้วยตัวเองช่วยลดหนี้ทางเทคนิคในอนาคตและทำให้ซอร์สโค้ดของผลิตภัณฑ์สามารถอ่านได้และดูเป็นมืออาชีพ ทวีต

กำหนดค่าโครงการ

ไฟล์โครงการ ได้แก่ .csproj หรือ .vbpro มีการตั้งค่าทั้งหมดที่ใช้โดย Visual Studio และ MSBuild อย่างไรก็ตามไม่ใช่ทั้งหมดที่มีอยู่ในหน้าต่าง คุณสมบัติของโครงการ . ในการแก้ไขไฟล์เหล่านี้ใน Visual Studio ด้วยตนเองคุณควรทำสิ่งต่อไปนี้:

  • คลิกขวาที่โปรเจ็กต์ในมุมมอง โซลูชัน Explorer .
  • เลือก ยกเลิกการโหลดโครงการ .
  • คลิกขวาอีกครั้งเพื่อเลือก action_Edit xyz.csproj_
  • ทำการแก้ไขให้เสร็จสิ้น
  • คลิกขวาที่โครงการอีกครั้งแล้วเลือก โหลดโครงการใหม่ .

หรือคุณสามารถเปิดไฟล์โครงการในโปรแกรมแก้ไขข้อความที่คุณชื่นชอบแก้ไขและบันทึก เมื่อคุณกลับไปที่หน้าต่าง Visual Studio คุณจะได้รับคำแนะนำให้โหลดโครงการที่เปลี่ยนแปลงซ้ำ

คำเตือนการควบคุม

การสร้างซอฟต์แวร์คุณภาพสูงต้องการให้คุณไม่เพิกเฉยต่อคำเตือนในการก่อสร้าง ดังนั้นคุณควรเปิดใช้งานคำเตือนในระดับสูงสุดและถือว่าคำเตือนเป็นข้อผิดพลาด โปรดทราบว่าคุณควรดำเนินการนี้กับการตั้งค่าการสร้างทั้งหมดที่คุณต้องการ แก้ไขข้อบกพร่อง ย ปล่อย . วิธีที่ดีที่สุดคือเขียนการตั้งค่าต่อไปนี้ไปยังกลุ่มคุณสมบัติทั่วไป:

4 true

และตรวจสอบให้แน่ใจว่าคุณไม่มีการตั้งค่าเดียวกันจากกลุ่มคุณสมบัติทั่วไปอื่น ๆ มิฉะนั้นจะแทนที่คุณสมบัติที่เกี่ยวข้องของกลุ่มทั่วไป

FxCop

การเรียกใช้ FxCop นั้นใช้ได้จริงสำหรับแต่ละบิลด์เท่านั้น ทีมส่วนใหญ่ชอบเรียกใช้ FxCop เป็นครั้งคราว (โดยปกติก่อนการเปิดตัว) เพื่อให้แน่ใจว่าไม่มีข้อบกพร่องที่รุนแรงเกิดขึ้น อย่างไรก็ตามหากคุณต้องการตรวจสอบสิ่งก่อสร้างแต่ละชิ้นอย่างเหมาะสมที่สุดให้เพิ่มตัวเลือกนี้:

true

โปรดทราบว่า FxCop เช่น StyleCop มีการตั้งค่าของตัวเองซึ่งสามารถวางไว้ในโฟลเดอร์รากและเพิ่มลงในตัวควบคุมต้นทางได้ การตั้งค่าเหล่านี้อาจใช้เมื่อเรียกใช้ FxCop บนเซิร์ฟเวอร์ CI

เอกสารประกอบ

ส่วนนี้เกี่ยวกับ XmlDoc หากคุณกำลังสร้าง API สาธารณะคุณควรสร้างและดูแลเอกสารประกอบ API นักพัฒนาส่วนใหญ่เริ่มต้นด้วยการพัฒนา API (การเข้ารหัสจริง) และก่อนเปิดตัวพวกเขาจะเปิดใช้งานการเข้ารหัสโครงการ Build / XML documentation file โดยปกติหลังจากสร้างใหม่อีกครั้งข้อผิดพลาดจำนวนมากจะปรากฏขึ้นเนื่องจาก XmlDoc ที่หายไปทุกรายการส่งผลให้เกิดข้อผิดพลาดในการสร้าง เพื่อหลีกเลี่ยงปัญหานี้คุณควรเปิดใช้งานตัวเลือกที่กล่าวถึงตั้งแต่ต้น

หากคุณขี้เกียจเขียนเอกสารที่เหมาะสมหรือไม่ต้องการถอดเสียงข้อความจำนวนมากให้ใช้เครื่องมือที่ทำให้กระบวนการนี้เป็นไปโดยอัตโนมัติเช่น Ghostdoc .

รหัสสัญญา

รหัสสัญญา เป็นกรอบงานการวิจัยของ Microsoft ที่ยอดเยี่ยมซึ่งช่วยให้คุณแสดงเงื่อนไขล่วงหน้าและความไม่แน่นอนของวัตถุในโค้ดของคุณสำหรับรันไทม์การทดสอบการวิเคราะห์แบบคงที่และเอกสารประกอบ ฉันใช้มันในโครงการที่สำคัญหลายโครงการและช่วยฉันได้มากดังนั้นฉันขอแนะนำให้คุณลองทำดู

หากคุณตัดสินใจที่จะใช้ Code Contracts สิ่งสำคัญคือต้องเปิดใช้งาน Contracts ตั้งแต่เริ่มต้น การเพิ่มสัญญาระหว่างการพัฒนาเป็นไปได้ แต่จะต้องมีการเปลี่ยนแปลงในหลาย ๆ คลาสเพื่อให้สัญญาจับคู่กัน ดังนั้นอย่าลืมเปิดใช้งานการตั้งค่าที่จำเป็นทั้งหมด (อย่างน้อย CodeContractsEnableRuntimeChecking) และตรวจสอบให้แน่ใจว่าการตั้งค่าเหล่านี้ปรากฏในกลุ่มคุณสมบัติทั่วไป

แอพ StyleCop

ก่อนหน้านี้เราได้พูดถึงการตั้งค่า StyleCop สำหรับเวลาในการพัฒนา อย่างไรก็ตามเมื่อโครงการของคุณสร้างบนเซิร์ฟเวอร์ CI ReSharper ไม่มีผลใด ๆ ดังนั้นเราควรเปิดใช้งานการตรวจสอบความถูกต้องของ StyleCop เพื่อรันกับ MSBuild

โดยปกติจะทำได้โดยการแก้ไขไฟล์โครงการ คุณต้องดาวน์โหลดโครงการที่ Visual Studio แก้ไขไฟล์โครงการแล้วโหลดโครงการอีกครั้ง:

สร้าง Google glass ของคุณเอง
false

StyleCopTreatErrorsAsWarnings มันจะทำตามที่มันบอก: มันจะทำลายงานสร้างของคุณเนื่องจากละเมิดกฎ StyleCop MSBuild ต้องการอิลิเมนต์อิมพอร์ตเพื่อเพิ่มการทดสอบ StyleCop ในบิลด์เชน

คุณอาจสังเกตเห็นเส้นทางไปยัง Program Files เนื่องจากนักพัฒนาอาจมีการติดตั้ง StyleCop เวอร์ชันที่แตกต่างกันบางทีมจึงต้องการเก็บสำเนาส่วนตัวของการติดตั้ง StyleCop เดียวกันไว้ภายใต้การควบคุมแหล่งที่มา ในกรณีนี้เส้นทางจะสัมพันธ์กัน นอกจากนี้ยังทำให้การติดตั้งเครื่อง CI ง่ายขึ้นเนื่องจากคุณไม่จำเป็นต้องติดตั้ง StyleCop ในเครื่อง

AssemblyInfo

ทุกโครงการ. NET ที่สร้างโดย ตัวช่วย Visual Studio จะมีไฟล์ AssemblyInfo.cs เติมข้อมูลโดยอัตโนมัติ (ดู คุณสมบัติ โฟลเดอร์ย่อย) ซึ่งมีคุณสมบัติบางอย่าง Assembly แต่ไม่มี ตัวช่วย สามารถกรอกแอตทริบิวต์ทั้งหมด Assembly สำหรับคุณ. ตรวจสอบให้แน่ใจว่าคุณมีแอตทริบิวต์เหล่านี้เป็นอย่างน้อย:

  • AssemblyTitle
  • AssemblyDescription
  • AssemblyCompany
  • AssemblyProduct
  • AssemblyCopyright
  • AssemblyVersion

นี่คือขั้นต่ำที่จำเป็นสำหรับชุดประกอบใด ๆ ที่คุณจะแจกจ่าย เหตุผลที่เป็นประโยชน์ประการหนึ่งที่อยู่เบื้องหลังสิ่งนี้คือ NuGet: หากคุณใช้ NuGet อัตโนมัติสำหรับการสร้างไฟล์แอสเซมบลีเฉพาะเครื่องมือนี้จะให้ข้อมูลที่จำเป็นเกี่ยวกับคุณสมบัติเหล่านี้

คุณยังสามารถเติมพร็อพเพอร์ตี้ได้อีกหนึ่งรายการตั้งแต่เริ่มต้น:

InternalsVisibleTo

คุณสมบัตินี้ทำให้คลาสภายในและอินเทอร์เฟซมองเห็นได้สำหรับแอสเซมบลีเฉพาะ โดยทั่วไปจะใช้สำหรับการทดสอบอัตโนมัติที่คุณจะสร้างสำหรับโครงการของคุณ

โซ่เชื่อมต่อ

วิธีการขับรถ สตริงการเชื่อมต่อ เป็นคำถามยอดนิยมใน Stack Overflow . ปัญหาคือทำอย่างไรให้สตริงการเชื่อมต่อไม่ซ้ำกันสำหรับนักพัฒนาหรืองาน CI แต่ละงานและไม่เปิดเผยรายละเอียดการเชื่อมต่อขณะเผยแพร่ซอร์สโค้ด

ใน App.config (สำหรับแอปพลิเคชันเดสก์ท็อป) หรือ Web.config (สำหรับเว็บแอปพลิเคชัน) ทำการกำหนดค่าต่อไปนี้ซึ่งจะโหลดไฟล์ user.config ที่รันไทม์ มีสิ่งนี้ในการควบคุมแหล่งที่มาของคุณ:

user.config

เห็นได้ชัดว่าไฟล์ .gitignore ควรแยกออกจากการควบคุมแหล่งที่มาและนักพัฒนาทุกคนควรมีสำเนาของไฟล์นี้ในเครื่องดังนั้นความเป็นส่วนตัวของสตริงการเชื่อมต่อจะได้รับการรักษาไว้:

.gitignore

.gitignore

สำหรับผู้ที่ใช้ Git เป็นตัวควบคุมแหล่งที่มาสิ่งสำคัญคือต้องเพิ่มรูปแบบไฟล์ลงใน README . อย่างไรก็ตามชุมชนอัจฉริยะของเราได้จัดทำที่เก็บถาวรทั่วไปซึ่งคุณสามารถพบได้ที่นี่: github.com/github/gitignore/blob/master/VisualStudio.gitignore .

คุณควรใช้เป็นไฟล์อ้างอิง README.md และเพิ่มการยกเว้นแบบกำหนดเองที่คุณอาจต้องการ

ป้าย GitHub

บางทีคุณอาจเห็นป้ายที่ดีมากบนหน้า [![Construir Estado]([http://dotnet-ci.cloudapp.net/job/roslyn_master_win_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_master_win_dbg_unit32/)](http://dotnet-ci.cloudapp.net/job/roslyn_master_win_dbg_unit32/badge/icon)](http://dotnet-ci.cloudapp.net/job/roslyn_master_win_dbg_unit32/)) [![Unete al chat aquí [https://gitter.im/dotnet/roslyn](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dotnet/roslyn?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)](https://gitter.im/dotnet/roslyn](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dotnet/roslyn?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)) ของโครงการ หากคุณกำลังจะเผยแพร่โครงการของคุณใน GitHub คุณอาจต้องการเชื่อมต่อโครงการของคุณกับบริการสาธารณะ:

  • อาคาร: เพื่อแสดงโครงการที่ล้มเหลวหรือผ่านไป
  • การทดสอบ: เพื่อแสดงความครอบคลุมของการทดสอบและสถานะการดำเนินการของการทดสอบ
  • การเผยแพร่: เพื่อแสดงแพ็คเกจ NuGet เวอร์ชันล่าสุด

คุณสามารถดูรายชื่อป้ายและบริการที่เกี่ยวข้องทั้งหมดได้ที่ shields.io . คุณอาจพบป้ายต่างๆที่ดีสำหรับโครงการโอเพ่นซอร์ส

ผลตอบแทนจากการลงทุน การวัดผลการปฏิบัติงาน:

เมื่อคุณลงทะเบียนสำหรับโปรเจ็กต์ของคุณด้วยบริการเฉพาะแล้วพวกเขาจะให้ลิงค์ไปยังรูปภาพและลิงค์ไปยังไวยากรณ์ markdown ที่สมบูรณ์ซึ่งคุณสามารถเพิ่มลงในไฟล์ของคุณ .csproj . อย่างไรก็ตามนี่เป็นสาเหตุหนึ่งที่คุณควรเลือก markdown ไปที่ไฟล์มากกว่า Readme .

ตัวอย่างป้ายลดราคาจาก Project Roslyn:

MiCompañía.MiProducto

การตรวจสอบความถูกต้องของโซลูชันโครงสร้างโดยอัตโนมัติ

แม้ว่าคุณจะได้กำหนดการตั้งค่าทั้งหมดที่อธิบายไว้ในบทความนี้ในบางจุดนักพัฒนาของคุณอาจเปลี่ยนแปลงและบันทึกการเปลี่ยนแปลงในแหล่งการควบคุม บางครั้งสิ่งนี้เกิดขึ้นโดยไม่ได้ตั้งใจและโดยปกติจะไม่เห็นการเปลี่ยนแปลงเหล่านี้เมื่อตรวจสอบโค้ด นอกเหนือจากอุบัติเหตุเหล่านี้เราควรระวังข้อผิดพลาดต่อไปนี้:

  • การอ้างอิงไม่ถูกต้อง : เมื่ออ้างถึงแอสเซมเบลอร์ภายในที่ผู้อื่นไม่มีหรือเมื่อมีคนลบไฟล์ออกจากดิสก์ในขณะที่ลิงก์ไปยังไฟล์นั้นยังคงอยู่ในไฟล์ Install-Package SolutionInspector . สิ่งนี้จะทำให้การสร้างไม่ทำงานอย่างแน่นอน แต่อาจเกิดขึ้นช้ามากเมื่อมีการเปลี่ยนแปลงและมีคนอื่นใช้งานแล้ว สิ่งนี้จำเป็นอย่างยิ่งในไฟล์เว็บแบบคงที่ซึ่งคุณไม่สามารถตรวจสอบได้ในระหว่างการสร้าง
  • ระบบการตั้งชื่อที่สอดคล้องกัน : เครื่องมือเช่น StyleCop สามารถควบคุมซอร์สโค้ด C # ได้ แต่ไม่มีเครื่องมือใดสามารถบังคับกฎสำหรับไฟล์ได้ โครงการ หรือคุณสมบัติ การชุมนุม . ตัวอย่างที่ดีคือ: เราต้องการตั้งชื่อโปรเจ็กต์ที่ตรงกับชื่อเอาต์พุตที่ประกอบและเราต้องการชื่อโปรเจ็กต์ที่มีคำนำหน้าเหมือนกันเช่น: ](http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>) 12.00 12.00 true MyCompany.MyProduct. true AVerySpecialProject1; AVerySpecialProject2; true true true true StyleCop.MSBuild.Targets true false

ในบางครั้งฉันพบว่าการดูข้อผิดพลาดเหล่านี้ใน Code Reviews มีแนวโน้มที่จะเกิดข้อผิดพลาดมากกว่าและควรเป็นแบบอัตโนมัติ นั่นคือเหตุผลที่เขาเขียนเครื่องมือง่ายๆที่ทำสิ่งนี้และบทวิจารณ์อื่น ๆ เพื่อตรวจสอบว่าโซลูชันนั้นสอดคล้องกัน พบกัน SolutionInspector . เป็นโอเพ่นซอร์สและเผยแพร่ภายใต้ใบอนุญาตจาก MIT คุณสามารถสร้างได้จากซอร์สโค้ดหรือติดตั้งโดย NuGet:

MinSolutionFormatVersion

เครื่องมือนี้จะแสดงโครงสร้างโซลูชันทั้งหมดและใช้กฎการตรวจสอบความถูกต้องหลายข้อ กฎถูกกำหนดคอนฟิกในไฟล์ XML ตลอดไฟล์โซลูชันอื่น ๆ ในการควบคุมการตั้งค่าในฐานของแต่ละโปรเจ็กต์คุณเพียงแค่ต้องเพิ่มไฟล์เดียวกัน แต่มีการกำหนดค่าที่แตกต่างกันไปยังโฟลเดอร์โปรเจ็กต์ที่เกี่ยวข้อง

ไม่จำเป็นต้องใช้ไฟล์คอนฟิกูเรชันเริ่มต้น ในกรณีนี้เครื่องมือจะใช้กฎที่มีอยู่ทั้งหมดจากนั้นจะสร้างปัญหาที่มีอยู่ทั้งหมดไปยังคอนโซล

คุณสามารถดูตัวอย่างไฟล์กำหนดค่าได้ที่นี่:

MaxSolutionFormatVersion

แม้ว่าการกำหนดค่าจะเฉพาะเจาะจงในลักษณะเดียวกับที่ฉันจะอธิบายด้านล่าง:

  • DetectMissingFiles / AllowBuildEvents สิ่งนี้จะทำให้นักพัฒนาเปลี่ยนเวอร์ชันของ Visual Studio
  • Properties มีประโยชน์มากสำหรับเนื้อหาเว็บแบบคงที่หรือไฟล์อื่น ๆ ที่ไม่ใช่รหัสที่เพิ่มเข้าไปในโซลูชันหรือโครงการ
  • |_+_|
    คุณสามารถป้องกันไม่ให้เพิ่มเหตุการณ์บิลด์ที่กำหนดเองซึ่งอาจทำสิ่งที่ไม่จำเป็นได้
  • |_+_|
    เป็นองค์ประกอบที่ยืดหยุ่นที่สุด: คุณสามารถตรวจสอบคุณสมบัติใด ๆ กับค่าที่ต้องการไม่ว่าจะเป็นค่าที่รู้จักหรือคุณสมบัติที่กำหนดเอง

ข้อสรุป

เราได้ตรวจสอบแนวทางปฏิบัติมาตรฐานไฟล์การกำหนดค่าและการตั้งค่าโครงการต่างๆที่คุณสามารถนำไปใช้ได้เมื่อเริ่มโครงการใหม่ การทำเช่นนี้เมื่อคุณเพิ่งเริ่มต้นสามารถลดหนี้ทางเทคนิคได้และจะทำให้โครงการซอร์สโค้ดของคุณดูดีและเป็นมืออาชีพ สำหรับโครงการโอเพ่นซอร์สสิ่งนี้มีความสำคัญอย่างยิ่งเนื่องจากผู้ร่วมให้ข้อมูลทุกคนสามารถเรียนรู้ประสบการณ์ของคุณในการตรวจสอบการกำหนดค่าโซลูชันและไฟล์โครงการ

ที่เกี่ยวข้อง: .NET Core - ไปป่าและโอเพ่นซอร์ส Microsoft ใช้เวลาอะไรนานขนาดนี้!

ซอฟต์แวร์จะครอบงำอุตสาหกรรมยานยนต์ได้อย่างไร

นวัตกรรม

ซอฟต์แวร์จะครอบงำอุตสาหกรรมยานยนต์ได้อย่างไร
10 ข้อผิดพลาดที่พบบ่อยที่สุดที่นักพัฒนา WordPress ทำ

10 ข้อผิดพลาดที่พบบ่อยที่สุดที่นักพัฒนา WordPress ทำ

ส่วนหลัง

โพสต์ยอดนิยม
Nvidia Shield - สิ่งที่แตกต่างบนคอนโซลเกม Android
Nvidia Shield - สิ่งที่แตกต่างบนคอนโซลเกม Android
แผ่นโกงการจัดการโครงการ
แผ่นโกงการจัดการโครงการ
เริ่มต้นใช้งาน Microservices: บทช่วยสอน Dropwizard
เริ่มต้นใช้งาน Microservices: บทช่วยสอน Dropwizard
การแยกการเรียกเก็บเงิน: เรื่องของการเพิ่มประสิทธิภาพ API ภายใน GraphQL
การแยกการเรียกเก็บเงิน: เรื่องของการเพิ่มประสิทธิภาพ API ภายใน GraphQL
กรณีศึกษา: การใช้ ApeeScape เพื่อม้วนปลาใหญ่
กรณีศึกษา: การใช้ ApeeScape เพื่อม้วนปลาใหญ่
 
การประมาณต้นทุนซอฟต์แวร์ในการจัดการโครงการแบบ Agile
การประมาณต้นทุนซอฟต์แวร์ในการจัดการโครงการแบบ Agile
แชทล่ม - เมื่อ Chatbot ล้มเหลว
แชทล่ม - เมื่อ Chatbot ล้มเหลว
ที่ปรึกษาการระดมทุนกับนายหน้า - ตัวแทนจำหน่าย
ที่ปรึกษาการระดมทุนกับนายหน้า - ตัวแทนจำหน่าย
ทำให้ Web Front-end เชื่อถือได้ด้วย Elm
ทำให้ Web Front-end เชื่อถือได้ด้วย Elm
คู่มือสำหรับนักลงทุนเกี่ยวกับน้ำมันปาล์ม
คู่มือสำหรับนักลงทุนเกี่ยวกับน้ำมันปาล์ม
โพสต์ยอดนิยม
  • __________ คือการจัดเรียงและลักษณะของตัวอักษรในการออกแบบกราฟิก
  • วิธีเรียนเพื่อขอใบรับรอง aws
  • ไม่ใช้ pmo
  • วิธีมอนติคาร์โลในด้านการเงิน
  • c คอร์ปอเรชั่น vs s คอร์ปอเรชั่น คำนิยาม
หมวดหมู่
  • การจัดการวิศวกรรม
  • Kpi และ Analytics
  • เทคโนโลยี
  • ว่องไว
  • © 2022 | สงวนลิขสิทธิ์

    portaldacalheta.pt