Dr.Pipetka
Client
- Регистрация
- 12.12.2017
- Сообщения
- 1 307
- Благодарностей
- 865
- Баллы
- 113
Именно это я и имел ввиду про 3 кубика и 90%.... Не хочу обидеть, реально большенству этого достаточно.Я с плагинами не работал и не знаю как они работают
Именно это я и имел ввиду про 3 кубика и 90%.... Не хочу обидеть, реально большенству этого достаточно.Я с плагинами не работал и не знаю как они работают
Ещё раз говорю, это уже не первый мой раз, когда я хочу отладку в VS.Похоже Вы плохо прочитали статью и не поняли главного смысла который там закладывался. А 5 строчек кода это пример, там может быть и 1000 строк кода.
То что у вас в статье это не подход C# это скрипты.Я уже больше полугода пишу код для проектов ZP только через VS и кайфую на сколько проще писать и дебажить код
Это не реализация - это минимальный пример.И что тут неожиданного, кроме того как тупо это все реализовано?
Очень хочу посмотреть на эту реализацию, если это не шутка.Можно, но их надо будет прокидывать, а если работаем в VS через метод Execute они уже прокинуты и мы можем к ним без проблем обращаться
Вот вам проект который у меня сделан в одном vs кубике, использовал ООП на столько на сколько я его понимаюЕщё раз говорю, это уже не первый мой раз, когда я хочу отладку в VS.
Пока в проекте нет браузера, мне это вообще в голову не приходит, а когда появляется, думаю вот бы отдебажить его нормально.
Статью я на всякий читал, вдруг я что-то делаю неправильно.
В статье ровно то, что есть в документации. Ничего нового.
Хорошо не 5 строк, 1000 строк - этот способ дрочильня какая-то.
Как на счёт ООП?
Как на счёт переиспользования кода?
Как насчёт проверки существования переменной? Собственно самой темы этой ветки.
То что у вас в статье это не подход C# это скрипты.
А C# это как минимум ООП.
Это не реализация - это минимальный пример.
Очень хочу посмотреть на эту реализацию, если это не шутка.
Конечно можно, я не спорю. Просто в ZP есть куча крутых методов которые не нужно писать их нужно просто использовать, а для этого удобней будет запустить VS и ZP, в VS через метод Execute написать код (где уже прокинут project \ instance и работает куча методов ZP), а потом просто взять и вставить этот код в кубик C# и у нас будет сразу готовый кубикВы же в курсе что в солюшене можно сколько угодно классов насоздавать понаписать в них сколько угодно методов и кода с использованием проджекта и инстанса и при этом из метода экзекьют при создании экземпляра класса передать в конструктор и проджект и инстанс и уже в своем самопальном классе и самопальных методах пользоваться и инстанслм и проджектом ?
Проект гляньте что я скинул, и поймёте что у вас бред в статье, так же там гора использований методов зенкиКонечно можно, я не спорю. Просто в ZP есть куча крутых методов которые не нужно писать их нужно просто использовать, а для этого удобней будет запустить VS и ZP, в VS через метод Execute написать код (где уже прокинут project \ instance и работает куча методов ZP), а потом просто взять и вставить этот код в кубик C# и у нас будет сразу готовый кубик
Есть предложение, когда у вас встанет вопрос с дебагом можем созваниться, я Вам покажу и расскажу как я работаю, думаю после этого у вас не будет проблем с VSЕщё раз говорю, это уже не первый мой раз, когда я хочу отладку в VS.
Пока в проекте нет браузера, мне это вообще в голову не приходит, а когда появляется, думаю вот бы отдебажить его нормально.
Вот пожалуйстаОчень хочу посмотреть на эту реализацию, если это не шутка.
public class Handler
{
private ZennoLab.InterfacesLibrary.ProjectModel.IZennoPosterProjectModel _project;
private ZennoLab.CommandCenter.Instance _instance;
public Handler(ZennoLab.InterfacesLibrary.ProjectModel.IZennoPosterProjectModel project, ZennoLab.CommandCenter.Instance instance)
{
_project = project;
_instance = instance;
}
public void Foo()
{
_project.SendInfoToLog("Ура могу обращаться к project");
_instance.GetProxy();
}
}
А что код выводит? С телефона скомпилировать не получается ...
Это очевидная ошибка о несуществовании переменной?И что тут неожиданного, кроме того как тупо это все реализовано?
Это похоже на нормальный проект. Спасибо! Обязательно полистаюВот вам проект который у меня сделан в одном vs кубике, использовал ООП на столько на сколько я его понимаю
Больше спорить не буду, каждому своеПроект гляньте что я скинул, и поймёте что у вас бред в статье, так же там гора использований методов зенки
Это же однопоточный проектВот пожалуйста
Вопрос был именно о реальных объектах зенки, а не о аргументах методов.Можно, но их надо будет прокидывать, а если работаем в VS через метод Execute они уже прокинуты и мы можем к ним без проблем обращаться
static ?Вот пожалуйста
C#:public class Handler { private static ZennoLab.InterfacesLibrary.ProjectModel.IZennoPosterProjectModel _project; private static ZennoLab.CommandCenter.Instance _instance; public Handler(ZennoLab.InterfacesLibrary.ProjectModel.IZennoPosterProjectModel project, ZennoLab.CommandCenter.Instance instance) { _project = project; _instance = instance; } public void Foo() { _project.SendInfoToLog("Ура могу обращаться к project"); _instance.GetProxy(); } }
Тоже прикола не понял, а если Статик, то зачем прайветstatic ?
Ну забыл убрать static, что вам сложно 2 слова удалить?)Это же однопоточный проект
я ему уже писал про статику в его статье... ну не понимает... не наши проблемы... но смешно все равноТоже прикола не понял, а если Статик, то зачем прайвет
Спасибо за проект, обязательно разберусь, как раз стоит задачка по работе с YandexВот вам проект который у меня сделан в одном vs кубике, использовал ООП на столько на сколько я его понимаю
YandexBot/ZennoPosterProject1 at master · ChVA-prog/YandexBot · GitHub
Contribute to ChVA-prog/YandexBot development by creating an account on GitHub.github.com
Точка входа в Program.cs соответственно
Там единственное вход в прогу немного дибильный, т.к проект не обновлял давно, в методе экзекью там должна быть конструкция кейс, которая в зависимости от режима работы установленного в зенке будет вызывать требуемый метод, методы запуска программы находятся в классе StartMethod так что изучение имеет смысл начать с этого класса, так же это проект сделан под мобильный браузерСпасибо за проект, обязательно разберусь, как раз стоит задачка по работе с Yandex
Ещё чуть полистал.Вот вам проект который у меня сделан в одном vs кубике, использовал ООП на столько на сколько я его понимаю
Запустит в многопоток поймёт )я ему уже писал про статику в его статье... ну не понимает... не наши проблемы... но смешно все равно
В конкурс его не стал выкладывать да и вообще продавать, потому что слишком большой проект на одного человека, я только Яндексбродилку доделал, начал делать регистратор, Яндекс выкатил обнову, бробилка сдохла, начал ее поднимать, поднял, Яндекс обновил интерфейс, сломался регистратор, и так по кругу, жопа сгорела и бросил этот проект.Ещё чуть полистал.
Имена адекватные.
Читается хорошо.
Проект отличный!
Шаблон нужно было в конкурс выкладывать!
Ну или пока не поздно, закрыть, и выложить в конкурс ))
У меня пара вопросов к вашему подходу написания кода.
На каждое действие отдельный класс для чего?
Ну допустим есть класс YandexNavigate и YandexWalk.
Я делаю класс допустим YandexReg а у него методы Navigete и Walk.
В чём преимущество такого подхода?
А за оценку спасибо, приятно, т.к я самоучка и код никому не показывалЕщё чуть полистал.
Имена адекватные.
Читается хорошо.
Проект отличный!
Шаблон нужно было в конкурс выкладывать!
Ну или пока не поздно, закрыть, и выложить в конкурс ))
У меня пара вопросов к вашему подходу написания кода.
На каждое действие отдельный класс для чего?
Ну допустим есть класс YandexNavigate и YandexWalk.
Я делаю класс допустим YandexReg а у него методы Navigete и Walk.
В чём преимущество такого подхода?
А за оценку спасибо, приятно, т.к я самоучка и код никому не показывал
И таких конструкций по проекту десяток.Получить первую строку из файла.
Проверить её на null.
Удалить первую.
Вставить её в конец.
public int Execute(Instance instance, IZennoPosterProjectModel project)
{
int executionResult = 0;
project.SendInfoToLog($"Вывод из vs proj: {project.Variables["TestVar"].Value}", true);
return executionResult;
}
Тоесть, по твоей логике надо создавать передаваемые переменные в основном проекте?)но то что ошибки выдали результат который я ожидал, говорит о том что я правильно думаю
Всё правильно, в ПМ ничего не работает, потому что он ищет эту переменную в проекте на котором у тебя вкладка, а вот в зенке все нормДавайте попробую расписать что там в архиве. Будет понятнее.
Имеем плагин, в котором есть входные настройки c текстовым полем которые попадают в переменную TestVar.
Так же там есть два кубика:
1. Кубик оповещения с содержимым "Вывод кубиком: {-Variable.TestVar-}"
2. Кубик это проект VS с содержимым, которое должно быть аналогично кубику 1 с немного другим текстом.
Сохраняем проект как плагин и добавляем в чистый шаблон. Назовем его Main.C#:public int Execute(Instance instance, IZennoPosterProjectModel project) { int executionResult = 0; project.SendInfoToLog($"Вывод из vs proj: {project.Variables["TestVar"].Value}", true); return executionResult; }
В настройках плагина указываем текст который хотим передать в плагин. Здесь мы укажем "Это мы передаем в плагин из main". Никаких переменных мы не создаем, тк они нам не нужны. Мы просто хотим передать плагину какой-то текст.
Вопрос: Что произойдет если запустить main?
Ожидание: Текст переданный во входные настройки попадет в переменную TestVar в палагине.
1.Далее кубик оповещения выведет сообщение "Вывод кубиком: Это мы передаем в плагин из main".
2.Кубик с кодом выведет "Вывод из vs proj: Это мы передаем в плагин из main".
Но получаем мы такое:
Кубик оповещения вывел значение из переменной TestVar.
Кубик с кодом стал искать переменную TestVar в проекте, из которого вызван кубик.
Окей, создадим второй проект Main2. В отличии от main мы создадим в нем переменную TestVar и внесем туда значение "Это значение переменной TestVar в Main2". В входных настройках мы указываем "Это мы передаем в плагин из main2"
Ожидание: Текст переданный во входные настройки попадет в переменную TestVar в палагине.
1.Далее кубик оповещения выведет сообщение "Вывод кубиком: Это мы передаем в плагин из main2".
2.Кубик с кодом выведет "Вывод из vs proj: Это мы передаем в плагин из main2".
Запускаем...иииии....
Кубик оповещения вывел значение из переменной TestVar. "Вывод кубиком: Это мы передаем в плагин из main2 "
Кубик с кодом вывел значение из переменной TestVar ИЗ ШАБЛОНА КОТОРЫЙ ВЫЗЫВАЛ ПЛАГИН. "Это значение переменной TestVar в Main2"
Что мы получаем в итоге - Плагин + проект vs = нерабочее решение. Тк плагин прямо завязан на входных настройках. И я хз как дела обстоят с шифрованными проектами. Ибо уперевшись в такого рода косяки, я понял что нефиг даже связываться.
Тоесть, по твоей логике надо создавать передаваемые переменные в основном проекте?)
Как тогда быть с подобными плагинами? https://skr.sh/vIVgrMJUTnn?a Сколько надо создать переменных?) А какая документация должны быть к таким плагинам?)
Ну да, в зенке уже норм. До этого не проверял. Но толку без дебага в ПМ все равно нет Может заметят и пофиксят.... Конечно же никто не будет это фикситьВсё правильно, в ПМ ничего не работает, потому что он ищет эту переменную в проекте на котором у тебя вкладка, а вот в зенке все норм
Посмотреть вложение 103553
В моём понимание, если ты работаешь в студии, можешь в полной мере использовать ООП, какие нафиг плагины? зачем козе баян? Щас вообще первый раз плагины использовал, даже разбираться пришлось, но так и не понял зачем эти сложности. А в пм у них да, немного тупо сделано, у тебя типа если несколько проектов там открыто, и к примеру запущено решение из какого то одного проекта, то при запуске отладки в студии он будет обращаться к тому проекту, вкладка с которым у тебя выбрана в данный моментНу да, в зенке уже норм. До этого не проверял. Но толку без дебага в ПМ все равно нет Может заметят и пофиксят.... Конечно же никто не будет это фиксить
Для продажи в основном. Для себя держу ДЛЛку со всем удобншками которые могут пригодится.В моём понимание, если ты работаешь в студии, можешь в полной мере использовать ООП, какие нафиг плагины? зачем козе баян? Щас вообще первый раз плагины использовал, даже разбираться пришлось, но так и не понял зачем эти сложности
Так то же самое, у меня так же есть готовые классы с методами свои, которые я просто в проект подкидываю, в студии это всё в разы удобнее, дебаг в студии лучше, точки останова в ПМ использовать ад какой-то,Для продажи в основном. Для себя держу ДЛЛку со всем удобншками которые могут пригодится.
Плагин это в принципе визуальная обертка своих методов, иногда очень удобно. Вот например регер тикток для мобилки пару лет назад писал. Почти полностью одним плагином написан.
Кубиками удобно дебажить, за вечер этот проект накидал, за второй-третий уже перенес все чистый код.
А проекты через студию со всех фронтов идут в топку... Зависимости свои хер подключишь, юзай те что постер использует, перекомпилить что то - надо вырубать постер для замены длл. Дико неудобно.
Короче постер удобен защитой из коробки для продажи проектов и для "быстро накидать" проектик.
Ждем восьмерку, надеюсь там все будет для людей
Я немного про другой дебагТак то же самое, у меня так же есть готовые классы с методами свои, которые я просто в проект подкидываю, в студии это всё в разы удобнее, дебаг в студии лучше, точки останова в ПМ использовать ад какой-то,
да и ладно регер для тока, а если бота делать серьезного? это же сколько кубиков будет, как в этом ориентироваться? Крч вкусовщина