csproj pustaka vs aplikasi, pembuatan versi semantik
Pahami csproj pustaka dan aplikasi, cara NuGet menggunakan pustaka, serta cara pembuatan versi semantik (MAJOR.MINOR.PATCH) memandu rilis.
csproj pustaka vs aplikasi, pembuatan versi semantik adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 3 pelajaran total.
Konsep dan tujuan
Tujuan: Mengetahui kapan harus membuat pustaka dibandingkan aplikasi, serta bagaimana versi menunjukkan perubahan.
- .csproj pustaka: dibuat untuk dirujuk dan dikemas untuk NuGet
- .csproj aplikasi: menghasilkan berkas yang dapat dijalankan untuk pengguna akhir
- Pembuatan versi semantik: MAJOR.MINOR.PATCH
Pustaka dibandingkan aplikasi: gambaran singkat
- Pustaka: menargetkan kerangka kerja untuk memaksimalkan penggunaan ulang; memiliki metadata (PackageId, Version, Authors).
- Aplikasi: memiliki titik masuk; menerbitkan keluaran yang dapat dijalankan.
- NuGet mengemas pustaka ke dalam berkas .nupkg; aplikasi biasanya diterbitkan, bukan dikemas.
Demo versi rakitan
Sebuah pustaka menyediakan versi; konsumen dapat melihatnya saat merujuk paket tersebut.
using System;
using System.Reflection;
// Simple demo: read the assembly version at runtime.
// In a packed library, this reflects the version consumers see.
public class Program
{
public static void Main(string[] args)
{
Version v = Assembly.GetExecutingAssembly().GetName().Version;
Console.WriteLine("Assembly version: " + (v == null ? "unknown" : v.ToString()));
}
}
Perbandingan SemVer (dasar)
Bandingkan versi untuk menentukan pembaruan: MAJOR terlebih dahulu, kemudian MINOR, lalu PATCH.
using System;
// Minimal SemVer (MAJOR.MINOR.PATCH) parsing and comparison.
// Ignores prerelease/build metadata for simplicity (good enough for beginners).
public class SemVer : IComparable<SemVer>
{
public int Major;
public int Minor;
public int Patch;
public static bool TryParse(string s, out SemVer v)
{
v = null;
if (string.IsNullOrEmpty(s)) return false;
string[] parts = s.Split('.');
if (parts.Length < 3) return false;
int a, b, c;
if (!int.TryParse(parts[0], out a)) return false;
if (!int.TryParse(parts[1], out b)) return false;
if (!int.TryParse(parts[2], out c)) return false;
v = new SemVer { Major = a, Minor = b, Patch = c };
return true;
}
public int CompareTo(SemVer other)
{
if (other == null) return 1;
if (Major != other.Major) return Major.CompareTo(other.Major);
if (Minor != other.Minor) return Minor.CompareTo(other.Minor);
return Patch.CompareTo(other.Patch);
}
public override string ToString()
{
return Major + "." + Minor + "." + Patch;
}
}
public class Program
{
public static void Main(string[] args)
{
SemVer a, b;
if (SemVer.TryParse("1.4.2", out a) && SemVer.TryParse("1.5.0", out b))
{
int cmp = a.CompareTo(b);
Console.WriteLine(a + " vs " + b + " -> " + (cmp < 0 ? "older" : (cmp > 0 ? "newer" : "equal")));
}
}
}
Aturan kenaikan versi
Aturan kenaikan:
- MAJOR: perubahan API yang tidak kompatibel
- MINOR: fitur baru yang kompatibel dengan versi sebelumnya
- PATCH: perbaikan bug atau pemeliharaan, tanpa perubahan API
Kiat: komunikasikan perubahan dalam catatan perubahan singkat.
Daftar periksa sebelum pengemasan
- Target pustaka telah ditetapkan (misalnya, netstandard)
- PackageId, Version, Authors telah diisi
- Lisensi dan README telah disertakan
- API publik telah ditinjau untuk menemukan perubahan yang merusak kompatibilitas
Aturan SemVer
Ringkasan
Ringkasan: Bangun pustaka untuk penggunaan ulang dan pengemasan NuGet; aplikasi adalah berkas yang dapat dijalankan. Gunakan MAJOR.MINOR.PATCH untuk mengomunikasikan perubahan dengan aman.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “csproj pustaka vs aplikasi, pembuatan versi semantik” gratis?
Ya — teks lengkap “csproj pustaka vs aplikasi, pembuatan versi semantik” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 3 pelajaran total.
Apa yang akan aku pelajari di “csproj pustaka vs aplikasi, pembuatan versi semantik”?
Pahami csproj pustaka dan aplikasi, cara NuGet menggunakan pustaka, serta cara pembuatan versi semantik (MAJOR.MINOR.PATCH) memandu rilis. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 3.
Berapa lama pelajaran “csproj pustaka vs aplikasi, pembuatan versi semantik” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?
Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- csproj pustaka vs aplikasi, pembuatan versi semantik
- Pengemasan & publikasi ke NuGet
- Penargetan multipel