Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, IT, Вы писали:
IT>>Это не делает чести ни банкам, ни биржам. Местами они так, конечно, работают, но видно невооруженным взглядом, что очень плохо работают, медленно и неэффективно. По мере сил мы эту ситуацию меняем и надо признать не без успеха.
V>Вообще-то в последние лет 5 идет полный отказ вообще от каких-либо технологий "управляемых VM", бо они работают плохо и дают крайне низкую фактическую статистику надежности.
Это только в твоей голове идет. А по факту почти 100% веб-сайтов используют «управляемые вм», почти 100% line-of-business систем от crm до складского учета и управления персоналом. Процессинг крупнейших банков написан на java, android и windows phone приложения по большей части на java и .net. Самый массовый почтовый сервер — exchange написан на .net
QL>NotSupportedException: "Explicit construction of entity type '...' in query is not allowed."
Это linq2sql? у меня работает прекрасно, без замечаний, генерит такой же результат как и groupJoin — все по честному.
Здравствуйте, vdimas, Вы писали:
V>Вообще-то в последние лет 5 идет полный отказ вообще от каких-либо технологий "управляемых VM", бо они работают плохо и дают крайне низкую фактическую статистику надежности.
Кажется, я начинаю догадываться. Ты про какую-то другую альтернативную реальность, я прав?
V>Да и тебя несет малость. Сейчас не 2005-й год, чтобы так задорно петь дифирамбы дотнету — это нелепо смотрится в 2014-м. Поезд уже ушел. Технология в течении 10 лет показывала себя как ненадежная и неэффективная.
Не стоит рассуждать о дотнете, который был в 2005-м году сегодня, когда на дворе 2014-й. Поставь новую версию и убедись сам.
V>Это по-факту попыток использования на крупнейших мировых биржах и банках.
Опять рупь за сто Я работаю в крупнейшем мировом банке и в данный момент занимаюсь миграцией одной системы с "супернадёжного и суперэффективного" железа и софта на .NET. Причём именно её процессинговой, серверной части. Морда и так уже давно написана на .NET.
V>Сама платформа еще сырая и ты, как программист, тут бессилен, бо это вне твоей компетенции — ты лишь пользователь платформы.
Всё же обнови свою версию .NET на более свежую.
V>Определённую нишу она заняла — это там, где надо неторопливо выдавать что-то в веб на странички или как веб-сервисы или через родственные веб-ориентированные АПИ. Это ВСЁ! Т.е. из промышленного применения технологии — действительно всё! Там же, где требуется быстро и надежно — прямо на сегодня оттуда сие недоразумение вымыто, как и джава. Увы, сие медицинский факт. И до устаревания этого факта должно пройти примерно десяток лет, не меньше... чтобы критическая масса поколения next превысила опыт потери просто тонн денег и была выполнена еще одна попытка в этом направлении.
Одно из двух. Либо ты говоришь о софте, валовое количество которого не превышает пол процента, либо ты действительно из другой альтернативной реальности. В моей практике нестабильную работу приложений, написанных на .NET, можно пересчитать по пальцам одной руки и все они связаны либо с кривым нативным кодом, либо с кривыми руками программистов. Про эффективность я вообще молчу. На 80% процентов она определяется архитектурой приложения и небольшое отставание .net от нативного кода как правило легко компенсируется за счёт более высокого уровня технологии.
V>И не надо тут пальцы вейром насчет "по мере сил мы эту ситуацию меняем и надо признать не без успеха". Это всё введение в заблуждение непосвящённых читателей. Я прекрасно в курсе ЧТО ИМЕННО могли доверить пилить на дотнете, если речь о биржах и банках.
Дружище, я тебя хорошо понимаю. Последние несколько лет жизни ты потратил, находясь в плену иллюзий и домыслов, среди ветхих и безнадёжно устаревших технологий. И тебе трудно осознавать, что все эти годы потрачены зря. Но тебе придётся смириться. Не ты первый. Кто-то когда-то считал, что мир покоится на трёх слонах, кто-то утверждал, что 640KB памяти компьютеру хватит до скончания веков. Но технический прогресс остановить пока не получилось ни у кого.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
V>>Это по-факту попыток использования на крупнейших мировых биржах и банках. IT>Опять рупь за сто Я работаю в крупнейшем мировом банке и в данный момент занимаюсь миграцией одной системы с "супернадёжного и суперэффективного" железа и софта на .NET. Причём именно её процессинговой, серверной части. Морда и так уже давно написана на .NET.
Я никогда не работал на крупнейших банках — но только мой опыт 8-ми летний в вендорах банковского софта, показал, что все к уже тому времени когда я влился в это дело — перешли на дотнет (2006 год).
А на самом деле пацаны начали пробовать .NET ещё в бетах. И пока плюсники там всё ещё отлаживали свои формы — и они жутко маргали — по факту получилось, что нет был принят и до сих пор позиций не сдает. Если где-то существуют не дотнет приложения — то только legacy.
Я за свою опыт — самолично перевел карточный процессинг с легаси C/C++ на дотнет. И кстати, жалоб в итоге стало меньше, а точнее — пропали совсем. Потому что тот бред что был в C/C++ (и это не проблема языка, это проблема сложности поддержки, и разрешения проблем) — никуда не годился. Можно было часами медитировать, и медитировали по факту в сумме не одну сотню часов — и всё равно стабильной работы не добились. А вот легаси версия обросла процессом-креш-хэндлером со снятием минидампов и прочего. Только оно никак не окупилось — дампы показали, что креш происходит, из-за того, что environment уже запорчен, другими процессами, которые успешно отработали (когда?, часом раньше, или только что?). Короче говоря — в задаче где всё, что нужно получить сообщение, прогнать его через HSM с пристрастием — обработать и ответить — упасть не возможно. Я в нетной версии даже защитился от кривых дров HSM, и в случае buffer overrun/underrun — заложил жесткий FailFast. И... как и ожидалось — ну нет этого.
Так что в общем, Игорь, — люто плюсую.
PS: Я давно развязался с этими штуками. Теперь больше направлен на американский, и тоже банковский рынок. Как ни странно — там тоже везде используют дотнет.
AP>>... устранил проблемы связанные с динамическим SQL, IT>Динамического SQL по ссылке не найдено. Ты не путаешь термин "динамический" с "plain"?
Хм..., попытаюсь понять, почему ты не нашел по ссылке динамического SQL. Вот здесь
у Sinclair в пункте 2 динамический SQL или нет? НС>Нет. Там попытка его замены статическим (фиговая).
Это не динамический SQL?
2. Клеим строку динамически. Не очень важно — внутри SQL или снаружи:
q = 'select * from orders where 1=1 '
if (@shipDateFrom is not null)
q = q + 'AND where ShippedDate >= @shipDateFrom '
if (@shipDateTo is null)
q = q + 'AND ShippedDate <= @shipDateTo '
exec(q, @shipDateFrom, @shipDateTo);
Здравствуйте, Alexander Polyakov, Вы писали:
IT>>Динамического SQL по ссылке не найдено. Ты не путаешь термин "динамический" с "plain"? AP>Хм..., попытаюсь понять, почему ты не нашел по ссылке динамического SQL. Вот здесь
НС>С точки зрения клиента БД — нет, не динамический.
С точки зрения СУБД это динамический SQL. Это общепринятая трактовка термина “динамический SQL”. Именно этой трактовкой я и пользуюсь.
Здравствуйте, Alexander Polyakov, Вы писали:
AP>Ты хочешь абстрагироваться от СУБД?
Я хочу сказать, что с точки зрения клиентской библиотеки этот код статический. По определению — потому что текст запроса не зависит от значений, вычисляемых в рантайме. Все строго, в математическом смысле формально.
q = 'select * from orders where 1=1 '
if (@shipDateFrom is not null)
q = q + 'AND where ShippedDate >= @shipDateFrom '
if (@shipDateTo is null)
q = q + 'AND ShippedDate <= @shipDateTo '
exec(q, @shipDateFrom, @shipDateTo);
НС>... потому что текст запроса не зависит от значений, вычисляемых в рантайме. Все строго, в математическом смысле формально.
Как же не зависит, значение shipDateFrom получается из того, что пользователь ввел в поле ввода. Если пользователь ничего не ввел, то shipDateFrom равно null.
Если пользователь ничего не ввел, текст запроса такой:
select * from orders where 1=1
Если пользователь ввел какую-либо дату, то текст запроса такой:
select * from orders where 1=1 AND where ShippedDate >= @shipDateFrom
Аналогично для параметра shipDateTo. В итоге получаются четыре разных текста запросов в зависимости от рантайм параметров. Все строго, в математическом смысле формально.