|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Привет, специалисты Winforms! Вот тут в ветке WPF я задал вопрос - какой подход к нижеприведенной задаче самый лучший? Казалось бы - вопрос не сложен. Да, вопрос не чисто про WPF, а про набор технологий, но ведь WPF и не технология, как таковая, а идеология. Ответ я пока так и не получил. И заинтересовался - а смогу ли я получить ответ от специалистов по винформам? Преклоняюсь перед могучим разумом сообщества и прошу накидать решений для такой простой задачи: Пусть есть таблиЦки на MS SQL Server 2008: CREATE DATABASE [Db1] GO USE Db1 GO CREATE TABLE T1 ( [T1_Id] INT NOT NULL PRIMARY KEY --ключ первой таблицы , [T1_Name] NVARCHAR(250) --некий текст , T2_Id INT --ссылка на ключ из второй таблицы ) GO CREATE TABLE T2 ( [T2_Id] INT NOT NULL PRIMARY KEY --ключ второй таблицы , [T2_Name] NVARCHAR(250) --некий текст ) GO Накидайте пожалуйста пример с самым правильным подходом винформ, который бы: 1. Загружал данные из T1 и отображал в списке (сортировал, фильтровал) 2. Позволял бы выбирать значение из T2 для проставления в T1.T2_Id 3. Сохранял бы изменения на скул ps: 1. Возможно, ваши варианты сильно отличаются от евангелистского подхода - важно, чтобы решение работало! 2. Я понимаю, что тут не только и не столько винформ. Но хочется получить пример работоспособного совокупного подхода. 3. И да. Датасет\дататейбл - здорово, классно, замечательно. Но только пожалуйста, не надо его в качестве примера. Заранее благодарю! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2016, 00:22 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2016, 00:45 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
krudensoft, Нет понятия "самого правильного подхода". Все зависит от ваших навыков и опыта. В разных шаблонах организации интерфейса (MVP/MVC/MVVM/MVPVM) приняты свои подходы. Нюансов может быть много, но суть одна: представление каким-либо образом передает команду от пользователя классу, который занимается логикой обработкой команд. Тот в свою очередь делает что требуется над моделью/моделями, ходит к серверу/базе данных, после обновляет модели и сообщает представлению о результате. Модели данных Код: 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.
Презентер Код: 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.
Представление Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2017, 22:36 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
krudensoft, https://msdn.microsoft.com/ru-ru/library/system.windows.forms.datagridviewcomboboxcolumn(v=vs.110).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2017, 10:20 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
насколько вообще mvp применим в реальных проектах? в чем его сокральный смысл? Это тесты и "мифическая" возможность повторного использования имеющейся логики? если вся логика в Service'ах и они имеют все тесты то насколько критично тестирование presenter. кто-то использовал mvp на работе, в проектах под заказ или видел как это делали другие? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2017, 17:43 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Судя по количеству постов видно mvp мертв нежеле жив .... Создал в тестовый проект на формах. 1 Service и 1 Repository Создал форму для того чтобы отобразить данные из сервиса. и получился следующий код если не использовать MVP получается что сервис не нужно передавать как параметр в конструкторе формы? использовать интерфес как приватный поле + Ninject или LightInject? если бы вы разрабатывали код который придется передать кому то другому на поддержку который будет позже расширяться как бы вы тут поступили? Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 23:26 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Если это домашнее приложение из одной формы, то ладно. Иначе же это быстро разрастется в неповортливую неподдерживаемую махину. Будет к примеру не одна, а 100 форм, и в кжадой IServiceCompany . И потом вдруг IServiceCompany понадобится еще одна зависимость от другого репозитория - что делать? Или через год упорного манки-кодинга вдруг захочется перейти на WPF - и приплыли. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 04:13 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Артем Gнасколько вообще mvp применим в реальных проектах? в чем его сокральный смысл?Это способ создания code-behind там, где он не идёт "из коробки". Если, в таких системах как WPF, WinForms, Delph и других, code-behind присутствует, то для отказа от code-behind в пользу MVP, MVC, MVVM и других должны быть явные причины. Если таких причин нет, то и применять их в данном случае не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 04:53 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
PallarisЕсли это домашнее приложение из одной формы, то ладно. Приложения не домашнии и не комерческие в том смысле что оно не для продажи а для бухгалтеров. Приложения для расчетов чего либо. Алексей КАртем Gнасколько вообще mvp применим в реальных проектах? в чем его сокральный смысл?Это способ создания code-behind там, где он не идёт "из коробки". Если, в таких системах как WPF, WinForms, Delph и других, code-behind присутствует, то для отказа от code-behind в пользу MVP, MVC, MVVM и других должны быть явные причины. Если таких причин нет, то и применять их в данном случае не нужно. Приложения на формах. Вот это можно назвать причиной? - Если в интерфейс / в логику вносятся постоянные изменения - Часто из за не опытности не правильно разрабатывается интерфейс. Спустя условно 3-6 месяцев приходит понимание как это должно было быть на самом деле. - Есть желание уйти в будущем от винворм на mvc. Есть предположение что при использовании MVP перейти на MVC будет проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 13:24 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Артем G. - Есть желание уйти в будущем от винворм на mvc. Стандартный вопрос нк собеседовании - назвать три основных отличия винформс от mvc ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 17:46 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Артем G, сейчас доступно множество материалов по проектированию приложений. Изучайте, пробуйте. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2017, 11:20 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
PallarisАртем G. - Есть желание уйти в будущем от винворм на mvc. Стандартный вопрос нк собеседовании - назвать три основных отличия винформс от mvc это серьезно или юмор такой? skyANAАртем G, сейчас доступно множество материалов по проектированию приложений. Изучайте, пробуйте. вопрос то изначально был другой. не решить за меня какие то вопросы. вопрос был кто-то использовал mvp на работе, в проектах под заказ или видел как это делали другие? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2017, 20:40 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Артем G, ну я использовал и не только MVP... Но ИМХО большинство, как Вы, в баттонклики запихивает кучу фигни :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2017, 09:02 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
skyANAАртем G, ну я использовал и не только MVP... Но ИМХО большинство, как Вы, в баттонклики запихивает кучу фигни :) вот. не хочу быть большенством, пихать кучу в батонклики. Вы тот, кого я искал. расскажите пожалуйста об Вашем опыте использования MVP в реальном проекте. с какими подводными комнями столкнулись? есть что, что-то понравилось, а что-то не понравилось? наткнулся на вот такой вариант LINK . знаю что время у всех не много, но был бы примного благодарен если бы глянули и оценили. если бы пришлось работать фрилансером, создавать в одиночку winforms проект выбрали бы mvp опять? --------------------- PS. Есть еще пару вопросов, не буду перегружать этот пост. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2017, 23:58 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
наткнулся на вот такой вариант LINK . знаю что время у всех не много, но был бы примного благодарен если бы глянули и оценили. нормальная, годная реализация если бы пришлось работать фрилансером, создавать в одиночку winforms проект выбрали бы mvp опять? WPF же, MVVM ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 06:42 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Pallarisнаткнулся на вот такой вариант LINK . знаю что время у всех не много, но был бы примного благодарен если бы глянули и оценили. нормальная, годная реализация если бы пришлось работать фрилансером, создавать в одиночку winforms проект выбрали бы mvp опять? WPF же, MVVM про реализацию, спасибо. если решусь выйти за зону конфорта и использовать mvp, буду придерживаться того как там. по поводу WPF же, MVVM. Вопрос то был немного в другом. сли бы пришлось работать фрилансером, создавать в одиночку winforms проект выбрали бы mvp ? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 15:04 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Артем Gпо поводу WPF же, MVVM. Вопрос то был немного в другом. сли бы пришлось работать фрилансером, создавать в одиночку winforms проект выбрали бы mvp ? вы так говорите, как будто фрилансер, что то там решает. На чем скажут делать, на том и будите, не хотите, досвидание. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 15:08 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Roman MejtesАртем Gпо поводу WPF же, MVVM. Вопрос то был немного в другом. сли бы пришлось работать фрилансером, создавать в одиночку winforms проект выбрали бы mvp ? вы так говорите, как будто фрилансер, что то там решает. На чем скажут делать, на том и будите, не хотите, досвидание. суть в другом. у вас есть возможность выбора. не важно кто вы и где. вот при таком раскладе, вы выберите mvp. Ок поясню какой ответ хотелось бы услышать. Я работал c MVP в N проектах. Да, выберу MVP сново, потому что это круто, потому что это правильно итд итп. Нет, не выберу MVP снова, а буду все писать в батанкликах, потому что mvp отстой, потому что вы наткнетесь на кучу подводных комней, будете бороться с невидимыми деманами итд итп. Ну вот как то так... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 15:30 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Артем G, На самом деле все проще. Нужно брать общепринятый способ реализации для конкретной технологии, чтобы когда другой человек поддерживал/дорабатывал ваш код, он не путался. Честно говоря, MVP-реализации редко встречал, больше MVC/MVVM ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 16:47 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Arm79Артем G, На самом деле все проще. Нужно брать общепринятый способ реализации для конкретной технологии, чтобы когда другой человек поддерживал/дорабатывал ваш код, он не путался. Честно говоря, MVP-реализации редко встречал, больше MVC/MVVM Вот причина почему я строчу на форуме. Не ради личной забавы. Или чтоб покуражиться над тем кто будет читать. А чтобы понимать чужое / чтобы понимали мое. Прежде чем задавать вопросы я погуглил эту тему условно последний год-два. раз в пол года по 2-3-4 дня. Как понял С WinForms используют MVP. С WPF используют MVVM. Вот нашел пример LINK . Господа выше подтвердили что пример годен. Это MVP. Ок, я посмотрю в интернете пример с Winforms + MVVM. Если не сложно, позволяет время то мне бы было интересно посмотреть на ваш пример или услышать в чем разница. ------------------------------------------------ а вопрос так и остался открытым. скопирую его чтобы не был пропущен. Ок поясню какой ответ хотелось бы услышать. Я работал c MVP в N проектах. Да, выберу MVP сново, потому что это круто, потому что это правильно итд итп. Нет, не выберу MVP снова, а буду все писать в батанкликах, потому что mvp отстой, потому что вы наткнетесь на кучу подводных комней, будете бороться с невидимыми деманами итд итп. Ну вот как то так... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 17:00 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Изначально у винформс кривоватый биндинг, поэтому требовался некий посредник между моделью и вьюхой, который бы распихивал все из модели во вьюху и обратно. Его назвали presenter. Логика по максимому выносилась в презентер, но все равно вьюха была обвешана интерфейсом с кучей свойств для общения с презентером. Потом появился wpf с нормальным биндингом, и презентер стал не нужен. Появилась вью-модель, которая через биндинги крепилась ко вьюхе и обновляла модель. Просто в винформс не всегда легко можно отскочить биндингами, вот и вся разница ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 05:39 |
|
Лучший способ для работы с данными под винформс
|
|||
---|---|---|---|
#18+
Артем GАлексей Кпропущено... Это способ создания code-behind там, где он не идёт "из коробки". Если, в таких системах как WPF, WinForms, Delph и других, code-behind присутствует, то для отказа от code-behind в пользу MVP, MVC, MVVM и других должны быть явные причины. Если таких причин нет, то и применять их в данном случае не нужно. Приложения на формах. Вот это можно назвать причиной? - Если в интерфейс / в логику вносятся постоянные изменения - Часто из за не опытности не правильно разрабатывается интерфейс. Спустя условно 3-6 месяцев приходит понимание как это должно было быть на самом деле. - Есть желание уйти в будущем от винворм на mvc. Есть предположение что при использовании MVP перейти на MVC будет проще.Если речь идёт о реальном проекте, то причиной можно назвать только экономию времени на разработку и дальнейшее развитие проекта. Например, экономии времени можно достичь за счёт повторного использования кода, который выносится в отдельные классы при реализации шаблонов MV*. Если же нет чёткого понимания того, на чём удастся сэкономить благодаря применению шаблонов MV*, то лучше с ними не связываться. Если речь идёт об учебном или "полу учебном" проекте, то обязательно нужно попробовать. Тут главное, чтобы потом были сделаны правильные выводы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 06:56 |
|
|
start [/forum/topic.php?fid=20&fpage=46&tid=1399976]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 300ms |
total: | 447ms |
0 / 0 |