powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ищу ORM для MSSQL поддержка ХП важна
25 сообщений из 129, страница 5 из 6
Ищу ORM для MSSQL поддержка ХП важна
    #39762598
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>hVostt, сегодня, 15:21 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790337][21790337]
>Для абстракции от конкретной СУБД, применяют ORM.
<Не нужен мне бульдозер с крыльями и меня не интересует его возможности летака.

Извините, но это не аргумент, а сопливые детские слюни.
Настолько осточертело уже слышать вот этот дикий бред, что даже комментировать неохота.

На самом деле объясняется довольно просто.
Вам тупо лень разбираться, читать, изучать как делать нормально.
Или нет соответствующих способностей.

Ничего страшного, разработка далеко не всем даётся.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762612
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttВМоисеев>hVostt, сегодня, 15:21 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790337][21790337]
>Для абстракции от конкретной СУБД, применяют ORM.
<Не нужен мне бульдозер с крыльями и меня не интересует его возможности летака.

Извините, но это не аргумент, а сопливые детские слюни.
Настолько осточертело уже слышать вот этот дикий бред, что даже комментировать неохота.

На самом деле объясняется довольно просто.
Вам тупо лень разбираться, читать, изучать как делать нормально.
Или нет соответствующих способностей.

Ничего страшного, разработка далеко не всем даётся.
"И вновь продолжается бой" (ц).
"Object/Relational Mapping is the Vietnam of Computer Science" - 15 с лишним лет тому назад было сказано, а до сих пор актуально.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762617
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
За 15 лет после твоей первой и последней программы ты поменял имена переменных на английский.
Ждем твою простынь опять в каком нибудь топике не под катом.
Удачи)
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762683
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>skyANA, сегодня, 02:39 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790717][21790717]
>А это ничего не даст.
<Почему?
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762690
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 03:59 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790728][21790728]
>Извините, но это не аргумент, а сопливые детские слюни.
<Ваше художественное словоблудие на тему: моё или неправильное, на меня не действует.
Выше я привёл функционал работы с информацией Хранилища. Дал "стоимость" реализации в байтах. Для меня этот параметр важен, ибо "таскаю" измененное приложение из Хранилища на раб. станцию.
Думаю, что подобное приложение реализовывали многие с использованием ORM. Покажите размер бинарного варианта.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762706
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевфункционал работы с информацией Хранилища.сначала пугали страшным словом Инвариантность.
Теперь страшное слово "информацией Хранилища".
Это не то хранилище что в дельфи обсуждали \ осуждали?
Там ребята очень практичные против страшных слов.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762855
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 11:50 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790907][21790907]
>Теперь страшное слово "информацией Хранилища".
<Всё совсем не страшно.
У меня Хранилище приложений состоит из:
1. базы данных (простенькая MSSQL) с таблицами и ХП,
2. файлового сервера для хранения .rar контейнеров бинарных версий реализации пользовательских приложений
3. ПО для работы с базой данных:
- WCF сервис доступа к базе данных,
- Пускач (launcher),
- Приложение для работы с таблицами базы данных Хранилища.
Собственно клиентское приложение о Хранилище ничего не знает. При запуске оно получает информацию о доступе к своим серверам (данных и файловых) и работает как двухзвенка.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762876
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевВсё совсем не страшно.сожалею. Это никому не нужно.
Выше приводил ссыль из дельфи.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39763053
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевДля меня этот параметр важен, ибо "таскаю" измененное приложение из Хранилища на раб. станцию.

Всё изменённое? Знаете, если мне это вдруг будет это когда-то важно, я организую доставку изменений (патчи), а не ВСЁ приложение. При таком раскладе, моё решение безбожно выиграет у вашего, даже если целиком оно там будет на пару метров больше весить.

Поэтому, я тысячекратно извиняюсь, но у вас очередной глупый детский аргумент.


ВМоисеевДумаю, что подобное приложение реализовывали многие с использованием ORM. Покажите размер бинарного варианта.

Мне больше заняться нечем. Это очевидные вещи.
Говнокодить, ковыряться в гомне, не желать развиваться и учиться -- богом данное вам право, я не собираюсь его каким-то образом попирать.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39763098
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 19:04 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21791475][21791475]
>...Знаете, если мне это вдруг будет…
< Кончайте гнать пургу. Уже подташнивает.
Куда будете доставлять патчи и что будете делать с ними?
Например, изменилась структура одной таблицы базы данных Хранилища. Я скорректирую приложение работы с таблицами, откомпилирую, архивирую бинарную папку в контейнер и положу контейнер в папку файлового сервера Хранилища. Вы что будете делать? Или как обычно будете продолжать нести ахинею.
< ...Говнокодить, ковыряться в гомне,...
Ну что сказать любителям жолудей - не дано вам понять вкус моих апельсинов. Не дано. А тявкать - ваше право.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39763123
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>Особенно интересует, чтобы была поддержка работы с хранимыми процедурами.
<С ХП работаю так, пример (выборка формируется в List lst_Entity):
вам помогли 4 страницы в чужом топике и чужой теме про ОРМ?
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39763223
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>skyANA, сегодня, 02:39 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790717][21790717]
>А это ничего не даст.
<Почему?
:)

Потому что я хочу выполнять одновременно несколько вызовов одной и той же процедуры, каждый со своими параметрами.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39763345
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевКуда будете доставлять патчи и что будете делать с ними?
Например, изменилась структура одной таблицы базы данных Хранилища. Я скорректирую приложение работы с таблицами, откомпилирую, архивирую бинарную папку в контейнер и положу контейнер в папку файлового сервера Хранилища. Вы что будете делать? Или как обычно будете продолжать нести ахинею.

В смысле куда? Патчи это изменённые, новые файлы и список файлов, которые надо удалить. Формируем патч, отправляем клиентам через механизм обновления.

ВМоисеевНу что сказать любителям жолудей - не дано вам понять вкус моих апельсинов. Не дано. А тявкать - ваше право.

Как я вижу, никаких сдвигов за такое время. Совсем не страшно, когда человек чего-то не умеет, или не знает. Страшно, когда патологически он не способен учиться и усваивать информацию. Как говориться, живите в говне, мне вообще пофигу.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39765941
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttвсё верно, отжимается поток и добавляются совершенно ненужные накладные расходы, к тому же для оборачивания синхронного кода в асинхронный, нужно использовать TaskCompletionSource, а вот такой код -- это обычное тупое непонимание происходящего, нежелание разбираться, быдло кодинг во всей красе.

hVostt , а подскажи пожалуйста, в чем будет разница между оборачиванием в TaskCompletionSource и
Код: c#
1.
await Task.Factory.StartNew(() => ..., TaskCreationOptions.LongRunning)

ведь один фиг для выполнения синхронной операции нам требуется занять какой-то поток?
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39766169
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

вот здесь достаточно понятно написано

https://andrey.moveax.ru/post/csharp-sync-to-async
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39766172
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот чтиво для чуть более глубокого погружения, рекомендую:

https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/tpl-and-traditional-async-programming
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39766179
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttвот здесь достаточно понятно написано

https://andrey.moveax.ru/post/csharp-sync-to-async Честно говоря, не очень (в контексте моего вопроса). Если не говорить о ситуации немедленного возврата результата, там просто рассматривается ситуация, когда забыли обработать исключение в TCS. В моем же вопросе исключение будет отловлено корректно
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
			try
			{
				await Task.Factory.StartNew(() => throw new Exception(), TaskCreationOptions.LongRunning);
			}
			catch (Exception e)
			{
				Console.WriteLine(e);
			}

То есть, допустим, как я должен правильно поступить, чтобы асинхронно выполнить, скажем, System.IO.File.Copy (не берем в расчет наличие асинхронных методов работы с потоками)?
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39766180
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ: Вторую ссылку пока штудирую
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39766227
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

как я понял, в первую очередь это средство привести "старые" асинхронные апи к "парадигме" Tasks
The Nature of TaskCompletionSource<TResult>But in any compositional system that wants to use Task as its centerpiece, just support for asynchronous delegate execution isn’t enough: support must be provided for other asynchronous operations as well. For example, there are a variety of asynchronous operations already implemented in the .NET Framework and exposed through the Asynchronous Programming Model (APM) pattern or the Event-Based Asynchronous Pattern (EAP). In both of these cases, we’d like to be able to refer to these asynchronous operations as Tasks and operate on them as Tasks, even though the underlying work isn’t necessarily being performed by scheduling and executing a delegate.здесь https://blogs.msdn.microsoft.com/pfxteam/2009/06/02/the-nature-of-taskcompletionsourcetresult/
и вот еще https://stackoverflow.com/questions/15316613/when-should-taskcompletionsourcet-be-used
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39766229
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е., "оборачивать в TaskCompletionSource" Task.Factory.StartNew вроде как особого смысла нет.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39766251
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

ну смотри
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
   class Program
    {
        static async Task Main(string[] args)
        {
            Console.WriteLine("\n=== WithTcs");
            Console.WriteLine("Main Thread: " + Thread.CurrentThread.ManagedThreadId);

            try
            {
                var result = await WithTcs();
                Console.WriteLine("result: "+ result);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }


            Console.WriteLine("\n=== WithoutTcs");
            Console.WriteLine("Main Thread: " + Thread.CurrentThread.ManagedThreadId);

            try
            {
                var result = await WithoutTcs();
                Console.WriteLine("result: " + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            Console.ReadLine();
        }

        public static async Task<int> WithoutTcs()
        {
            Console.WriteLine("Thread start: " + Thread.CurrentThread.ManagedThreadId);
            int value = 42;
            var result = await Task.Run(() =>
            {
                Console.WriteLine("Thread run: " + Thread.CurrentThread.ManagedThreadId);
                return LongRunningSyncOperation(value);
            });
            Console.WriteLine("Thread end: " + Thread.CurrentThread.ManagedThreadId);
            return value;
        }

        public static Task<int> WithTcs()
        {
            Console.WriteLine("Thread start: " + Thread.CurrentThread.ManagedThreadId);
            var tcs = new TaskCompletionSource<int>();
            int value = 42;
            Task.Run(() =>
            {
                Console.WriteLine("Thread run: " + Thread.CurrentThread.ManagedThreadId);
                try
                {
                    var result = LongRunningSyncOperation(value);
                    tcs.SetResult(result);
                }
                catch (Exception ex)
                {
                    tcs.SetException(ex);
                }
            });
            Console.WriteLine("Thread end: " + Thread.CurrentThread.ManagedThreadId);
            return tcs.Task;
        }

        public static int LongRunningSyncOperation(int value)
        {
            Thread.Sleep(2000);
            throw new Exception("Упс");
            Thread.Sleep(2000);
            return value + 100;
        }
    }



чё получилось:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
=== WithTcs
Main Thread: 1
Thread start: 1
Thread end: 1
Thread run: 3
System.Exception: Упс
   в TestTcs.Program.LongRunningSyncOperation(Int32 value) в D:\TestTcs\TestTcs\Program.cs:строка 82
   в TestTcs.Program.<>c__DisplayClass2_0.<WithTcs>b__0() в D:\TestTcs\TestTcs\Program.cs:строка 67
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   в TestTcs.Program.<Main>d__0.MoveNext() в D:\TestTcs\TestTcs\Program.cs:строка 19

=== WithoutTcs
Main Thread: 3
Thread start: 3
Thread run: 4
System.Exception: Упс
   в TestTcs.Program.LongRunningSyncOperation(Int32 value) в D:\TestTcs\TestTcs\Program.cs:строка 82
   в TestTcs.Program.<>c__DisplayClass1_0.<WithoutTcs>b__0() в D:\TestTcs\TestTcs\Program.cs:строка 51
   в System.Threading.Tasks.Task`1.InnerInvoke()
   в System.Threading.Tasks.Task.Execute()
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   в TestTcs.Program.<WithoutTcs>d__1.MoveNext() в D:\TestTcs\TestTcs\Program.cs:строка 48
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   в TestTcs.Program.<Main>d__0.MoveNext() в D:\TestTcs\TestTcs\Program.cs:строка 33



как правильно отметили, TCS нужен прежде всего для обслуживания асинхронного кода, основанного на событиях. это не обязательно должен быть EAP. это может быть запущенный внешний процесс и подписка на событие его закрытия, для десктопов актуально.

TCS не создаёт поток, это ключевое.

синхронный код, который мы переделываем в асинхронный в стиле TAP с помощью TaskCompletionSource, не компилируется в машину состояний, точка ожидания всего одна единственная.

LRТ.е., "оборачивать в TaskCompletionSource" Task.Factory.StartNew вроде как особого смысла нет.

да вообще-то есть, если это не какой-то код на коленке на выброс.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39766252
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProТо есть, допустим, как я должен правильно поступить, чтобы асинхронно выполнить, скажем, System.IO.File.Copy (не берем в расчет наличие асинхронных методов работы с потоками)?

в целом -- плохая идея, вставлять в асинхронный код длительные вызовы операций через Task.Run.
лучше выделить такие функции и превратить в асинхронные обёртки с TCS (внутри можно с тем же Task.Run).
завтра для синхронного АПИ появится асинхронный, а код уже весь в костылях.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39766274
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttдлительные вызовыя бы выделил другой критерий - работа с событиями в потоках.
Если этого нет, то Всегда используем не TCS а await.

Shocker.Proкак я должен правильно поступить, чтобы асинхронно выполнить, скажем, System.IO.File.Copy (await
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39766375
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttну смотриНу так в твоем примере WithoutTcs два await-а, то есть ты await-ишь сам вызов метода, а внутри еще раз await-ишь уже задачу, естественно это избыточно, и в данном случае порождает лишний поток. Вариант WithTcs второго await-а не имеет, он оптимальнее - тут понятно.

Но в критикуемом тобой варианте ВМоисеев-а нет обертки и, стало быть, нет второго await-а, ну или в моем варианте:
Код: c#
1.
await Task.Run(()=>System.IO.File.Delete(path))

(просто строка в коде, без всяких оберток) - чем этот вариант будет хуже, чем если сделать Tcs-обертку для Delete()?


(если Хвост что-то ругает, а я не понимаю почему - это не Хвост сказал глупость, это я чего-то недопонял и требуется разобраться
)
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39766388
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro требуется разобраться только не на простынях ВМоисеева)
...
Рейтинг: 0 / 0
25 сообщений из 129, страница 5 из 6
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ищу ORM для MSSQL поддержка ХП важна
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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