ููŠ ุงู„ู€ .NET FrameworkุŒ ููŠ ุญุงุฌุชูŠู† ู…ู‡ู…ูŠู† ุฌุฏู‹ุง ู„ุถู…ุงู† ุฅู† ู„ุบุงุช ุงู„ุจุฑู…ุฌุฉ ุงู„ู…ุฎุชู„ูุฉ ุชุดุชุบู„ ู…ุน ุจุนุถ ุจุณู„ุงุณุฉ: CLS ูˆ CTS. ู‡ู†ุง ู‡ู†ุชูƒู„ู… ุนู† ูƒู„ ูˆุงุญุฏ ููŠู‡ู… ูˆูุงุฆุฏุชู‡ู….

Common Language Specification (CLS)

  • CLS is a part of CLR in the .NET Framework.
  • ุจุชุชูƒู„ู… ุนู„ู‰ ุงู„ specification ุจุชุงุน ุงู„ common language (IL)
  • CLS stands for Common Language Specification and it is a subset of CTS. It defines a set of rules and restrictions that every language must follow which runs under the .NET framework.

ุฅูŠู‡ ู‡ูˆ CLSุŸ

  • ุงู„ู€CLS ูŠุนู†ูŠ Common Language SpecificationุŒ ูˆุฏู‡ ุฌุฒุก ู…ู† ุงู„ู€ .NET ุจูŠุญุฏุฏ ู…ุฌู…ูˆุนุฉ ู…ู† ุงู„ู‚ูˆุงุนุฏ ูˆุงู„ู‚ูŠูˆุฏ ุงู„ู„ูŠ ู„ุงุฒู… ูƒู„ ู„ุบุฉ ุจุฑู…ุฌุฉ ุจุชุดุชุบู„ ุนู„ู‰ ุงู„ู€ .NET ุชุชุจุนู‡ุง.
  • ุงู„ู‡ุฏู ู…ู† CLS ู‡ูˆ ุฅู†ู‡ ูŠุถู…ู† ุฅู† ุงู„ูƒูˆุฏ ุงู„ู…ูƒุชูˆุจ ุจุฃูŠ ู„ุบุฉ ู…ู† ุงู„ู„ุบุงุช ุงู„ู…ุฏุนูˆู…ุฉ ููŠ .NET ูŠู‚ุฏุฑ ูŠุชูุงุนู„ ูˆูŠุชูˆุงุตู„ ู…ุน ู„ุบุงุช ุชุงู†ูŠุฉ ุจุณู‡ูˆู„ุฉ.

ู„ูŠู‡ CLS ู…ู‡ู…ุŸ

  • ุจูŠุณู‡ู„ ุงู„ุชูˆุงูู‚ ุจูŠู† ู„ุบุงุช ุจุฑู…ุฌุฉ ู…ุฎุชู„ูุฉ ุฒูŠ C#, VB.NET, F#, ูˆุบูŠุฑู‡ุง.
  • ุจูŠุถู…ู† ุฅู† ุงู„ู…ูƒูˆู†ุงุช ุงู„ู„ูŠ ุจุชุชุนุงู…ู„ ู…ุน ุจุนุถู‡ุง ุชูƒูˆู† ู…ุชูˆุงูู‚ุฉ ู…ุน ุจุนุถุŒ ูˆุฏู‡ ุจูŠุณู‡ู„ ุฅุนุงุฏุฉ ุงุณุชุฎุฏุงู… ุงู„ูƒูˆุฏ ูˆุชุทูˆูŠุฑ ุงู„ุชุทุจูŠู‚ุงุช ุงู„ูƒุจูŠุฑุฉ.

ุฃู…ุซู„ุฉ ุนู„ู‰ ู‚ูˆุงุนุฏ CLS:

  • ุงุณุชุฎุฏุงู… ุฃู†ูˆุงุน ุจูŠุงู†ุงุช ู…ุฏุนูˆู…ุฉ ู…ู† CLS ุฒูŠ int, string, bool.
  • ู…ู†ุน ุงุณุชุฎุฏุงู… ุฃู†ูˆุงุน ุฎุงุตุฉ ุฃูˆ ุบูŠุฑ ู…ุฏุนูˆู…ุฉ ููŠ ุจุนุถ ุงู„ู„ุบุงุช.
  • ุชุญุฏูŠุฏ ุฃุณู…ุงุก ุงู„ู…ูˆุงุถูŠุน ุจุดูƒู„ ู…ูˆุญุฏ ุนุดุงู† ุชูƒูˆู† ู…ูู‡ูˆู…ุฉ ู„ูƒู„ ุงู„ู„ุบุงุช.

Common Type System (CTS)

ุฅูŠู‡ ู‡ูˆ CTSุŸ

  • ุงู„ู€CTS ูŠุนู†ูŠ Common Type SystemุŒ ูˆุฏู‡ ู‡ูˆ ู†ุธุงู… ุฃู†ูˆุงุน ุงู„ุจูŠุงู†ุงุช ุงู„ู…ูˆุญุฏ ููŠ .NET.
  • ุงู„ู€ CTS ุจูŠุญุฏุฏ ุฃู†ูˆุงุน ุงู„ุจูŠุงู†ุงุช ุงู„ู„ูŠ ุจูŠู‚ุฏุฑ ุงู„ู€ .NET Framework ูŠุชุนุงู…ู„ ู…ุนุงู‡ุงุŒ ูˆุฏู‡ ุจูŠุดู…ู„ ุฃู†ูˆุงุน ุงู„ุจูŠุงู†ุงุช ุงู„ุจุณูŠุทุฉ ูˆุงู„ู…ุนู‚ุฏุฉ.

ู„ูŠู‡ CTS ู…ู‡ู…ุŸ

  • ุจูŠุถู…ู† ุฅู† ุฃูŠ ู†ูˆุน ุจูŠุงู†ุงุช ุจูŠุชู… ุชุนุฑูŠูู‡ ููŠ ุฃูŠ ู„ุบุฉ ุจุฑู…ุฌุฉ ุจูŠุจู‚ู‰ ู…ุชูˆุงูู‚ ู…ุน ุจุงู‚ูŠ ุงู„ู„ุบุงุช.
  • ุจูŠุณู‡ู„ ุนู…ู„ูŠุฉ ุงู„ู€ Compilation ูˆุงู„ุชุญูˆูŠู„ ู„ู„ู€ IL (Intermediate Language) ุจุญูŠุซ ุชูƒูˆู† ู…ุชูˆุงูู‚ุฉ ูˆู…ุด ู…ุญุชุงุฌุฉ ุชุนุฏูŠู„ุงุช ุจูŠู† ุงู„ู„ุบุงุช ุงู„ู…ุฎุชู„ูุฉ.

ู…ูƒูˆู†ุงุช ุงู„ู€ CTS:

ุฃู†ูˆุงุน ุงู„ู€ Types ููŠ CTS:

  • ุงู„ู€ CTS ุจูŠู‚ุณู… ุงู„ู€ Types ู„ู†ูˆุนูŠู† ุฑุฆูŠุณูŠูŠู†:

    • ุงู„ู€Value Types: ุฒูŠ int, bool, double, struct, enum. ุจุชุฎุฒู† ุงู„ู‚ูŠู… ู…ุจุงุดุฑุฉ ููŠ ุงู„ู€ Stack ุฃูˆ ุฌูˆุง ุงู„ูƒุงุฆู†ุงุช ุนู„ู‰ ุงู„ู€ Heap.
    • ุงู„ู€Reference Types: ุฒูŠ class, string, array, delegate. ุจุชุฎุฒู† ู…ุฑุฌุน ู„ู„ุจูŠุงู†ุงุช ุนู„ู‰ ุงู„ู€ Heap.
  • ุงุชูƒู„ู…ุช ุนู†ู‡ู… ู‚ุจู„ ูƒุฏุง Cs Value and Reference Types

ุฅุฒุงูŠ CTS ูˆ CLS ุจูŠุชุนุงู…ู„ูˆุง ู…ุน ุจุนุถุŸ

  • ุงู„ู€ CLS ู‡ูˆ ู…ุฌู…ูˆุนุฉ ู…ู† ุงู„ู‚ูˆุงุนุฏ ุงู„ู„ูŠ ุจุชุนุชู…ุฏ ุนู„ู‰ ุงู„ู€ CTS ู„ุถู…ุงู† ุชูˆุงูู‚ ุงู„ู€ Types ุจูŠู† ุงู„ู„ุบุงุช ุงู„ู…ุฎุชู„ูุฉ.
  • ู…ุซู„ุงู‹ุŒ ุงู„ู€ CLS ุจูŠุญุฏุฏ ุฅู† ู„ุงุฒู… ุชุณุชุฎุฏู… ุฃู†ูˆุงุน ุจูŠุงู†ุงุช ู…ุฏุนูˆู…ุฉ ู…ู† ุงู„ู€ CTS ุนุดุงู† ุชูƒูˆู† ู…ุชูˆุงูู‚ุฉ ู…ุน ุจุงู‚ูŠ ุงู„ู„ุบุงุช ููŠ ุงู„ู€ .NET.

ู…ุซุงู„ ุชูˆุถูŠุญูŠ

ุฎู„ูŠู†ุง ู†ุงุฎุฏ ู…ุซุงู„ ุจุณูŠุท ุนุดุงู† ู†ูู‡ู… ุงู„ูุฑู‚ ุจูŠู† CLS ูˆ CTS:

  • ู„ูˆ ุนู†ุฏูƒ ูƒู„ุงุณ ู…ูƒุชูˆุจ ุจู€ C# ุจูŠุณุชุฎุฏู… ู†ูˆุน ุจูŠุงู†ุงุช int:
public class MyClass
{
  public int MyProperty { get; set; }
}
  • ุงู„ู†ูˆุน int ุฏู‡ ู…ุฏุนูˆู… ู…ู† CLS ูˆุจูŠุชู… ุชุนุฑูŠูู‡ ููŠ CTS ูƒู€ System.Int32.
  • ู„ูˆ ุญุฏ ูƒุชุจ ูƒูˆุฏ ุจู†ูุณ ุงู„ูƒู„ุงุณ ุฏู‡ ุจู„ุบุฉ ุชุงู†ูŠุฉ ุฒูŠ VB.NETุŒ ู‡ูŠู‚ุฏุฑ ูŠุณุชุฎุฏู… MyClass ุจู†ูุณ ุงู„ุทุฑูŠู‚ุฉ ู„ุฃู† int ูˆ System.Int32 ู…ุชูˆุงูู‚ูŠู† ุญุณุจ CTS ูˆCLS.

ุงู„ุฎู„ุงุตุฉ

  • ุงู„ู€CLS ุจูŠุญุฏุฏ ุงู„ู‚ูˆุงุนุฏ ูˆุงู„ู‚ูŠูˆุฏ ู„ุถู…ุงู† ุงู„ุชูˆุงูู‚ ุจูŠู† ู„ุบุงุช ุงู„ุจุฑู…ุฌุฉ ุงู„ู…ุฎุชู„ูุฉ ููŠ .NET.
  • ุงู„ู€CTS ู‡ูˆ ู†ุธุงู… ุฃู†ูˆุงุน ุงู„ุจูŠุงู†ุงุช ุงู„ู…ูˆุญุฏ ุงู„ู„ูŠ ุจูŠุถู…ู† ุฅู† ูƒู„ ุงู„ู€ Types ููŠ .NET ู…ุชูˆุงูู‚ุฉ ูˆุณู‡ู„ุฉ ุงู„ุงุณุชุฎุฏุงู… ุจูŠู† ุงู„ู„ุบุงุช ุงู„ู…ุฎุชู„ูุฉ.
  • ุงู„ุงุชู†ูŠู† ุจูŠุดุชุบู„ูˆุง ู…ุน ุจุนุถ ุนุดุงู† ูŠุญู‚ู‚ูˆุง ุงู„ุชูˆุงูู‚ูŠุฉ ูˆุงู„ู…ุฑูˆู†ุฉ ููŠ ุชุทูˆูŠุฑ ุงู„ุชุทุจูŠู‚ุงุช ุนู„ู‰ ู…ู†ุตุฉ .NET.

ูู‡ู… ุงู„ู€ CLS ูˆ CTS ุจูŠุณุงุนุฏูƒ ุชูƒุชุจ ูƒูˆุฏ ู…ุชูˆุงูู‚ ูˆู‚ุงุจู„ ู„ุฅุนุงุฏุฉ ุงู„ุงุณุชุฎุฏุงู… ุจูŠู† ู„ุบุงุช ู…ุฎุชู„ูุฉุŒ ูˆุฏู‡ ุจูŠุณุงู‡ู… ููŠ ุชุญุณูŠู† ูƒูุงุกุฉ ูˆุชุทูˆูŠุฑ ุงู„ุชุทุจูŠู‚ุงุช ุจุดูƒู„ ุฃุณู‡ู„ ูˆุฃุณุฑุน.