ยังใหม่กับ VS ฉันจะคิดว่าสองแนวคิดนี้แตกต่างกันอย่างไร?
ยังใหม่กับ VS ฉันจะคิดว่าสองแนวคิดนี้แตกต่างกันอย่างไร?
คำตอบ:
โซลูชันคือคอนเทนเนอร์สำหรับโปรเจ็กต์และติดตามการอ้างอิงระหว่างโปรเจ็กต์
ฉันพบข้อมูลบางอย่างที่ขาดหายไปในคำตอบอื่น ๆ (อย่างน้อยสำหรับผู้ที่มาจาก IDE อื่นเช่นพูดว่า Eclipse) กล่าวได้ว่าโซลูชันคือคอนเทนเนอร์สำหรับโครงการเป็นเพียงส่วนหนึ่งของสิ่งนั้น คุณลักษณะทางความคิดของโครงการ VS (สิ่งที่กำหนด 'ความละเอียด') คือโครงการหนึ่งสร้างผลลัพธ์หนึ่งรายการ : โดยทั่วไปจะเป็นปฏิบัติการหรือไลบรารี (dll) ดังนั้นหากคุณจะเขียนโค้ดสามไฟล์ปฏิบัติการที่ใช้โค้ดที่เกี่ยวข้องกันคุณจะต้องสร้างโซลูชันเดียวและอย่างน้อยสามโปรเจ็กต์ - อาจมากกว่านั้น
แค่มาอุปมา ..
ทางออกก็เหมือนบ้านโครงการเหมือนห้อง แต่ละห้องมีฟังก์ชันการใช้งานส่วนหนึ่งในขณะที่บ้านซึ่งเป็นตู้คอนเทนเนอร์มีวิธีการเชื่อมโยงห้องต่างๆเข้าด้วยกันและจัดระเบียบให้เหมาะสม
ค่อนข้างซ้ำซาก แต่ฉันทำมันขึ้นมาได้ทันทีอดทนกับฉัน :)
ไม่ช่วยให้ Visual Studio ดูเหมือนจะทำให้สิ่งต่างๆสับสนมากขึ้น "โครงการใหม่" สร้างโซลูชันใหม่ที่มีโครงการ "Open Project" จะเปิดโซลูชันที่มีโครงการหนึ่ง (หรือหลายโครงการ) (เมนูไฟล์ขึ้นว่า "Open Project / Solution" แต่เป็นการเปิด Solutions จริงๆไม่มี "Close Project" มี แต่ "Close Solution" เท่านั้นที่ถูกต้อง
ดังนั้นใน VS คุณมักจะใช้วิธีแก้ปัญหา โซลูชันจำนวนมากมีเพียงโครงการเดียวและนักพัฒนารุ่นใหม่มักคิดว่าเป็นสิ่งเดียวกัน อย่างไรก็ตามคุณสามารถเพิ่มโครงการอื่น ๆ ลงในโซลูชันได้
ในกรณีที่มีใครตัดสินใจเลื่อนลงมาไกลกว่านี้ ... ฉันคิดว่าเอกสาร MSทำได้ดีในการอธิบายความแตกต่าง ฉันคัดลอกวาง (และเปลี่ยนวลี) บิตที่เกี่ยวข้องที่นี่:
เมื่อคุณสร้างแอปพลิเคชันเว็บไซต์เว็บแอปสคริปต์ปลั๊กอิน ฯลฯ ใน Visual Studio คุณจะเริ่มต้นด้วยโครงการ ในแง่ตรรกะโปรเจ็กต์จะมีไฟล์ซอร์สโค้ดไอคอนรูปภาพไฟล์ข้อมูลและสิ่งอื่น ๆ ทั้งหมดที่จะถูกคอมไพล์ลงในโปรแกรมปฏิบัติการหรือเว็บไซต์หรืออื่น ๆ ที่จำเป็นเพื่อดำเนินการคอมไพล์ โปรเจ็กต์ยังประกอบด้วยการตั้งค่าคอมไพเลอร์ทั้งหมดและไฟล์คอนฟิกูเรชันอื่น ๆ ที่อาจจำเป็นสำหรับบริการหรือส่วนประกอบต่างๆที่โปรแกรมของคุณจะสื่อสารด้วย
คุณไม่จำเป็นต้องใช้โซลูชันหรือโครงการหากคุณไม่ต้องการ คุณสามารถเปิดไฟล์ใน Visual Studio และเริ่มแก้ไขโค้ดของคุณได้
ในความหมายที่แท้จริงของโครงการคือไฟล์ XML (
.vbproj
,.csproj
,.vcxproj
) ที่กำหนดลำดับชั้นโฟลเดอร์เสมือนพร้อมกับเส้นทางไปยังรายการทั้งหมดมัน "มี" และการตั้งค่าการสร้างใน Visual Studio Solution Explorer จะใช้ไฟล์โครงการเพื่อแสดงเนื้อหาโครงการและการตั้งค่า เมื่อคุณคอมไพล์โปรเจ็กต์ของคุณเอ็นจิ้น MSBuild จะใช้ไฟล์โปรเจ็กต์เพื่อสร้างไฟล์ปฏิบัติการ คุณยังสามารถปรับแต่งโปรเจ็กต์ให้เป็นผลิตภัณฑ์ประเภทอื่น ๆ ได้
โปรเจ็กต์มีอยู่ในแง่ตรรกะและในระบบไฟล์ภายในโซลูชันซึ่งอาจมีโปรเจ็กต์อย่างน้อยหนึ่งโปรเจ็กต์พร้อมกับข้อมูลบิลด์การตั้งค่าหน้าต่าง Visual Studio และไฟล์เบ็ดเตล็ดใด ๆ ที่ไม่เกี่ยวข้องกับโปรเจ็กต์ใด ๆ ตามตัวอักษรโซลูชันคือไฟล์ข้อความที่มีรูปแบบเฉพาะของตัวเอง โดยทั่วไปไม่ได้ตั้งใจให้แก้ไขด้วยมือ
โซลูชันมี.suo
ไฟล์ที่เกี่ยวข้องซึ่งเก็บการตั้งค่าการกำหนดลักษณะและข้อมูลการกำหนดค่าสำหรับผู้ใช้แต่ละคนที่ทำงานในโครงการ
โซลูชันสามารถมีได้หลายโครงการ
โซลูชันยังสามารถจัดการการอ้างอิงระหว่างโปรเจ็กต์ต่างๆ ... ตรวจสอบให้แน่ใจว่าแต่ละโปรเจ็กต์ได้รับการสร้างตามลำดับที่เหมาะสมเพื่อให้โซลูชันสุดท้ายทำงานได้
โครงการมีไฟล์ปฏิบัติการและไฟล์ไลบรารีที่ประกอบเป็นแอปพลิเคชันหรือส่วนประกอบของแอปพลิเคชัน
โซลูชันคือตัวยึดสำหรับโปรเจ็กต์ที่เกี่ยวข้องกับตรรกะที่ประกอบขึ้นเป็นแอปพลิเคชัน ตัวอย่างเช่นคุณสามารถมีโปรเจ็กต์แยกต่างหากสำหรับ GUI ของแอปพลิเคชันเลเยอร์การเข้าถึงฐานข้อมูลและอื่น ๆ โครงการจะเป็นหน่วยงานเฉพาะสำหรับฟังก์ชันการทำงานของโปรแกรมของคุณและโซลูชันจะเป็นส่วนที่รวมทั้งหมดไว้ในแอปพลิเคชันเดียว
โซลูชันคือคอนเทนเนอร์สำหรับโปรเจ็กต์ - คุณยังสามารถใช้เพื่อจัดระเบียบไอเท็มที่ใช้กับโปรเจ็กต์อื่น ๆ ที่เกี่ยวข้อง (แชร์ dll และอื่น ๆ )
วิธีการแก้ปัญหาเป็นไฟล์ข้อความที่อ่านได้มีส่วนขยายเป็น.sln
และมีเนื้อหาที่มีโครงสร้างที่อธิบายถึงโครงการว่ามันมี โครงการเป็นอ่านXMLไฟล์รูปแบบข้อความที่มีส่วนขยายเป็น.vcxproj
และมีเนื้อหาโครงสร้างตามเค้าร่าง XML ของตนและมีจุดประสงค์หลักคือการมีรายชื่อของแหล่งที่มาของรหัสชื่อไฟล์และการอ้างอิงหรือการอ้างอิงของพวกเขาให้กับโครงการอื่น ๆ ของรหัสแหล่งที่มาเช่นกัน
โซลูชันคือคอนเทนเนอร์ที่ Visual Studio ใช้เพื่อจัดระเบียบโครงการที่เกี่ยวข้องอย่างน้อยหนึ่งโครงการ เมื่อคุณเปิดโซลูชันใน Visual Studio ระบบจะโหลดโครงการทั้งหมดที่มีอยู่โดยอัตโนมัติ
เมื่อคุณสร้างโปรเจ็กต์ใหม่ใน Visual Studio โปรเจ็กต์นั้นจะสร้างโซลูชันเพื่อจัดวางโปรเจ็กต์โดยอัตโนมัติหากยังไม่มีโซลูชันที่เปิดอยู่
คุณสามารถตั้งค่าการอ้างอิงของโปรเจ็กต์กับโปรเจ็กต์อื่น ๆ ในโซลูชัน โครงการที่ขึ้นอยู่กับการสร้างหลังจากโครงการนั้นขึ้นอยู่กับการสร้าง
สำหรับรายละเอียดเพิ่มเติมโปรดดู - https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions
หากคุณมาจากพื้นหลัง Eclipse คุณอาจจะไปสร้างพา ธ ของโปรเจ็กต์และเพิ่มการพึ่งพาโปรเจ็กต์อื่นหรือเพิ่ม jar ภายนอก ใน VS คุณสามารถทำได้ในคอนเทนเนอร์เดียวที่เรียกว่าโซลูชันซึ่งรวมโปรเจ็กต์ที่เกี่ยวข้องทั้งหมดเข้าด้วยกัน
เช่น. สมมติว่าคุณกำลังสร้างและแอพ android และ iOS ใน xamrin จะมีโค้ดและแหล่งข้อมูลทั่วไปที่สามารถไปในโปรเจ็กต์แยกต่างหากจากนั้นโปรเจ็กต์ Android และ iOS ของคุณจะขึ้นอยู่กับโปรเจ็กต์โค้ดทั่วไปนี้ นอกจากนี้คุณสามารถมีโครงการเพื่อทดสอบโครงการเหล่านี้เป็นต้น