Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Использование Visual Studio C# c Firebird / 16 сообщений из 16, страница 1 из 1
15.10.2015, 17:41
    #39077945
EugeneBar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Visual Studio C# c Firebird
Проработав 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
15.10.2015, 20:19
    #39078056
EugeneBar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Visual Studio C# c Firebird
Пришла мысль - использовать этот сгененрированный в дезайн-тайм DataSet как хранилище текстов sql-запросов и ничего больше. В принципе, есть плюс, когда один запрос используется в разных формах. Но возникает вопрос - а как тогда с параметрическими запросами быть, коих, как правило, большинство?
...
Рейтинг: 0 / 0
15.10.2015, 21:08
    #39078083
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Visual Studio C# c Firebird
EugeneBarЗабить вообще на все эти дизайнерские штучки и писать все руками, включая тексты sql-запросов прямо в коде? Так, конечно, можно. Но правильно ли?да
...
Рейтинг: 0 / 0
16.10.2015, 05:35
    #39078189
Barkan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Visual Studio C# c Firebird
EugeneBar,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

на Embarcarcadero не нашел ничего.
...
Рейтинг: 0 / 0
28.08.2017, 12:42
    #39511541
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Visual Studio C# c Firebird
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
29.08.2017, 10:35
    #39512055
victorvologda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Visual Studio C# c Firebird
Спасибо.

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

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

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


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