เชกเซ‡เชŸเชพ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชธเชฟเชธเซเชŸเชฎเซเชธเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช…เชจเซ‡ เชชเชธเช‚เชฆเช—เซ€

เชกเซ‡เชŸเชพ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชธเชฟเชธเซเชŸเชฎเซเชธเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช…เชจเซ‡ เชชเชธเช‚เชฆเช—เซ€

เชกเซ‡เชŸเชพ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชธเชฟเชธเซเชŸเชฎเซเชธเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช…เชจเซ‡ เชชเชธเช‚เชฆเช—เซ€

เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชกเซ‡เชŸเชพ เชฎเซ‹เชกเชฒ เชฌเชฆเชฒเชพเชคเซเช‚ เชฐเชนเซ‡ เช›เซ‡ เช…เชจเซ‡ เช…เชฎเซเช• เชธเชฎเชฏเซ‡ เชคเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ‡ เช…เชจเซเชฐเซ‚เชช เชฐเชนเซ‡เชคเซเช‚ เชจเชฅเซ€. เช…เชฒเชฌเชคเซเชค, เชกเซ‡เชŸเชพเชฌเซ‡เช เช•เชพเชขเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชชเช›เซ€ ORM เชเช• เชจเชตเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ เชฌเชจเชพเชตเชถเซ‡ เชœเซ‡ เชฎเซ‹เชกเซ‡เชฒ เชธเชพเชฅเซ‡ เชฎเซ‡เชณ เช–เชพเชถเซ‡, เชชเชฐเช‚เชคเซ เช† เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชนเชพเชฒเชจเชพ เชกเซ‡เชŸเชพเชจเชพ เชจเซเช•เชธเชพเชจ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชถเซ‡. เช†เชฎ, เชธเซเชฅเชณเชพเช‚เชคเชฐ เชชเซเชฐเชฃเชพเชฒเซ€เชจเซเช‚ เช•เชพเชฐเซเชฏ เช เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡ เช•เซ‡, เชธเซเช•เซ€เชฎเชพ เชซเซ‡เชฐเชซเชพเชฐเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชคเซ‡ เชตเชฐเซเชคเชฎเชพเชจ เชกเซ‡เชŸเชพเชจเซ‡ เช—เซเชฎเชพเชตเซเชฏเชพ เชตเชฟเชจเชพ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชฎเซ‹เชกเซ‡เชฒ เชธเชพเชฅเซ‡ เชธเชฎเชจเซเชตเชฏเชฟเชค เชฅเชพเชฏ เช›เซ‡.

เช† เชฒเซ‡เช–เชฎเชพเช‚, เช…เชฎเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเซเชฅเชณเชพเช‚เชคเชฐเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชตเชฟเชตเชฟเชง เชธเชพเชงเชจเซ‹เชจเซ‡ เชœเซ‹เชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช. เช…เชฎเซ‡ เช†เชถเชพ เชฐเชพเช–เซ€เช เช›เซ€เช เช•เซ‡ เช† เชธเชฎเซ€เช•เซเชทเชพ เชธเชฎเชพเชจ เชชเชธเช‚เชฆเช—เซ€เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชคเชพ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เชฅเชถเซ‡.

เช‰เชฆเซเชฆเซ‡เชถ

เช…เชฎเชพเชฐเซ€ เช•เช‚เชชเชจเซ€ เชนเชพเชฒเชฎเชพเช‚ เช‰เชคเซเชชเชพเชฆเชจเชจเซ€ เช†เช—เชพเชฎเซ€ เชชเซ‡เชขเซ€เชจเซ‡ เชธเช•เซเชฐเชฟเชฏ เชฐเซ€เชคเซ‡ เชตเชฟเช•เชธเชพเชตเซ€ เชฐเชนเซ€ เช›เซ‡ - เชกเซ‰เช•เซเชธ เชธเชฟเช•เซเชฏเซเชฐเชฟเชŸเซ€ เชธเซเชฏเซเชŸ (DSS). เชธเชฐเซเชตเชฐเชจเซ‹ เชญเชพเช— .Net Core เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒ เช›เซ‡, เช…เชจเซ‡ เชเชจเซเชŸเชฟเชŸเซ€ เชซเซเชฐเซ‡เชฎเชตเชฐเซเช• เช•เซ‹เชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— DBMS เชคเชฐเซ€เช•เซ‡ เชฅเชพเชฏ เช›เซ‡. เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เช…เชฎเซ‡ เช•เซ‹เชก เชซเชฐเซเชธเซเชŸ เช…เชญเชฟเช—เชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช.

เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชกเซ‹เชฎเซ‡เชจ เชฎเซ‹เชกเซ‡เชฒ เชเช• เชœ เชธเชฎเชฏเซ‡ เช˜เชฃเชพ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชฆเซเชตเชพเชฐเชพ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เชฆเชฐเซ‡เช• เชธเชฟเชธเซเชŸเชฎเชจเชพ เชคเซ‡เชฎเชจเชพ เชชเซ‹เชคเชพเชจเชพ เชคเชพเชฐเซเช•เชฟเช• เชญเชพเช— เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เช›เซ‡.

DSS เชจเซ€ เช…เช—เชพเช‰เชจเซ€ เชชเซ‡เชขเซ€เช เช•เซเชฒเชพเชธเชฟเช• เชเชจเซเชŸเชฟเชŸเซ€ เชซเซเชฐเซ‡เชฎเชตเชฐเซเช• เชฎเชพเชˆเช—เซเชฐเซ‡เชถเชจเซเชธ (EF 6) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฎเชพเชˆเช—เซเชฐเซ‡เชถเชจ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเชฟเชธเซเชŸเชฎ เชคเชฐเซ€เช•เซ‡ เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹. เชœเซ‹ เช•เซ‡, เชคเซ‡เชจเซ€ เชธเชพเชฎเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชซเชฐเชฟเชฏเชพเชฆเซ‹ เชเช•เช เซ€ เชฅเชˆ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เชฎเซเช–เซเชฏ เช เช›เซ‡ เช•เซ‡ EF เชชเชพเชธเซ‡ เชธเช‚เชธเซเช•เชฐเชฃ เชคเช•เชฐเชพเชฐเชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฎเชœเชฆเชพเชฐ เช…เชญเชฟเช—เชฎเชจเซ‹ เช…เชญเชพเชต เช›เซ‡. เชธเชฎเชฐเซเชฅเชจเชจเชพ เชญเชพเช— เชฐเซ‚เชชเซ‡ เชญเซ‚เชฒเซ‹เชจเซ‡ เช เซ€เช• เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช† เชนเช•เซ€เช•เชค เชนเชœเซ เชชเชฃ เช…เชฎเชจเซ‡ เชชเชฐเซ‡เชถเชพเชจ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เชตเซˆเช•เชฒเซเชชเชฟเช• เชตเชฟเช•เชฒเซเชชเซ‹ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚.

เชšเชฐเซเชšเชพเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชธเซเชฅเชณเชพเช‚เชคเชฐ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชจ เชชเซเชฐเชฃเชพเชฒเซ€ เชฎเชพเชŸเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เช†เชตเชถเซเชฏเช•เชคเชพเช“เชจเซ€ เชฐเชšเชจเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€:

  1. เชตเชฟเชตเชฟเชง DBMS เชฎเชพเชŸเซ‡ เช†เชงเชพเชฐ. MS SQL เชธเชฐเซเชตเชฐ, PostgreSQL, Oracle เชœเชฐเซ‚เชฐเซ€ เช›เซ‡, เชชเชฐเช‚เชคเซ เช…เชจเซเชฏเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชธเช‚เชญเชตเชฟเชค เช›เซ‡
  2. ORM เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเซเช‚. เชถเชฐเซ‚เช†เชคเชฎเชพเช‚, EF เช•เซ‹เชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฏเซ‹เชœเชจเชพ เชนเชคเซ€, เชชเชฐเช‚เชคเซ เชกเชฟเชเชพเช‡เชจเชจเชพ เชคเชฌเช•เซเช•เซ‡ เช…เชฎเซ‡ เช…เชจเซเชฏ ORM เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชตเชพ เชคเซˆเชฏเชพเชฐ เชนเชคเชพ.
  3. เชธเซเชฅเชณเชพเช‚เชคเชฐเชจเซเช‚ เชธเซเชตเชคเชƒ-เชœเชจเชฐเซ‡เชถเชจ. เช•เซ‹เชก เชซเชฐเซเชธเซเชŸเชจเชพ เชตเชฟเช•เชพเชธเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชคเชพ, เชนเซเช‚ "เชนเชพเชฅเชฅเซ€ เชฒเช–เชตเชพ" เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฃเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเชจเซ‡ เชŸเชพเชณเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚
  4. เชธเช‚เชธเซเช•เชฐเชฃ เชตเชฟเชฐเซ‹เชงเชพเชญเชพเชธ. เชตเชฟเชคเชฐเชฟเชค เชตเชฟเช•เชพเชธ เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช‚, เชœเซเชฏเชพเชฐเซ‡ เชฎเชฐเซเชœ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ EF เช•เซ‹เชฐ เชธเช‚เช˜เชฐเซเชทเชจเซ‹ เชญเซ‹เช— เชฌเชจเซ€ เชถเช•เซ‡ เช›เซ‡. เช† เชเช• เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชธเชฎเชธเซเชฏเชพ เชฌเชจเซ€ เชœเชพเชฏ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเชพ เชตเชฟเชตเชฟเชง เชญเชพเช—เซ‹ เชตเชฟเชตเชฟเชง เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชฆเซเชตเชพเชฐเชพ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเชฎเชพเชฐเซ‡ เชฆเชฐเซ‡เช• เชชเชฐ เช˜เชฃเซ‹ เชธเชฎเชฏ เชชเชธเชพเชฐ เช•เชฐเชตเซ‹ เชชเชกเชถเซ‡
  5. เช…เชฆเซเชฏเชคเชจ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช…เชจเซ‡ เช†เชงเชพเชฐ. เช…เชนเซ€เช‚, เชคเซ‡ เช…เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡, เช•เซ‹เชˆ เชธเชฎเชœเซ‚เชคเซ€เชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€
  6. เชฎเชซเชค. เชฎเชพเชชเชฆเช‚เชก เชถเชฐเชคเซ€ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชธเชฟเชธเซเชŸเชฎเซ‹ เช–เซ‚เชฌ เช–เชฐเซเชšเชพเชณ เช…เชฅเชตเชพ เช–เชฐเซเชšเชพเชณ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช…เชจเซเช•เซ‚เชณเชคเชพเชฎเชพเช‚ เช†เชฆเชฐเซเชถ เช›เซ‡, เช…เชฎเซ‡ เชชเชฃ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชตเชพ เชคเซˆเชฏเชพเชฐ เชนเชคเชพ.

เชฅเซ‹เชกเชพ เชธเช‚เชถเซ‹เชงเชจเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชจเซ€เชšเซ‡เชจเชพ เชตเชฟเช•เชฒเซเชชเซ‹ เชฎเชณเซเชฏเชพ เช…เชจเซ‡ เชตเชฟเชšเชพเชฐเชฃเชพ เชฎเชพเชŸเซ‡ เช‡เชšเซเช›เชจเซ€เชฏ เชœเชฃเชพเชฏเชพ:

  1. EF เช•เซ‹เชฐ เชธเซเชฅเชณเชพเช‚เชคเชฐ
  2. DBup
  3. เชฐเชพเช‰เชจเซเชกเชนเชพเช‰เชธ เช‡
  4. เชฅเชฟเช‚เช•เชฟเช‚เช— เชนเซ‹เชฎ.เชฎเชพเช‡เช—เซเชฐเซ‡เชŸเชฐ
  5. เช…เชธเซเช–เชฒเชฟเชค เชธเซเชฅเชณเชพเช‚เชคเชฐ เช•เชฐเชจเชพเชฐ

เช…เชจเซ‡ เชนเชตเซ‡ เชฅเซ‹เชกเซ€ เชตเชงเซ เชตเชฟเช—เชค

เชกเซ‡เชŸเชพ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชธเชฟเชธเซเชŸเชฎเซเชธเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช…เชจเซ‡ เชชเชธเช‚เชฆเช—เซ€
เชเชจเซเชŸเชฟเชŸเซ€เชซเซเชฐเซ‡เชฎเชตเชฐเซเช• เช•เซ‹เชฐ เชธเซเชฅเชณเชพเช‚เชคเชฐ

เชธเซเชตเชพเชญเชพเชตเชฟเช• เชฐเซ€เชคเซ‡, เช† เชชเชธเช‚เชฆ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ‹ เชชเซเชฐเชฅเชฎ เช…เชจเซ‡ เชฎเซเช–เซเชฏ เชตเชฟเช•เชฒเซเชช เชนเชคเซ‹. เชเช• เชฆเซ‡เชถเซ€ เชตเชพเชฆเซเชฏ เช•เซ‡ เชœเซ‡ เช–เช‚เชœเชฐเซ€ เชตเชกเซ‡ เช•เซ‹เชˆ เชชเชฃ เชœเชพเชคเชจเซ€ เชนเชฒเชšเชฒ เชตเช—เชฐ เชฌเซ‹เช•เซเชธเชจเซ€ เชฌเชนเชพเชฐ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เชฎเซ‹เชŸเซ€ เชฎเชพเชคเซเชฐเชพเชฎเชพเช‚ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ, เชธเชคเซเชคเชพเชตเชพเชฐ เช…เชจเซ‡ เชเชตเซเช‚ เชจเชฅเซ€, เชธเชฐเชณเชคเชพ, เชตเช—เซ‡เชฐเซ‡. เชœเซ‹ เช•เซ‡, เช•เซเชฒเชพเชธเชฟเช• EF เชตเชฟเชถเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเซ€ เชซเชฐเชฟเชฏเชพเชฆเซ‹ EF เช•เซ‹เชฐ เชฎเชพเชŸเซ‡ เชชเชฃ เช–เซ‚เชฌ เชธเซเชธเช‚เช—เชค เช›เซ‡.

เช†เชฎ, EF เช•เซ‹เชฐ เชฎเชพเชŸเซ‡เชจเชพ เชซเชพเชฏเชฆเชพเช“ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡:

  • เชฎเชพเชˆเช•เซเชฐเซ‹เชธเซ‹เชซเซเชŸ เชธเชชเซ‹เชฐเซเชŸ, เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ, เชฐเชถเชฟเชฏเชจ เชธเชนเชฟเชค, เชตเชฟเชถเชพเชณ เชธเชฎเซเชฆเชพเชฏ
  • CodeFirst เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชธเซเชฅเชณเชพเช‚เชคเชฐเชจเซเช‚ เชธเซเชตเชคเชƒ-เชœเชจเชฐเซ‡เชถเชจ
  • EF 6 เชจเซ€ เชคเซเชฒเชจเชพเชฎเชพเช‚, EF เช•เซ‹เชฐ เชนเชตเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ‹ เชธเซเชจเซ‡เชชเชถเซ‹เชŸ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เช•เซ‹เชก เชซเชฐเซเชธเซเชŸเชฎเชพเช‚ EF เช•เซ‹เชฐ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชกเซ‡เชŸเชพเชฌเซ‡เช เชœเชฎเชพเชตเชตเซ‹ เชœเชฐเซ‚เชฐเซ€ เชจเชฅเซ€
  • เช…เชฎเซ‡ เช•เซ‹เชก เชซเชฐเซเชธเซเชŸเชฅเซ€ เชกเชพเชจเซเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เชนเซ‹เชตเชพเชฅเซ€, เชคเชฎเชพเชฎ เชœเชฐเซ‚เชฐเซ€ เชกเซ‡เชŸเชพ เชเช•เซเชธเซ‡เชธ เชชเซเชฐเซ‹เชตเชพเชˆเชกเชฐเซเชธเชฎเชพเช‚ เชเช• เชธเซเชฅเชณเชพเช‚เชคเชฐ เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡
  • เชชเซเชฐเชฆเชพเชคเชพเช“ เช…เช‚เช—เซ‡, PostgreSQL เชธเชฎเชฐเซเชฅเชฟเชค เช›เซ‡, Oracle เชธเชฎเชฐเซเชฅเชฟเชค เช›เซ‡, เชตเช—เซ‡เชฐเซ‡, เชตเช—เซ‡เชฐเซ‡, เช…เชจเซ‡ MS SQL เชธเชฐเซเชตเชฐ เชชเชฃ ๏Š

เช…เชจเซ‡ เช—เซ‡เชฐเชซเชพเชฏเชฆเชพ เชชเชฃ:

  • เชธเช‚เช˜เชฐเซเชทเชจเซเช‚ เชจเชฟเชฐเชพเช•เชฐเชฃ เชธเชฎเชพเชจ เชธเซเชคเชฐเซ‡ เชฐเชนเซเชฏเซเช‚. เชธเซเชฅเชณเชพเช‚เชคเชฐเชจเซ‹ เช•เซเชฐเชฎ เช…เชจเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเซเชจเซ‡เชชเชถเซ‹เชŸ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡
  • เชฎเซ‹เชกเซ‡เชฒเซ‹ เชชเชฐ เชจเชฟเชฐเซเชญเชฐเชคเชพ เช•เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฃ เชœเชจเชฐเซ‡เชŸ เชฅเชพเชฏ เช›เซ‡

DbUp

เชกเซ‡เชŸเชพ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชธเชฟเชธเซเชŸเชฎเซเชธเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช…เชจเซ‡ เชชเชธเช‚เชฆเช—เซ€
dbup.github.io

DbUp เช .NET เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เช›เซ‡ เชœเซ‡ NuGet เชฆเซเชตเชพเชฐเชพ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเซเช‚ เช›เซ‡ เช…เชจเซ‡ SQL เชธเชฐเซเชตเชฐเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เช†เช—เชณ เชงเชชเชพเชตเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡ เชŸเซเชฐเซ…เช• เชฐเชพเช–เซ‡ เช›เซ‡ เช•เซ‡ เช•เชˆ เชซเซ‡เชฐเชซเชพเชฐ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ เช…เชจเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เชคเซ‡ เชšเชฒเชพเชตเซ‡ เช›เซ‡. ASP.NET เชชเชฐ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชฌเซเชฒเซ‹เช—เชฟเช‚เช— เชเชจเซเชœเชฟเชจ เชฎเชพเชŸเซ‡เชจเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚เชฅเซ€ เชชเซเชธเซเชคเช•เชพเชฒเชฏเชจเซ‹ เชตเชฟเช•เชพเชธ เชฅเชฏเซ‹ เช…เชจเซ‡ MIT เชฒเชพเชฏเชธเชจเซเชธ เชนเซ‡เช เชณ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡, เช…เชจเซ‡ เช•เซ‹เชก GitHub เชชเชฐ เช›เซ‡. เชธเซเชฅเชณเชพเช‚เชคเชฐเชจเซเช‚ เชตเชฐเซเชฃเชจ T-SQL เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชซเชพเชฏเชฆเชพ เชถเซเช‚ เช›เซ‡:

  • เชฎเซ‹เชŸเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ DBMS (MS SQL เชธเชฐเซเชตเชฐ, PstgreSQL, MySQL) เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ
  • เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ T-SQL เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒเซ€ เชนเซ‹เชตเชพเชฅเซ€, เชคเซ‡ เชเช•เชฆเชฎ เชธเชฐเชณ เชฒเชพเช—เซ‡ เช›เซ‡
  • SQL เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเชฃ เชคเช•เชฐเชพเชฐ เช‰เช•เซ‡เชฒเชพเชฏ เช›เซ‡

เช…เชจเซ‡ เช—เซ‡เชฐเชซเชพเชฏเชฆเชพ:

  • เชธเชชเซ‹เชฐเซเชŸเซ‡เชก DBMS เชจเซ€ เชคเชฎเชพเชฎ เชตเชฟเชตเชฟเชงเชคเชพ เชธเชพเชฅเซ‡, Oracle เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชเช• เชจเชฅเซ€
  • ORM เชธเชพเชฅเซ‡ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชคเซเช‚ เชจเชฅเซ€
  • เชนเชพเชฅ เชตเชกเซ‡ T-SQL เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ เชฒเช–เชตเชพเชจเซเช‚ เช†เชชเชฃเซ‡ เชฒเช•เซเชทเซเชฏ เชฐเชพเช–เซเชฏเซเช‚ เชจเชฅเซ€
  • เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช…เชจเซ‡ เชธเชฎเซเชฆเชพเชฏ เชเชŸเชฒเชพ เชœ เช›เซ‡, เชœเซ‹ เช•เซ‡ SQL เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ เชฒเช–เชตเชพเชจเชพ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚ เชคเซ‡ เชœเชฐเซ‚เชฐเซ€ เชจ เชชเชฃ เชนเซ‹เชˆ เชถเช•เซ‡.

เชฐเชพเช‰เชจเซเชกเชนเชพเช‰เชธ เช‡

เชกเซ‡เชŸเชพ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชธเชฟเชธเซเชŸเชฎเซเชธเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช…เชจเซ‡ เชชเชธเช‚เชฆเช—เซ€
github.com/chucknorris/roundhouse

เช† เชธเซเชฅเชณเชพเช‚เชคเชฐ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชจ เชธเชพเชงเชจ, เช…เชชเชพเชšเซ‡ 2.0 เชฒเชพเชฏเชธเชจเซเชธ เชนเซ‡เช เชณ เชตเชฟเชคเชฐเชฟเชค, เช…เช—เชพเช‰เชจเชพ เชเช•เชจเซ€ เชœเซ‡เชฎ, T-SQL เชธเซเชฅเชณเชพเช‚เชคเชฐ เชเชจเซเชœเชฟเชจ เชชเชฐ เชšเชพเชฒเซ‡ เช›เซ‡. เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡, เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เช เช†เชฐเชพเชฎเชฆเชพเชฏเช• เชตเชฟเช•เชพเชธ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฌเชจเชพเชตเชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡ DBMS เชธเชชเซ‹เชฐเซเชŸ เชธเช‚เชฌเช‚เชงเชฟเชค เชคเช•เชจเซ€เช•เซ€ เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพเชจเซ‡ เชชเซเชฐเชพเชฅเชฎเชฟเช•เชคเชพ เช†เชชเซ€.

เช—เซเชฃ:

  • เชœเชฐเซ‚เชฐเซ€ DBMS เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡ (เช“เชฐเซ‡เช•เชฒ เชธเชนเชฟเชค)

เชตเชฟเชชเช•เซเชท:

  • เช“เชฐเซ‡เช•เชฒ (เชคเซ‡เชฎเชœ เชเช•เซเชธเซ‡เชธ, เชœเซ‡ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เช…เชชเซเชฐเชธเซเชคเซเชค เช›เซ‡) .NET เช•เซ‹เชฐ เชชเชฐ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เชจเชฅเซ€, เชฎเชพเชคเซเชฐ .NET เชซเซเชฒ เชซเซเชฐเซ‡เชฎเชตเชฐเซเช• เชชเชฐ
  • ORM เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€
  • เช…เช—เชพเช‰เชจเชพ เชธเชพเชงเชจ เช•เชฐเชคเชพเช‚ เชชเชฃ เช“เช›เชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เช›เซ‡
  • เชซเชฐเซ€เชฅเซ€ - เชธเซเชฅเชณเชพเช‚เชคเชฐ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ เชฆเซเชตเชพเชฐเชพ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡

เชฅเชฟเช‚เช•เชฟเช‚เช— เชนเซ‹เชฎ.เชฎเชพเช‡เช—เซเชฐเซ‡เชŸเชฐ

เชกเซ‡เชŸเชพ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชธเชฟเชธเซเชŸเชฎเซเชธเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช…เชจเซ‡ เชชเชธเช‚เชฆเช—เซ€

MIT เชฒเชพเชฏเชธเชจเซเชธ เชนเซ‡เช เชณ เชตเชฟเชคเชฐเชฟเชค .NET เช•เซ‹เชฐ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเชฐ เชตเชฐเซเชเชจเซ‡เชก เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเซเช•เซ€เชฎเชพ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชฎเชพเชŸเซ‡เชจเซเช‚ เชธเชพเชงเชจ. เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช เชชเซ‹เชคเซ‡ เชฒเช—เชญเช— เชเช• เชตเชฐเซเชท เชชเชนเซ‡เชฒเชพเช‚ เชคเซ‡เชจเชพ เชจเชตเซ€เชจเชคเชฎ เชธเช‚เชธเซเช•เชฐเชฃ เชตเชฟเชถเซ‡ เชฒเช–เซเชฏเซเช‚ เชนเชคเซเช‚.

เช—เซเชฃ:

  • .NET เช•เซ‹เชฐ เชฎเชพเชŸเซ‡ เชฐเชšเชพเชฏเซ‡เชฒ เช›เซ‡
  • เชธเซเชฅเชณเชพเช‚เชคเชฐเชจเซ‹ เชฌเซเชฐเชพเชจเซเชšเชฟเช‚เช— เช•เซเชฐเชฎ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซ‹
  • เชธเซเชฅเชณเชพเช‚เชคเชฐ เชฒเซ‹เช—เซ€เช‚เช— เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซเช‚

เชตเชฟเชชเช•เซเชท:

  • เช›เซ‡เชฒเซเชฒเซ‡ เชเช• เชตเชฐเซเชท เชชเชนเซ‡เชฒเชพเช‚ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚. เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เชจเชฅเซ€
  • เช“เชฐเซ‡เช•เชฒ เชฆเซเชตเชพเชฐเชพ เชธเชฎเชฐเซเชฅเชฟเชค เชจเชฅเซ€ (เชฒเซ‡เช– เชœเชฃเชพเชตเซ‡ เช›เซ‡ เช•เซ‡ เช† .NET เช•เซ‹เชฐ เชฎเชพเชŸเซ‡ เชธเซเชฅเชฟเชฐ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเชพ เช…เชญเชพเชตเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช›เซ‡ - เชชเชฐเช‚เชคเซ เช† เชเช• เชตเชฐเซเชท เชชเชนเซ‡เชฒเชพเชจเซเช‚ เช›เซ‡)
  • เชธเซเชฅเชณเชพเช‚เชคเชฐเชจเซ€ เช•เซ‹เชˆ เชธเซเชตเชšเชพเชฒเชฟเชค เชชเซ‡เชขเซ€ เชจเชฅเซ€

เชเช•เช‚เชฆเชฐเซ‡, เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช†เชถเชพเชธเซเชชเชฆ เชฒเชพเช—เซ‡ เช›เซ‡, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชœเซ‹ เชคเซ‡ เชตเชฟเช•เชธเชพเชตเชตเชพเชจเซ‹ เชนเชคเซ‹, เชชเชฐเช‚เชคเซ เช…เชฎเชพเชฐเซ‡ เช…เชนเซ€เช‚ เช…เชจเซ‡ เชนเชตเซ‡ เชจเชฟเชฐเซเชฃเชฏ เชฒเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เช…เชธเซเช–เชฒเชฟเชค เชธเซเชฅเชณเชพเช‚เชคเชฐ เช•เชฐเชจเชพเชฐ

เชกเซ‡เชŸเชพ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชธเชฟเชธเซเชŸเชฎเซเชธเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช…เชจเซ‡ เชชเชธเช‚เชฆเช—เซ€
github.com/fluentmigrator/fluentmigrator

เชšเชพเชนเช•เซ‹เชจเซ€ เชฎเซ‹เชŸเซ€ เชธเซ‡เชจเชพ เชธเชพเชฅเซ‡เชจเซเช‚ เชธเซŒเชฅเซ€ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชธเชพเชงเชจ. Apache 2.0 เชฒเชพเชฏเชธเชจเซเชธ เชนเซ‡เช เชณ เชตเชฟเชคเชฐเชฟเชค. เชตเชฐเซเชฃเชจเชฎเชพเช‚ เชœเชฃเชพเชตเซเชฏเชพ เชฎเซเชœเชฌ, เชคเซ‡ .NET เชฎเชพเชŸเซ‡เชจเซเช‚ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชฎเชพเชณเช–เซเช‚ เช›เซ‡, เชœเซ‡ เชฐเซ‚เชฌเซ€ เช“เชจ เชฐเซ‡เชฒเซเชธ เชฎเชพเชˆเช—เซเชฐเซ‡เชถเชจ เชœเซ‡เชตเซเช‚ เช›เซ‡. เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเซเช•เซ€เชฎเชพเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹ C# เชตเชฐเซเช—เซ‹เชฎเชพเช‚ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡.

เช…เชนเซ€เช‚ เชซเชพเชฏเชฆเชพ เช›เซ‡:

  • เชœเชฐเซ‚เชฐเซ€ DBMS เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ
  • .NET เช•เซ‹เชฐ เชธเชชเซ‹เชฐเซเชŸ
  • เชตเชฟเชถเชพเชณ เชตเชฟเช•เชธเชฟเชค เชธเชฎเซเชฆเชพเชฏ
  • เชธเซเชฅเชณเชพเช‚เชคเชฐ เชตเชšเซเชšเซ‡เชจเชพ เชธเช‚เช˜เชฐเซเชทเซ‹ เช•เซเชฐเชฎเชฟเช• เชฐเซ€เชคเซ‡ เช‰เช•เซ‡เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เชธเซเชฅเชณเชพเช‚เชคเชฐเชจเชพ เช…เชฎเชฒเชจเซ‹ เช•เซเชฐเชฎ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เช›เซ‡. เชตเชงเซเชฎเชพเช‚, เชœเซ‹ เช•เซ‹เชˆ เชเช• เชเชจเซเชŸเชฟเชŸเซ€เชจเซ€ เช†เชธเชชเชพเชธ เช•เซ‹เชˆ เชธเช‚เช˜เชฐเซเชท เชŠเชญเซ‹ เชฅเชพเชฏ เช›เซ‡, เชœเซเชฏเชพเชฐเซ‡ เช•เซ‹เชกเชจเซ‡ เชฎเชฐเซเชœ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชคเซ‡ เชฌเชพเช•เซ€เชจเชพ เช•เซ‹เชกเชจเซ€ เชœเซ‡เชฎ เชœ เช‰เช•เซ‡เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.
  • เชคเซเชฏเชพเช‚ เชชเซเชฐเซ‹เชซเชพเช‡เชฒเซเชธ เช›เซ‡ เชœเซ‡ เชธเชซเชณ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชชเช›เซ€ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช…เชจเซ‡ เชคเซ‡เช“ เชธเซ‡เชตเชพ เช•เชพเชฐเซเชฏเซ‹เชจเซ‡ เชตเชนเชจ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ เช›เซ‡เชฒเซเชฒเซเช‚ เช…เชชเชกเซ‡เชŸ เชเช• เชฎเชนเชฟเชจเชพ เชชเชนเซ‡เชฒเชพ เชนเชคเซเช‚, เชเชŸเชฒเซ‡ เช•เซ‡, เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชœเซ€เชตเช‚เชค เช›เซ‡

เช—เซ‡เชฐเชซเชพเชฏเชฆเชพ เชฎเชพเชŸเซ‡, เชคเซ‡ เช…เชนเซ€เช‚ เช›เซ‡:

  • เชธเซเชฅเชณเชพเช‚เชคเชฐเชจเซ€ เช•เซ‹เชˆ เชธเซเชตเชšเชพเชฒเชฟเชค เชชเซ‡เชขเซ€ เชจเชฅเซ€
  • EF เชฎเซ‹เชกเชฒเซเชธ เชธเชพเชฅเซ‡ เช•เซ‹เชˆ เชœเซ‹เชกเชพเชฃ เชจเชฅเซ€
  • เช•เซ‹เชˆ เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเซเชจเซ‡เชชเชถเซ‹เชŸ เชจเชฅเซ€

เช…เชฎเชพเชฐเซ€ เชชเชธเช‚เชฆเช—เซ€ เชถเซเช‚ เชนเชคเซ€?

เชกเซ‡เชŸเชพ เชธเซเชฅเชณเชพเช‚เชคเชฐ เชธเชฟเชธเซเชŸเชฎเซเชธเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช…เชจเซ‡ เชชเชธเช‚เชฆเช—เซ€

เช—เชฐเชฎ เชšเชฐเซเชšเชพเช“ เชฌเซ‡ เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ€ เช†เชธเชชเชพเชธ เชซเชฐเชคเซ€ เชนเชคเซ€ - เชธเซเชฅเชณเชพเช‚เชคเชฐเชจเซ€ เชธเซเชตเชšเชพเชฒเชฟเชค เชชเซ‡เชขเซ€ เช…เชจเซ‡ เชคเช•เชฐเชพเชฐเชจเซเช‚ เชธเชฎเชœเชฆเชพเชฐ เชจเชฟเชฐเชพเช•เชฐเชฃ. เช…เชจเซเชฏ เชชเชฐเชฟเชฌเชณเซ‹ เช˜เชฃเชพ เช“เช›เชพ เชญเชฏเชพเชจเช• เชนเชคเชพ. เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชšเชฐเซเชšเชพเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹เชจเชพ เช†เชงเชพเชฐเซ‡, เชŸเซ€เชฎเซ‡ เชจเชตเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เชซเซเชฒเซเช…เชจเซเชŸ เชฎเชพเชˆเช—เซเชฐเซ‡เชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เช•เชพเชฐเชฃ เช•เซ‡ เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เชคเช•เชฐเชพเชฐ เช‰เช•เซ‡เชฒเชตเชพเชฅเซ€ เชตเชงเซ เชฒเชพเชญ เชฅเชถเซ‡.

เชคเชพเชฐเชฃเซ‹

เช…เชฒเชฌเชคเซเชค, เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชธเช‚เชชเซ‚เชฐเซเชฃ เชธเชพเชงเชจเซ‹ เชจเชฅเซ€. เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เชชเชธเช‚เชฆเช—เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซ€ "เช‡เชšเซเช›เชพเช“" เชจเซ‡ เชชเซเชฐเชพเชฅเชฎเชฟเช•เชคเชพ เช†เชชเชตเซ€ เชชเชกเซ€. เชœเซ‹ เช•เซ‡, เช…เชจเซเชฏ เชŸเซ€เชฎเซ‹ เช…เชจเซ‡ เช…เชจเซเชฏ เช•เชพเชฐเซเชฏเซ‹ เชฎเชพเชŸเซ‡, เช…เชจเซเชฏ เชชเชฐเชฟเชฌเชณเซ‹ เชจเชฟเชฐเซเชฃเชพเชฏเช• เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เช…เชฎเซ‡ เช†เชถเชพ เชฐเชพเช–เซ€เช เช›เซ€เช เช•เซ‡ เช† เชฒเซ‡เช– เชคเชฎเชจเซ‡ เชชเชธเช‚เชฆเช—เซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‡.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹