Задать вопрос
  • Где ошибка в коде?

    @kttotto
    Сравнение корректно. При сравнении со строкой число автоматом приведется к строке. Проверьте в консоли "1" == 1; // true
  • Как правильно создать >=1000 потоков?

    @kttotto
    Макс Максимов, согласен с alexs0ff. Нет смысла создавать столько потоков, в реальности они не будет работать одновременно и будет тратится куча ресурсов на переключения контекста. Для того, чтобы создать поток, уже нужно время и ресурсы, а на 8 ядрах 1000 потоков будут больше времени тратить, чтобы поделить между собой ресурсы процессора.
    Во первых не стоит использовать Thread в чистом виде, лучше использовать пул потоков. А во вторых посмотрите в сторону TPL и его метода Parallel.ForEach. В его настройках можно указать и количество параллельных потоков.
  • Как реализуется локализация по субдоменам?

    @kttotto
    Jack Cooper, все текстовые сообщения ресурса хранятся либо в бд, либо в виде словаря в файлах локализации в таком виде
    {
    	"ru": {
    		"hello word": "привет мир"
    	},
    	"en": {
    		"hello word": "hello word"
    	}
    }

    либо
    {
    	"hello word": {
    		"en": "hello word",
    		"ru": "привет мир"
    	}
    }

    Я предпочитаю второй вариант.
    А в коде при каждом запросе получаете локаль и все текстовые сообщения вставляете так
    var local = GetLocal(request); // это псевдоязык, а не конкретно)
    message["hello word"][local]
  • Как решить проблему, не видит метод контроллера?

    @kttotto
    Если ответ верный, то его не лайкают, а отмечают решением.
  • Как найти цепочки пар?

    @kttotto
    sergey_privacy, как раз из этой. Это стандартная задача принятия решений. Есть множество решений - множество цепочек, нужно составить максимально эффективную. Это все давно решено и легко гуглится, математики там немного.
  • Как сделать циклический запрос к базе данных?

    @kttotto
    User99, что-то Вы меня совсем запутали) Судя по ссылке, для доступа к данным Вы используете EF. Этот значит, что все данные у Вас будут объектно-ориентированны. В каком порядке они загружаются - не имеет значение, важно в каком порядке Вы их отображаете.
    Во первых, я думаю, Вы не совсем точно указали мне модели, лучше покажите модели и как они связаны. И покажите как Вы их отображаете.
  • Как выбрать уникальные значение из результатов поиска?

    @kttotto
    User99, Зависит от того на чем примените. Если Library вернет IQueryable, то и все выражение вернет IQueryable, если IEnumerable - то и выражение IEnumerable.

    И IEnumerable это не массив, это интерфейс для перечисляемых списков, массив - это Array, который тоже реализует IEnumerable и является списком. И List внутри тот же Array только с возможности изменять размер. Если нужен конкретно Array или List, то цепочку можно закончить ToArray() или ToList() соответственно.

    При этом надо учесть, что LINQ использует отложенную загрузку и на момент Select запроса к бд не будет. Если на результате этой цепочки фильтра вы добавите еще одну цепочку как продолжение (даже если в другой строке кода), то среда их соединит в один запрос, который отработает только в момент перечисления. ToArray и ToList внутри делают это перечисление, поэтому именно в этот момент только будет запрос к бд.
  • Не могу вывести данные из связанных таблиц в View?

    @kttotto
    @User99б, Во первых, надо смотреть, что данные из бд уходят во вьюшку: поставить брейкпоинт на return View(sp.ToList()); и посмотреть, что в sp данные есть. Во вторых, надо видеть, что есть на стороне вью, может у Вас там резметки нет или в разметку не включили отображение модели.
  • Почему в var a = new int[1] {5} нет упаковки?

    @kttotto
    footballer, Вы зациклились вообще не понять на чем. В любой статье говорится, что упаковка, это создание объекта-оболочки над значимым типом. Упаковка затратна потому, что происходит алокация. Но нигде не говорится, что это запрещено. Нужно избегать ЛИШНИХ алокаций. Все четко и конкретно, чего Вам еще не хватает для понимания?))

    Например спецом для этого создали дженерик списки. До этого были списки, которые внутри были типа object и при добавление и чтении постоянно происходил боксинг/анбоксинг, что было затратно по ресурсам. Вот в java настоящих дженериков нет до сих пор, и там как раз при использовании списков происходит упаковка/распаковка. Без этого, в java нормально сделать списки было бы не возможно.

    И что значит "реже создавать экземпляры типов по ссылке"? Вообще C# это объектно ориентированный язык, в нем оперируют объектами, а не только значениями. Он таким создавался для упрощения и увеличения скорости разработки, и для упрощенной поддержки кода. И выделение ресурсов в процессе выполнения программы, это нормальный естественный и неизбежный процесс.

    Хотите чтобы все было в стеке? Ну пишите в процедурном стиле. И то алокаций в куче Вы не избежите, ибо весь .net это сплошной объект и состоит из кучи экземпляров других объектов.

    В процессе работы над кодом не удастся избежать упаковок. Упаковка и распаковка, это нужные и полезные вещи в ООП. Просто нужно знать механизм и понимать, когда это ЛИШНЕЕ.

    На этом прошу меня извинить, я откланяюсь, т.к. у меня складывается впечатление, что это будет бесконечно. Просто внимательно и вдумчиво еще раз прочитайте в литературе "матчасть" .net.
  • Почему в var a = new int[1] {5} нет упаковки?

    @kttotto
    footballer,
    1) Копирование происходит, но не происходит алокации (выделения памяти в куче под объект), а это затратно по вычислениям.
    myIntegers[0] = 42; // значения 42 в стеке нет, оно сразу уходит в кучу как значение массива.

    Чтобы было копирование из стека, надо сделать так
    int a = 42;  // положили в стек
    myIntegers[0] = a; // скопировали из стека в выделенное место в куче, упаковки нет, лишних алокаций нет.
    myObjects[0] = a; //  выделили место в куче под object, создали экземпляр object, в него скопировали значение a, в массив, с нулевым смещением, занесли ссылку на этот экземпляр.
  • Почему в var a = new int[1] {5} нет упаковки?

    @kttotto
    footballer,
    Упаковка будет происходить со значениями, которые лежат в стеке, а потом копируются в кучу.

    Я не совсем точно сформулировал. Упаковка не просто копирование, это создание оболочки для значения.
  • Почему в var a = new int[1] {5} нет упаковки?

    @kttotto
    footballer, во второй строке мы не копируем значение из стека. myIntegers это ссылочный тип, т.к. массив. В куче будет выделен неприрывный кусок памяти под значения int и 42 будет хранится в куче как часть массива. Это при условии, что myIntegers объявлялся как int[] myIntegers, в общем упаковки не будет.

    Упаковка, это когда значимый тип приводится к более общему типу и затратный он, потому что нужно создать объект, выделить под него память в куче и туда копирнуть это значение. Вот если будет так object[] myIntegers, тогда при myIntegers[0] = i произойдет упаковка значения 42 в object.

    PS Вот ссылка, мне кажется там все очень доходчиво.
  • Как синхронизировать VS2017 c планшетом на windows 10 для дебага web?

    @kttotto Автор вопроса
    Андрей, Проверял изменения уже после заливки на тестовый сервер, там уже все настроено и сконфигурировано. Просто туда заливается раз в сутки и ждать не хотел, но я больше времени убил просто на попытки все это синхронизировать.
  • Как синхронизировать VS2017 c планшетом на windows 10 для дебага web?

    @kttotto Автор вопроса
    Андрей, сервис обмена сообщениями, без него просто данные не получу на клиенте и сервис для получения и обработки внешних данных.
  • Как синхронизировать VS2017 c планшетом на windows 10 для дебага web?

    @kttotto Автор вопроса
    Андрей, нашел у микрософтов такую фразу:

    "Обратите внимание: если вы хотите просмотреть свое приложение на реальном мобильном устройстве, вам необходимо разместить ваше приложение в IIS или IIS Express. Вы не можете легко использовать встроенный веб-сервер Visual Studio для этого, потому что он не будет отвечать на запросы с других компьютеров."


    Поэтому Ваш ответ верный, вынесите его в ответы, я помечу его как 'правильный'.
    Но в реальности запустить свой проект мне не удалось, т.к. для его работы, кроме веб части, нужно запустить еще пару сервисов вне vs, а это немного геморно, нужно писать отдельно батник с конфигурациями под них. Спасибо за соучастие.
  • Как синхронизировать VS2017 c планшетом на windows 10 для дебага web?

    @kttotto Автор вопроса
    Просто зайти на локальный адрес компа по порту - не работает.
  • Как удалить дубликаты поля типа массив?

    @kttotto
    Максим Тимофеев, А если будет [3,1,2]? Уникальных значений здесь нет?
  • Как сериализовать тип?

    @kttotto
    В винформах есть TreeNodeCollection, а NodeCollection к винформам отношение не имеет. Можно уточнить о каком списке идет речь? И как это все связано с ISite?
    Если говорить о TreeNodeCollection, то TreeNode реализует ISerializable и по идее должен нормально сериализоваться.
    Вы бы привели пример куска кода, который Вы сериализуете и он у Вас не сериализуется.