• Silverlight умер?

    @dmitryKovalskiy
    программист средней руки
    Он в интенсивной терапии , в критическом состоянии. А в соседней палате лежит Flash
    Ответ написан
    3 комментария
  • Visual studio 2015 бесплатная?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Тут пишут что лечится с помощью "Восстановления" VS в Панели управления → Программы и компоненты
    Ответ написан
    Комментировать
  • Как быть с моделями в ASP.NET MVC?

    Nipheris
    @Nipheris Куратор тега C#
    Короткий ответ на ваш вопрос: Code First, Mappings.
    Длинный ответ: вам действительно нужно разобраться, что называть моделью.
    Лично я убежден, что модельные классы, представляющие из себя DTO - это по-любому anemic data model, а анемичная модель - это в 90% случаев нехорошо. Поэтому, у вас два варианта: отказаться от генерации "по картинке" в пользу Code First (рекомендую), либо пойти по пути Евгений Колегов - сказать, что EF-овская модель - это и не модель, а так, граф примитивных объектов с get/set-ами, а настоящая модель - вот она, обертка над ними, с реальной бизнес-логикой и т.д.

    > По сути эти модели - это DTO то есть просто объекты содержащие только данные. А как быть с логикой обработки этих данных? Она должна быть в контроллерах что ли?
    Ну это тот же самый вопрос: нормальная модель должна содержать логику.
    > в Asp.net mvc должны быть "тонкими", то есть не содержать особой логики.
    В контроллере - минимум, там логика специфичная не для бизнес-процессов, а для процесса работы самого web api, т.е. определение того, что нужно сделать с бизнес-сущностями, чтобы удовлетворить запрос.
    > Или надо писать еще и дополнительные контроллеры в которых будет сосредоточена логика работы с моделями?
    не стоит, думаю в вашей задаче такой дополнительный слой совершенно излишен.

    Резюме: модель вполне может и должна следовать обычным правилам ООП, известным уже лет 40 - данные и логика их обработки должны быть рядом друг с другом. Отделение бизнес-логики отдельно от модели - это такой своеобразный фетиш разбиения приложения на много-много слоев (на самом деле выделение веб-сервиса с четко определенным api - уже неплохой слой). Если вы чувствуете себя некомфортно от того, что у вас модель без логики, и не можете ее туда поместить - нужно менять инстурменты или вариант их использования. Первые версии EF - это первый блин комом, отсутствие поддержки Code First и нормальных маппингов считалось серьезной проблемой. Сейчас это уже давно в прошлом.
    Бонусные варианты, если вы не связаны ограничениями:
    1) генерация ТАБЛИЦ ПО КЛАССАМ, а не маппинг классов на таблицы: для кого-то этот вариант очень даже подходит, плюс упрощает менеджмент схемой БД: у вас всегда есть один источник сведений о схеме данных - это ваша модель. По ней можно всегда получить текущую SQL-схему;
    2) если вам нравится отдельно следить за объектной моделью и за SQL (я вот именно так люблю), можете посмотреть и на другие ORM - NHibernate вполне себе торт. Сейчас конечно EF более популярна, ибо стандартная и раскрученная, но я 4 года назад выбрал NH для своего проекта из-за отсутствия неприятных ограничений (например, NH умеет мапать даже на приватное поле, а EF тогда не умел) и из-за наличия вменяемых механизмов маппинга.
    Ответ написан
    Комментировать
  • Как получить численно буквенный хеш файла?

    GavriKos
    @GavriKos
    Считаете хеш каждого файла. Если такой хеш уже встречался - даете такое же имя как и раньше давали такому же хешу. Если не встречался - даете новое имя.
    Новое имя генерируете простейшим инкрементом. Т.е. первый файл - "0". Второй файл - "1". Третий файл - "2". Десятый файл - "a".

    Такой подход не рационален, если вам надо будет в последствии определять, есть ли уже файл с таким хешом, т.к. имя файла не отражает хеш. Но в условии об этом ни слова. Ну и в крайнем случае можете хранить таблицу "хеш-имя".
    Ответ написан
    2 комментария
  • ASP.NET MVC DDD: зачем повторять один и тот же код 3 раза?

    Valeriy1991
    @Valeriy1991
    Разработчик .NET C# (ASP.NET MVC) в Alfa-B, Moscow
    Добрый день!

    Верным является такой подход, который решает поставленную задачу эффективно, быстро и просто. Моя деятельность связана с проектами по автоматизации бизнес-процессов заказчиков. В таких проектах лучше делить всю логику на несколько слоев: слой представлений (в частности, приложение на ASP.NET MVC, WPF, WinForms), слой бизнес-логики (отдельная библиотека, class library), слой доступа к данным (тоже отдельная библиотека).

    Опишу пример.
    В одном из своих личных проектов на ASP.NET используется как раз разделение логики на слои. Есть несколько проектов: MyApp.MVC, MyApp.DAL, MyApp.BL. Соответственно, общая схема работы такая: в контроллерах слоя MyApp.MVC идет обращение к методам из слоя MyApp.BL (слой бизнес-логики). Если методу из слоя MyApp.BL нужно поработать с данными БД, то он уже обращается к методам слоя работы с данными (MyApp.DAL). Слой MyApp.DAL уже непосредственно вытаскивает/добавляет/изменяет/удаляет данные. При этом слои не знают о конкретных реализациях методов, т.к. все базируется на интерфейсах и инверсии зависимостей (DI и IoC-контейнере, в частности - Ninject). В итоге что мы получаем:
    1. Разделение ответственности (каждый делает только то, что ему нужно, т.е. каждый выполняет свою задачу).
    2. Легкость сопровождения (нужно изменить логику выборки данных - например, изменить SQL-запрос. Все изменения коснутся только слоя MyApp.DAL, другие слои в этом случае менять не нужно и им будет "по барабану", что происходит внутри слоя MyApp.DAL).
    3. Расширяемость компонентов (здесь я имею в виду, что можно взять слой MyApp.DAL и включить его в другое приложение).
    4. Наглядность (код более чистый и последовательный).

    Я уверен, что это не "панацея", и в других типах проектах (например, игры? сложные математические модели?) такая архитектура может принести больше вреда, чем пользы (как пример, "продирание" через интерфейсы).
    Ответ написан
    Комментировать
  • Выбор литературы C#. Шилдт или Троелсен?

    @dmitryKovalskiy
    программист средней руки
    "CLR via C#" Рихтера - как библия, Шилдт - как учебник по синтаксису. Чарльз Петцольд - по разработке под саму WPF.
    Ответ написан
    3 комментария
  • Repository или CQRS?

    Valeriy1991
    @Valeriy1991
    Разработчик .NET C# (ASP.NET MVC) в Alfa-B, Moscow
    Добрый день!

    Честно говоря, не знаю, что именно Вам понравилось в CQRS и EventSourcing. На мой взгляд, это слишком сложный, непривычный подход, который может использоваться в исключительно редких случаях (как сказал Тимур Шемсединов, все зависит от задачи). Подходы к проектированию приложения нужно применять не тогда, когда они нравятся, а тогда, когда нужно решить конкретную проблему. Если при разработке приложений всегда делать "всякие такие интересные штуки", то процесс разработки уйдет в бесконечность... Проектируйте по принципу: есть задача - как лучше (под "лучше" я понимаю: просто, эффективно, быстро) ее решить. Всё. Если проект "исключительно" в целях обучения - то пожалуйста, здесь Вы вольны использовать всё, что душе угодно. Но если проект реальный, и он Вас "кормит", то тут следует сдерживать свое рвение к новым подходам и всегда задавать вопрос: эта технология/паттерн/механизм/подход поможет решить мне эту задачу? Да - значит, берем, учим, используем, внедряем. Нет - значит, нафиг. Потом больше геморроя будет с сопровождением и изменением кода (и думайте всегда о том разработчике, которому достанется Ваш код после Вас).
    Ответ написан
    Комментировать
  • Выбор литературы C#. Шилдт или Троелсен?

    newross
    @newross
    Product owner
    У Троелсона хороший обзор основных технологией, адекватные примеры кода. С него очень хорошо начинать.
    Шилдта не читал, но думаю можно дополнить им Троелсона.

    Для устройства на работу лучше попрактиковаться дополнительно. Берите на фриланс биржах студенческие задачи. Они довольно простые, но позволяют набить руку на базовых задачах с массивами, циклами, строками и т.п. Заодно подкрепите мотивацию небольшим материальным вознаграждением.
    Ответ написан
    1 комментарий
  • Выбор литературы C#. Шилдт или Троелсен?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Здесь надо не "или", а "и". Чтобы прочитать про программирование нужно несколько месяцев, чтобы научиться программировать - может не хватить и целой жизни.

    П.С. А так мне Шилдт больше понравился.
    Ответ написан
    Комментировать
  • Что написать на C#?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    Когда коту нечего делать, он "занимается гигиеной", когда программисту нечего делать - он занимается рефакторингом.
    Ответ написан
    6 комментариев
  • Какие есть IDE для C# под linux?

    @ArturNak
    В Xamarin Studio вроде что-то под Linux можно делать.
    Ответ написан
    Комментировать
  • Какие есть IDE для C# под linux?

    OlegWock
    @OlegWock
    Python, Java+Android, Frontend
    Месье действительно знает толк...

    P.S. Не удержался
    Ответ написан
    Комментировать
  • Лицензия на vs community 2015?

    yurikoles
    @yurikoles
    Software Engineer
    Вы не имеете права распространять свой продукт под условием copyleft, например GNU GPL v2+.
    При чём это не особеннсоть community edition, я такой пункт видел и в DirectX SDK.
    Ответ написан
    Комментировать
  • Какие есть IDE для C# под linux?

    azrail_dev
    @azrail_dev
    Имхо самая лучшая альтернатива - virtual box + windows 7 + visual studio
    Ответ написан
    4 комментария
  • Как быть с триггером в MSSQL - видоизменить чтобы CRM не заметила?

    Можно запрос переписать с join, объединив с таблицей inserted.
    Ответ написан
    3 комментария
  • Как парсить информацию о mp3 файле?

    Neuroware
    @Neuroware
    Программист в свободное от работы время
    Вопрос легко гуглится по "C# Read Mp3 Tags"
    В двух словах 3 варианта решения:
    1. Взять готовую библиотеку (в nuget или так найти) и скормить ей файл
    2. Взять готовый исходник класса и подключить к проекту и скормить ему файл
    3. Убить время на разбор структуры и формата файла, потратить еще кучу времени и написать свой велосипед
    Какой вариант выбрать дело ваше:)
    Ответ написан
    1 комментарий
  • Как парсить информацию о mp3 файле?

    eX1stenZ
    @eX1stenZ
    Web Dev
    https://ru.wikipedia.org/wiki/ID3_(%D0%BC%D0%B5%D1...

    В гугл вбивать: Python ID3 Parser
    К сожалению с питоном не работал :)
    Ответ написан
    1 комментарий
  • Актуален ли visual basic?

    @ArturNak
    Актуален, правда, на постсоветском пространстве как-то он меньше популярен, чем на западе, у нас больше все в C# уходит. Но VB.NET по своим возможностям мало от него отличается, но перейти с одного языка на другой при необходимости большой проблемы не составит
    Ответ написан
    Комментировать