#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416

Что выбрать - WPF .Net Core или WPF .Net Framework + буду работать с SQLite (также интересно какую версию БД выбрать)?

22.10.2019, 00:09. Показов 18670. Ответов 11

Студворк — интернет-сервис помощи студентам
Всем привет.
Ниже необязательная предыстория, высказался просто)

Кликните здесь для просмотра всего текста
Тут наконец вновь взялся за мелкую приложуху для Windows 7, которая была реализована на WinForms+ACE OLE DB (работает с Excel) год назад, и то, благодаря замечательному форумчанину Storm23.

В течение года несколько раз переписывал ее с 0, ибо код очень плохой - ничего толкового не сделал до сих пор, но появилось видение конечного результата :
-модульность (по 2 dll для GUI и логики конкретного модуля и общей сервисной/ых dll)
-предусматривать ошибки, все сложные методы обворачивать в try...catch
-запилить службу (точно пока не решил, мб в лаунчере это будет), чтобы проверять наличие обновы на сетевом диске по md5

У Storm23 еще нашел мануал по созданию минималистичной модульности для приложухи.
Сейчас опять решился уже нормально ее переписать и до конца.
Excel меняется на локальную БД - SQLite, в качетсве GUI хочу WPF (все равно уже надо учить эту технологию).


На днях начал читать по-немногу статейки, понял, что Blend это визуальный контструктор в т.ч. и xaml файлов - что мне сейчас очень пригодится, ибо прямо сейчас не до изучения xaml основательно.
Вот недавно переустановил VS с 17 на 19ю (еще случайно сонный поставил корп. версию, благо ключик быстро в сети нашел, пусть остается..).
Сейчас решил создать в целях изучения WPF проект (давно уже игрался с ним, но пока не могу создавать готовые приложухи как с WinForms) для ознакомления и тут выбор от VS - Framework или Core.
Я в недоумении, почитал и понял, что Core будущее, Microsoft топит вроде за нее, но представления о сложности, с которой могу столкнуться - нет.
Вместе с Core продвигается Net Standart - как я понял, последняя это обязательный базовый комплект API для всех платформ, типа stl из C++.

Как и с WPF (раз решил уже копаться в Net, то по современным стандартам GUI для Windows), раз о Framework знаю только вершину айсберга (мб еще меньше), подумываю сразу на Core начать переезжать.

Только собрался создавать проект - вспомнил о SQLite (уже давно скачана, протестирована и встроена в бету моей приложухи). Гуглю значит "sqlite net core" и тут в основном все ресурсы пишут об Entity Framework, а точнее Entity Framework Core.
Читаю их описания и тут упоминается LINQ (тоже темный лес для меня).
Так еще в статейках показывают как SQLite качать из VS, а не отдельный DLL с http://system.data.sqlite.org

Уважаемые форумчане, кто дочитал до этого момента - просьба понять и простить, у меня сейчас очень густая каша в голове, скорее уже болото.

Вопросов 2 :
1. Стоит выбирать WPF Core вместо WPF Framework, чтобы попасть в """страну чудес"""?
Намного сложнее?

2. Если выберу Core, смогу взаимодействовать с файлами БД SQLite (планировалось держать на сетевом диске несколько общих БД-файлов, чтобы несколько клиентов приложухи моей обращались к ним - так нужно, сервак с норм СУБД поставить нет возможности) ?
Намного сложнее будет в изучении, если сейчас я умею работать только со сторонними (от разработчиков самих БД) dll с SQLite и MySQL?

Очень очень буду признателен за советы. Спасибо заранее
1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.10.2019, 00:09
Ответы с готовыми решениями:

Что выбрать в Xamarin.Android ADO.NET или SQLite.NET?
Учу Xamarin.Android, выяснил что для хранения локальных данных можно использовать базу данных SQLite. На англоязычных форумах написано...

Что выбрать ASP.NET или ASP.NET Core ?
Добрый день форумчане, хотелось бы услышать ваше мнение, какой из перечисленных фреймворков лучше начать изучать с нуля в данный момент...

Как в Visual Studio 2017 выбрать версию .Net Framework?
В свойствах проекта в строке "Целевая версия платформы .Net Framework" нет никаких предлагаемых версий Добавлено через 48 секунд ...

11
Эксперт .NET
6525 / 4101 / 1606
Регистрация: 09.05.2015
Сообщений: 9,565
22.10.2019, 00:48
Цитата Сообщение от MIRAMIX Посмотреть сообщение
1. Стоит выбирать WPF Core вместо WPF Framework, чтобы попасть в """страну чудес"""?
Намного сложнее?
Одно и то же. Разве что .NET Core более перспективная технология.

Цитата Сообщение от MIRAMIX Посмотреть сообщение
2. Если выберу Core, смогу взаимодействовать с файлами БД SQLite (планировалось держать на сетевом диске несколько общих БД-файлов, чтобы несколько клиентов приложухи моей обращались к ним - так нужно, сервак с норм СУБД поставить нет возможности) ?
Сможете.

Цитата Сообщение от MIRAMIX Посмотреть сообщение
Намного сложнее будет в изучении, если сейчас я умею работать только со сторонними (от разработчиков самих БД) dll с SQLite и MySQL?
Не известно как вы с ними работаете (EF, ADO.NET провайдеры и т.д.).
А библиотеки лучше ставить с nuget'а, а не качать и подключать вручную.
2
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16048 / 11177 / 2877
Регистрация: 21.04.2018
Сообщений: 32,851
Записей в блоге: 2
22.10.2019, 07:51
Лучший ответ Сообщение было отмечено MIRAMIX как решение

Решение

MIRAMIX, Core более новый и перспективный. Но FW лучше развит, более понятен, больше типов, методов.
Большой разницы между ними нет. Но для обучения я бы посоветовал WPF+FW. Освоить проще, а перейти с него на Core, при необходимости, после получения опыта, проблемы не будет.

Для вас проблема будет, скорее всего, несколько в ином.
Прочитайте тему "WPF vs WinForms (для начинающих)" в Готовые решения, примеры и рекомендации начинающим на WPF [Элд Хасп]

Основной язык WPF - это XAML. И учить его придаётся.
Blend - это полезный инструмент, помогающий в некоторых случаях. Но никак не замена "ручному" редактированию XAML.
Адекватную компоновку даже простого окна без ручного кодирования не создашь.

Второй существенный момент - WPF это специально созданный инструмент для реализации View в паттерне MVVM.
А, к сожалению, чаще всего опыт программирования WinForms - это создание бесформенной горы костылей.
И самое печальное, что такой опыт очень сильно будет мешать обучению реализации WPF приложения.

Третий момент, вытекающий из второго. В MVVM за обработку данных отвечает Model.
Часто само хранение данных выделяют ещё в отдельный слой.
К WPF же собственно относится только визуальный интерфейс.
View через ViewModel обращается за данными, которые надо ПРЕДСТАВИТЬ, к Model.
Model взаимодействует с ViewModel в дефолтных типах данных или DTO типах.
Где хранятся данные, как Model их получает, сохраняет, изменяет WPF (View и ViewModel) безразлично.

Должна быть независимость от Model.
Есть интерфейс взаимодействия. Через этот интерфейс получаются данные.
А что там за реальная Model роли не играет.
Сегодня для хранения используется Excel, завтра БД, послезавтра WEB.
Изменили Model - но это никак не должно влиять на остальную часть приложения.

Тоже самое наоборот. Model безразлично какая View: WPF, WinForms, Console или печатная машинка.
Я бы посоветовал отлаживать Model на консоли, и только после отладки добавлять в приложение WPF-View.

Поэтому, прежде чем приступать к созданию приложения вам надо сначало освоить работу с БД в консоли.
Осваивать одновременно и БД, и WPF (XAML, компоновка, привязки, команды и т.д.) будет сложно.
А у вас даже нет знаний LINQ, а этого уровень начинающего (C# + консоль) программиста.

Я не говорю, что вам это не одолеть. Вам виднее ваши силы.
Но это будет сложно. Просто сесть и с ходу написать WPF приложение вряд ли получится.

Я бы посоветовал начать с простых примеров и постепенно их усложнять.
В разделе есть несколько тем с объяснениями. Часть собрано по ссылке указанной выше.
4
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
22.10.2019, 22:18  [ТС]
Элд Хасп, спасибо большое за подробный ответ.

Таки поступлю, останусь пока на Framework-е.
Также вчера нашел полезные 2 ссылки раз и два

Сейчас важнее быстрее понять и реализовать задуманное.

Цитата Сообщение от Элд Хасп Посмотреть сообщение
а этого уровень начинающего (C# + консоль) программиста
Хмм, тут он аж в 16 главе. Не пугайте так)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16048 / 11177 / 2877
Регистрация: 21.04.2018
Сообщений: 32,851
Записей в блоге: 2
23.10.2019, 02:46
MIRAMIX, эта книга почти полностью уровень начинающего.
Большая часть описанного в ней используется практически в любом более менее реальном приложении.

Ещё раз говорю.
Я не отговариваю вас, а предупреждаю, что будет не так просто.
0
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,437
23.10.2019, 13:59
Господи, да кому вообще сдался этот core? Никто на линуксе не сидит, но все упорно хотят, чтобы их творение работало на всем-всем-всем..
2
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
24.10.2019, 23:01  [ТС]
Рядовой, полностью с Вами согласен.
Кросплатформенность далеко не самая важная вещь, лучше писать на целевых ЯП (swift-iOS, kotlin-Android).

Но прочитав много материала про различия Core от Framework - суть не только в кросплатформенности.
Это новый вид фреймворка, стандартизация api, то есть будущее Net, и фреймворк более обновляться не будет по-моему
0
HF
 Аватар для HF
1244 / 832 / 189
Регистрация: 09.09.2011
Сообщений: 2,489
Записей в блоге: 2
28.10.2019, 14:25
Добавлю свой комментарий в догонку этой теме. Вдруг будет полезно.

Цитата Сообщение от MIRAMIX Посмотреть сообщение
Тут наконец вновь взялся за мелкую приложуху для Windows 7, которая была реализована на WinForms+ACE OLE DB (работает с Excel) год назад, и то, благодаря замечательному форумчанину Storm23.
В течение года несколько раз переписывал ее с 0, ибо код очень плохой - ничего толкового не сделал до сих пор, но появилось видение конечного результата :
-модульность (по 2 dll для GUI и логики конкретного модуля и общей сервисной/ых dll)
-предусматривать ошибки, все сложные методы обворачивать в try...catch
-запилить службу (точно пока не решил, мб в лаунчере это будет), чтобы проверять наличие обновы на сетевом диске по md5
Недавно я тоже решил переписать одну из своих программ. Vb.Net+WinForms. Куча вьюшек с разным функционалом.
Создал проект на .NetCore + Wpf, начал переписывать первый попавшийся модуль (выбрал полегче). Сразу увяз: нужно переверстать WinForm на Xaml; нужно написать многомодульно. Оценил потери, удалил проект.
- Перевёрстывание отнимает много времени, а вьюшек около 40 и стиль будет изменён. Значит нужно сначала на бумажке нарисовать, накидать.
- выносить в модули - это рефакторинг. Значит нужно сначала отрефакторить Vb.net?! Нет. Писать сразу с сервисами - не получится, нет нужного объёма моделей и вызовов.

В итоге, поставил для себя пошаговый план, который даст мне более быстрые решения, которые не дадут отвлекаться и увязать в ненужных деталях. Поэтому получилось так:
- через конвертер Vb.Net -> C# переношу каждую форму в новый проект. Сразу выделились методы, которые используются Vb.net, а так же общий код.
- рефакторим C# проект. Вот теперь уже можно разбивать на модели, сервисы, вьюмодели. Вью(Forms) можно даже вынести в отдельный проект (как советовали разработчики).
- и вот теперь можно начать покрывать всё тестами (некоторые наверное скажут, что это надо было делать раньше); а так же создавать корневой UI проект. И он теперь может быть любой - .Net (Forms, WPF), NetCore (Forms, WPF), Xamarin, Console. так как используется только для точки входа и вызова форм.

К чему я эти мысли выложил. Увидел знакомую ситуацию с попытками "переписать всё и писать круто". Это будет сложно. Лучше разделить задачи и получится даже лучше, чем планировалось. Не будет сложности ни с БД, ни с моделями, ни с вьюшками.. и тестами.
1
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
28.10.2019, 21:27  [ТС]
HF, спасибо большое, любой совет/опыт приветствуется.

Тут еще неделю назад решил шарп все-таки освежить в памяти, там и мануал на метаните под новую версию ЯП и Core переписали (ох, не знаю куда я приду)
Сейчас открыл студию, чтобы просмотреть список - для UI имеем WPF/WF под Core и Framework.
Ну UI в последнюю очередь, как положено, смотрю на либы - Core, Framework и Standard.

Это ппц. Опять почитав про отличия, так понимаю если и уходить с фрейма(чего не сделаю для своего проекта наверное - ибо он под Win7), то лучше на Standard - он универсален.

А вот чего не понимаю - почему для UI проектов есть выбор и в чем различия...форма...кнопки всякие...
0
Заблокирован
25.04.2020, 17:29
MIRAMIX,
как успехи? Что вы можете сказать теперь по поставленному вами вопросу выбора? Буду признателен, если поделитесь своим опытом тут или в теме - VS2019, в чем разница, приложение WPF (.Net Framework) и App WPF (.NET Core)
0
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
28.04.2020, 20:06  [ТС]
titan4ik, шарп я со шк стал изучать с создания всяких WF-приложений.
Любой новый функционал познавался или гуглежом, или вопросами здесь - то есть базовых знаний не был и после этого вопроса я начал с метанита теорию изучать, ибо с языком уже знаком.
Она уже по Core, а не по .Net.

Но после нескольких глав взяли джуном на java программиста, пришлось быстро еще js изучить.
Этим хочу сказать, что сейчас познаю java, когда уже хороо изучу, с большей легкостью дастся шарп, потом и Core буду изучать.

Разница между Net и Core, я так понимаю, в возможностях API.
Много общего и разницы можете не почувствовать, но когда уже хорошо познаете шарп - Core однозначно.
1
Заблокирован
28.04.2020, 20:20
Понятно, удачи, MIRAMIX!
Вперёд и только вперёд!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.04.2020, 20:20
Помогаю со студенческими работами здесь

Подскажите что лучше выбрать VB.NET или C.NET (C#) ?
Я программирую на VB. Но так как сейчас появилась .NET платформа решил перейти на неё. Подскажите что лучше выбрать VB.NET или C.NET...

Что лучше выбрать VB.NET или C.NET (C#)?
Я программирую на VB. Но так как сейчас появилась .NET платформа решил перейти на неё. Подскажите что лучше выбрать VB.NET или C.NET...

Что выбрать WPF, ZedGraph или MsChart?
Мне нужно построить диаграмму и 3-х мерный график в проекте для Windows. Пишу на C# Использую Visual Studio. С помощью чего лучше...

Кто читал Мак-Дональда? Какую книгу первую прочесть? WPF 4 или ASP.NET 4 ?
Изучил основы по Шилдту, написал немного курсачей на WPF, бегло ознакомившись с технологией. Нужно ли знание WPF при работе с asp net? ...

Какую версию net framework использовать?
Добрый вечер, начел учить C#, и у меня возникло пару вопросов, может подскажите мне 1) Какую версию net framework лучшие использовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
Тестирование Pull Request в Kubernetes с vCluster
Mr. Docker 19.07.2025
Часто сталкиваюсь с серьезной дилемой при настройке тестовых окружений для проверки Pull Request в Kubernetes. С одной стороны, каждый PR требует изолированной среды — только так можно гарантировать,. . .
Мой 7 минутный ролик с крамольным предложением про шахматы, предлагаю заценить
_Ivana 18.07.2025
p2UhJNMGY94
Десять Middleware Node.js для эффективного кодинга
Reangularity 18.07.2025
Когда я только начинал работать с Node. js, количество пакетов в npm меня буквально парализовало. Сегодня их больше 1,3 миллиона — попробуй разберись, что стоит твоего внимания, а что нет. Я потратил. . .
Context и глубины Android
mobDevWorks 18.07.2025
В Android разработки Context напоминает воздух - он везде, жизненно необходим, но мало кто может детально объяснить его природу. Мы привыкли получать его как параметр, передавать дальше и. . .
Результаты исследования от команды MCM (июль 2025 г.)
Programma_Boinc 18.07.2025
Результаты исследования от команды MCM (июль 2025 г. ) Как сообщалось в наших предыдущих публикациях, мы изучаем гены, которые имеют наибольший рейтинг и ассоциируются с различными видами рака, в. . .
ИИ-чатбот на React с OpenAI и LangChain.js
Reangularity 17.07.2025
React давно стал для меня золотым стандартом фронтенд-разработки. Его компонентная структура, виртуальный DOM и однонаправленный поток данных идеально подходят для создания динамичных интерфейсов. . .
Пишем адаптер для локального хранилища S3 на C#
stackOverflow 16.07.2025
Разработка современных приложений часто требует интеграции с объектными хранилищами, и Amazon S3 стал де-факто стандартом в этой области. Однако работа с облачными сервисами в процессе разработки. . .
Старые замки
kumehtar 16.07.2025
Смотрел тут фото, попались пара старых замков. И сразу бросилось в глаза из отличие. Например: Замок Бистон, в англии. Разрушенное сооружение. Но - не испорченное людьми, по крайней мере - на. . .
Java и Eclipse Store: Сверхбыстрые приложения с In-Memory DB
Javaican 15.07.2025
Eclipse Store — это микро-движок персистентности для Java, который позволяет хранить и извлекать нативные Java-объекты без необходимости преобразования данных или использования объектно-реляционного. . .
EmBitz, создание проекта, отладка, прошивка
locm 15.07.2025
Создание проекта для Blue Pill (STM32F103C8T6) в EmBitz 2. 30, написания кода blink, запуск отладки в ОЗУ, заливка релизной прошивки во flash используя ST-Link и др. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru