• Как вывести данные из базы данные ASP.NET?

    tsklab
    @tsklab Куратор тега SQL Server
    Здесь отвечаю на вопросы.
    Как вывести 3 таблицу, чтоб вместо TeamId и PlayerId были имена и название команд?
    Использовать связывание по ключевым полям.
    Ответ написан
    Комментировать
  • Что лучше c# или javascript под unity?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    JavaScript в Unity3D нет, есть что-то непонятное под названием UnityScript.
    C# лучше, потому что:
    • мощный язык, спроектированный и развивающийся профессионально, а не по принципу «слепим язычок из JS, явной типизации и палок»
    • большинство примеров в сообществе показано на C# — проще найти решение и найти помощь

    Как джаваскриптеру с 10-летним стажем мне было проще писать на C#, чем на этом якобы JS.
    Ответ написан
    Комментировать
  • Что лучше c# или javascript под unity?

    Kamrit
    @Kamrit
    QA Engineer
    Шарп лучше, больше возможностей
    Ответ написан
    Комментировать
  • Для чего нужен ISession.Lock()?

    AxianLTD
    @AxianLTD
    Судя по документации nhibernate.info/doc/nhibernate-reference/transacti...
    явная блокировка, в зависимости от режима выставленного ранее LockMode. При этом осуществляется принудительная проверка версии данных. Используется, как показано в примере, чтобы быть уверенным в правильной версии данных (возможно обновленных в другой сессии) перед собственным обновлением.
    Ответ написан
    Комментировать
  • Какой ЯП выбрать для данной задачи?

    @d-stream
    Готовые решения - не подаю, но...
    С помощью известного ТС языка.

    Любые иные ответы - окажутся неверными. Ибо на реализацию данной задачи требуется времени меньше, чем на поиски и тем более чтение книжки по незнакомому ЯП.

    Для эксперимента конечно можно попробовать реализовать задачу на brainfuck -)
    Ответ написан
    Комментировать
  • Как правильно сверстать?

    andykov
    @andykov
    Shit happens
    Убираете z-index у .octagon и для .overflow прописываете opacity: 0.99 - https://codepen.io/anon/pen/Bpmywd
    Почитайте про контекст наложения - раз-два-три
    Ответ написан
    Комментировать
  • Есть ли разница между такими SQL запросами?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    EXPLAIN вам в помощь
    Ответ написан
    1 комментарий
  • Как сделать в фотошопе такой задний фон?

    AndrewHaze
    @AndrewHaze
    Умею гуглить яндексом
    Ну я бы путями на слоях
    Ответ написан
    Комментировать
  • Усреднение цвета на изображении?

    @pudovMaxim
    web-developer
    Постеризация, Квантование, Изогелия вроде так называется
    Ответ написан
    1 комментарий
  • Как правильно организовать хранение схожих но разных данных в БД?

    EreminD
    @EreminD
    Кое-что умею
    Я, как художник, так вижу

    [Tests]
    Id | Name | DateCreate | IsDeleted ну и еще, какие вам там надо атрибуты для хранения списка тестов

    [Questions]
    Id | TestId | QuestionText | AnswerText | IsDeleted + свои атрибуты, какие надо

    [Answers]
    Id | QuestionId | AnswerText | IsCorrect (является ли ответ правильным или просто вариант) | IsDeleted и т.д.

    Как будет работать:
    1. берем тест
    2. берем N-ый вопрос для этого теста из таблицы вопросов
    3. берем K ответов для N-ого вопроса. Варианта 3:
    1. К = 0. Ответов в таблице нет - значит вопрос открытый, без вариантов. Сравнивать введенный ответ нужно будет со значением в [Questions].[AnswerText]
    2. К>1. Ответы есть и правильных (IsCorrect) только один - значит нужно показывать radio
    3. К>1. Ответы есть и правильных (IsCorrect) больше одного - показываем чек боксы
    UPD: прочитал ваш коммент
    Кажется, я понял вас. Давайте, мой пример, а вы скажете, то или не то.
    Интернет магазин электроники. У смартфонов свойства (память, экран, емкость батареи), а у пылесосов (мощность, длина провода, количество насадок). Объекты схожи (товары), но свойства разные и разное количество

    Я так делал:
    [Item] --товар
    Id | Name | CategoryId | Cost | и т.д.

    [PropTypes] --виды свойств
    Id | Name | Measure (единица измерения, которая будет подписываться. Типа "Мб", "Вт", "Л", "км/ч") и т.д.

    [ItemProps] --свойства, которыми обладает товар
    Id | ItemId | typeId | и т.д.

    [PropValues] - значения свойств
    Id | PropId | numValue | textValue | boolValue | dateValue

    Можно, конечно PropValues распилить на 4 таблицы, и каждый тип хранить отдельно. Но можно и так. Либо триггер написать, что заполнено может быть только одно поле из 4х (numValue | textValue | boolValue | dateValue).
    Либо в коде это учитывать (менее предпочтительно)
    Ответ написан
    2 комментария
  • Как в ASP.NET WebApi загрузить файл не записывая его на диск?

    petermzg
    @petermzg
    Самый лучший программист
    Для примера:
    Stream stream =  await content.ReadAsStreamAsync();
    Image image = Image.FromStream(stream);
    Ответ написан
    3 комментария
  • Как передать данные в работающий поток?

    petermzg
    @petermzg
    Самый лучший программист
    А чем ConcurrentQueue не угодил?
    Enqueue(T) - добавили, где данные загрузили
    TryDequeue(T) - получили в потоке для обработки
    Ответ написан
    5 комментариев
  • .NET Core -- перспективы, стоит ли изучать?

    @nico
    Ну что значит "переходить". Стоит ли разбираться, конечно стоит, за ним будущее (возможно). Стоит ли переводить текущие проекты? А зачем? Стоит ли начинать новые, вот тут вопрос. Я думаю, что не стоит, еще довольно сыро для серьёзного продакшена. А для мелких попроктов вполне даже сойдет
    Ответ написан
    Комментировать
  • Какой уровень ЗП у программистов vs менеджеров(проджект/продакт)?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Выгоднее быть хорошим специалистом в каком-то направлении, в котором ты сможешь себя реализовать.

    Далеко не всегда просто навыки, знания и упорство в изучении принесет тебе собственную реализацию. Люди разные, и "не твое" означает, что тебе будет противно заниматься какими-то вещами, ты не будешь отдаваться на все сто, и даже на 90, и вообще хорошо если хотя бы на 50%.

    Кроме того, что такое выгодно? Не все меряется деньгами, особенно если зп хотя бы от 1$k - тут уже начинается минимальная зона комфорта, когда кроме работы появляется куча доступных интересов.
    Ответ написан
    2 комментария
  • Как в C# избежать исключения InvalidOperationException?

    petermzg
    @petermzg
    Самый лучший программист
    С элементами формы работа возможна только из потока в котором они созданы.
    Хотите обновлять progressBar, передавайте значение из своего вспомогательного потока в основной и он уже обновит progressBar
    Ответ написан
    1 комментарий
  • Как из списка базового класса сделать список наследуемового класса?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    *Какая-то беда с дизайном.*

    Кастовать вниз по иерархии (downcast) напрямую объекты A в B нельзя, потому что A - это не B. Потому что B содержит какое-то дополнительное состояние (b), которого нет в A и компилятору неизвестно, каким оно должно быть в текущем виде (A конструировался иначе, чем B и как получить валидный B из A - известно лишь программисту).
    Об этом вам пытается рассказать рантайм (Invalid Cast).

    Что касается методов, которые не приводят к желаемому:
    Enumerable.OfType<T>() - фильтрует по типу и законно возвращает пустой список (у вас список A, там действительно нет B)
    Enumerable.Cast<T>() - последовательно делает каст, который невозможен.

    Можно попытаться скопировать объекты в новый список:
    listA.Select(x => new B{ a = x.a }).ToList();

    Но это прокатит лишь в том случае, если мы сможем достать из A необходимые данные для конструирования объекта B. Важно понимать, что это будут именно ДРУГИЕ объекты. Если A некопируем по своей природе, то этот фокус не пройдет.
    Ответ написан
    1 комментарий
  • Как сделать единый составной ключ на разные таблицы?

    @edb
    SQL
    Я бы хранил продукты и полуфабрикаты в одной таблице с дополнительным полем Type. В таблице сохранить только общие атрибуты, а отличия вынести в отдельную EAV-таблицу.
    Ваш вариант с промежуточной таблицей тоже неплох, но немного менее гибок, да и внешние ключи на null значения, так себе решение.
    Ответ написан
    Комментировать
  • Как создавать и отображать элементы в одном представлении (представление строго типизировано)?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Нужно создать новую модель, которая будет включать в себя IEnumerable<City> и City.

    Примерно так:
    public class NewModel
    {
    
      public IEnumerable<City> CitiesList { get; set; }
    
      public City City { get; set; }
    
    }

    Использовать:
    @model NewModel

    @foreach(var city in Model.CitiesList)
    {
      // список
    }
    
    @Model.City.КакоетоСвойство

    Для удобства можно сделать частичные представления и передавать в них CitiesList и City. Первое представление должно ожидать IEnumerable<City>, второе - City. Т.е. будет примерно то, что у вас уже есть, просто обычные представления нужно сделать частичными (убрать все, что связано с шаблонизацией). Вывести эти представления в общем представлении, с передачей в их модель значений из модели общего представления (NewModel):

    @model NewMode
    
    @Html.Partial("CitiesList", Model.CitiesList)
    
    @Html.Partial("CityEditor", Model.City)

    Частичное представление CitiesList:

    @model IEnumerable<City>
    
    // ...

    Частичное представление CityEditor:

    @model City
    
    // ...
    Ответ написан
    2 комментария
  • Зачем нужен Dependency Injection в Android разработке?

    artemgapchenko
    @artemgapchenko
    Начать неплохо бы с понимания того, что такое DI. Обратимся к википедии:

    Внедрение зависимости (англ. Dependency injection, DI) — процесс предоставления внешней зависимости программному компоненту.

    Если выражаться не канцеляритом, а обычным русским языком, то DI - это когда вы своему компоненту (например, классу) предоставляете нужные для него зависимости извне, а не создаете их сами в конструкторе, или через инициализацию в месте объявления поля. То есть не так:

    public class Api {
    	....
    	private final HttpClient client = new OkClient();
    }

    А, например, так:

    public class Api {
    	....
    	private final HttpClient client;
    
    	public Api(@NonNull HttpClient client) {
    		this.client = client;
    	}
    }


    И что нам это даёт?

    Ну, очевидно, нам теперь проще менять зависимости. Нужна вам другая реализация абстрактного класса HttpClient - взяли, и передали её через конструктор, или через метод-setter. В случае с первым куском кода, вам пришлось бы ещё и класс Api переписывать, что в случаях, отличных от тривиальных, может привести к ошибкам. Получается, что ваш класс теперь закрыт от изменений (смотрим Open/Closed Principle).

    Окей, а на практике-то какие бенефиты?

    Во-первых, вы теперь можете написать инициализацию вашей программы через конфигурационные файлы. Скажем, на старте будет читаться простенький текстовый файл, который определяет, какой httpclient использовать, какие настройки доступа к бд применять и так далее, и, исходя из этого, будут определяться зависимости.
    Во-вторых, вам теперь существенно проще писать тесты. Написали вы, скажем, какой-нибудь парсер, который принимает InputStream, содержащий в себе данные json-объекта, как-то хитро его парсит, и выдаёт вам объект вашей бизнес-модели. В приложении этот парсер будет принимать на вход реализацию InputStream'а, которая берёт данные из сети, а в тестах - реализацию, которая просто читает файл с диска (потому что тесты должны выполняться часто и быстро, и ваша задача в тесте - протестировать ваш парсер, а не скорость сетевого соединения).

    Вот, в общем-то, и всё. А Dagger - это просто библиотека, которая автоматизирует ручное внедрение зависимостей, равно как и другие DI-библиотеки.

    P.S. В некоторых случаях чрезмерное увлечение DI может привести к нежелательным эффектам, вроде чрезмерного усложнения кода, поэтому внедряйте аккуратно. Понимание приходит с опытом.
    Ответ написан
    Комментировать