Karena baru mengenal VS, bagaimana saya bisa memikirkan kedua konsep ini, apa bedanya?
103
Karena baru mengenal VS, bagaimana saya bisa memikirkan kedua konsep ini, apa bedanya?
Solusi adalah wadah untuk proyek, dan melacak ketergantungan antar proyek.
Saya menemukan beberapa informasi yang hilang di jawaban lain (setidaknya untuk orang yang berasal dari IDE lain seperti, katakanlah, Eclipse). Mengatakan bahwa solusi adalah wadah untuk proyek hanyalah sebagian dari hal itu. Fitur konseptual dari proyek VS (apa yang menentukan 'perinciannya') adalah bahwa satu proyek menghasilkan satu keluaran : biasanya dapat dieksekusi atau pustaka (dll). Jadi, jika Anda akan membuat kode tiga executable yang menggunakan kode terkait, Anda akan membuat satu solusi dan setidaknya tiga proyek - mungkin lebih.
Hanya untuk menghasilkan metafora ..
Solusinya seperti rumah, proyek seperti kamar. Setiap kamar menyediakan sebagian fungsionalitas sedangkan rumah, wadah kamar, menyediakan sarana untuk menghubungkan kamar bersama dan mengaturnya dengan tepat.
Agak klise tapi saya membuatnya dengan cepat, jadi bersabarlah :)
sumber
Itu tidak membantu bahwa Visual Studio tampaknya membuat segalanya lebih membingungkan. "Proyek Baru" sebenarnya membuat SOLUSI baru yang berisi proyek. "Open Project" sebenarnya membuka solusi yang berisi satu (atau banyak) proyek. (Menu file mengatakan "Buka Proyek / Solusi" tetapi ini benar-benar membuka solusi. Tidak ada "Tutup Proyek" hanya "Tutup Solusi" yang akurat.
Jadi, di VS Anda selalu bekerja dalam sebuah solusi. Banyak solusi yang hanya berisi satu proyek dan pengembang yang lebih baru cenderung menganggapnya sebagai hal yang sama. Namun Anda dapat menambahkan proyek lain menjadi solusi.
sumber
Jika ada yang memutuskan untuk menggulir sejauh ini ... Saya pikir dokumen MS melakukan pekerjaan yang cukup baik dalam menjelaskan perbedaannya. Saya telah menyalin menempel (dan menyusun ulang) bit yang relevan di sini:
Sebuah solusi memiliki
.suo
file terkait yang menyimpan pengaturan, preferensi dan informasi konfigurasi untuk setiap pengguna yang telah mengerjakan proyek tersebut.sumber
Sebuah Solusi dapat memiliki banyak Proyek.
Solusi juga dapat menangani pengelolaan ketergantungan antara Proyek yang berbeda ... memastikan bahwa setiap Proyek dibangun dalam urutan yang sesuai agar Solusi akhir berfungsi.
sumber
Sebuah proyek berisi file yang dapat dieksekusi dan perpustakaan yang membentuk aplikasi atau komponen aplikasi.
Solusi adalah tempat penampung untuk proyek terkait secara logis yang membuat aplikasi. Misalnya, Anda dapat memiliki proyek terpisah untuk GUI aplikasi Anda, lapisan akses basis data, dan sebagainya. Proyek akan menjadi divisi khusus untuk fungsionalitas program Anda, dan solusinya akan menjadi payung yang menyatukan semuanya dalam satu aplikasi.
sumber
Solusi adalah wadah untuk proyek - Anda juga dapat menggunakannya untuk mengatur item yang digunakan di berbagai proyek terkait (dll bersama dan semacamnya).
sumber
Sebuah solusi adalah file teks yang dapat dibaca yang ekstensi
.sln
dan memiliki konten terstruktur yang menggambarkan proyek yang dikandungnya. Sebuah proyek adalah dibaca XML file teks berformat yang ekstensi.vcxproj
dan memiliki konten terstruktur sesuai dengan skema XML, serta yang tujuan utamanya adalah untuk mengandung daftar dari sumber kode nama file dan dependensi mereka atau referensi ke kode sumber proyek lain juga.sumber
Untuk lebih jelasnya lihat - https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions
Jika Anda berasal dari latar belakang Eclipse, Anda mungkin akan pergi ke jalur pembuatan proyek dan menambahkan ketergantungan pada proyek lain atau menambahkan jar eksternal. Di VS Anda dapat melakukannya dalam satu wadah yang disebut solusi di mana semua proyek terkait dikelompokkan bersama.
Misalnya. Katakanlah Anda membangun dan aplikasi android dan iOS di xamrin, akan ada beberapa kode dan sumber daya umum yang dapat masuk dalam proyek terpisah dan kemudian proyek Android dan iOS Anda dapat bergantung pada proyek kode umum ini. Anda juga dapat memiliki proyek untuk menguji proyek ini, dll.
sumber