Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исток: Π—Π°Π²ΠΎΠ΄ Π˜Π‘Π’ΠžΠšβ„’ — российский поставщик Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Ρ… установок

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π—Π°Π²ΠΎΠ΄ Π˜Π‘Π’ΠžΠšβ„’ — российский поставщик Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Ρ… установок

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ cookie. Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС посСтитСлСй с сайтом ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ сайтом, Π²Ρ‹ ΡΠΎΠ³Π»Π°ΡˆΠ°Π΅Ρ‚Π΅ΡΡŒ с использованиСм Ρ„Π°ΠΉΠ»ΠΎΠ² cookie.

ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ

Π’Ρ‹Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

ΠœΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ, ΠΊΠ’Ρ‚

2

64

126

188

250

НапряТСниС, Π’

230Β (11)

230/400Β (62)

ΠœΠ°Ρ€ΠΊΠ° двигатСля

GESHTΒ (19)

KOFOΒ (28)

RicardoΒ (4)

WeifangΒ (3)

YangdongΒ (18)

YanmarΒ (1)

ΠΠžΠ’Π«Π•. Π―Π ΠšΠ˜Π•.Π’Π’ΠžΠ˜

АД8Π‘-Π’400-РПМ15

ΠœΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ, ΠΊΠ’Ρ‚
8
Π’ΠΈΠΏ Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π°
Π”ΠΈΠ·Π΅Π»ΡŒ
НапряТСниС, Π’
230/400

360Β 490 β‚½ Β  275Β 290 β‚½

АД16Π‘-Π’400-РМ62

ΠœΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ, ΠΊΠ’Ρ‚
15
Π’ΠΈΠΏ Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π°
Π”ΠΈΠ·Π΅Π»ΡŒ
НапряТСниС, Π’
230/400

595Β 890 β‚½ Β  519Β 390 β‚½

HILTT CS-25-E3 (0)

ΠœΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ, ΠΊΠ’Ρ‚
25
Π’ΠΈΠΏ Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π°
Π”ΠΈΠ·Π΅Π»ΡŒ
НапряТСниС, Π’
230/400

299Β 990 β‚½ Β  208Β 290 β‚½

HILTT CS-30-E3

ΠœΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ, ΠΊΠ’Ρ‚
30
Π’ΠΈΠΏ Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π°
Π”ΠΈΠ·Π΅Π»ΡŒ
НапряТСниС, Π’
230/400

321Β 990 β‚½ Β  276Β 590 β‚½

АД250Π‘-Π’400-РПМ25

ΠœΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ, ΠΊΠ’Ρ‚
250
Π’ΠΈΠΏ Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π°
Π”ΠΈΠ·Π΅Π»ΡŒ
НапряТСниС, Π’
230/400

1Β 799Β 990 β‚½ Β  1Β 521Β 390 β‚½

Π‘ΠŸΠ•Π¦ΠŸΠ Π•Π”Π›ΠžΠ–Π•ΠΠ˜Π―

Новости

  • Как устроСна Π”Π“Π£ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅Ρ„Ρ‚Π΅Π΄ΠΎΠ±Ρ‹Ρ‡ΠΈ?

  • НадСТный ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ ΠΏΡ€ΠΈ Ρ€Π΅ΠΌΠΎΠ½Ρ‚Π΅ элСктросСтСй!

О компании

Π—Π°Π²ΠΎΠ΄ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π˜Π‘Π’ΠžΠšβ„’ — ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π΄ΠΈΠ·Π΅Π»ΡŒΠ½Ρ‹Ρ… элСктростанций, насосных установок, сварочных Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹ΠΌ Π±Ρ€Π΅Π½Π΄ΠΎΠΌ Π˜Π‘Π’ΠžΠšβ„’.

Π˜Π·Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ Π΄ΠΈΠ·Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ 8 Π΄ΠΎ 2000 ΠΊΠ’Ρ‚ сСрийно ΠΈ ΠΏΠΎ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π°ΠΊΠ°Π·Π°ΠΌ. Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΎΡ‚ проСктирования Π΄ΠΎ запуска Π°Π³Ρ€Π΅Π³Π°Ρ‚Π° Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ дальнСйшСго Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉΠ½ΠΎΠ³ΠΎ ΠΈ постгарантийного обслуТивания ΠΏΠΎ всСй России.

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡ Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈ Π˜Π‘Π’ΠžΠšβ„’ — ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄ климатичСскиС условия нашСй страны ΠΈ российскиС стандарты Π³ΠΎΡ€ΡŽΡ‡Π΅-смазочных ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ², Ρ‡Ρ‚ΠΎ обСспСчиваСт Π±Π΅ΡΠΏΠ΅Ρ€Π΅Π±ΠΎΠΉΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ Π±Π΅Π· сниТСния рСсурса.

ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΊ Российскому Π³ΠΎΡ€ΡŽΡ‡Π΅ΠΌΡƒ

Развитая ΡΠ΅Ρ‚ΡŒ тСхничСских Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ² ΠΈ тСхничСская ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°

БобствСнный ΠΎΡ‚Π΄Π΅Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ спроСктируСт ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ любой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Доставка Π² любой Ρ€Π΅Π³ΠΈΠΎΠ½ России Π±Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΏΠ»Π°Ρ‚ ΠΈ с Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠ΅ΠΉ

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹

Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС Ρ€Π°Π±ΠΎΡ‚Ρ‹

3 Π”Π“Π£ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ 30 ΠΊΠ’Ρ‚ для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ энСргоснабТСния

Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

20 Π”Π“Π£ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ 16 ΠΊΠ’Ρ‚ для автомотрис

Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Π”Π“Π£ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Π£Π‘Πš-3

Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ ΠΊ партнСрству

Π‘Ρ‚Π°Π² нашим ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠΌ,
Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅:

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± условиях

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с качСствСнным ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ российского производства.

ΠžΡ‚Π»Π°ΠΆΠ΅Π½Π½ΡƒΡŽ систСму поставок, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠ΅ сроки.

Π“Π°Ρ€Π°Π½Ρ‚ΠΈΠΉΠ½Ρ‹Π΅ ΠΈ сСрвисныС возмоТности, позволят Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ тСхничСскиС вопросы.

НаличиС ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³ΠΎΠ²ΠΎΠ³ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ нСстандартных Π·Π°Π΄Π°Ρ‡.

Π—Π°Π²ΠΎΠ΄ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π˜ΡΡ‚ΠΎΠΊ

Π—ΠΠ’ΠžΠ” Π“Π•ΠΠ•Π ΠΠ’ΠžΠ ΠΠ«Π₯ Π£Π‘Π’ΠΠΠžΠ’ΠžΠš

УЗНАВЬ ΠŸΠžΠ”Π ΠžΠ‘ΠΠ•Π•

ΠœΡ‹ стрСмимся ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΡƒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, высококачСствСнный ΠΈ соврСмСнный сСрвис, Π³Ρ€Π°ΠΌΠΎΡ‚Π½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΠΈ, Ρ‚Π΅ΠΌ самым показывая, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ нашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ — это качСствСнный ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ ΠΈ Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°. ΠœΡ‹ инТиниринговая компания, которая ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ стоящих ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ Π·Π°Π΄Π°Ρ‡.

ΠŸΠ ΠžΠ”ΠΠ–Π АРЕНДА Π‘Π•Π Π’Π˜Π‘

ΠœΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ вСсь спСктр ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ энСргСтичСских Π·Π°Π΄Π°Ρ‡ любой слоТности. Π¨ΠΈΡ€ΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ мощностСй, большой ассортимСнт Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ склад запчастСй ΠΈ расходных ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π°ΡΡΡ ΡΠ΅Ρ‚ΡŒ сСрвисного присутствия обСспСчиваСт Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉΠ½ΠΎΠ΅ ΠΈ сСрвисноС обслуТиваниС ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Π»ΠΈΠΆΠ΅ ΠΊ мСсту эксплуатации оборудования.

Π‘ΠžΠ’Π Π£Π”ΠΠ˜Π§Π•Π‘Π’Π’Πž

ДруТСскиС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ потрСбности ΠΈ Π² дальнСйшСм ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для любой тСхничСски слоТной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² области энСргообСспСчСния. ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ связь позволяСт Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ характСристиками, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈ самого Π²Π·Ρ‹ΡΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

ΠšΠΠ”Π Π«

Наша основная Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ — люди, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, обслуТивании ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ оборудования. Π˜Ρ… всСх ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ идСя создания ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΈΜ† Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ оТидания Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°. Высококвалифицированный пСрсонал всСгда Π³ΠΎΡ‚ΠΎΠ² ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΏΠΎ Π»ΡŽΠ±Ρ‹ΠΌ вопросам, ΠΎΡ‚ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ дистрибуции Π΄ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ сСрвисных Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ².

ИБВОРИЯ БРЕНДА

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Π±Ρ€Π΅Π½Π΄Π° Π˜ΡΡ‚ΠΎΠΊ Π±Π΅Ρ€Π΅Ρ‚ своС Π½Π°Ρ‡Π°Π»ΠΎ Π² 2006 Π³ΠΎΠ΄Ρƒ с ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ – поставщика Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π·Π°Ρ€ΡƒΠ±Π΅ΠΆΠ½ΠΎΠ³ΠΎ производства Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ Π£Ρ€Π°Π»Π°, Π° Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΈΜ†ΡˆΠ΅ΠΌ Π½Π° всю Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΡŽ Π Π€.

Компания Ρ€Π°Π·Π²ΠΈΠ²Π°Π»Π°ΡΡŒ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ прСдоставлСния ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ спСктра услуг ΠΎΡ‚ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ Π΄ΠΎ прСдпусковой ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… сСрвисных Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΎΠ² Π½Π° вСсь ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΈΜ† Ρ†ΠΈΠΊΠ» ΠΈΠ·Π΄Π΅Π»ΠΈΠΈΜ†. ВСсноС сотрудничСство с потрСбитСлями ΠΈ доскональноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊ тСхничСской сторонС ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΈΜ† максимально ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π» Π±Ρ‹ трСбования ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΈΜ† Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Ρ… установок.

БСгодня Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Π΅ установки Π˜ΡΡ‚ΠΎΠΊ ΠΏΠΎ своим характСристикам, качСству ΠΈ Ρ†Π΅Π½Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΊΠΎΠ½- ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ с Π·Π°Ρ€ΡƒΠ±Π΅ΠΆΠ½Ρ‹ΠΌΠΈ Π°Π½Π°Π»ΠΎΠ³Π°ΠΌΠΈ. Π‘Ρ€Π΅Π½Π΄ Π˜ΡΡ‚ΠΎΠΊ — это ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³ΠΎΠ²Ρ‹ΠΈΜ† ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сочСта- ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ стандартныС издСлия, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Π°ΠΊ ΠΈ комплСкс ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΈ услуг, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΈΜ† ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ потрСбности ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Выбирая Π±Ρ€Π΅Π½Π΄ Π˜ΡΡ‚ΠΎΠΊ, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ стоящих ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ Π·Π°Π΄Π°Ρ‡ ΠΎΡ‚ профСссионалов своСго Π΄Π΅Π»Π°.

LEARN MORE

ΠœΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ спСцавтотранспорта Π½Π° Π±Π°Π·Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Ρ… установок.

Π Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Π΅ установки Π² условиях ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ пространства. УстанавливаСм систСмы контроля ΠΈ управлСния Π½Π° мСстС водитСля/ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (выносныС ΠΏΡƒΠ»ΡŒΡ‚Ρ‹ управлСния). ИзмСняСм ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ установки ΠΏΠΎΠ΄ ваши Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ. НалаТиваСм ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΎΡ‚ внСшнСго Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π½ΠΎΠ³ΠΎ Π±Π°ΠΊΠ°, конструируСм выносныС Π³Π»ΡƒΡˆΠΈΡ‚Π΅Π»ΠΈ ΠΈ Ρ€Π°Π΄ΠΈΠ°Ρ‚ΠΎΡ€Ρ‹ (установка Π½Π° ΠΊΡ€Ρ‹ΡˆΠ΅/стСнах Ρ„ΡƒΡ€Π³ΠΎΠ½Π° ΠΈΠ»ΠΈ ΠΊΡƒΠ·ΠΎΠ²Π°.

Для использования Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… зданиях ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Π΅ установки стандартного ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ исполнСния

Π˜Π·Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ элСктростанции Π½Π° Π°Π³Ρ€Π΅Π³Π°Ρ‚Π°Ρ… ΠΌΠΈΡ€ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ (CUMMINS, PERKINS, YANMAR, HONDA), ΠΊΠ°ΠΊ для обСспСчСния быстровозводимых посСлков элСктроэнСргиСй, Ρ‚Π°ΠΊ ΠΈ для размСщСния Π² составС Π²Π°Π³ΠΎΠ½-Π΄ΠΎΠΌΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… Π·Π΄Π°Π½ΠΈΠΉ. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π”Π“Π£ Π½Π° ΠΏΡ€ΠΈΡ†Π΅ΠΏΠ°Ρ… ΠΈ салазках, Π² ΡƒΡ‚Π΅ΠΏΠ»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… ΠΈ ΡˆΡƒΠΌΠΎΠ·Π°Ρ‰ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠΎΠΆΡƒΡ…Π°Ρ…. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°Ρ†ΠΈΠΈ ΠΎΡ‚ 1 ΡˆΡ‚.

Для Российских ΠΆΠ΅Π»Π΅Π·Π½Ρ‹Ρ… Π΄ΠΎΡ€ΠΎΠ³ ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ комплСктациями

ΠœΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Π΅ установки, сварочныС Π°Π³Ρ€Π΅Π³Π°Ρ‚Ρ‹ ΠΈ свСтовыС ΠΌΠ°Ρ‡Ρ‚Ρ‹ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ характСристиками ΠΈ комплСктациями ΠΏΠΎ трСбованиям структур Π Π–Π”, Π½Π΅ Π½ΡƒΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ… ΠΏΡ€ΠΈ установкС ΠΈ эксплуатации. Наша продукция соотвСтствуСт высоким стандартам качСства, принятым Π² Π Π–Π”.

1

Π‘ΠΏΠ΅Ρ† ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΎΡ‚ 1ΡˆΡ‚ΡƒΠΊΠΈ

2

Π“ΠΎΠ΄Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ

35

БСрвисных Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²

14

Π›Π΅Ρ‚ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅

Акции

Акции

АД16-О230-РПМ15

Π”ΠΈΠ·Π΅Π»ΡŒΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ «ΠŸΡ€ΠΎΡ„»


348 000 β‚½

1 ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ


  • 16ΠΊΠ’Ρ‚/17,6ΠΊΠ’Ρ‚
  • Π”Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ YangDong
  • ΠšΠΎΠΆΡƒΡ…, ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΡˆΡƒΠΌΠ° 62Π΄Π‘
  • Π˜ΡΡ‚ΠΎΠΊ 6120
  • 1460Ρ…680Ρ…900

ΠšΡƒΠΏΠΈΡ‚ΡŒ!

АД-100-Π’400-РПМ25

Π”ΠΈΠ·Π΅Π»ΡŒΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ «Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚»


758 000 β‚½

1 ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ


  • 100ΠΊΠ’Ρ‚/110ΠΊΠ’Ρ‚
  • Π”Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ Weifang
  • ΠšΠΎΠΆΡƒΡ…, ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΡˆΡƒΠΌΠ° 69Π΄Π‘
  • Π˜ΡΡ‚ΠΎΠΊ 6120
  • 2750x1090x1450

ΠšΡƒΠΏΠΈΡ‚ΡŒ!

АД-50-Π’400-2РМ25

Π”ΠΈΠ·Π΅Π»ΡŒΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ «Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚»


420 000 β‚½

2 ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ


  • 50ΠΊΠ’Ρ‚/55ΠΊΠ’Ρ‚
  • Π”Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ Weifang
  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Π°Ρ Π½Π° Ρ€Π°ΠΌΠ΅
  • Π˜ΡΡ‚ΠΎΠΊ 6120
  • 1900Ρ…840Ρ…1240

ΠšΡƒΠΏΠΈΡ‚ΡŒ!

1 568 000 Π Π£Π‘

АД250Π‘-Π’400-РМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

353 000 Π Π£Π‘

АД20Π‘-О230-РПМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

353 000 Π Π£Π‘

АД20Π‘-Π’400-РПМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

399 000 Π Π£Π‘

АД30Π‘-Π’400-РПМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

446 000 Π Π£Π‘

АД40Π‘-Π’400-РПМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

478 000 Π Π£Π‘

АД50Π‘-Π’400-РПМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

517 000 Π Π£Π‘

АД60Π‘-Π’400-РПМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

702 000 Π Π£Π‘

АД75Π‘-Π’400-РПМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

758 000 Π Π£Π‘

АД100Π‘-Π’400-РПМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

813 000 Π Π£Π‘

АД120Π‘-Π’400-РПМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

965 000 Π Π£Π‘

АД150Π‘-Π’400-РПМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

1 479 000 Π Π£Π‘

АД200Π‘-Π’400-РПМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

1 775 000 Π Π£Π‘

АД250Π‘-Π’400-РПМ25

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку

Π Π•Π¨Π•ΠΠ˜Π― Π”Π›Π― Π‘ΠŸΠ•Π¦ΠΠ’Π’ΠžΠ’Π ΠΠΠ‘ΠŸΠžΠ Π’Π

Π‘Π°Π»Π°Π·ΠΊΠΈ для Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π½Ρ‹ΠΉ Π±Π°ΠΊ

Выносной ΠΏΡƒΠ»ΡŒΡ‚

Выносной Π³Π»ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒ ΠΈ/ΠΈΠ»ΠΈ Ρ€Π°Π΄ΠΈΠ°Ρ‚ΠΎΡ€

Π Π•Π¨Π•ΠΠ˜Π― Π”Π›Π― ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΠΌΠΎΠ² ΠΈ ΠΊΠΎΡ‚Ρ‚Π΅Π΄ΠΆΠ΅ΠΉ

Π”Π“Π£ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠ³ΠΎ исполнСния

Мобильная станция Π½Π° ΠΏΡ€ΠΈΡ†Π΅ΠΏΠ΅

Π­Π½Π΅Ρ€Π³ΠΎ снабТСниС посСлков

Выносной Π³Π»ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒ ΠΈ/ΠΈΠ»ΠΈ Ρ€Π°Π΄ΠΈΠ°Ρ‚ΠΎΡ€

Π Π•Π¨Π•ΠΠ˜Π― Π”Π›Π― Π Π–Π”

Выносной ΠΏΡƒΠ»ΡŒΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

КолСса для пСрСкатывания

Для ΠΏΡƒΡ‚Π΅Π²ΠΎΠ³ΠΎ инструмСнта

ВыносноС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° C# β€” Π±Π»ΠΎΠ³ .

NET

Π€ΠΈΠ»ΠΈΠΏΠΏ ΠšΠ°Ρ€Ρ‚Π΅Ρ€

29 апрСля 2020 Π³. 108 1

ΠœΡ‹ Ρ€Π°Π΄Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Source Generators β€” Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ компилятора C#, которая позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ C# ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ исходныС Ρ„Π°ΠΉΠ»Ρ‹ C#, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ. Π­Ρ‚ΠΎ дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ исходного ΠΊΠΎΠ΄Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ исходного ΠΊΠΎΠ΄Π°, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ послСднюю ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ .NET 5 ΠΈ послСднюю ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Visual Studio. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Для создания Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π° Π² настоящСС врСмя трСбуСтся Visual Studio. Π­Ρ‚ΠΎ измСнится Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии .NET 5.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ источников?

Если Π²Ρ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ слСдили Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠΌ ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, связанным с языком ΠΈ компилятором C#, Ρ‚ΠΎ, скорСС всСго, Π²Ρ‹ прямо сСйчас ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚Π΅: Β«Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π°Β». Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π° β€” это Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСтся Π²ΠΎ врСмя компиляции ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для создания Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ вмСстС с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π° β€” это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ C# ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Π²Π΅ основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  1. Π˜Π·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Compilation , ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ вСсь ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с синтаксисом ΠΈ сСмантичСскими модСлями для ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΈ соврСмСнныС Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹.
  2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ исходных Ρ„Π°ΠΉΠ»ΠΎΠ² C#, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Compilation Π² Ρ…ΠΎΠ΄Π΅ компиляции. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для компиляции Π²ΠΎ врСмя компиляции ΠΊΠΎΠ΄Π°.

Π’ сочСтании эти Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ источников Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ со всСми Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ компилятор создаСт Π²ΠΎ врСмя компиляции, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ C# ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ‚Ρƒ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π²Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…! Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Roslyn Analyzers, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… исходного ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ ΠΎΠ± Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ C#.

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ этап компиляции, прСдставлСнный Π½ΠΈΠΆΠ΅:

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π° β€” это сборка .NET Standard 2.0, загруТаСмая компилятором вмСстС с Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² срСдах, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ .NET Standard.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ источников, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сцСнарии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сцСнариСв, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π²Ρ‹Π³ΠΎΠ΄Ρƒ ΠΈΠ· Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π°

НаиболСС Π²Π°ΠΆΠ½Ρ‹ΠΌ аспСктом Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π° являСтся Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΠ· сСбя прСдставляСт, Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

БСгодня сущСствуСт Ρ‚Ρ€ΠΈ основных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ созданию ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ΄Π° Π½Π° основС этого Π°Π½Π°Π»ΠΈΠ·Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ соврСмСнными тСхнологиями: ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ врСмя выполнСния, объСдинСниС IL ΠΈ ΠΆΠΎΠ½Π³Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ MSBuild. Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ.

ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ врСмя выполнСния β€” это мощная тСхнология, которая Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​в .NET ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ. БущСствуСт бСсчислСнноС мноТСство сцСнариСв Π΅Π³ΠΎ использования. ΠžΡ‡Π΅Π½ΡŒ распространСнный сцСнарий β€” Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ запускС прилоТСния ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ для создания Π²Π΅Ρ‰Π΅ΠΉ.

НапримСр, ASP.NET Core ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС вашСй Π²Π΅Π±-слуТбы для обнаруТСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π²Π°ΠΌΠΈ конструкций, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° ΠΌΠΎΠ³Π»Π° Β«ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΒ» Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΈ Π±Ρ€ΠΈΡ‚Π²Π΅Π½Π½Ρ‹Π΅ страницы. Π₯отя это позволяСт Π²Π°ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ простой ΠΊΠΎΠ΄ с ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ абстракциями, это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ сниТСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²ΠΎ врСмя выполнСния: ΠΊΠΎΠ³Π΄Π° ваш Π²Π΅Π±-сСрвис ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅, ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ запросы, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ вСсь ΠΊΠΎΠ΄ отраТСния Π²ΠΎ врСмя выполнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ вашСм ΠΊΠΎΠ΄Π΅. Π‘Π΅Π³! Π₯отя это сниТСниС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ являСтся ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ, это своСго Ρ€ΠΎΠ΄Π° фиксированная ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² своСм собствСнном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

ΠŸΡ€ΠΈ использовании Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π° этап обнаруТСния ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΏΡ€ΠΈ запускС ΠΌΠΎΠΆΠ΅Ρ‚ вмСсто этого ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π²ΠΎ врСмя компиляции ΠΏΡƒΡ‚Π΅ΠΌ Π°Π½Π°Π»ΠΈΠ·Π° исходного ΠΊΠΎΠ΄Π° ΠΈ Π²Ρ‹Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠ΄Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ для Β«ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΒ» вашСго прилоТСния. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π±ΠΎΠ»Π΅Π΅ быстрому запуску, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ дСйствиС, происходящСС сСгодня Π²ΠΎ врСмя выполнСния, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пСрСнСсСно Π²ΠΎ врСмя компиляции.

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ способами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²ΠΎ врСмя выполнСния для обнаруТСния Ρ‚ΠΈΠΏΠΎΠ². НСкоторыС сцСнарии Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π²Ρ‹Π·ΠΎΠ² Π·Π°Π΄Π°Ρ‡ΠΈ MSBuild C# (Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ CSC) нСсколько Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· компиляции. Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сСбС ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Π²Ρ‹Π·ΠΎΠ² компилятора Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π° влияСт Π½Π° ΠΎΠ±Ρ‰Π΅Π΅ врСмя, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для сборки вашСго прилоТСния! ΠœΡ‹ ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ нСобходимости ΠΆΠΎΠ½Π³Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ MSBuild, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСимущСства Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ инструмСнтам Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π½ΡƒΠΆΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ абстракции.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°, β€” ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ использования Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… API со «строковой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ ASP.NET Core ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ ΠΈ Π±Ρ€ΠΈΡ‚Π²Π΅Π½Π½Ρ‹ΠΌΠΈ страницами. Π‘ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ исходного ΠΊΠΎΠ΄Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°, Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ строки Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π΄Π΅Ρ‚Π°Π»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции. Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ количСство случаСв, ΠΊΠΎΠ³Π΄Π° ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΉ строковый Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ запрос Π½Π΅ достигаСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ уточняСм API ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ большС ΠΎΠΏΡ‹Ρ‚Π° Π² написании Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π°, ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ станСт ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ большС сцСнариСв. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈΠΌ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°, Ссли это ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ ΠΈΡ… основныС сцСнарии.

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΠΈ компиляция с ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (AOT)

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° характСристика Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ основныС Π±Π°Ρ€ΡŒΠ΅Ρ€Ρ‹ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ компиляции Π½Π° основС ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΈ AOT (с ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ). МногиС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-Π²Ρ‹Π΄Π°Ρ‡Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ System.Text.Json , System.Text.RegularExpressions , ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, ΠΊΠ°ΠΊ ASP.NET Core ΠΈ WPF, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈ/ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°ΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠΊΠΎΠ΄ Π²ΠΎ врСмя выполнСния.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² NuGet Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для обнаруТСния Ρ‚ΠΈΠΏΠΎΠ² Π²ΠΎ врСмя выполнСния. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ этих ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ .NET, поэтому это сильно влияСт Π½Π° Β«ΡΠ²ΡΠ·Ρ‹Π²Π°Π΅ΠΌΠΎΡΡ‚ΡŒΒ» ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ вашСго ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ компилятора AOT. ΠœΡ‹ с Π½Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΆΠ΄Π΅ΠΌ совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с нашим Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ сообщСством OSS, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ эти ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ экосистСму .NET.

Hello World, вСрсия Source Generator

ВсС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π°, упомянутыС Ρ€Π°Π½Π΅Π΅, довольно слоТны. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΎΡ‡Π΅Π½ΡŒ простой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ понадобятся для написания собствСнного Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π°.

ЦСль состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ²ΡˆΠΈΠ΅ этот Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π°, всСгда ΠΈΠΌΠ΅Π»ΠΈ доступ ΠΊ друТСствСнному ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ Β«Hello WorldΒ» ΠΈ ΠΊΠΎ всСм синтаксичСским Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌ, доступным Π²ΠΎ врСмя компиляции. Они ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‚Π°ΠΊ:

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΡ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упростим Π½Π°Ρ‡Π°Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с инструмСнтами с шаблонами. А ΠΏΠΎΠΊΠ° Π²ΠΎΡ‚ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ:

1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ .NET Standard, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ этого являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ NuGet, ΠΈ это зависит ΠΎΡ‚ Π±ΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°.

2. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ создайтС Ρ„Π°ΠΉΠ» C#, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½ ваш собствСнный Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

. Π’Π°ΠΌ потрСбуСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Microsoft.CodeAnalysis.Generator ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс Microsoft.CodeAnalysis.ISourceGenerator .

3. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ сгСнСрированный исходный ΠΊΠΎΠ΄!

4. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² качСствС Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр Π² LangVersionΒ Π² Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Если Π²Ρ‹ Ρ€Π°Π½Π΅Π΅ писали Roslyn Analyzers, ΠΎΠΏΡ‹Ρ‚ локальной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ.

Когда Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ свой ΠΊΠΎΠ΄ Π² Visual Studio, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ сгСнСрированный ΠΊΠΎΠ΄ доступСн для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ доступ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ Π²Ρ‹ создали Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’ настоящСС врСмя Π²Π°ΠΌ потрСбуСтся ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Visual Studio, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ IntelliSense ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ошибок с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π½Π½Π΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° инструмСнтов

Π‘ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ исходного ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС Π²Π΅Ρ‰Π΅ΠΉ, Ρ‡Π΅ΠΌ просто Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:

  • АвтоматичСски Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйсы для классов с ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹ΠΌ ΠΊ Π½ΠΈΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ INotifyPropertyChanged
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² настроСк Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· SourceGeneratorContext
  • БСриализация Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· классов Π² строки JSON
  • ΠΈ Ρ‚. Π΄.

Π’ ΠŸΠΎΠ²Π°Ρ€Π΅Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходных тСкстов Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌΠΈ ΠΊ ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρƒ нас Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², доступных Π½Π° GitHub, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π΄ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡ‹Ρ‚Π° создания ΠΈ использования Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π° Π² Ρ‚Π°ΠΊΠΈΡ… инструмСнтах, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ шаблонов, обСспСчСниС ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ IntelliSense ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ скорости ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Visual Studio ΠΏΡ€ΠΈ создании исходных Ρ„Π°ΠΉΠ»ΠΎΠ².

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° находятся Π² ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅ Π² этом сообщСнии, это пСрвая ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ вСрсия Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π°. ЦСль выпуска этой ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии β€” ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π΄Π°Ρ‚ΡŒ Π½Π°ΠΌ ΠΎΡ‚Π·Ρ‹Π² ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Π΅Π³ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΈ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. ΠžΡ‚ ΠΏΡ€Π΅Π²ΡŒΡŽ ΠΊ ΠΏΡ€Π΅Π²ΡŒΡŽ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ измСнСния Π² API ΠΈ характСристиках Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходников. ΠœΡ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Ρ‹ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ GA с C# 9., Π° ΠΏΠΎΠ·ΠΆΠ΅ Π² этом Π³ΠΎΠ΄Ρƒ ΠΌΡ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Ρ‹ ΡΡ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ API ΠΈ прСдоставляСмыС ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠžΠ±Ρ€Π°Ρ‰Π°Π΅ΠΌΡΡ ΠΊΠΎ всСм Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ C#: ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅!

Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° .NET, написанная Π½Π° C#, самоС врСмя ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, подходят Π»ΠΈ ΠΎΠ½ΠΈ Π²Π°ΠΌ. Π•ΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ шанс, Ρ‡Ρ‚ΠΎ Ссли ваша Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€ΠΎΠ΄Π΅ Π²Ρ‹ΠΈΠ³Ρ€Π°Π΅Ρ‚Π΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ с этим, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹:

  • ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ API Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π° ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ возмоТности
  • ПособиС ΠΏΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ исходного ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ сцСнарии

Π”Π°ΠΉΡ‚Π΅ Π½Π°ΠΌ свой ΠΎΡ‚Π·Ρ‹Π² ΠΈ сообщитС Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ! ΠœΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ, ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ мнСнию, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄, ΠΈ Ρ‡Ρ‚ΠΎ, ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ мнСнию, отсутствуСт ΠΈΠ»ΠΈ нуТдаСтся Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ.

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ дальшС с Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ исходного ΠΊΠΎΠ΄Π°

Π­Ρ‚ΠΎΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр. Π’ Visual Studio Π΅ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ возмоТности рСдактирования, Π½ΠΎ это Π½Π΅ Ρ‚ΠΎ качСство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π±Ρ‹ сСйчас Π½Π°Π·Π²Π°Π»ΠΈ «качСством 1.0Β». ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠ², ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ остановимся Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ. Одной ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… областСй внимания Π΄ΠΎ выпуска .NET 5 Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ возмоТностСй рСдактирования для Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ API с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ² ΠΈ нашСго сообщСства OSS.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ обСспСчим Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΎΠΏΡ‹Ρ‚ распространСния Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π°. Π’ настоящСС врСмя ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΈΡ… Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ вмСстС с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ. Π’ настоящСС врСмя ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ инфраструктуру Analyzer для настройки инструмСнтов Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список вопросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ, ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… людСй. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ этот список Π½ΠΎΠ²Ρ‹ΠΌΠΈ вопросами ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… поступлСния.

Π§Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ мСтапрограммирования, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ макросы ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ компилятора?

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° β€” это Ρ„ΠΎΡ€ΠΌΠ° мСтапрограммирования, поэтому СстСствСнно ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ функциями Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с макросами. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ _ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ_ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ΄. ΠœΡ‹ рассматриваСм это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ сущСствСнноС прСимущСство, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ прСдсказуСмым Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π° самом Π΄Π΅Π»Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π²ΠΎ врСмя выполнСния. ΠœΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ пСрСписываниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° β€” ΠΎΡ‡Π΅Π½ΡŒ мощная функция, Π½ΠΎ вряд Π»ΠΈ ΠΌΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ исходного ΠΊΠΎΠ΄Π° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это.

Как Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ с поставщиками Ρ‚ΠΈΠΏΠΎΠ² Π² F#?

Если Π²Ρ‹ программист F# (ΠΈΠ»ΠΈ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с этим языком), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎ поставщиках Ρ‚ΠΈΠΏΠΎΠ². Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° Π±Ρ‹Π»ΠΈ частично Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½Ρ‹ поставщиками Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ ΠΈΡ…. ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ поставщики Ρ‚ΠΈΠΏΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ собствСнно языка F# ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹, свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² памяти Π½Π° основС внСшнСго источника. Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° β€” это функция компилятора, которая Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ исходный ΠΊΠΎΠ΄ C#, ΠΏΡ€ΠΈ нСобходимости с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, создаСт исходный ΠΊΠΎΠ΄ C# для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ.

Π”ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ я ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ вСсь ΠΊΠΎΠ΄ отраТСния?

НСт! ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ β€” нСвСроятно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ инструмСнт. РСфлСксия Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ создаСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Β«ΡΠ²ΡΠ·Ρ‹Π²Π°Π΅ΠΌΠΎΡΡ‚ΡŒΡŽΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сцСнариях. ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ, подходят Π»ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° для вашСго сцСнария.

Π§Π΅ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ источников ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ²?

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ функциями компилятора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ компиляции. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Π²Ρ‹Π΄Π°ΡŽΡ‚ диагностичСскиС Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для связи с исправлСниСм ΠΊΠΎΠ΄Π°. Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ исходный ΠΊΠΎΠ΄ C#, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ добавляСтся Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ. Π•ΡΡ‚ΡŒ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, обсуТдаСмых Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ/ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π°?

НСт. Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠœΡ‹ Π½Π΅ собираСмся Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ… ΠΊ этому. Они ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π΅Π΅ исходныС Ρ„Π°ΠΉΠ»Ρ‹ C#.

Когда Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° пСрСстанут Π±Ρ‹Ρ‚ΡŒ доступны для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра?

ΠœΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° с C# 9. Однако, Ссли ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ воврСмя, ΠΌΡ‹ оставим ΠΈΡ… Π² ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии ΠΈ обСспСчим, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ согласились Π½Π° ΠΈΡ… использованиС.

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ TFM Π² Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ источников?

ВСхничСски Π΄Π°. Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° β€” это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ .NET Standard 2.0, ΠΈ, ΠΊΠ°ΠΊ ΠΈ Π² любом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ TFM. Однако сСгодня ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π² ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ .NET Standard 2.0.

Π‘ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° доступны для Visual Basic ΠΈΠ»ΠΈ F#?

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° Π² настоящСС врСмя ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ C#. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это пСрвая ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ вСрсия, Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ настоящСй ΠΈ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ вСрсиСй. Π’ настоящСС врСмя ΠΌΡ‹ Π½Π΅ собираСмся Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° Π² Visual Basic. Если Π²Ρ‹ ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ F# ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эта функция Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ поиск ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ языка F#.

Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ Π»ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ совмСстимости для Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ?

Π­Ρ‚ΠΎ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² настоящСС врСмя VB ΠΈ F# Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°, Π°Π²Ρ‚ΠΎΡ€Π°ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ своих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌ трСбовался Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π°. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΅ΡΡ‚ΡŒ запасныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ для отраТСния Π²ΠΎ врСмя выполнСния ΠΈ/ΠΈΠ»ΠΈ выдСлСния отраТСния. Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°. ΠœΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π° Π½Π΅ Π·Π°ΠΌΠ΅Π½Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… возмоТностСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² C#.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ я Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ IntelliSense для сгСнСрированного ΠΊΠΎΠ΄Π°? ΠŸΠΎΡ‡Π΅ΠΌΡƒ Visual Studio сообщаСт ΠΎΠ± ошибкС Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ сборкС?

Π’Π°ΠΌ потрСбуСтся ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Visual Studio послС создания Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ошибки исчСзли, Π° IntelliSense появился для сгСнСрированного исходного ΠΊΠΎΠ΄Π°. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ это сдСлаСтС, всС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’ настоящСС врСмя интСграция Visual Studio находится Π½Π° ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π½Π½Π΅ΠΉ стадии. Π­Ρ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ измСнится Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, поэтому Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Visual Studio.

МоТно Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ сгСнСрированному исходному ΠΊΠΎΠ΄Ρƒ Π² Visual Studio?

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ сгСнСрированного исходного ΠΊΠΎΠ΄Π° Π² Visual Studio. На этом Ρ€Π°Π½Π½Π΅ΠΌ этапС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра ΠΎΠ½ Π΅Ρ‰Π΅ Π½Π΅ поддСрТиваСтся.

Как ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ собствСнный Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ источников?

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² NuGet, ΠΊΠ°ΠΊ сСгодня Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹. По сути, ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Ρƒ ΠΆΠ΅ «сантСхнику», Ρ‡Ρ‚ΠΎ ΠΈ Анализаторы. Если Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ поставляли Анализатор, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π°.

Π‘ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°, созданныС Microsoft?

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Π΄Π°. Но это всС Π΅Ρ‰Π΅ пСрвая ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ вСрсия Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ сцСнариям. Π’ настоящСС врСмя Π½Π΅Ρ‚ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄ΡƒΡ‚ доступны Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°, созданныС Microsoft.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Preview LangVersion для использования Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π°?

Π₯отя Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° тСхничСски Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ языка C#, ΠΎΠ½ΠΈ находятся Π² ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π°, ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра языка для компилятора C#.

Β 

Π£Π΄Π°Ρ‡ΠΈ ΠΈ счастливого создания исходников!

Руководство ΠΏΠΎ .NET | ΠŸΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΎΠΉ ΠΎΠΏΡ‹Ρ‚ / Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°

ПослСднСС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ пятница, 30 сСнтября 2022 Π³.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°?

id=»ΠΊΠ°ΠΊΠΈΠ΅-Π΅ΡΡ‚ΡŒ-источники-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹»>

Богласно ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π° являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ SDK ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ компилятора . NET («Roslyn»), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ исходныС Ρ„Π°ΠΉΠ»Ρ‹ Π²ΠΎ врСмя компиляции ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ эти Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ компиляции.

Π§Ρ‚ΠΎΠ±Ρ‹ это стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ компиляции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит вСсь ΠΊΠΎΠ΄, написанный Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ. НаиболСС распространСнным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ использования Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π° являСтся Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° Π²ΠΎ врСмя компиляции, послС Ρ‡Π΅Π³ΠΎ гСнСрируСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ добавляСтся ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ компиляции. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°Π·Ρƒ обнаруТСния ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° с запуска Π½Π° врСмя компиляции, сократив врСмя запуска. Π”Ρ€ΡƒΠ³ΠΎΠ΅ использованиС Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ASP.NET Core, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ с созданиСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… строк Π² качСствС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΉ строковый Π»ΠΈΡ‚Π΅Ρ€Π°Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ запрос Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.

На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ происходит Π²ΠΎ врСмя компиляции, Ссли Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°.

ИспользованиС Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство прСимущСств, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ Π²ΠΎ врСмя компиляции. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ этому ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ являСтся ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ врСмя выполнСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ врСмя запуска прилоТСния ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя запуска. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ прСимущСством являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ошибки Π²ΠΎ врСмя компиляции, Π° Π½Π΅ Π²ΠΎ врСмя выполнСния.

Настройка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

id=»project-setup»>

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, содСрТащиС Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ классов, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… настроСк. Π’ΠΎΡ‚ нСсколько основных шагов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для настройки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π°.

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ классов с Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ .NET Standard 2.0
  2. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ NuGet Microsoft.CodeAnalysis.Analyzers ΠΈ Microsoft. CodeAnalysis.CSharp

    Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° послС ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… шагов:

     <ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Sdk="Microsoft.NET.Sdk">
    <Π“Ρ€ΡƒΠΏΠΏΠ° свойств>
        netstandard2.0
    
    <Π³Ρ€ΡƒΠΏΠΏΠ° элСмСнтов>
        
        
        всС
        срСда выполнСния; ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ; Ρ€ΠΎΠ΄Π½ΠΎΠΉ; Ρ„Π°ΠΉΠ»Ρ‹ содСрТимого; Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹; buildtransitive
        
    
    
     
  3. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ExampleSourceGenerator.cs , Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ интСрфСйс Microsoft.CodeAnalysis.ISourceGenerator , ΠΈ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Microsoft.CodeAnalysis.GeneratorAttribute

 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Microsoft.CodeAnalysis;
пространство ΠΈΠΌΠ΅Π½ SourceGenerator
{
    [Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€]
    ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ класс ExampleSourceGenerator: ISourceGenerator
    {
        public void Execute (контСкст GeneratorExecutionContext)
        {
            // Π—Π΄Π΅ΡΡŒ ΠΈΠ΄Π΅Ρ‚ гСнСрация ΠΊΠΎΠ΄Π°
        }
        public void Initialize (контСкст GeneratorInitializationContext)
        {
            // Если трСбуСтся, здСсь ΠΈΠ΄Π΅Ρ‚ инициализация
        }
    }
}
 

ПослС этих Ρ‚Ρ€Π΅Ρ… шагов ваш Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходников настроСн ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ с Π½ΠΈΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Execute . РСализация ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Initialize Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ всСгда трСбуСтся ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходный Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€.

ΠžΡ‚Π»Π°Π΄ΠΊΠ°

id=»ΠΎΡ‚Π»Π°Π΄ΠΊΠ°»>

Если Π²Ρ‹ использовали Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ исходного ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ довольно слоТно ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΎΠ½ Π²Ρ‹Π΄Π°Π΅Ρ‚.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Visual Studio ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π° послС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… простых шагов:

  1. УстановитС .NET Compiler Platform SDK

    Π’ установщикС Visual Studio Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Visual Studio, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π°Β», ΠΈ установитС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Visual Studio Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π Π°Π±ΠΎΡ‡ΠΈΠ΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈΒ» > Β«Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Ρ‹ инструмСнтов».

  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ свойство IsRoslynComponent Π² Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° исходного Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

     <ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Sdk="Microsoft.NET.Sdk">
        <Π“Ρ€ΡƒΠΏΠΏΠ° свойств>
            netstandard2. 0
            true
            Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ
            послСдняя
        
        <Π³Ρ€ΡƒΠΏΠΏΠ° элСмСнтов>
            
            
                всС
                срСда выполнСния; ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ; Ρ€ΠΎΠ΄Π½ΠΎΠΉ; Ρ„Π°ΠΉΠ»Ρ‹ содСрТимого; Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹; buildtransitive
            
        
    
     
  3. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ссылку Π½Π° исходный Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ (Ссли ΠΎΠ½ Π΅Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½):

     <Π“Ρ€ΡƒΠΏΠΏΠ° элСмСнтов>
        
    
     
  4. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

    1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, содСрТащий исходный Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€
    2. НаТмитС Бвойства
    3. НаТмитС ΠžΡ‚Π»Π°Π΄ΠΊΠ°
    4. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ запуска ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ
    5. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ
    6. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ Roslyn Component
    7. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ· списка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²
    8. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ : ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅
    9. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Visual Studio ΠΈ установитС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π° Π² качСствС запускаСмого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π’ ΠΊΠΎΠ½Ρ†Π΅ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ останова Π² ΠΊΠΎΠ΄ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π°, запуститС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ бСспокоили вас Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΈΠ»ΠΈ просто ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ваш Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *