@asArtem
> для бизнеса можно всегда
да там просто непонятно какой бизнес, что народ sql не сильно знает. В highload например orm-ки не любят, т.к. вылизывают каждый запрос руками. А так, для обычного enterprise конечно подойдет orm в 99% случаев.
> когда можно "толстую" ORM
> которую команда уже знает
да вот непонятно, что они вообще знают)). Видимо автор вопроса как раз и должен подсказать им.
Конечно да, если это все будет выбирать аналитик, то это уже не только аналитик, но и тимлид. Видимо кем-то вроде тимлида ему и предстоит быть)
Никита под чейнингом я имею в виду соединение потоков в цепочку - когда один поток "оборачивает" другой, т.е. берет из него информацию, как из источника, и, в то же время, сам является потоком. Т.е. поток-дешифратор извлекает зашифрованные данные из другого потока (например, файлового), но при этом сам также является потоком.
> есть ли аналогичная справка по стандартной библиотеке на русском?
замените en на ru в ссылке). хотя качество конечно низкое пока там, мало что переведено вручную. Вообще, начинайте учить английский, вот прямо сегодня. Очень сложно сейчас собирать информацию по IT без знания английского. 95% статей я читаю на англ. Да что уж там, на русском пожалуй только Хабр :D, больше и нечего.
Иван Выров тогда можете: а) попробовать все-таки передавать дату, а не текст, и проставить своё форматирование; б) отсортировать вручную в режиме Programmatic
sim3x не, пока около гига, в основном строки и из них треть полей вводится вручную, поэтому растет медленно). Полет нормальный. Сам микросервис на asp.net webapi, но монга на дебиане крутится, не на винде.
sim3x это была основная альтернатива). Решили в монге, чтобы физически разделить core-данные, и пользовательские довески. Конечно, можно было бы поморочиться и сделать вертикальный partitioning, разбить на разные таблицы и связать внешними ключами, но там особенность еще в том, что для этих двух разных "классов" данных (в постгресе и в монге) также и разные требования к уровню качества обслуживания: недоступность пользовательских данных - вещь не особо приятная, но куда более терпимая, нежели недоступность основных (это GIS-проект, доступность карты весьма важна). Поэтому решили сразу сделать эдакий микросервис для пользовательских данных и обслуживать его по своим правилам (меньше бэкапов, чем у основных, меньше mirror-серверов и т.д.). Хотя конечно долго думали как лучше, т.к. постгрес с JSON-ом работает очень неплохо сейчас)
vilix
Только если будете пользоваться Continuations, вызывайте их в правильном потоке (UI-потоке), иначе работать не будет. Вот например посмотрите использование FromCurrentSyncContext в ответе на вопрос: stackoverflow.com/questions/4331262/how-do-i-conti...
vilix
1) я ж говорю, выводите контрол с картинкой на этой же форме, не советую вторую создавать. Показываете контрол и включаете таймер на проверку состояния. Если асихнронные вызовы возвращают Task, можно использовать Continuation для того, чтобы убрать контрол загрузки
2) нет, я имею в виду для загрузки использовать асинхронный метод вместо синхронного у того библиотечного объекта, которым вы пользуетесь
Кстати да, как раз таки успешное участие в известном проекте куда больше показывает качество ваших наработок. В своей репе можно что угодно "накодить" - работодателю самому нужно будет оценивать, такое портфолио можно и по почте скинуть. А вот багфиксы в большие проекты это показатель одновременно 1) заинтересованности в этом проекте, т.е. использования вами этой технологии; 2) достаточного уровня умений для участия в совместной разработке упомянутого проекта
Что за программа? Что за видео в интернете? Как оно проигрывается? Вы сами написали проигрыватель? Или какой-то компонент использовали? Какой компонент, WebBrowser или какой-то видеоплеер?
Therapyx Не знаю, каких аномалий вы сможете избежать, если их будет три, но новые аномалии точно появятся: что мне мешает во все три поля проставить ID? Поля-то взаимоисключающие. Вам по сути нужно делать вывод о типе документа из того, в какой таблице из дочерних вы этот Id нашли. Ну или чтобы не искать, можно в родительской поле type сделать.
Согласен полностью, добавлю только, что в описанном случае важнее совместимость с технологией, иными словами чтобы связка стека разработки и БД популярной. Конечно MSSQL + .net это стандартный суповой набор, но сейчас и постгрес очень даже уживается с дотнетом - адаптеры для ado.net стабильные, ORM-кой поддерживается, поэтому если нужен бесплатный - берите его.
@nevro
> Эта метаинформация используется при исполнении кода?
Да, как минимум с помощью этой метаинфы отыскиваются при выполнении кода классы и методы в сборках.
> Или IL-код - аналогия бинарного кода и в него уже никакие изменения во время работы не вносятся?
Не знаю, почему "или", т.к. также - да, не вносятся. IL-код это бинарный код, только не для реального процессора, а для стековой виртуальной машины, причем он более высокоуровневый - помимо простых операций вроде сложения и записи значения в переменную, есть еще и "создать объект" или "выполнить виртуальный вызов".
Therapyx сделайте проще: один запрос с двумя фильтрами (кстати, сделайте его prepared statement, вручную собирать запрос без особых причин - плохая практика) по обеим датам, но если какая-то из дат не заполнена, ставьте ей дефолтовое значение условной бесконечности. Напр., для даты From - значение 01-01-0001, для даты To - 31-12-9999:
var dateFrom = string.IsNullOrEmpty(dateFromString) ? new DateTime(1, 1, 1) : Convert.ToDateTime(dateFromString).ToString("yyyy-MM-dd");
var dateTo = string.IsNullOrEmpty(dateToString) ? new DateTime(9999, 12, 31) : Convert.ToDateTime(dateToString).ToString("yyyy-MM-dd");
nevro Нет, "до этапа компиляции" - это про нативный C++, где программисту нужны header-файлы, чтобы передать компилятору необходимую метаинфу о скомпилированном модуле или библиотеке (какие классы есть, какие параметры у функций), т.к. в скомпилированном варианте остаются только имена функций (точек входа, если быть точнее). Вся фишка дотнетовских сборок в том и заключается, что вся метаинфа лежит у них внутри - достаточно взять dll-ку, подключить к проекту, или просто открыть Object Browser-ом - и вы все увидите: классы, методы, неймспейсы. И еще очень важно, что есть механизм атрибутов - т.е. пользовательской метаинфы, которая также сохранится в сборке, и которая может быть практически любой.