Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# .NET

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
andryshka69
3 / 3 / 0
Регистрация: 26.11.2013
Сообщений: 129
#1

Взаимодействие между двумя приложениями - C#

19.06.2015, 01:10. Просмотров 2878. Ответов 62
Метки нет (Все метки)

Я читал возможные варианты и из того, что нашел, если верно понял не подходит ничего (отрицать не буду, еще не отоспался после сданного диплома и могу быть не внимателен, прошу простить)



имею 2 приложения, ссылки будут ниже
идея: имеется 2 приложения одно главное с действиями и второе только просмотр.
в первом приложении(DF Admin) выбираю определенный чекбокс и в приложении втором (DF User)
меняется цвет лейбла.

как быть? использовать файл, если да, то какой чтобы не тормозило или исправно работало, ведь копий обоих программ в итоге будет открыто несколько.. наплодить текстовых файлов с единицами/нулями и в втором приложении наставить везде бесконечных циклов для чтения? а насколько это будет верно?

есть ли какой-либо способ чтобы нажать например чекбокс приложения 1 (DF Admin) автоматически во всех открытых копиях программы 1 ставился этот чекбокс и конечно же во всех открытых копиях программы 2(DF User) менялся цвет.


программы:
Кликните здесь для просмотра всего текста
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2015, 01:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Взаимодействие между двумя приложениями (C#):

Взаимодействие между двумя .NET приложениями - C#
Всем доброго дня! Подскажите, что и как лучше использовать для передачи данных между двумя .NET приложениями. Мне необходимо с...

Общение между двумя приложениями - C#
В процессе разработки приложения wpf я окончательно убедился что моя программа не совместима с wpf всего по одной причине , не достаточно...

.NET 3.x Сериализация между приложениями - C#
В MS VS 2010 создал решение и в нём 2 проекта: Client и Server. В каждом расположил класс Package.cs. Внутри каждого проекта сериализация /...

Обмен данных между приложениями - C#
Добрый день! Такая задача, клиент базы данных Oracle стоить 32 битный, а приложение которое должно получать данные из БД 64 битное....

Передача объектов между приложениями - C#
Есть ли способ напрямую передать объекты из одного .NET приложения в другое? Объём достаточно большой, поэтому сериализация-десериализация...

Универсальный обмен данными между приложениями - C#
Посоветуйте, пожалуйста, подход для решения следующей штуки: Передача данных из приложенияА (C#) в приложениеB (C#, C++, Java, остальные...

62
aquaMakc
372 / 316 / 47
Регистрация: 14.02.2014
Сообщений: 1,627
Завершенные тесты: 1
24.06.2015, 21:52 #46
andryshka69, незанятый
1
andryshka69
3 / 3 / 0
Регистрация: 26.11.2013
Сообщений: 129
25.06.2015, 00:01  [ТС] #47
aquaMakc

при добавлении чекбоксов при их нажатии ничего не происходит + крашится если клиент закрывает форму..

https://yadi.sk/d/8QkfRHRZhTeyk
0
aquaMakc
372 / 316 / 47
Регистрация: 14.02.2014
Сообщений: 1,627
Завершенные тесты: 1
25.06.2015, 09:26 #48
andryshka69, а что должно, по твоему, происходить при нажатии чек-боксов, если ты не указал обработчик события?
Цитата Сообщение от andryshka69 Посмотреть сообщение
крашится если клиент закрывает форму
Естественно, ты закрываешь клиента, следовательно рвётся канал связи. Для сервера это исключение. Его надо отловить и обработать.
Что за исключение, и как обработать - как-нибудь сам. Это основы программирования. Запускай из IDE под дебагом и смотри.
1
andryshka69
3 / 3 / 0
Регистрация: 26.11.2013
Сообщений: 129
26.06.2015, 01:09  [ТС] #49
там динамический ip.. вариант с сервером стал менее реальным, тем не менее спасибо aquaMakc, я многое осознал и буду использовать. найти толковый пример какой сделал ты в интернете сложно, кол-во просмотров темы это показывает. спасибо тебе большое) я снова в файлы..

сделал через файл и таймеры..

https://drive.google.com/file/d/0B8t...ew?usp=sharing


если у кого вопрос по телекоммуникациям/сотовой связи welcome, всегда рад ответить
0
Casper-SC
Эксперт .NET
3521 / 1740 / 183
Регистрация: 27.03.2010
Сообщений: 4,927
Записей в блоге: 1
26.06.2015, 12:37 #50
andryshka69, я не пойму, почему у тебя 2 разных решения? Это же дико неудобно.

Добавлено через 2 минуты
andryshka69, можно создать наследника от CheckBox, поместить в него свойство типа int, и потом в окне главном каждому чекбоксу поставить его номер, далее вызывать всего 1 метод передавая туда значение этого свойства, а не миллион методов.

Добавлено через 12 секунд
Или использовать свойство Tag.

Добавлено через 30 секунд
Это чуть не по теме, но код бы подрефакторить не мешало

Добавлено через 1 час 4 минуты
Вот тебе маленькое сокращение кода, явно читабельнее:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        private void reloadall()
        {
            string settingsFile = System.IO.Path.Combine(Application.StartupPath, "info.txt");
            string[] lines = System.IO.File.ReadAllLines(settingsFile, System.Text.Encoding.Default);
 
            checkBoxST.Checked = lines[0] != "0";
            checkBoxSV.Checked = lines[1] != "0";
            checkBoxSNN.Checked = lines[2] != "0";
            checkBoxSR.Checked = lines[3] != "0";
            checkBoxSS.Checked = lines[4] != "0";
            checkBoxSP.Checked = lines[5] != "0";
            checkBoxSN.Checked = lines[6] != "0";
            checkBoxOT.Checked = lines[7] != "0";
            checkBoxOV.Checked = lines[8] != "0";
            checkBoxONN.Checked = lines[9] != "0";
            checkBoxOR.Checked = lines[10] != "0";
            checkBoxOS.Checked = lines[11] != "0";
            checkBoxOP.Checked = lines[12] != "0";
            checkBoxON.Checked = lines[13] != "0";
        }
Хотя можно все чекбоксы запихать в контейнер, каждому чекбоксу присвоить номер, как я писал ранее и бегать в циклах везде, а не вызывать столько методов, сколько чекбоксов.

Добавлено через 1 минуту
И что за названия переменных "с" (сейчас lines), это вообще не тру, так писать не стоит.

Или в одном методе какая-то "а", я вообще не въехал, что оно и для чего. Или это так сразу пишется, чтобы обфускатор не нужно было использовать?

Добавлено через 50 секунд
И метод чтения из файла надо вынести в один отдельный метод и его вызывать отвсюду, а не в каждый метод пихать 2 строки, которые в коде выше.
0
kenny69
burning1ife
1360 / 1187 / 166
Регистрация: 21.09.2008
Сообщений: 3,349
Записей в блоге: 9
27.06.2015, 01:27 #51
Для такой задачи уже давно есть SignalR
http://www.asp.net/signalr/overview/...nalr-self-host

Добавлено через 7 минут
http://www.codeproject.com/Articles/...p-Applications
0
kenny69
burning1ife
1360 / 1187 / 166
Регистрация: 21.09.2008
Сообщений: 3,349
Записей в блоге: 9
27.06.2015, 01:54 #52
Набросал пример, когда при изменении на сервере происходит оповещение всех клиентов.
0
Вложения
Тип файла: rar SignalRNotifier.rar (5.37 Мб, 7 просмотров)
kenny69
burning1ife
1360 / 1187 / 166
Регистрация: 21.09.2008
Сообщений: 3,349
Записей в блоге: 9
27.06.2015, 01:58 #53
Цитата Сообщение от Casper-SC Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
checkBoxST.Checked = lines[0] != "0";
* * * * * * checkBoxSV.Checked = lines[1] != "0";
* * * * * * checkBoxSNN.Checked = lines[2] != "0";
* * * * * * checkBoxSR.Checked = lines[3] != "0";
* * * * * * checkBoxSS.Checked = lines[4] != "0";
* * * * * * checkBoxSP.Checked = lines[5] != "0";
* * * * * * checkBoxSN.Checked = lines[6] != "0";
* * * * * * checkBoxOT.Checked = lines[7] != "0";
* * * * * * checkBoxOV.Checked = lines[8] != "0";
* * * * * * checkBoxONN.Checked = lines[9] != "0";
* * * * * * checkBoxOR.Checked = lines[10] != "0";
* * * * * * checkBoxOS.Checked = lines[11] != "0";
* * * * * * checkBoxOP.Checked = lines[12] != "0";
* * * * * * checkBoxON.Checked = lines[13] != "0";
CheckedListBox? Не, не слышал
0
andryshka69
3 / 3 / 0
Регистрация: 26.11.2013
Сообщений: 129
27.06.2015, 06:28  [ТС] #54
kenny69
у меня локальная сеть с динамическим ip
0
Casper-SC
Эксперт .NET
3521 / 1740 / 183
Регистрация: 27.03.2010
Сообщений: 4,927
Записей в блоге: 1
27.06.2015, 11:31 #55
Цитата Сообщение от kenny69 Посмотреть сообщение
CheckedListBox? Не, не слышал
Скажем так, у него не совсем стандартный UI . Да и я бы сделал точно по другому.
0
andryshka69
3 / 3 / 0
Регистрация: 26.11.2013
Сообщений: 129
27.06.2015, 16:04  [ТС] #56
aquaMakc kenny69 @Casper-SC


Ребят с чем может быть связана ошибка и как фиксится?

я так подозреваю это с чтением/записью связано, но системе должно быть пофигу если читаешь без изменений?
добавить блок try catch? или просто вписать
C#
1
Application.DisplayAlerts=false.
или вписать эту строку + try catch?
0
Миниатюры
Взаимодействие между двумя приложениями  
aquaMakc
372 / 316 / 47
Регистрация: 14.02.2014
Сообщений: 1,627
Завершенные тесты: 1
27.06.2015, 16:16 #57
andryshka69, ну вот о чём я и говорил. Попытка одновременного доступа к файлу из нескольких процессов. Первый из возможных подводных камней обмена через фаил. Самый простой (и неправильный) способ избавиться от ошибки - метод чтения/записи программы, которая вызывает ошибку (написал бы хоть, когда и кем эта ошибка вызывается) оборачиваешь в try...catch и просто не обрабатываешь это исключение. Минусы очевидны - те не осуществляешь чтение файла, следовательно не обрабатываешь изменения.
0
andryshka69
3 / 3 / 0
Регистрация: 26.11.2013
Сообщений: 129
27.06.2015, 21:39  [ТС] #58
@aquaMakc

и как же тогда лучше сделать?!

Добавлено через 5 часов 12 минут
aquaMakc
если клиент сервер делать. ок я допер как узнать ип, залью его в файл например и так же "клиенты" будут его читать и ловить ерроры
0
kenny69
burning1ife
1360 / 1187 / 166
Регистрация: 21.09.2008
Сообщений: 3,349
Записей в блоге: 9
28.06.2015, 12:56 #59
Цитата Сообщение от andryshka69 Посмотреть сообщение
у меня локальная сеть с динамическим ip
Что мешает узнать ip сервера? Или сделать его статическим?
Я же привел полностью рабочее решение.

Добавлено через 40 секунд
Если вы работали через файлы, то почему вам в этом случае не помешал динамический ip?
0
aquaMakc
372 / 316 / 47
Регистрация: 14.02.2014
Сообщений: 1,627
Завершенные тесты: 1
28.06.2015, 13:38 #60
kenny69, смешались в кучу кони, люди...
зачем столько лишнего нацеплено? asp прикручено к Вин форм ржавой проволокой, json библиотеки сторонних разработчиков, пустые классы и при этом ни одного комментария. Это не рабочее приложение, это даже не прототип. Если была цель максимально запутать человека и отпугнуть от программирования - как раз то, что надо.

Цитата Сообщение от andryshka69 Посмотреть сообщение
если клиент сервер делать. ок я допер как узнать ип, залью его в файл например и так же "клиенты" будут его читать и ловить ерроры
шта? какой файл? какой сервер?
Сядь и хорошенько подумай над архитектурой приложения сначала, потом подумай ещё раз с учётом граблей, на которые уже наступил. Вот когда будет реальное представление о том как оно должно работать тогда можно начинать писать код.
0
28.06.2015, 13:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2015, 13:38
Привет! Вот еще темы с ответами:

Как организовать обмен данными между приложениями по интернету - C#
Здравствуйте! Подскажите пожалуйста, каким образом можно организовать обмен данными между приложениями по интернету? Какие методы...

Передача данных между приложениями без сохранения буферного файла - C#
Здравствуйте! Я создаю на C# библиотеку, которая реализует интеграцию 2 приложений - КОМПАС 3D и Internet Explorer. Данные проекта...

Взаимодействие между потоками - C#
Привет. Есть класс А, который содержит не статические методы, которые можно вызвать лишь с главного потока. И есть класс Б, который...

Взаимодействие с приложениями - .NET
Здравствуйте. Хочу сделать программу, которая будет взаимодействовать с разными приложениями. К примеру, уже нашёл, как взаимодействовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru