@CSharpChatЭта группа больше не существует

Страница 289 из 1888
Илья
01.02.2017
11:16:35
Кто нибудь может подсказать как в C# Xamarin Forms (XAML) организовать смену страниц приложения с использованием паттерна MVVM?

Alex
01.02.2017
11:21:11
как организовать доступ к файловой системе на сервере, чтобы запросы выстраивались в очередь и не мешали друг другу?

Artem
01.02.2017
11:23:05
как организовать доступ к файловой системе на сервере, чтобы запросы выстраивались в очередь и не мешали друг другу?
не понятна задача. Нужно больше подробностей. С чего такая необходимость? Что значит "мешают друг другу"?

Google
Alex
01.02.2017
11:26:06
есть веб приложение для работы с файлами в гитовом репозитории. и если два или больше человек полезут, к примеру, пуллить один и тот же каталог, возникнет Access denied

Alex
01.02.2017
11:27:43
ну вот, к примеру: Error type LibGit2Sharp.LibGit2SharpException. Message Could not open 'c:/Saved repositories/public/BDD2/.git/FETCH_HEAD': The process cannot access the file because it is being used by another process. это 10 человек полезли одновременно

Летучая
01.02.2017
11:28:54
пилишь такой очередь пришел запрос — исполняешь если что-то ещё выполняется, все остальные кладешь в очередь и дальше типа запрос выполнился — снимаем последний

сорян за кэпство с либгит2шарп не работал

Artem
01.02.2017
11:32:05
Веб-Приложение на чем?

anton
01.02.2017
11:33:23
Умиротворяет? Неужели? :)
ну если после рабочего дня новопассит пить - умиротворяет наверное

Artem
01.02.2017
11:34:58
если на asp mvc, самый примитивный способ - public class GitController : Controller { private static readonly object syncRoot = new object(); public ActionResult Git() { lock (syncRoot) { //do action } return ..smt } }

Alex
01.02.2017
11:35:55
Artem
01.02.2017
11:36:04
не принципиально

но доступ получится эксклюзивный. т.е. в каждый момент времени, врнутри блока lock{} будет один поток.

Google
Artem
01.02.2017
11:37:24
А сервер сам сложит запросы в очередь и т.п.

точнее они будут доходить до лока, ждать синхронизации. Очередность не гарантируется (т.е. не факт, что тот, кто первый пришел начал ждать, первый получил доступ)

Alex
01.02.2017
11:39:00
о, спасибо! а то думал MQ надо прикручивать

Artem
01.02.2017
11:43:03
Ну вообще надо разобраться почему падает LibGit2Sharp

как мне кажется не должно

Alex
01.02.2017
11:45:32
Та потому что не предназначено для того, чтобы в 10 тредов что-то делать и мне кажется это логично. Это как если 10 человек будут одновременно пользоваться одним блокнотом и ручкой

Андрей
01.02.2017
12:04:23
Всем привет. Может кто сталкивался с таким? В форме есть checkBox <div class="form-group"> <label for="isCompletionSuccessfull">Успешное завершение:</label> <input type="checkbox" id="isCompletionSuccessfull" name="isCompletionSuccessfull"/> </div> CheckBox передается в Action как параметр public IActionResult SomeAction(..., bool isCompletionSuccessfull, ...) И его значение всегда false, не зависимо от того чекнут он или нет. В чем причина?

anton
01.02.2017
12:07:34
а как ты его в экшн отправляешь?

Андрей
01.02.2017
12:09:10
<button type="submit" class="btn btn-primary">Закрыть</button>

за пример была взята эта глава http://metanit.com/sharp/aspnet5/7.8.php

Friedrich
01.02.2017
12:12:16
Та потому что не предназначено для того, чтобы в 10 тредов что-то делать и мне кажется это логично. Это как если 10 человек будут одновременно пользоваться одним блокнотом и ручкой
Десять человек могут одновременно пулить один гитовый репозиторий по SSH. Чем принципиально отличается работа через LibGit2Sharp?

Alex
01.02.2017
12:16:21
Так и есть

Friedrich
01.02.2017
12:17:17
Винда ничо не лочит, лочат программы.

Всего-то надо правильные флаги в API передавать, и не будет лочить.

(разве что антивирус какой)

anton
01.02.2017
12:17:50
Винда ничо не лочит, лочат программы.
ну да.. это и имел ввиду.. антивирусы там может какие или хрен знает чего еще в винде наустановлено

Андрей
01.02.2017
12:17:51
<div class="container"> <div class="row"> <div class="col-md-4 col-md-offset-4"> <form enctype="multipart/form-data" role="form" method="post" asp-controller="Events" asp-action="CloseMyEventFormHandler" asp-route-id="@Model.EventId"> <h3>Закрыть задание:</h3> <div class="form-group"> <label for="comment">Комментарий</label> <textarea class="form-control" id="comment" name="comment" rows="5"></textarea> </div> <div class="form-group"> <label for="isCompletionSuccessfull">Успешное завершение:</label> <input type="checkbox" id="isCompletionSuccessfull" name="isCompletionSuccessfull"/> </div> <div class="form-group"> <label for="file">Прикрепить документ:</label> <input type="file" id="file" name="file" multiple /> </div> <button type="submit" class="btn btn-primary">Закрыть</button> </form> </div> </div> </div>

Google
Андрей
01.02.2017
12:20:05
а остальные инпуты приходят? только чекбокса нет?
Да. работает абсолютно все кроме чекбоксов

anton
01.02.2017
12:23:54
Да. работает абсолютно все кроме чекбоксов
а попробуй её через HtmlHelper во вьюшке сделать.. емнип, у чекбокса на самом деле 3 состояния (checked, unchecked и undefined) и хелпер на самом деле еще hidden input создает, что бы это разрулить

Alex
01.02.2017
12:30:18
а как читаешь репу?
Directory.GetFiles(...)

Андрей
01.02.2017
12:30:45
а попробуй её через HtmlHelper во вьюшке сделать.. емнип, у чекбокса на самом деле 3 состояния (checked, unchecked и undefined) и хелпер на самом деле еще hidden input создает, что бы это разрулить
Заменил <input type="checkbox" id="isCompletionSuccessfull" name="isCompletionSuccessfull"/> на @Html.CheckBox("isCompletionSuccessfull", false) Теперь все передается. Спасибо за помощь)

anton
01.02.2017
12:32:17
Заменил <input type="checkbox" id="isCompletionSuccessfull" name="isCompletionSuccessfull"/> на @Html.CheckBox("isCompletionSuccessfull", false) Теперь все передается. Спасибо за помощь)
не за что. там смысл в том, что оно чекбокс с 3-мя состояниями к boolean не приводится, если хочешь избавиться от хелпера - посмотри какой там код генериться и скопипасти ;)

Directory.GetFiles(...)
тебе просто список файлов/фолдеров получить надо для начала?

Alex
01.02.2017
12:37:07
тебе просто список файлов/фолдеров получить надо для начала?
да. а потом файлы ещё распарсить с помощью спец. либы

anton
01.02.2017
12:39:57
да. а потом файлы ещё распарсить с помощью спец. либы
так Directory.GetFiles(...) это ты руками вызываешь или это внутри libgit2sharp?

Alex
01.02.2017
12:40:34
руками. после того, как сделал Pull с помощью libgit2sharp

anton
01.02.2017
12:41:55
что то я запутался. сорри :) а The process cannot access the file because it is being used by another process. у тебя ругается когда N человек пулл делают?

Friedrich
01.02.2017
12:45:26
В смысле, у них есть кнопка, они её нажимают, и сервер запускает десять копий git pull в один каталог.

@proutorov я угадал?

Alex
01.02.2017
12:46:51
Да)

Friedrich
01.02.2017
12:47:06
Это безумие!

Google
anton
01.02.2017
12:47:13
отобрать кнопку!

самое простое - делаешь лок, помнишь о локе, проверяешь лок прежде чем запустить еще один пулл. ну и можно фидбеком юзеру обратно возле кнопки сказать о том, что уже кто то пуллит

Alex
01.02.2017
12:48:04
Да, буду локи юзать, всем спасибо)

Artem
01.02.2017
12:57:30
Да, буду локи юзать, всем спасибо)
Да. Забыл спросить: приложение в одном экземпляре?

Alex
01.02.2017
13:00:29
да. но на каждый реквест создаётся отдельный тред. если я правильно понял вопрос

Artem
01.02.2017
13:00:47
это раз. Еще минус способа, который я написал в том, что в случае ресайклинга, если мы говорим про IIS, у тебя будет момент, когда приложение висит в двух экземплярах

да. но на каждый реквест создаётся отдельный тред. если я правильно понял вопрос
Просто бывает, например что стоит балансировщик, который запросы на разные сервера отправляет

Admin
ERROR: S client not available

Alex
01.02.2017
13:04:21
не-не такого нету и не предвидится пока)

Artem
01.02.2017
13:07:28
не-не такого нету и не предвидится пока)
Ну про ресайклинг, в силе остается. На самом деле я тебе предложил костыль. Сам решай, нужен он тебе или нет. Если надо побороть вопрос с ресайклингом, можешь посмотреть на Mutex например https://msdn.microsoft.com/ru-ru/library/bwe34f1k(v=vs.110).aspx

Alex
01.02.2017
13:24:53
welcome to the club

Алексей
01.02.2017
13:32:37
?О! Тут наверно много нас из того веселого чата))) welcome as well

anton
01.02.2017
13:42:16
что за тот веселый чат? :)

Alex
01.02.2017
13:42:46
этот наверное) https://join.skype.com/uIrC5zKMhMxb

anton
01.02.2017
13:43:29
хм, в коем то веке зашел на upwork, посмотреть халтурку а там:



Alex
01.02.2017
13:43:38
но там унылые флудеры распугали некоторых умных людей

anton
01.02.2017
13:43:40
что за сексизм? и расизм

Reckit
01.02.2017
13:45:03
наверное не хотят много тратиться

Google
Летучая
01.02.2017
13:45:30
Самое главное требование

если ты суперкрутой спец, но мужик и белый, то тебя не возьмут

anton
01.02.2017
13:50:05
смотрите что питонисты себе позволяют.. https://github.com/squeaky-pl/japronto

Ilya
01.02.2017
13:58:20
странный чарт

Илья
01.02.2017
14:30:30
Конструктор может быть асинхронным? (Task)

Что делать если мне в конструкторе надо выполнить асинхронную функцию?

Дмитрий
01.02.2017
14:31:52
Конструктор может быть асинхронным? (Task)
нет, но ты можешь создавать объект внутри таски, и внутри неё же для объекта выполнять асинхронный метод

anton
01.02.2017
14:31:56
конструктор асинхронным быть не может но ты можешь сделать асинк статик метод, который будет возвращать новый экземпляр

Дмитрий
01.02.2017
14:32:30
и возвращать созданный проинициализированный корректным образом объект

anton
01.02.2017
14:37:25
как-то так:

public class Foo { string greeting = string.Empty; public async static Task<Foo> BuildFooAsync(string name) { return new Foo(name); } private Foo(string name) { this.greeting = $"hello #{name}"; } }

? Райзя ?
01.02.2017
14:42:26
https://github.com/Real-Serious-Games/C-Sharp-Promise поясните за библиотеку плиз. И будут ли нужны таски с ней?

Дмитрий
01.02.2017
14:49:09
Ты хоть сам понял что сказал? :D
Прекрасно понял. Вон даже пример привели. Ещё внутри BuildFooAsync добавить для нового объекта foo вызов какого-нибудь асинк-метода - и будет полный комплект.

Илья
01.02.2017
14:49:58
Ладно я уже разобрался. Спасибо. Пожалуй статичный метод подойдет.

Будет как в паттерне фабрика. :D

anton
01.02.2017
14:53:01
https://github.com/Real-Serious-Games/C-Sharp-Promise поясните за библиотеку плиз. И будут ли нужны таски с ней?
хм, интересный вопрос.. я вообще всю жизнь думал что промисы в шарпе это TaskCompletionSource, но что то в исходниках либы про Task вообще ни слова

но оно там может быть в их DLL какой-нибудь

Страница 289 из 1888

Эта группа больше не существует Эта группа больше не существует