Ответы пользователя по тегу C#
  • Как узнать, что в проекте(файлах и папках) были изменения?

    @dmitryKovalskiy
    программист средней руки
    Для такой задачи есть source control.
    Ответ написан
    Комментировать
  • Как передать свойство в другой класс?

    @dmitryKovalskiy
    программист средней руки
    Передавать в другой класс вы ничего не можете. Может в другой объект? А что мешает сделать так -
    obj1.prop = obj2.combRangeAccess ?
    Некостыльные варианты зависит от вашего алгоритма. Что вы реализуете, как и почему именно таким методом. Вы хотите чтобы у вас один класс(именно класс) зависел от состояния комбобокса? это плохая идея. Объект класса еще ладно - на уровне конструктора можно просто передать состояние нужного вам свойства.
    Ответ написан
    1 комментарий
  • Как лучше реализовать интерфейс и класс?

    @dmitryKovalskiy
    программист средней руки
    Ничего не понял если честно. На мой взгляд проверка токена - проблема аутентификации, GetCurrentUserEntities - что-то похожее на получение данных. Вам не кажется что вы в одном интерфейсе смешиваете несколько логических конструкций? Если у вас в интерфейсе много методов - скорее всего вы что-то делаете не так. Для чего вам статический класс? ради экономии ресурсов? вы можете Unity настроить так чтобы объект нужного вам интерфейса реализовывал паттерн - синглтон. Ну или сами его реализуйте. Будет объект в единственном экземпляре и прекрасно резолвится и мокируется.
    Зачем вы в методы передаете токен? для авторизации? вы на каждом вызове метода чтоли будете проверять валидность токена? Вот первый результат простейшего запроса в яндексе.

    Как итог - на мой взгляд у вас проблема не в интерфейсе, а в голове. Вы слабо представляете архитектуру того что делаете и смешиваете все в одну кучу.
    Ответ написан
  • Какую книгу на русском языке выбрать по ASP.NET Web Forms новичку без знаний C#?

    @dmitryKovalskiy
    программист средней руки
    www.ozon.ru/context/detail/id/4711416 Вот такая есть книжка. Вам нужно искать "антикварную" литературу по ASP.NET для версий .net 3.5-4(максимум).
    Ответ написан
  • Как известить пользователя что он что то добавил?

    @dmitryKovalskiy
    программист средней руки
    зависит от того что вы хотите сделать с результатами. Можно опираясь на то что не возникло внеплановых исключений - считать что код отработал корректно и запись добавлена. В вашем случае SaveChanges возвращает число строк, над которыми произошла манипуляция. Если вернулось что-то больше 0 - значит строка добавлена.
    Ответ написан
    Комментировать
  • Как правильно реализовать представления в ASP.NET MVC?

    @dmitryKovalskiy
    программист средней руки
    Забудьте про ViewBag навсегда - это инструмент чтобы подтащить во вьюху строчку сообщения и все. Строить на нем программную логику - идея ниже среднего. Вещи вроде NoSidebar должны решаться через CSS или на крайняк через клиентскую логику. Как ни странно - это два очень мощных инструмента, позволяющих не городить огород из вьюх и layout. Определитесь с архитектурой приложения. Вы говорите - куча страниц, получается у вас куча методов контроллеров или куча контроллеров? Или вы программной логикой подменяете вьюхи? Откуда взялась куча страниц? Возможно что весь этот зоопарк надо группировать в сложные View содержащие PartialView, основанные на витиеватых моделях. Если у вас много контроллеров - то возможно пора включать регионы и под них клепать сообственные layout в рамках логики региона.
    Ответ написан
    Комментировать
  • Какую литературу по созданию клиент-серверных приложений можно почитать новичку?

    @dmitryKovalskiy
    программист средней руки
    По asp.net mvc/web api могу порекомендовать www.asp.net/aspnet .
    Касательно WCF - на мой взгляд ничего удивительного в сроке давности книг нету, я не слышал чтобы за последние годы кто-то всерьез перекопал архитектуру технологии, так что можете смело брать в руки.
    По поводу разницы mvc/web api - asp.net mvc предполагает разработку полноценного веб-приложения, которое может иметь api, а может и не иметь. web api - это разработка конкретно rest api. Они безусловно похожи и могут использоваться параллельно, но небольшая разница все-же есть.
    По поводу "что считать веб-приложениями?" - на мой личный взгляд вопрос дискуссионный. Что в это слово вкладывается на 100% - наличие серверной стороны приложения, которое в свою очередь имеет доступ к какому-либо хранилищу данных. Кто будет клиентом? лет 10 назад это был бы пользователь браузера, сейчас уже все зависит от задач, которое ваше приложение решает. Возможно это приложение, возможно веб-морда, возможно настольное приложение, которое обращается к серверной логике(хотя бы просто для доступа к данным)
    Ответ написан
    Комментировать
  • Как правильно посчитать бонусы в карточной игре?

    @dmitryKovalskiy
    программист средней руки
    Если решать немножко в лоб. Предположим у вас не класс Card а иерархия классов ICard для каждого класса или типа карты(тут уже полно фантазии для реализации). И весь этот зоопарк классов реализует интерфейс IBonus с методом StartBonusEffect который на вход получает ссылку на окружение(класс доски, из которого можно вытащить свои карты или оппонента, жизни каждого игрока и прочее). А в реализации этого метода можете уже куражиться как хотите. Выиграть, проиграть, убить всех оппонентов, сделать своих имбами, и т.д. и т.п.

    Ну это на коленке если набросать.
    Ответ написан
    Комментировать
  • Как сделать наследование от нескольких классов в C#?

    @dmitryKovalskiy
    программист средней руки
    В любом учебнике по C# в главе про наследование первым делом вам бы сказали что такое невозможно. Для сферической задачи в вакууме решения нету. Для более конкретных - можно найти какие-либо архитектурные решения. Если вы не хотите наследовать реализацию этих классов - делайте через интерфейсы.
    Ответ написан
    Комментировать
  • ASP.NET MVC, лучшие практики?

    @dmitryKovalskiy
    программист средней руки
    Я конечно не гуру, но попробую озвучить свое мнение.
    1)В общем и целом - да. Но что по вашему - короткий маршрут? короткие слова или малое число слешей? Тут все же качели читабельности неподалеку.
    2)Я считаю да и причина довольно банальна - я не хочу лазить по всему проекту чтобы выяснить почему данный роут свалился в данный контроллер. Но есть исключение - регионы(Areas). У них свой RouteConfig и не исключено что он будет работать отлично от дефолтного.
    3)Это вообще не проблема. Вам никто не запретит писать Javascript-логику, которая потом по ходу дела возьмет еще данных через API и сама нарисует view. Делайте как хотите, но это должно быть читабельно, поддерживаемо и хоть немного соответствовать поставленной задаче( не надо пользовать Angular только чтобы попользовать Angular)
    4) Тут вы все в одну кучу смешали. Максимально короткими? В принципе да, но я хотел бы прочитав название точно угадать что он делает, а не узреть сюрприз в последствии. В остальном тоже соглашусь.
    5) Предположим она нужна. Во первых уберите слово JQuery - сия библиотека к валидации имеет мало отношения. Во вторых на сервере как правило хватает проверок свойств ModelState.isValid и Model.isValid. Разумеется если ваша модель помечена всеми атрибутами, ограничивающими корректные значения. Тут правда есть одна заковыка - предположим у вас меняется логика валидации(поля обновились или еще какие-то телодвижения совершены). На практике вам нужно в двух местах обновлять одну и ту же логику, что не очень правильно(потенциальное дублирование кода, потенциальные ошибки забывчивости).
    6)Может да, а может и нет. Повторюсь - клиентскую сторону можно лепить разными методами. Можно и Javascript-ом. В ASP.NET это не возбраняется. Это вообще нигде не возбраняется.
    UPD:Программировать на C# внутри View не стоит. Тащить доп.данные тоже, хотя изредка такая необходимость возникает(словарь какой-нибудь подтащить). В основном код должен содержать вспомогательные функции- например сформировать какую-нибудь фразочку или проверить состояние объекта по нескольким полям вместо того чтобы писать кучу if в разметке.
    END UPD.
    7)Если честно не понял о чем вы.
    8)Это не костыль, это транспортная система для коротких сообщений и простых типов. Использовать в качестве транспорта для модели тоже можно, но не безопасно с точки зрения приведения типов.
    9) А что вы понимаете под "голый Ajax"? XmlHttpRequest? Да, на мой взгляд лучше его не использовать. Вторую часть вопроса не смогу комментировать без ответа на первую. Вьюшки бывают разные, некоторые подтягивают дополнительные данные по ходу дела. Тут нужно немного конкретики.
    10) Не согласен и уже озвучивал ранее. Razor один из доступных инструментов. Можете использовать его - он хороший, а можете не использовать.
    Ответ написан
    4 комментария
  • Windows.Form c# как воскресить форму?

    @dmitryKovalskiy
    программист средней руки
    Если какой-то чудак что-то поправил и все сломалось - вам нужно начать пользоваться системами контроля версий(любыми - git,svn,tfs,hg - совершенно пофиг).
    Если ваша программа кричит что не удается загрузить какую-либо сборку :
    1) разберитесь что за сборка
    2) разберитесь где она ее ищет
    3) разберитесь нужна ли она вообще
    4) поправьте ссылки или переустановите нужные пакеты( да, лучше пользоваться nuget чем копирнуть ссылочку и ткнуть программу в место где она лежит)
    Ответ написан
    Комментировать
  • Почему Wcf возвращает пустое тело ответа?

    @dmitryKovalskiy
    программист средней руки
    Будем честны - вы не просто добавили один параметр в адресную строку, а всю логику переписали. Вы запрашиваете Stream уже для файла с другим именем. Исходя из этого данное поведение может быть даже правильным в рамках описанной логики..
    Ответ написан
  • Почему не загружается view после POST-запроса?

    @dmitryKovalskiy
    программист средней руки
    Ткните пальцем в строчку кода, которая обрабатывает результат AJAX-запроса ? Вы ткнули контроллер - он вернул ответ. Вопрос - куда вы дели ответ?
    Ответ написан
  • Каким должно быть портфолио джуниора?

    @dmitryKovalskiy
    программист средней руки
    Портфолио джуниора - это его голова. Вы можете писать любую демку или микропрограмму - но проверять будут скорее всего ваше понимание платформы, знание алгоритмов, адекватность поведения и прочее. Джуниора априори надо учить и опекать.
    Ответ написан
  • С помощью чего можно генерировать штрих код на C#?

    @dmitryKovalskiy
    программист средней руки
    nugetmusthaves.com/Tag/barcode

    Сам использовал zxing
    Ответ написан
    Комментировать
  • Как сделать так, чтобы в случае выполнения определенного условия ВСЕ кнопки данной формы реагировали одинаково?

    @dmitryKovalskiy
    программист средней руки
    Как вариант - отлавливать событие изменения состояния textBox. Уточнить что собственно ввел пользователь. И если он ввел нужный вам символ - последовательно привязать всем кнопкам нужный вам обработчик события(при этом, если необходимо, отвязать старые обработчики)
    Ответ написан
    Комментировать
  • Как обратиться к ресурсам динамично(по индексу или иным способом)?

    @dmitryKovalskiy
    программист средней руки
    Для таких задач изобретены паттерны проектирования. Разумеется 46 if else if - зло. На мой взгляд тут может пригодится state-машина, хотя и не особо принципиально.Суть - Сделаете 46 классов реализующих один и тот же метод GetStream(название для примера), а в коде будете при действиях пользователя - подменять класс .Что-то вроде
    someObject.State = new WarningState()
    player.Stream = someObject.State.GetStream();

    Так же можно написать 1 обертку над switch/case хотя это не очень красивое решение. Но тоже возможно.
    Ответ написан
    Комментировать
  • Возможно ли сделать switch case по регулярному выражению?

    @dmitryKovalskiy
    программист средней руки
    switch case ищет соответствие переменной string и ее возможное значение в case. Что вы хотите сопоставить? Что в переменной string хранится какое-то регулярное выражение? Или что string соответствует одному из регулярных выражений? Если второе, то ваш путь if else if.
    Ответ написан
    4 комментария
  • На самом деле ли в книге ошибки?

    @dmitryKovalskiy
    программист средней руки
    Вы пишете код вне конструктора или методов класса Zoo. Соответственно код подчеркивается. Если прямо вот так написано в книге - это ошибка.
    Ответ написан
    4 комментария
  • Чем грозит сильная связанность между слоями для приложения?

    @dmitryKovalskiy
    программист средней руки
    Одна из основных проблем сильной связности - объем кода, необходимый для каких либо изменений в системе. В идеале код должен допиливаться только в нужном слое, но если надо вносить обновления в соседние слои - это плохо.
    Ответ написан
    Комментировать