из GUI на .Net Core пока только UWP платформа и Xamarian.Forms(это не совсем десктоп). Как WPF неизвестно будет или нет, ибо он на DirectDraw завязан сильно.
Вадим Маткаримов: Еще раз, привязаться к конкретному железу нельзя, нет возможности запросить серийник материнской платы, жесткого видео карты. volfix.net и EP могут писать данные в неиспользуемые служебные области диска, например в MBR.Опять же, в описании EP четко сказано, что в антиотладочные средства есть, а это как раз невозможность запуска в VM. Я выше говорил, можете без проблем список оборудования получить и на их основе создать ключ установочный, но например большая вероятность, что у кого то будет аналогичный ключ сгенерирован. (например в большие или бюджетные организации поставки однотипной техники, мне например бывает сразу по 10 штук абсолютно одинаковых приходит). Подумайте не над тем как защиту усложнять, а ввести функциональные ограничения в демо, нельзя сохранять, распечатать и тд. Опять же излишняя защита, головная боль для пользователей (что в свое время показал и StarForce и Denuvo), которые если надо ломаются, а головной боли для легальных пользователей и разработчиков добавляет.
Вадим Маткаримов: Не нашел у них даже упоминания о привязке к железу. Указанно к компьютеру и только. например известная программа нелинейного монтажа Edius, для привязки выбирает неиспользуемое место в служебной зоне NTFS. Сама защита программы не взломана, а вот триал на раз два снимается. Опять же повторяю, не возможно получить уникальные характеристики железа. Все решения (по крайне мере которые находятся на первых 4-5 страницых гугла) основаны на сборе названий оборудования, и генерации из них ключа, фактически может оказаться, что кто то с таким же оборудованием не сможет получить доступ. Самый действенный способ стимулировать подписку, функциональное ограничение, например в отчете только первых 10 записей показывать, или не позволять создавать более 20 записей в базе, в принципе и даст полноценно посмотреть программу и стимул к подписке, и невозможность полноценной работы. Кстати зачем вообще свой велосипед разрабатывать, цена на EP не так и велика, просто прикиньте свои трудозатраты, оплату и тд, и сравните с ценой на EP. 150 долларов не велика цена.
Вадим Маткаримов: вынос логики на ваш сервер и обработка данных партнера на нем. Получить какие то уникальные сведения о железе нельзя, даже ни AIDA, ни Everest не выдают их. как показывает гугление все привязки работают по принципу сбора инфы о типе железа и генерации ключа, небольшое их изменение, и все, новый комп. Полная защита гарантируется лишь переносом бизнес логики на ваш сервер, не выдержит нагрузки, увеличите его мощность. Не взломают основную программу, то могут взломать сетевой протокол и тд. от всего не защитишься.
Зелим Бельтоев: Читайте вопрос, единственное условие, кроссплатформенность, про нагрузку, размер и т.д. ни слова. Так, что я серьезно. Может у автора сайт визитка, которая будет на Linux хостится, а раблтает автор в Windows.
Кстати для foreach не обязательно наследование от IEnumerable, достаточно наличия метода GetEnumerator. "Утиная" типизация также работает и с перечислитилем, достаточно метода MoveNext и свойства Current. https://habrahabr.ru/post/41377/
Естественно, если у вас база данных не согласованна с моделью или вообще отсутствует. А вообще миграции полезная вещь, особенно когда надо согласовать базу на продакшене при обновлении версии.
KernelGT2: Кто сказал, что шарп только под Win? Веб-разработка, геймдев(тот же Unity), мобильная кроссплатформенная разработка (с помощью Xamarian), новый .Net Core вообще кроссплатворменный, и даже открытый. Начинал с бейсика и паскаля.
А, что это вас так бомбит то? Назовите какой нибудь крупный проект на Делфи? К сведению, C# придумал человек, который создал и Делфи и Турбо Паскаль. Посмотрите на рейтинг гитхаба для начала.