dotweave: เครื่องทอที่มีน้ำหนักเบาสำหรับการสร้างในเวลาในการทำงานสำหรับโครงการ .NET
dotweave, จาก tinyrack, ทำให้การฉีดโค้ดในระดับการประกอบอัตโนมัติเพื่อเปลี่ยนแปลงผลลัพธ์ที่คอมไพล์ในระหว่างการสร้าง เครื่องมือนี้ทำงานเป็นส่วนหนึ่งของการคอมไพล์โปรเจกต์ของคุณและใช้ตรรกะการทอที่กำหนดโดยนักพัฒนาไปยังไบนารีโดยไม่ต้องแก้ไขไฟล์ต้นฉบับ มันเปิดเผย API สำหรับผู้ทอที่กำหนดเองและใช้การกำหนดเป้าหมายตามแอตทริบิวต์เพื่อลดขอบเขต ออกแบบมาสำหรับวิศวกรและสถาปนิก .NET, dotweave เหมาะสำหรับทีมที่ต้องการการจัดการการประกอบที่แม่นยำโดยมีภาระของกรอบงานภายนอกน้อยที่สุด.
Dotweave เปลี่ยนแปลงอะไรภายในสายการสร้าง?
Dotweave ทำงานกับการประกอบที่คอมไพล์แล้ว โดยทำการแก้ไขระดับไบต์โค้ดแทนการแปลงซอร์ส มันให้ API ที่ปรับเปลี่ยน Intermediate Language (IL) ใน DLLs และ EXEs หลังจากการคอมไพล์ ทำให้สามารถฉีดโค้ดที่ข้ามฟันได้ เช่น การบันทึกหรือการตรวจสอบ นักพัฒนาสร้าง weavers ที่กำหนดเองซึ่งตรงกับคลาส วิธีการ หรือคุณสมบัติ และเครื่องมือจะใช้กฎเหล่านั้นกับผลลัพธ์การสร้างโดยอัตโนมัติ ดังนั้นการประกอบสุดท้ายจึงมีตรรกะที่ถูกฉีดเข้าไปโดยไม่ต้องแก้ไขซอร์ส
Dotweave มีผลต่อประสิทธิภาพการสร้างและการทำงานอย่างไร?
เครื่องมือถูกออกแบบมาเพื่อเพิ่มภาระการสร้างเพียงเล็กน้อย ซึ่งถูกอธิบายว่าเป็นทางเลือกที่เบากว่าสำหรับกรอบการทอที่ใหญ่กว่า มันรวมเข้ากับสภาพแวดล้อมการพัฒนามาตรฐานของ Windows และสายการสร้าง ดังนั้นขั้นตอนการทอจึงทำงานเป็นส่วนหนึ่งของการคอมไพล์แทนที่จะเป็นการผ่านด้วยตนเองที่แยกต่างหาก การออกแบบนั้นทำให้กระบวนการทอใกล้เคียงกับ CI ที่มีอยู่และการสร้างในท้องถิ่น จำกัดการหยุดชะงักของการทำงานในขณะที่ทำให้วัตถุสร้างมีความสอดคล้องกับความคาดหวังของนักพัฒนา
การใช้ Dotweave ปลอดภัยสำหรับการประกอบในผลิตภัณฑ์หรือไม่?
Dotweave แก้ไขไบนารีที่คอมไพล์แล้ว ดังนั้นการควบคุมขอบเขตจึงสำคัญ การกำหนดเป้าหมายตามคุณสมบัติและ weavers ที่กำหนดเองช่วยให้คุณจำกัดประเภทที่ได้รับการแก้ไข ลดการเปลี่ยนแปลงโดยไม่ได้ตั้งใจ เนื่องจากการเปลี่ยนแปลงเกิดขึ้นที่ระดับ IL ทีมควรทดสอบผลลัพธ์ที่ทอในการสร้างที่ควบคุมและรวมการตรวจสอบระดับการประกอบในกระบวนการตรวจสอบของพวกเขา ความจริงที่ว่ามันทำงานระหว่างการคอมไพล์หมายความว่าการเปลี่ยนแปลงที่ทอสามารถทำซ้ำได้จากการกำหนดค่าการสร้างแทนที่จะถูกนำไปใช้ในระหว่างการทำงาน
ฉันต้องการความรู้เกี่ยวกับ IL หรือทักษะเฉพาะเพื่อใช้ Dotweave หรือไม่?
สถานการณ์พื้นฐานอาจจะง่ายกว่า แต่ weavers ที่กำหนดเองต้องการความเข้าใจในระดับต่ำ เครื่องมือทำให้รูปแบบทั่วไปบางอย่างเป็นนามธรรม แต่การสร้างการแปลง IL ที่มีเป้าหมายและปลอดภัยต้องการความเข้าใจในการทำงานเกี่ยวกับ .NET IL และโครงสร้างการประกอบ ผู้ชมของมันคือวิศวกรและสถาปนิก .NET ที่สะดวกสบายกับเครื่องมือการสร้างและแนวคิดเกี่ยวกับไบต์โค้ด ผู้ใช้ที่ไม่ค่อยมีเทคนิคจะต้องพึ่งพา weavers ที่เขียนไว้ล่วงหน้าหรือโมดูลจากชุมชนเพื่อหลีกเลี่ยงข้อผิดพลาด
ตัวเลือกที่ใช้งานได้จริงสำหรับนักพัฒนาที่ตรวจสอบและขยายเครื่องมือของตน
Dotweave เป็นตัวเลือกที่มีเหตุผลสำหรับนักพัฒนา .NET ที่ต้องการการทอแปรงในเวลาสร้างอัตโนมัติ ในขณะที่ยังคงให้กระบวนการทำงานโปร่งใส เนื่องจากโครงการนี้โฮสต์อยู่บน GitHub ทีมสามารถตรวจสอบโมดูล weaver ก่อนใช้งานและปรับให้เข้ากับมาตรฐานภายใน คาดว่าจะมีช่วงการเรียนรู้สำหรับงาน IL ที่กำหนดเอง แต่โครงการนี้เหมาะสำหรับทีมที่ชอบการทอแปรงที่เบาและตรวจสอบได้มากกว่ากรอบงานที่หนักกว่า แนะนำให้ใช้.