|
Заблокирован
|
|
VS2019, в чем разница, приложение WPF (.Net Framework) и App WPF (.NET Core)25.04.2020, 16:36. Показов 15591. Ответов 40
Метки нет (Все метки)
Открыл сейчас VS2019, чтобы "создать новый проект" и не знаю на какую кнопочку нажать (я не программист, но потихоньку что-то делаю "для себя").
В VS2019 есть эти два стандартных шаблона для приложения WPF: 1. Windows Presentation Foundation - WPF (.Net Framework) 2. Windows Presentation Foundation - App WPF (.NET Core) Тут сразу попутно вопрос. Почему одно называется просто WPF, а другое App WPF? В чем сакральный смысл такого различия в названии? ![]() И главный вопрос. Я не буду спрашивать "что лучше", ибо не хочу нарываться. Но если есть желание - высказывайтесь и в таком ключе, с интересом прочитаю и потом когда-нибудь пойму. Я сформулирую вопрос так - Какие специфические проблемы я поимею, если выберу второй вариант - App WPF (.NET Core)? И дополнительный вопрос - можно ли говорить, что будущее за App WPF (.NET Core) и что WPF (.Net Framework) постепенно уйдёт на фоне App WPF (.NET Core) в прошлое? Ответы желательно дать в общем виде. Но если необходима конкретика, то скажу, что собираюсь сделать "для себя" приложение c# WPF десктоп, которое, возможно, будет содержать лёгкую СУБД (скорее всего SQLite) и которое будет взаимодействовать с некой стандартной клиентской программой (которая в свою очередь как-то там взаимодействует с удаленным сервером, но это уже не важно). P.S.1. Слегка погуглил и просмотрел тему Что выбрать - WPF .Net Core или WPF .Net Framework + буду работать с SQLite (также интересно какую версию БД выбрать)? P.S.2. Ответы в стиле - а ты типа начни с WPF (.Net Framework), а потом, если надо, легко перейдёшь на... - не приемлю. Некогда мне начинать с одного и прыгать потом на нечто другое. Мозги от этого опухают. Нужен один вариант. ![]() P.S.3. Интуитивно склоняюсь к App WPF (.NET Core). Поскольку - это относительно новое, типа новый шаг, а значит... - это вроде лингвистически ближе к ASP.NET Core, до которого тоже хочется когда-нибудь доползти.
0
|
|
| 25.04.2020, 16:36 | |
|
Ответы с готовыми решениями:
40
WPF программист (C#, .Net Framework) |
|
19 / 14 / 6
Регистрация: 01.04.2020
Сообщений: 81
|
|
| 25.04.2020, 17:30 | |
|
titan4ik, Что выбрать - WPF .Net Core или WPF .Net Framework + буду работать с SQLite (также интересно какую версию БД выбрать)?
Основные отличия... Core разве что под линуксом можно использовать, если без UI. Хотя, можно и с UI, если авалонию заюзать. Но это не точно)) Я сам, как и вы пилю потихоньку что-то для себя и во многом тоже разбираюсь с нуля.
0
|
|
|
Заблокирован
|
|
| 25.04.2020, 19:15 [ТС] | |
|
What is the future of .NET
https://www.c-sharpcorner.com/... f-dot-net/ Добавлено через 18 минут Представлен .NET 5 https://habr.com/ru/company/ra... og/451136/ Добавлено через 8 минут Мда, в контексте вышеизложенного (и прочего), похоже, что при всём богатстве выбора решение однозначно правильное будет такое: App WPF (.NET Core) Добавлено через 10 минут И до кучи местное обсуждение: https://www.cyberforum.ru/net-... 48619.html
0
|
|
| 26.04.2020, 09:24 | ||
|
Такими вопросами должен задаваться профессионал, у которого стоит масштабная задача по созданию универсального кроссплатформенного решения с бюджетом, похожим на номера телефонов Вот только профи, скорее всего, и так знает, что ему выбрать и что лучше))
1
|
||
|
Модератор
|
|||||||||
| 26.04.2020, 10:37 | |||||||||
В лучшем случае для 1% приложений. Это больше из "Голубой мечты MS" откусить кусок пирога от других платформ.
Играет роль для больших компаний, которые теперь могут направить развитие в нужную им сторону без одобрения (в теории) от MS.
Это скорее декларация о намерениях, а не то что есть в реальности или то что будет.
Второе и третье - это правда. Но оборотной стороной является усложнение кодирования.
Но UWP, по всем признакам, "приказала долго жить"... По отношению к WPF+FW - это не верно.
Большинство кто знаком с FW и Corу скажет, что очень многих привычных и широкоиспользуемых на FW инструментов нет на платформе Core.
0
|
|||||||||
|
Модератор
|
||
| 26.04.2020, 10:38 | ||
|
Градация по "порогу вхождения":
0
|
||
|
Модератор
|
||
| 26.04.2020, 10:49 | ||
|
Но надо понимать, что MS уже пробовала так сделать и у неё не вышло: лет пять (если не больше) они хотели всех перевести на UWP (Standart, вроде?). Но не вышло. Нынешняя попытка (Core) тоже связана с желанием распространиться на другие платформы. Но очень сомнительно, что это выйдет. А если не выйдет, то неизвестно и будущее Core. Да, и сама себе MS противоречит. С одной стороны объявляет Core Open Source, с другой стороны расписывает на несколько лет вперёд план выхода версий.... Опять, таки не воспримите, что отговариваю вас. Это ваше дело за что браться. Просто предупреждаю, что WPF+Core значительно сложнее WPF+FW для неподготовленного программиста. В нём хватает своих проблем. И решать их не зная XAML, MVVM.... будет значительно сложнее.
0
|
||
|
Заблокирован
|
||||
| 26.04.2020, 12:37 [ТС] | ||||
|
Добавлено через 7 минут XAML он и в африке XAML. MVVM тоже - он и есть MVVM. Неужели в App WPF (.NET Core) нет тех же основных библ классов (типов), которые используются в WPF (.Net Framework) для организации MVVM? Логично было бы, чтобы они были. И имели бы те же имена или отличающиеся стандартным образом. Или это не так? Чем конкретно сложнее App WPF (.NET Core)? Элд Хасп, неужели в нем нельзя использовать те ваши наработки, которые вы сделали в этой теме по патерну MVVM?
0
|
||||
|
Модератор
|
||||
| 26.04.2020, 12:59 | ||||
|
У Core (а это не обязательно WPF) есть своя специфика, которую надо осваивать помимо типа самого приложения: Консоль, WInForms, WPF. И осваивать одновременно WPF и Core будет сложно. Опять таки вам самому решать, это просто совет по моему собственному опыту - хотите прислушайтесь, не хотите - нет. Я бы советовал не осваивать одновременно две новые (для вас) технологии. Осваивая WPF вы по любому будете обращаться за советами. А посмотрите по разделу. Вопросы по UWP - практически без детальных ответов. То же самое будет и по WPF+Core, поскольку шаблоны UI элементов значительно различаются. Реальные приложения WPF - 99% на платформе FW. Самостоятельно же освоить с нуля с собственными силами XAML и MVVM будет чрезвычайно сложно. В результате вы останетесь один на один со своими проблемами и даже не будете понимать в чём их причина: неправильное использование платформы Core, ошибки в XAML или неверно построенный MVVM. Если уверены в своих силах, что же - "Вперёд и с песней!". Добавлено через 5 минут Многих типов нету. Даже реализация команд (а это основной способ вызова методов ViewModel) совершена различна, поскольку в Core нет CommandManager. И следить за обновлением состояния команд надо "вручную". А это сложно. Поэтому начинающие просто "забивают" на это. Сами по себе команды начинающим понять не просто, а тут надо ещё и вручную их обновлять - "Ну их к чёрту!". В результате получается костыльный код с полумёртвыми командами. Это то что с ходу вспомнилось, а таких нюансов и проблем очень много. Добавлено через 6 минут Но шаблоны элементов на FW много проще. И на них намного проще научиться их корректировать или составлять самому. Так же надо понимать, что XAML - это декларативный язык и он не "Сферический конь в вакууме". Он использует те типы которые предоставляет платформа, а многих типов FW в Core нет. И то что в FW вы можете описать пятью строками XAML, в Core может потребовать страницы кода XAML и сопутствующей ей страницы кода на C#. А вы ещё даже не освоили XAML, как вы собираетесь своими силами писать нужные для неё типы? Это сложно даже не начинающему.
0
|
||||
|
Заблокирован
|
|||||
| 26.04.2020, 13:02 [ТС] | |||||
|
Но в моем конкретном случае это выражалось в выборе типа шаблона в VS2019 - WPF (.Net Framework) или App WPF (.NET Core). Но смысл разумеется в выборе платформы. Известно некоторое количество хороших букварей по WPF. То, что там написано не применимо в случае использовнаия платформы .NET Core.? Если не применимо, то есть ли аналогичные для WPF на основе .NET Core.? То есть для этого шага нет достаточной инфраструктуры (учебники, материалы в инете, сообщество для поддержки ответами на вопросы)? Правильно?
0
|
|||||
|
Модератор
|
||
| 26.04.2020, 13:05 | ||
|
Но научиться этому на Core было бы намного сложнее. Даже сейчас мне не просто переходить на Core. Не потому, что привык к FW, а потому что для написания эквивалента на Core надо многие типы писать самому, надо уметь правильно работать с системой (которая не обязательно Windows DeskTop). То есть создать приложение WPF+Core я могу, но это требует намного больше усилий и кода чем для FW. Поэтому без необходимости я WPF+Core не создаю.
1
|
||
|
Администратор
|
||||
| 26.04.2020, 13:07 | ||||
|
3
|
||||
|
Модератор
|
|||
| 26.04.2020, 13:09 | |||
|
Это другая платформа значительно отличающаяся от FrameWork. А интерфейс пользователя может быть любой: Консоль, WinForms, WPF, UWP. Навероне, и ещё какие-то есть. Добавлено через 1 минуту
0
|
|||
|
Заблокирован
|
||
| 26.04.2020, 13:09 [ТС] | ||
|
Не понятно. Неужели рептилоиды проникли и в MS? Вредители?! Элд Хасп, спасибо за ваши предостережения. Я не вполне согласен с некоторыми вашими аргументами. Но в целом вы зародили во мне вполне конструктивное сомнение. Хорошо, что вчера я так и не нажал на эту кнопку. А то бы мог влипнуть всерьез и надолго!
0
|
||
|
Модератор
|
|||||||||
| 26.04.2020, 13:29 | |||||||||
|
Добавлено через 9 минут Я не сравнивал платформы между собой. Попробуйте запустить FW на Core или наоборот. Тот же MessageBox широко используемый на FW - его нет в Core. Или FileOpenDialog. WPF конвертеры требуют другой сигнатуры. Нет CommandManager для команд. И ещё много других отличий, которые в принципе не будут ликвидироваться. Добавлено через 3 минуты Можно посмотреть как реализуется тот или иной тип. И, соответственно, реализовать свой по подобию. Я именно таким образом сейчас и разбираюсь с AP-свойствами списочного типа: Освоение Attached Properties: Списочное свойство Но в данный момент, освоение Core сложнее чем FW. Возможно в будущем это будет не так. Добавлено через 1 минуту Добавлено через 3 минуты Я тоже нажимал. И делал простые примеры на разных платформах. Когда уже сложность "борьбы" с платформой превысила сложность реализуемых задач, то перешёл в основном на FW. Но при необходимости, могу сделать что-то и на Core. Но на то, что мне требуется день в FW на Core может уйти 3-5 дней.
0
|
|||||||||
|
Заблокирован
|
||
| 26.04.2020, 13:31 [ТС] | ||
|
Я читал про функционал команд (не оч много) в WPF (.NET Framework) и у меня осталось скверное ощущение от этой части. Такое впечатление (некомпетентное), что всё могло бы проще реализовано. Но я в этом далеко не эксперт. Однако, "чуйка" меня по жизни редко подводила. Вообще такое ощущение, что идеи технологий настолько опережают технологии, что сами технологии до ума довести не успевают (ни на этапе разработки концепции, ни на этапе реализации). К тому же всегда есть противоречие между простотой использования (в том числе - порогом вхождения) и возможностями тонких ручных настроек - попытка найти оптимальный компромисс может порождать монстров. Не исключаю, что именно этим MS и занимается. А учитываю их финансовые возможности, они могут далеко увести нас всех в сторону от столбовой дороги в ясное светлое будущее. Но альтернативы нет - приходится плестись у них в хвосте, да ещё и благодарно кланяться за вдыхаемую высокотехнологичную пыль. ![]() Мда. Кто виноват понятно. Но что же делать?!)
0
|
||
|
Модератор
|
||
| 26.04.2020, 13:37 | ||
|
Все типы которые к ней привязаны, в Core, в принципе, реализованы не будут. Даже работа с файловой системой в FW и Core различается.
1
|
||
|
Заблокирован
|
|
| 26.04.2020, 13:37 [ТС] | |
0
|
|
|
Модератор
|
||
| 26.04.2020, 13:44 | ||
|
Поэтому несколько раз делал свои типы заменяющие ICommand, но в результате получалось только ещё хуже или сложнее. Основная причина в Привязках. Это основной (можно даже сказать - единственный) способ связи XAML с ViewModel. А привязку возможно создать только к свойству. Поэтому передать управление непосредственно методу не получится. Так же очень частая потребность для View знать когда метод может быть выполнен, а когда нет. Отсюда появляется потребность во втором методе и в событии уведомляющем о состоянии команды. Как не крути выходит три члена интерфейса. Проще не получается - я уже много разных вариантов перепробывал.
1
|
||
| 26.04.2020, 13:44 | |
|
Помогаю со студенческими работами здесь
20
Объясните на пальцах совместимость библиотек в .Net Core, .Net Framework, .Net Standart В чем разница между Visual Studio .NET Beta 2 и .NET Framework SDK Beta 2? WPF, NET Core и вылеты ХАМЛ-редактора
Если установлен Net Framework 4, то есть ли необходимость ставить WPF Toolkit Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|