Комментарии 20
В моей организации — как, наверное, и во многих других — среда разработки Microsoft Visual Studio оказалась под запретом
Я, наверное, скажу какую-то глупость, но вот эти прекрасные люди, которые запретили вам Студию... по-хорошему надо, наверное, у них требовать/спрашивать теперь инструменты для работы, не?
А мне понравилось, что vsc зато можно юзать ¯\_(ツ)_/¯
А как выбирают что можно, а что нельзя? Святой рандом?
PS: по содержимому статьи вопросов нет - автор молодец :)
Аргумент очень просто, vs code это открытый исходный код.
А дальше начинается тупик, если уже и пользоваться этим преимуществом, то копировать репозитарий, проверять исходники, чистить телеметрию, вдруг найдут и собирать из исходников.
А потом возникает вопрос исходников плагинов и их сборки.
Никто не даст на это деньги конечно, но с точки зрения СБ они выполнили свою роль и можно получать премию за искоренение проприетарной VS.
Так они ведь дадут! А работать-то тебе..
Логика запрета студии не очень понятна. Если из соображений безопасности, то и vscode не то чтобы хорошо. Там всякая телеметрия собирается майкрософтом. И в IDE и в плагинах. Насколько оно полноценно отключаемо, не очень понятно.
Тогда уж используйте vscodium
Идеальное решение это Notepad++.
Ну а если отбросить шутки, то запрет на райдер и студию конечно очень странный. Тем более, что на уровне предприятия легко обрубается телеметрия или же поднимается корпоративный РКН. Тут, у автора, видимо речь идет о демонстративных успехах по искоренению буржуинского софта из государственной сферы... Что ж, можем только посочувствовать автору. Но + в карму за плагин.
@a-yumashin это расширение опубликовано в visual studio marketplace? был бы рад поставить 5 звезд там.
Увы, не смог этого сделать. Для публикации расширения в VS Code Marketplace требуется, как я понял, Publisher Account, который тесно связан с учётной записью в Azure DevOps - и вот эту самую учётку я не смог создать (бан по локации, похоже). Может быть и есть какие-то обходные пути, но я их не нашёл.
Кажется, в статье не раскрыт важный технический момент - расширения предполагается писать на TypeScript насколько я помню, а у Вас почти весь код на C#. Как оно взаимодействует с приложением? Или, например, как рисуется UI - с помощью средств на TS или есть возможность получить нечто вроде DC и рисовать напрямую из C# стандартными средствами по типу System.Drawing? Мне кажется это было бы интересно раскрыть в статье или хотя бы комментарии.
Ну, всего в статье не охватишь, не хотелось превращать её в лонгрид, от которого все будут шарахаться :) Кому интересны детали, не изложенные в статье - можно почитать README.md на Гитхабе (их там целых два - "общий" и отдельно про расширение). Но мне несложно ответить на Ваши вопросы и здесь: На C# написан сам дизайнер (скриншот которого вы видите в этой статье), а VSIX-расширение написано на TypeScript (по-другому, собственно, и не получится). Расширение общается с запущенной копией дизайнера через Named Pipes; если же таковой не найдено, то расширение сначала запустит дизайнер через child_process.spawn(). Насчёт того, как рисуется UI: никакой самодеятельности - всё делегировано стандартным механизмам от Microsoft, используемым, в том числе, и в штатном дизайнере Студии. Каждый WinForms-контрол имеет "дизайнер", назначенный с помощью атрибута DesignerAttribute. Например, у контрола DateTimePicker это System.Windows.Forms.Design.DateTimePickerDesigner. Как правило, это наследник типа ControlDesigner. Задача этих "дизайнеров" - адаптировать контрол для отображения на DesignSurface. Так что рисованием "по типу System.Drawing" заниматься не приходится. Можно, наверное, написать отдельную статью про то, как тут всё устроено "под капотом". Если это будет интересно многим - то могу заняться; истины "в последней инстанции" не обещаю (т.к. всё делалось, в основном, экспериментальным путём и с помощью изучения исходников), но на глубину собственного понимания - копнуть смогу.
VS Code задумывали как кросплатформ IDE странно туда тащить WinForms дизайнер. И странно видеть что кто то сегодня использует старичка WinForms.
а есть что то такое же производительное и по ресурсом для .net?
За бугром вон Кобол искоренить не могут до сих пор - вот это действительно старичок! Так что WinForms, можно сказать, ещё пацан. На нём, однако, тоже много чего написано. В первых двух абзацах я описал сценарий, в котором "тащить" WinForms дизайнер в VS Code таки имеет смысл. Не для всех этот сценарий актуален - ну и хорошо, те могут просто пролистать статью :)
Запретили использовать студию? Какая то надуманная причина делать велосипед. Я бы не взялся. Бегите оттуда)
Винформс был придуман когда размеры экранов у всех были примерно одинаковые. Сегодня вашему приложению может достаться как старенький Моник, так и современный с большой плотностью пикселей.
Design Surface в visual studio имеет много возможностей по расширению. Скорее всего в вашей реализации они сломаны.
В далеком 2007 я работал в гос учреждении и мы там тоже писали многие проекты на WinForms. Интересно как у них сейчас там с запретами.

Самописный дизайнер форм (WinForms) для VS Code