powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Использование Visual Studio C# c Firebird
16 сообщений из 16, страница 1 из 1
Использование Visual Studio C# c Firebird
    #39077945
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проработав 14 лет на Дельфи и Firebird я решил изучить C#, для чего поставил VS2015. После пары дней ковыряния в нем возникло много вопросов.

Кто-нибудь вообще приложения БД с Firebird на Visual Studio С# пишет? Существуют ли какие-то стандартные подходы?

Я разобрался как через дизайнер создать подключение и DataSet, полюбовался на 2000 строк кода, сгенерированного от добавления двух select запросов, и задумался - а в чем смысл этого?

Создавать копию всей БД? Наверное, для чего то круто, но тут нафиг не надо качать на всех клиентов кучу ненужных данных.

Смотреть на DataSet как на аналог TDataModule?

Считать каждый DataSet представление некоей сущности - например, документа определенного типа (несколько запросов из разных таблиц + методы обновления)? Однако, этому мешает сложность задания для него простейших правил - всяких аналогов AfterInsert, BeforePost и т. д. - из дизайнера самого DataSet они не создаются, возможно надо вручную писать в коде этого DataSet.Designer.cs, если его вообще можно редактировать - но 2000 строк сгенерированного кода отбивают желание туда лезть.

Забить вообще на все эти дизайнерские штучки и писать все руками, включая тексты sql-запросов прямо в коде? Так, конечно, можно. Но правильно ли?

В принципе, несложно, наверное, сделать свой аналог FIBDataSet со свойствами SelectSQL, InsertSQL и т. п., внутри которого обращаться к C# адаптерам и датасетам. Но если это правильно, почему этого до сих пор никто не сделал?
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39078056
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пришла мысль - использовать этот сгененрированный в дезайн-тайм DataSet как хранилище текстов sql-запросов и ничего больше. В принципе, есть плюс, когда один запрос используется в разных формах. Но возникает вопрос - а как тогда с параметрическими запросами быть, коих, как правило, большинство?
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39078083
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarЗабить вообще на все эти дизайнерские штучки и писать все руками, включая тексты sql-запросов прямо в коде? Так, конечно, можно. Но правильно ли?да
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39078189
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBar,

Выдели все SQL запросы в отдельную либу - будет у тебя слой базы данных.
Сейчас ещё модно использовать ORMы. Считается что это экономит время программиста при написании CRUD задач.
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39078474
avp_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересная тема. А как там с контролами для редактирования. Есть аналог TDBGrid?
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39078951
Квази
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarПроработав 14 лет на Дельфи и Firebird я решил изучить C#, для чего поставил VS2015. После пары дней ковыряния в нем возникло много вопросов.

Кто-нибудь вообще приложения БД с Firebird на Visual Studio С# пишет? Существуют ли какие-то стандартные подходы?

Я пишу. Вообще стандартным как бы считается Entity Framework, но лично для меня это неудобно. У меня слой работающий непосредственно с БД расположен в web-сервисе (филиальная сеть большая), клиентский winforms получает с сервиса Dataset-ы и уже оперирует с ними.
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39078954
Квази
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarkanEugeneBar,

Выдели все SQL запросы в отдельную либу - будет у тебя слой базы данных.
Сейчас ещё модно использовать ORMы. Считается что это экономит время программиста при написании CRUD задач.
ORM это Entity Framework, вещь для человека пришедшего с Delphi идеологически чуждая ))) ТС в первом посте именно про него и говорит.

авторИнтересная тема. А как там с контролами для редактирования. Есть аналог TDBGrid?
Разумеется есть. И с контролами все нормально. Просто эээ подход отличается от дельфового.
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39078986
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Квази,

ORM-ы и в Дельфи были. только все сдохли, потому что не годятся для систем с большим количеством пользователей. По крайней мере те, которые были сделаны для Дельфи.
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39079111
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, я привык, что логика в БД на триггерах и процедурах, а клиент относительно тонкий.

IMHO очевидно, что DataSet слизан с TClientDataSet и Мidas.

Как сочетать объекты данных с реляционной БД я не понимаю. IMHO скорость будет страдать по любому. Мы засовываем данные в объект на клиенте - это, конечно, здорово, только половина логики остается на сервере и что с этим делать? Или использовать реляционную БД просто как хранилище, вроде кучи DBF файлов? Нафиг надо.

слой работающий непосредственно с БД расположен в web-сервисе

То есть трехзвенка? Для трехзвенки, понятно, по-другому. А насколько сложна логика работы?
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39079112
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть аналог TDBGrid?

Есть. Только на сколько я понял чтобы туда колонки в дизайн-тайм добавлять обязательно надо создать в этом странном дизайнере типизированный датасет. То есть к каждой форме надо еще отдельно этот датасет создавать - в отдельном файле, который определяет сам тип наборов данных. А на форму кладется датасет, включающий дататейблы этих типов. Вот тогда можно в грид в дизайн тайм колонки добавлять. А так - нет. Только колонки, ни с чем не связанные. Непонятно, почему в дизайнере нельзя было позволить добавлять колонки нужных типов.
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39079971
avp_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarЕсть аналог TDBGrid?

Есть. Только на сколько я понял чтобы туда колонки в дизайн-тайм добавлять обязательно надо создать в этом странном дизайнере типизированный датасет. То есть к каждой форме надо еще отдельно этот датасет создавать - в отдельном файле, который определяет сам тип наборов данных. А на форму кладется датасет, включающий дататейблы этих типов. Вот тогда можно в грид в дизайн тайм колонки добавлять. А так - нет. Только колонки, ни с чем не связанные. Непонятно, почему в дизайнере нельзя было позволить добавлять колонки нужных типов.

Спасибо. А вот в целом там технология работы с БД даёт какие либо преимущества по сравнению с дельфи? Или те же яйца только в профиль?
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39079992
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp_,

в Web удобно, в Desktop геморрою больше чем в Delphi в основном из-за того что приходится отказываться от недофетченных курсоров. В .NET DataSet всегда тащит всю выборку целиком в память, поэтому приходится перестраивать приложения так чтобы всегда фильтровалась только нужная часть выборки. Тупо сделать выборку из таблички в 1000000 записей и отобразить её в гриде нельзя. Это сразу убьёт всю производительность поскольку динамической подкачки из открытого курсора нету.
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39080004
Квази
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarТо есть трехзвенка? Для трехзвенки, понятно, по-другому. А насколько сложна логика работы?
Фронт (т.е. собственно клиент) несложен - считать массив данных, потом идет обработка отдельных записей и запись результатов работы.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Использование Visual Studio C# c Firebird
    #39511508
victorvologda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ли бесплатный провайдер для Interbase ?
Для Firebird - Есть - все без проблем
но для Interbase Есть только платный IbProveder
Есть и бесплатная версия, но без поддержки схем все труднее.

Есть ли вариант работы c Interbase для Visual studio 2015 и выше ?

на Embarcarcadero не нашел ничего.
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39511541
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victorvologdaна Embarcarcadero не нашел ничего.

http://docwiki.embarcadero.com/InterBase/XE7/en/Connecting_to_InterBase_from_Visual_Studio

https://delphiaball.co.uk/2015/02/24/connecting-to-interbase-from-visual-studio/

собственно, драйверы к ИБ в дистрибутиве, и тут
http://cc.embarcadero.com/myreg/interbase
...
Рейтинг: 0 / 0
Использование Visual Studio C# c Firebird
    #39512055
victorvologda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.

но эти драйвера не подходят для дизайнера DataSource.
Их я находил,
но может быть есть DDEX драйвера или OLEDB

Купить IbProvider пока нет возможности.

Если подскажете - большое спасибо.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Использование Visual Studio C# c Firebird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]