Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: avc от 27-03-2024, 19:08:04

Название: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 27-03-2024, 19:08:04
Эта тема - не вопрос. Просто делюсь опытом.
Итак Autodesk внял мольбам и дал возможность программировать на современном C#. Но эта хорошая затея вылилась в большую головную боль. И будет теперь болью надолго.
Главная проблема: Microsoft не довели до ума этот Net8 и потеряли уйму совершенно необходимой функциональности. В эту версию не встроена работа с реестром Windows, c железом (WMI), с данными (SQL) и так далее. Отчасти это решается закачкой отдельных библиотек (NuGet). И вот тут начинается свистопляска. У библиотек этих куча несовместимых версий. В сам AutoCAD как оказалось входят старые версии и надо компилировать именно под них. Несколько версий одной библиотеки в один AutoCAD не загрузишь и если разные плагины на разные версии скомпилированы, то это не просто сбой, это фатал AutoCAD. А завтра Autodesk обновит эти библиотеки и все плагины надо будет перекомпилировать. В общем стараниями Microsoft, мы погрузились в темные древние времена вечно несовместимых ActiveX...
Теперь по порядку.
Старые проекты не скомпилировать под Net8. Надо создавать новый проект. Есть плагин к VS для миграции. Но он не работает. Он не перененосит настройки из AssemblyInfo, теряет все ресурсы форм и компонентов WinForms, не подгружает недостающие библиотеки, забытые Microsoft. Создаем проект с ноля - так быстрее.
Ищем нужные NuGet пакеты. Из того что у меня используется, оказалось что System.Managment уже есть в AutoCAD 2025. Но (!) он там старый, версия 6.0. Нужно именно 6.0 подключать к проекту, иначе будет фатал при попытке принудительной загрузки нового 8.0 или при инициализации классов его использующих (если не пытаться загружать dll принудительно).
Далее из всех этих NuGet надо вытащить нужные dll и доставить их всем пользователям плагинов!! Теперь ваш плагин это сложная составная программа, а не один файл. Увы. Придется делать инсталлятор, если у вас его еще нет. Вытащить dll не просто. У этих NuGet нет свойства "копировать в целевую папку". И вообще с удобным визуальным интерфейсом настроек проекта Microsoft распрощались. Теперь все полезные настройки надо долго гуглить и вставлять в жуткий html-файл проекта. Брррр. Настройка, чтоб dll копировались в папку плагина:
Код - XML [Выбрать]
  1. <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

Теперь нам надо у пользователя загрузить эти dll. Но в папке плагина Автокад их не находит. Либо надо требовать права админа инсталлтору и закидывать в системные папки (я пробовал прям в папку AutoCAD - это работает). Либо в коде прописать принудительную загрузку. В Initialize добавляем:
Код - C# [Выбрать]
  1.         if (CadApp.Version.Major >= 25) // Net8
  2.         {
  3.           Assembly.LoadFrom(Path.Combine(path, "System.CodeDom.dll"));
  4.           Assembly.LoadFrom(Path.Combine(path, "System.Data.SqlClient.dll"));
  5.           Assembly.LoadFrom(Path.Combine(path, "System.Management.dll"));
  6.         }
А вот например sni.dll загружать почему-то нельзя. Сам загрузится из System.Data.SqlClient.dll. Многие пишут что надо менять System.Data.SqlClient на Microsoft.Data.SqlClient. Но нет, там совсем другие классы и методы, старый код не компилируется.

Далее у нас получился проект без версии. Добавляем в него наш старый AssemblyInfo как ссылку и опять лезем в конфиг проекта:
Код - XML [Выбрать]
  1.     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  2.     <GenerateAssemblyVersionAttribute>true</GenerateAssemblyVersionAttribute>
Без второй строчки (о которой никто не пишет!!) версия dll не будет видна в проводнике Windows.

Теперь надо еще сам код редактировать. К запуску процессов добавляем UseShellExecute = true:
Код - C# [Выбрать]
  1. #if NET8_0_OR_GREATER
  2.         Process.Start(new ProcessStartInfo(myexe) { UseShellExecute = true });
  3. #else
  4.         Process.Start(myexe);
  5. #endif

Еще у меня появился конфликт RegistryKey с автокадовским API
Код - C# [Выбрать]
  1. #if NET8_0_OR_GREATER
  2. using RegistryKey = Microsoft.Win32.RegistryKey;
  3. #endif

VS завалила меня бредовыми предупреждениями. Заблокировал тоже в файле проекта:
Код - XML [Выбрать]
  1.     <NoWarn>
  2.                 1701;1702;CA1416;SYSLIB0021;SYSLIB0022;SYSLIB0011;SYSLIB0014
  3.         </NoWarn>

Еще шаманил с ресурсами. Итого начало файла проекта получилось таким:
Код - XML [Выбрать]
  1. <Project Sdk="Microsoft.NET.Sdk">
  2.   <PropertyGroup>
  3.     <TargetFramework>net8.0-windows</TargetFramework>
  4.         <RuntimeIdentifier>win-x64</RuntimeIdentifier>
  5.     <OutputType>Library</OutputType>
  6.     <RootNamespace>AVC</RootNamespace>
  7.     <AssemblyName>AVC_Plugin_Ac25</AssemblyName>
  8.     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  9.         <GenerateAssemblyVersionAttribute>true</GenerateAssemblyVersionAttribute>
  10.         <UseWindowsForms>true</UseWindowsForms>
  11.     <UseWPF>true</UseWPF>
  12.     <ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
  13.         <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
  14.         <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
  15.         <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
  16.     <GenerateResourceWarnOnBinaryFormatterUse>false</GenerateResourceWarnOnBinaryFormatterUse>
  17.   </PropertyGroup>
  18.   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  19.     <OutputPath>C:\Users\shurik\AppData\Roaming\Autodesk\ApplicationPlugins\AVC_Pro.bundle\Contents\Windows\</OutputPath>
  20.     <DefineConstants>DEBUG;TRACE;CAD</DefineConstants>
  21.     <LangVersion>preview</LangVersion>
  22.   </PropertyGroup>
  23.   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  24.     <DebugType>none</DebugType>
  25.     <OutputPath>C:\Users\shurik\AppData\Roaming\Autodesk\ApplicationPlugins\AVC_Pro.bundle\Contents\Windows\</OutputPath>
  26.     <DefineConstants>CAD;STOPHACK</DefineConstants>
  27.     <LangVersion>preview</LangVersion>
  28.     <NoWarn>
  29.                 1701;1702;CA1416;SYSLIB0021;SYSLIB0022;SYSLIB0011;SYSLIB0014
  30.         </NoWarn>
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Привалов Дмитрий от 27-03-2024, 22:29:18
Главная проблема: Microsoft не довели до ума этот Net8 и потеряли уйму совершенно необходимой функциональности. В эту версию не встроена работа с реестром Windows, c железом (WMI), с данными (SQL) и так далее.
Формулировка не верная, довела до ума, но под другие задачи.
.NET(.NET Core) это мультиплатформенные решения, которые должны одинаково выполняться на различных ОС. В них оставили только общий функционал для всех платформ.
Не стоит ожидать появления например работу с ActiveX и работу с реестром в .NET
Более того не очень понятно, что в .NET с Winforms, WPF, MAUI и т.д. похоже Microsoft не планирует переносить все на Linux, т.к. они слишком завязаны на Windows.

Для разработки под Windows, .NET менее функционален, чем .NET Framework.
Наверное ветки .NET и .NET Framework будут и далее развиваться параллельно.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Алексей Кулик от 27-03-2024, 23:01:00
Позволю себе немного не согласиться :)
NET6 (на котором я на данный момент сижу), и, подозреваю, NET8 - совершенно другая платформа.
Действительно, многое, что в NET FrameWork было "из коробки", придется доставлять NuGet-пакетами (там не только реестр, но и кодировки файлов, и овердофига чего еще). Насчет совместимости ничего сказать не могу - пока не сталкивался.
Новый проект можно не создавать с нуля, а пробросить связь (Link) на старый проект. Т.е. в одном решении будет сразу два проекта - один под FrameWork, второй под NET8.
Вытаскивать из NuGet ничего не надо. Для предоставления конечным пользователям можно использовать AssemblyResolve в инициализаторе. И выполнять не сборку, а публикацию проекта. Ну или в cspoj руками прописать как ты и сделал:
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
По крайней мере у меня оно работает.
Работу с SQL, возможно, будет иметь смысл переложить на EntityFramework (который вообще положить в отдельную сборку NET Standard 2.0 для совместного использования в NET Framework и NET8). Тогда и с клиентами особо можно не заморачиваться ;)
Версию сборки также можно руками прописать в csproj:
<Version>1.2.3.4</Version>
После этого и в GUI MS VS станет доступным соответствующее поле.
Для использования в проекте WinForms достаточно прописать как и у тебя:
<UseWindowsForms>true</UseWindowsForms>
Для использования WPF - соответственно
<UseWPF>true</UseWPF>
Насчет ресурсов ничего не скажу, пока не требовалось. А ресурсные библиотеки под меню у меня все равно в отдельном проекте болтаются...
---
Согласен, что многое (если не все) непривычно и далеко не всегда очевидно. Но все же решаемо ИМХО :)
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 28-03-2024, 07:34:26
Еще несколько интересных моментов.

Многие боятся, что Net8 не будут работать WinForms. Проверено, работают без всяких модификаций все стандартные и самодельные компоненты. Может со временем, всплывут нюансы, но пока все прекрасно.

Сборки, скомпилированные под Net Framework 4.8 и Net8.0 прекрасно дружат между собой. Для меня это была неожиданность, но AutoCAD 2025 прекрасно запустил мою стартовую dll (которая выбирает какую основную библиотеку запускать), хотя она под 4.8. Более того, я сделал библиотеки с общим кодом и общими ресурсами, компилирую под 4.8, а использую во всех плагинах, включая Net8.0. Компилятор прекрасно такую связь съедает и в рантайме тоже проблем нет. Лишь бы в этих общих сборках не было вызовов тех самых "потерянных" классов.

Еще была веселуха с запуском отладчика. В проекте Net8.0 некуда вписать путь запуска AutoCAD. Нагулил, что в меню Отладка появился пункт "Свойства отладки для проекта...". Он открывает секретный диалог "Профили запуска". Но этого мало. Надо еще догадаться, что в этом диалоге нужно создать новый "профиль" и вот только в нем уже можно будет прописать путь к AutoCAD 2025. Настраивается тяжело, но есть и бонус - теперь переключать запускаемый проект можно из панели инструментов VS, а не только из длинного неудобного контекстного меню проекта.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Алексей Кулик от 28-03-2024, 07:44:03
ИМХО проблема в другом - в ключах запуска acad, насколько я помню, нельзя прописать загрузку dll. И приходится делать scr-файл, который и подсовывать под загрузку
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 28-03-2024, 07:52:03
Версию сборки также можно руками прописать в csproj:
<Version>1.2.3.4</Version>
Вот жеж... этого вообще нигде не находил... Теперь вся настройка скрыта в тайных кодах... Массоны писали Net8.0 ???  :D
Но использовать общий AssemblyInfo все-таки удобнее. В одном месте меняю версию и все проекты перекомпилируется с этим номером.
Просто в инструкциях по переходу пишут, что "AssemblyInfo больше не используется". Так как будто нельзя использовать. Ан нет, можно.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 28-03-2024, 07:55:36
ИМХО проблема в другом - в ключах запуска acad, насколько я помню, нельзя прописать загрузку dll. И приходится делать scr-файл, который и подсовывать под загрузку
Так через .bundle-папку запуск плагинов по любому. В PackageContents.xml указана пусковая dll. Иначе в AppStore не примут.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 28-03-2024, 08:26:40
Формулировка не верная, довела до ума, но под другие задачи.
.NET(.NET Core) это мультиплатформенные решения, которые должны одинаково выполняться на различных ОС. В них оставили только общий функционал для всех платформ.
Не стоит ожидать появления например работу с ActiveX и работу с реестром в .NET
Не соглашусь. Именно, что кастрировали хорошую среду. Часть чисто виндовых функций оставили, часть про...любили. Чем чисто виндовые WinForms лучше чисто виндового реестра? Что мешало эмулировать работу с реестром или WMI под линуксом? Особенно если все исходники есть. Что мешало оставить все эти фичи только для windows-программистов? Хочешь в линукс - не используй реестр. Я уж не говорю про SQL - он то вообще чем провинился? Чистый волюнтаризм.
Насчет что Net Framework останется для винды... Может и так. Хорошо бы. Но есть нехорошие намеки, что его хотят прикрыть. Например, почему-то не дают использовать все новые фичи C#. Похоже принуждают к переходу на net8. Зачем? Закрыть framework? Далее, если Net8 - это чисто для линуксов и экзотики, а для винды - framework остается, то решение внедрять net8 в виндовый AutoCAD очевидная ошибка. Но что-то я подозреваю, что в Autodesk консультировались с Microsoft прежде чем это делать. Вдруг они что-то знают?...
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Привалов Дмитрий от 28-03-2024, 09:46:13
Не соглашусь. Именно, что кастрировали хорошую среду. Часть чисто виндовых функций оставили, часть про...любили. Чем чисто виндовые WinForms лучше чисто виндового реестра?
Некоторые вещи происходят помимо наших желаний.
Intel+Microsoft постепенно теряют лидерство и долю рынка, будут приходить другие решения.
https://rb.ru/story/desktop-os-trends/
https://dzen.ru/a/ZdcTuCkWV1Dz-oUM
Интел слишком долго занималось тратой денег на выкуп собственных акций и не вкладывалась в производство.
Сейчас "срочно" строят и модифицируют фабрики, чтобы попытаться догнать азиатский регион TSMC и Samsung.
https://translated.turbopages.org/proxy_u/en-ru.ru.5ea6af14-66050aca-86b2d2bf-74722d776562/https/www.foxbusiness.com/technology/intel-plans-us-building-spree-thanks-billions-federal-chip-subsidies
"надеется увеличить долю Америки в производстве передовых чипов с 0% до 20% к 2030 году с помощью Закона о ЧИПАХ". Согласитесь очень скромно.

Microsoft на мой взгляд действует не последовательно, часто меняет подходы.
К примеру .NET мультиплатформенный, наштамповали различных GUI, но сопровождать их планируют только под Windows, странно чего хотят добиться и как будут с JAVA конкурировать.

Санкции США в отношении софта странны, они еще больше ведут к снижению доли Microsoft в мире.

Все эти вялотекущие тенденции влияют на глобальный рынок, ведут к большему потребности в мультиплатформенности решений.
это очень медленно происходит. Некоторые привычные и удобные технологии придется оставить в прошлом.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Алексей Кулик от 28-03-2024, 10:33:09
К примеру .NET мультиплатформенный, наштамповали различных GUI, но сопровождать их планируют только под Windows, странно чего хотят добиться и как будут с JAVA конкурировать.
Не совсем так. Есть MAUI, есть Blazor, есть Avalonia. Уверен, что есть и другие варианты.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Привалов Дмитрий от 28-03-2024, 12:15:40
Не совсем так. Есть MAUI, есть Blazor, есть Avalonia. Уверен, что есть и другие варианты.
Blazor для WEB
MAUI есть, Microsoft кроссплатформенность заявляли, но отказались.
Avalonia то что нужно, но не Microsoft
Не видно единого подхода к GUI от Microsoft для .NET

Да, существуют и другие варианты
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Lemieux от 29-03-2024, 08:10:53
Много текста
А сейчас установка плагинов с помощью .bundle перестала работать?
Но я прочитал Ваш текст, мне прям стало интересно и захотелось поработать в AutoCAD 2025.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 29-03-2024, 08:26:33
Нет, почему же. Прекрасно работает автозагрузка плагинов (не установка конечно) через bundle. И прям в описании пакета можно разные библиотеки указать для разных AutoCAD. Или (как у меня) одну загрузочную указать и она уже будет выбирать, какую именно основную библиотеку плагина подгрузить. Все варианты как работали, так и работают.
Старые версии AutoCAD по любому придется поддерживать. Значит использовать в коде можно только те фичи C#, которые поддерживает Net Framework 4.8. Или весь код в сплошные условные компиляции превратиться. Так что не особо то порадовал этот переход на net8. Впрочем это опять умышленная подстава от Microsoft. Могли бы как с прошлыми обновлениями C# - разрешить все фичи хотя бы после ручного редактирования проекта.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Привалов Дмитрий от 29-03-2024, 12:52:22
Впрочем это опять умышленная подстава от Microsoft.
Мне кажется не правильно на этом зацикливаться, т.к. не приведет к решению проблемы.
Прокачка универсального кода .NET8 с помощью отдельных библиотек NuGet до уровня .NET Framework выглядит как костыли.
Нужно попробовать разделить проект на универсальный код .NET8, работающий с AutoCAD и привязанный к Windows (.NET Framework 2.0-4.8) и как-то подгружать и использовать последнее.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Алексей Кулик от 29-03-2024, 14:27:13
Единственный вариант - разделять. Представление отдельно, логика отдельно, работа с кадом - отдельно. Сугубо ИМХО.
Хотя это до ужаса геморройно.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 29-03-2024, 14:49:42
Непойму в чем смысл делить на части? Все равно все dll надо будет загрузить под акад и значит исполнять их будет net8. Даже те что скомпилированы под net framework.
Обе проблемы никуда не денутся. Новые фичи С# использовать нельзя. Свистопляска с версиями майкрософтовских библиотек остается.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Lemieux от 29-03-2024, 15:06:56
Новые фичи С# использовать нельзя
А какие там новые фичи? Switch в странной конструкции?
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 29-03-2024, 15:10:19
Switch-выражения как раз можно использовать в старом net. А вот общие using на весь проект - запрешено. И что-то еще приятное было...гуглить надо.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Lemieux от 29-03-2024, 15:15:13
Switch-выражения как раз можно использовать в старом net. А вот общие using на весь проект - запрешено. И что-то еще приятное было...гуглить надо.
В Framework доступна вот такая конструкция?
Код - C# [Выбрать]
  1. var discount = customer.DiscountLevel switch {
  2.     1 => 3,
  3.     2 => 5,
  4.     3 => 10,
  5.     _ => 0
  6. };
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 29-03-2024, 15:54:34
Ага. Вот это я и обозвал switch-выражениями. Очень удобно. Недавно я узнал, что там можно еще и условия с or и and писать.
Код - C# [Выбрать]
  1. public int Discount =>  DiscountLevel  switch
  2.   {
  3.     1 or 2 => 5,
  4.     >= 3 and <= 10 => 10,
  5.     _ => 0
  6.   };
Вообще круто. Только надо прописать в csproj вручную такую настроечку:
Код - XML [Выбрать]
  1. <LangVersion>preview</LangVersion>
То есть майкрософт как бэ намекает, что не хочет чтоб новый синтаксис использовался в старом фреймворке.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Алексей (IdeaSoft) от 14-05-2024, 16:00:50
Да с ресурсами форм я тоже столкнулся проблематикой при переводе проектов
с .NET 4.8 на .NET 6.0.

Я вот что хочу уточнить AutoCAD 2025 проект, написанный на .NET 6.0 загрузит?

Я сегодня небольшой тест написал на NET 6.0 AutoCAD 2024 dll
AutoCAD 2024 не подгрузил мою dll.

Вот код теста:
Код - C# [Выбрать]
  1. namespace test_ac_net_60
  2. {
  3.     public class test_commands
  4.     {
  5.         [Autodesk.AutoCAD.Runtime.CommandMethod("TEST_06")]
  6.         public void TEST()
  7.         {
  8.             MessageBox.Show("TEST NET 6.0");
  9.         }
  10.     }
  11. }
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 14-05-2024, 17:07:05
Net6 должен под 2025 запуститься. Если только конфликты версий общих библиотек не вызовут ошибок (общих с Автокадом и другими плагинами).
А 2024 тут вообще ни при делах. Там только Net Framework
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Judas от 28-07-2025, 17:24:27
Привет всем.
Правильно понял...
Net6.0 и выше только с автокада 2025?
А для автокода 2024 и ниже только FW?
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 28-07-2025, 18:10:19
Net6.0 и выше только с автокада 2025?
AutoCAD 2013-2024 - Net Framework 4.8
AutoCAD 2025-2026 - Net 8.0

где-то лежала табличка с минимально допустимыми версиями net...
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Привалов Дмитрий от 29-07-2025, 14:27:11
AutoCAD 2013-2024 - Net Framework 4.8

Вроде так должно быть:
2005   1.1
2006   1.1 SP1
2007   2.0
2008   2.0
2009   3.0
2010   3.51 SP1
2011   3.51 SP1
2012   3.51 SP1
2013   4.0
2014   4.0
2015   4.5
2016   4.5
2017   4.6
2018   4.6
2019   4.7
2020   4.7
2021   4.8
2022   4.8
2023   4.8
2024   4.8
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: izhgtumekhanik от 13-08-2025, 10:06:12
Вспомнил свои "болячки" - дебажил плагины .Net под другой САПР который тяжело запускается, особенно под мой слабенький компуктер тогда - я не как не мог выгрузить плагин из памяти и приходилось перезапускать программу и килить процессы связанные с ним так они тоже не дают заменить библиотеки плагина. В общем бросил эту садомазу. Написал обертку под python - и просто прям на месте редактирую скрипты и все работает уже как 4 версий подряд - дебажу скрипты прям на лету. Связка с++ и python.
Помню как еще пытался защитить программу .Net от взлома - так малого того что инструменты для этого стоят больших денег например Themida так еще и как вирус распознается программа..
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Алексей Кулик от 13-08-2025, 10:33:40
Вспомнил свои "болячки" - дебажил плагины .Net под другой САПР который тяжело запускается<...>
ИМХО если разделять ответственность, то зачастую можно и без САПР обойтись. Я, если что, про NET ;)
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: izhgtumekhanik от 13-08-2025, 11:12:05
то зачастую можно и без САПР обойтись
Если речь о внешнем приложении - то скорее всего да тк много чего вышло с тех пор.. но это все время которое не воротишь..

Разделять ответственность - эти слова да обществу в уши! в обществе нет таких исторических сложившийся "технологий" разве что остается диверсифицировать.

Молчу что ИИ "дышит в затылок" и все это за бесплатно.. зп падают и все бегут быть разносчиками пиццы, зачем им идти инженеришками за грошики разрабатывать сложные технологии? менталитет?
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 13-08-2025, 11:17:35
я не как не мог выгрузить плагин из памяти и приходилось перезапускать программу и килить процессы связанные с ним так они тоже не дают заменить библиотеки плагина.
Горячая перезагрузка кода у меня работала на всех версиях .Net вплоть до самой свежей. Я уже привык кодить в процессе отладки - очень расслабляет. Но вот поменял систему, винду на 11, VS обновил и кирдык. Больше не работает горячая перезагрузка ни в одной версии Net. Копилот утверждает , что майкрософт нарочно отключает горячую перезагрузку в старых версиях .Net Framework. Но под Автокад 2026 и .Net6 тоже самое - одну букву в коде поменял - выскакивает окошко, что надо останавливать отладку и все перекомпилировать. Бесит ужасно. Что делать не знаю...

Помню как еще пытался защитить программу .Net от взлома - так малого того что инструменты для этого стоят больших денег например Themida так еще и как вирус распознается программа..
Использую встроенный в студию Dotfuscator для переименования классов. Реальной защиты кода не существует - все можно декомпилировать и полечить, не важно на C++ это было написано или на C#. Защищает только низкая цена программы.
И да - любую новую версию любой программы антивирусы могут банить. Не думаю что это как-то связано с .Net или обфускацией. Чтоб не писать False Positive во все антивирусы на каждую версию плагинов, я выделил все функции обновления программ, убийства процессов, скачки с интернета и т.п., что антивирусы не любят - выделил в отдельный Exe и обновляю его как можно реже. И, если все-таки обновляю, то сразу проверяю в VirusTotal и пишу во все антивирусы.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: izhgtumekhanik от 13-08-2025, 11:33:29
Горячая перезагрузка кода у меня работала на всех версиях .Net вплоть до самой свежей.

Аа что то припоминаю.. AppDomain - но там нужно строго сохранять иерархию имен функций/методов и результаты - очень напрягало это ограничение..
А в python - reload.module() - абсолютная свобода -> сменил имя функции и тут же из приложения ее можно вызвать и получить любой тип результата..

Использую встроенный в студию Dotfuscator для переименования классов. Реальной защиты кода не существует - все можно декомпилировать и полечить, не важно на C++ это было написано или на C#. Защищает только низкая цена программы.
На торрентах лежат программы чьи стоимости пожизненной лицензии - 300 руб. :))

В Python есть пару тройку компонентов что знаю - получше защищают приложение ну по крайней мере не разбирают за 5- 40 сек на марафонах по патчингу.

Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: avc от 13-08-2025, 11:44:37
но там нужно строго сохранять иерархию имен функций/методов и результаты
нет конечно. если работает горячая перезагрузка, то можно переименовывать все, кроме имен самих Автокадовских команд. Все было прекрасно... пока я что-то не сломал...
И у нас тут форум "AutoCAD .NET API", а не про python.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: izhgtumekhanik от 13-08-2025, 11:52:13
нет конечно. если работает горячая перезагрузка, то можно переименовывать все
не помню что так можно было или не знал.. загуглил и увидел дату - 2021 год тогда я точно не знаю про это.

И у нас тут форум "AutoCAD .NET API", а не про python.
Только для сравнения. Следить за трендами в языках дабы облегчить необлегченное.
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: Алексей Кулик от 13-08-2025, 12:50:15
азделять ответственность - эти слова да обществу в уши!
SOLID, KISS, DRY, "Банда четырех"... Все уже придумано до нас ))
Название: Re: AutoCAD 2025 - переползаю на Net8
Отправлено: izhgtumekhanik от 13-08-2025, 13:19:12
KISS

Во во, Python - прост как пареная репа. У меня сложилось исторически - скоростная сборка (вижу цель - не вижу преград), один из постулатов который - "а лучшие ли ты выбрал инструменты для этого?"

А по сути вопроса - горячая перезагрузка - попробовал -> прикольная штука.