Задать вопрос
  • Какую литературу читать новичку по C#?

    Литература по языку C#

    Книги для новичков: а о чём это вообще?

    • Head First C#, Jennifer Greene, Andrew Stellman (русский перевод: Изучаем C#, Д. Грин, Э. Стиллмен). Содержит упражнения. Рекомендуется многими как хорошая книга для новичков.
    • Язык программирования C# 5.0 и платформа .NET 4.5 - Эндрю Троелсен. Популярная книга, многие начинали с неё.
    • C# 4.0: полное руководство, Герберт Шилдт. Несмотря на неоднозначное отношение к автору, книга пользуется популярностью.
    • C# 2010. Ускоренный курс для профессионалов, Нэш Трей
    Книги среднего уровня: если hello world не проблема
    • CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#, Джеффри Рихтер. Неувядающая классика. Хотите знать, что и как происходит на самом деле? Это книжка для вас. Не самое живое изложение, зато максимум подробностей из первых рук.
    • C# 6.0 in a Nutshell, Joseph Albahari, Ben Albahari (русский перевод предыдущей версии:C# 5.0. Справочник. Полное описание языка, Джозеф Албахари, Бен Албахари). Отличная книга, затрагивает многие аспекты, расставляет по местам ваши знания о предмете. Сводит разрозненные отрывочные знания в общую понятную картину, объясняет, какими средствами нужно пользоваться, а для чего есть уже более хорошие подходы. Есть online-глава о многопоточности (русский частичный перевод), почитайте!
    • Essential C# 5.0, Mark Michaelis в сооавторстве с Эриком Липпертом. Хорошая книга для программистов, желающих овладеть C#. Знания других языков, перед чтением, приветствуются. От Эрика Липперта в книге представлены продвинутые советы, которые встречаются на протяжении всей книги.
    • Effective C# и More Effective C#, Bill Wagner. О том, как надо и как не надо программировать на C#. Разбираются отдельные аспекты программирования, способствует углублению понимания языка.
    • Programming C# 5.0: Building Windows 8, Web, and Desktop Applications for the .NET 4.5 Framework, Ian Griffiths. (Русского перевода пока нет.) Очень детальная, подробная книга, в которой найдутся ответы на продвинутые вопросы.

    Книги для специалистов: внутренние механизмы и пыльные углы

    • C# in Depth, Jon Skeet, Third Edition (русский перевод: C#. Программирование для профессионалов, Джон Скит, пока переведено лишь второе издание). Имя автораговорит само за себя. Джон один из лучших людей, которые умеют доходчиво объяснять сложные вещи.
    • C# 5 Unleashed, Барт де Смет. Фундаментальная книга.
    • Debugging Microsoft .NET 2.0 Applications, John Robbins (русский перевод: Отладка приложений для Microsoft .NET, Джон Роббинс). Основы промышленной отладки: WinDbg/SOS, дампы памяти и решение проблем в приложениях (почти) без Visual Studio.
    • Under the Hood of .NET Memory Management, Chris Farrell, Nick Harrison. Полное описание всех тонкостей управления памятью в платформе .NET. Книга доступнабесплатно на английском.
    • Expert .NET 2.0 IL Assembler, Serge Lidin. В книге представлены ответы почти на все тонкости низкоуровневого программирования на .NET, а именно на языке IL. В книге описаны детали .NET Framework 2.0, по этому на данный момент какие то аспекты могут быть не актуальны.
    • Оптимизация приложений на платформе .NET с использованием языка C#, Саша Голдштейн, Дима Зурбалев, Идо Флатов (Переводчик: Александр Киселев). В книге рассматривается моменты .NET с точки зрения производительности. Рассказывается об способах замеров и шаблонах оптимизации. Также там рассматриваются вопросы, связанные с GC и небезопасным кодом.

    Дополнительные ресурсы:

    • Официальная спецификация C# 5
    • Framework Design Guidelines. Руководства и соглашения по проектированию многократно используемого кода. Является выдержкой из одноимённой книги, Krzysztof Cwalina, Brad Abrams. Книга переведена на русский под названием Инфраструктура программных проектов, Кржиштоф Цвалина, Брэд Абрамс.

    Литература по асинхронному программированию и многопоточности

    • Concurrent Programming on Windows, Joe Duffy. Профессиональное использование многопоточности в инфраструктуре .NET от одного из лучших мировых специалистов по многопоточности. В книги описаны тонкости использования как stream'oв так и thread'ов. Раскрыто, как и когда использовать Concurrent-, Parallel- и Asynchronous-модели. Примеры в книге присутствуют от достаточно низкоуровневых (с использованием системных потоков через WinAPI) до высокоуровневых Task'ов и PLINQ. Книга написана под .NET Framework 4.0, поэтому работа с ключевыми словами async/await в книгу не вошла.
    • Concurrency in C# Cookbook, Stephen Cleary. (Русского перевода пока нет.) Очень толковое разъяснение современных паттернов использования многопоточности, особое внимание уделено использованию конструкции async/await. Обсуждается решение типичных проблем, решаемых асинхронным кодом. Отдельно описывается работа с Reactive Extensions и TPL Dataflow.

    Литература по WPF
    • Pro WPF 4.5 in C#: Windows Presentation Foundation in .NET 4.5, Matthew MacDonald (русский перевод: WPF: Windows Presentation Foundation в .NET 4.5 с примерами на C# 5.0 для профессионалов, Мэтью Макдональд). Разбор XAML'а, лаконичные, но полезные примеры. Пристальное, но не навязчивое внимание к деталям.
    • Windows Presentation Foundation Unleashed, Adam Nathan. Наверное, лучшая книга для новичка.
    • Applications = Code + Markup: A Guide to the Microsoft Windows Presentation Foundation, Чарльз Петцольд. Фундаментальная книга великолепного специалиста. Написана довольно тяжело, много листингов, плотный поток информации

    Литература по ASP.NET
    • Pro ASP.NET MVC 5, Adam Freeman (русский перевод: ASP.NET MVC 5 с примерами на C# 5.0 для профессионалов, Адам Фримен). Поэтапное написание веб-приложения с рассмотрением большинства важных аспектов разработки приложения: паттерн MVC, юнит-тестирование, инверсия зависимостей и т. п.
    • Pro ASP.NET 4.5 in C#, Adam Freeman (русский перевод: ASP.NET 4.5 с примерами на C# 5.0 для профессионалов, Адам Фримен).
    • Professional ASP.NET MVC 5, Jon Galloway, Phil Haack, Brad Wilson, K. Scott Allen
    • Programming ASP.NET MVC 4: Developing Real-World Web Applications with ASP.NET MVC, Jess Chadwick, Todd Snyder, Hrusikesh Panda (русский перевод: ASP.NET MVC 4. Разработка реальных веб-приложений с помощью ASP.NET MVC, Джесс Чедвик, Хришикеш Панда, Тодд Снайдер).
    • ASP.NET MVC Framework, Гайдар Магдануров, Владимир Юнев
    • Pro ASP.NET MVC 2 Framework, Steven Sanderson (русский перевод: ASP.NET MVC Framework с примерами на C# для профессионалов, Стивен Сандерсон)
    Дополнительные ресурсы:
    • Get Started with ASP.NET от Microsoft
    • Видеокурсы на intuit.ru: Разработка веб-приложений на ASP.NET, Разработка веб-приложений с использованием ASP.NET MVC Framework.

    Литература по LINQ
    • Pro LINQ: Language Integrated Query in C# 2010, Joseph Rattz, Adam Freeman (русский перевод: LINQ. Язык интегрированных запросов в C# 2010 для профессионалов, Адам Фримен, Джозеф С. Раттц). Учебно-справочное пособие, в котором понятно и подробно описаны возможности языка LINQ. Хороша для старта.
    • LINQ Pocket Reference, Joseph Albahari, Ben Albahari (русский перевод: LINQ. Карманный справочник, Джозеф Албахари, Бен Албахари). Хороший справочник по всему, что относится к LINQ. Рассмотрены новые конструкции C# для поддержки LINQ. Много примеров.
    • C# in Depth, Jon Skeet (русский перевод: C#. Программирование для профессионалов, Джон Скит). Немалая часть книги посвящена тому, как работает LINQ.

    Литература по принципам, шаблонам и методикам разработки
    • Внедрение зависимостей в .NET, Марк Симан. Несложно написанная книга про управление зависимостями в приложениях.
    • Принципы, паттерны и методики гибкой разработки на языке C#, Роберт С. Мартин, Мика Мартин

    Литература по Windows Workflow Foundation
    • Essential Windows Workflow Foundation, Dharma Shukla, Bob Schmidt (русский перевод:Основы Windows Workflow Foundation, Дхарма Шукла, Боб Шмидт). Для тех, кого заинтересовала 26 глава («Введение в Windows Workflow Foundation») из книги Эндрю Троелсена Язык программирования C# 5.0 и платформа .NET 4.5.
    • Pro WF 4.5, Bayer White (русской версии нет). Более углубленный взгляд на WF.

    Литература по XML
    • XML.NET, Джо Грей, Динар Дальви, Бипин Джоши, Фредрик Нормен, Фрэнсис Нортон, Энди Ольсен, Дж. Майкл Палермо IV, Даршан Сингх, Джон Слэйтер, Кевин Уильямс (Переводчик: И. Штерев). В книги содержится всё про применение XML в .NET за исключением LINQ. Старовата уже, но зато там есть объяснение, как внедрить свои функции на C# в XSLT.

    Литература по ADO.NET
    • Основы ADO.NET, Боб Бошемин (Переводчики: О.А. Лещинский, А.В. Журавлев, Н.Н. Селина)

    Литература по .NET Remoting / WCF
    • Microsoft .NET Remoting, Скотт Маклин, Джеймс Нафтел, Ким Уильямс
    • Создание служб WCF, Джувел Леве (Переводчики: Е. Матвеев, А. Пасечник)

    Литература по безопасности
    • Криптография и безопасность в технологии .NET, Питер Торстейнсон, Гнана Ганеш (Переводчик: В. Хорев). Книга дает представление .NET разработчику о реализации и применении криптографии, цифровой подписи, аутентификации, авторизации и доступа к коду (CAS). В ней описывается, что такое симметричное и асимметричное шифрование, что представляют собой цифровые подписи и как их использовать в .NET приложениях.
    • Microsoft ASP.NET. Обеспечение безопасности, Доминик Байер. Не смотря на то, что в названии указано ASP.NET в книге рассматриваются технологии безопасности под Windows, применимые из .NET для всех типов приложений. Это аутентификация, авторизация, олицетворение и Membership.
    Ответ написан
    5 комментариев
  • Верен ли такой подход к изучению программирования?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Ну собственно 99,9% программистов берут такой вектор развития. Оставшийся процент видимо те у кого нет интернета :)
    29437996.jpg
    Главное не делать это бездумно, а пытаться разобраться "что и почему" в коде, который вы берете. Со временем будете меньше копипастить, и больше обходиться собственными мозгами.
    Ответ написан
    2 комментария
  • Верен ли такой подход к изучению программирования?

    Denormalization
    @Denormalization
    В современном мире 80% задач решается копипастом чужого кода и небольшой правкой. (Британские учены доказали).
    Для типовых задач уже давно существуют готовые решения. Не нужно изобретать велосипеды, а тем более комплексовать из-за этого.

    Вам же стоит не просто копировать чужой код и разбираться в нем, но и попробовать его воспроизвести.
    Т.е как-то так:
    - Копипастим
    - Разбираемся почему и как оно работает
    - Удаляем все, создаем новый проект и пишем все с нуля без подсказок (ручками).

    Такой подход будет более эффективен.

    Но все люди разные, и каждый обучается так, как ему удобно. Если вы считаете что вы хорошо усваиваете материал подобным образом, то ничего страшного в этом нету. Просто попробуйте воспроизвести результат с нуля, и если у вас получится - вы действительно усвоили как это делать.
    Ответ написан
    3 комментария
  • Как поступить, если запустили проект- а его кто-то скопировал?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Суть и идея проекта - не стоят вообще ничего.

    Реализация без трафика проекта который можно сделать на "бесплатной cms" - не стоит ничего.

    Чего то стоят (по мере убывания): работающая бизнес модель, лояльная аудитория, сложная техническая реализация.
    Ответ написан
    Комментировать
  • Разделение логики веб-приложения?

    Никак. Пагинацию и фильтры нужно при таких объемах обрабатывать на сервере.
    Ответ написан
    Комментировать
  • Раньше uTorrent мгновенно хешировал даже раздачи по 250 Гб, а сейчас по 10 минут хеширует 3 Гб. Что случилось?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    Раньше uTorrent мгновенно хешировал даже раздачи по 250 Гб
    Чтобы хэшировать 250Гб нужно как минимум прочитать эти 250Гб и еще подсчитать хэш. Мгновенно это сделать невозможно, да и быстро затруднительно.

    А сейчас, спустя два месяца, едва тянет хеширование самой слабой по объему раздачи из моей коллекции. Почему?
    Мало информации чтобы что-то сказать.
    Надо смотреть в чем проблема, возможно антивирус какой- нибудь, или кривые настройки.
    Да и непонятно что значит едва тянет? Точнее надо говорить.
    Ответ написан
    1 комментарий
  • Какие есть способы мониторинга веб-сервера linux в реальном времени через веб-морду?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Webmin уже существует.

    Вопрос ваш непонятен - что значит какие способы мониторинга веб-сервера с выводом через веб интерфейс?
    Может мониторинга самого сервера?

    Ну и вариантов только три:
    Выполняете консольные команды, парсите ответ
    Смотрите системные файлы в /proc, /dev
    пользуетесь штатными средствами php, типа php.net/manual/en/function.sys-getloadavg.php
    Ответ написан
    Комментировать
  • Каков курс математики для статиста?

    @Nikita12345
    Если слабо с математикой
    https://stepic.org/course/%D0%9E%D1%81%D0%BD%D0%BE...
    https://stepic.org/course/%D0%9E%D1%81%D0%BD%D0%BE...
    Думаю дальше сами разберетесь
    Ответ написан
    Комментировать
  • Как запустить две фунции js одновременно?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    две функции js работали одновременно.


    Это невозможно. В JS все работает исключительно последовательно. "одновременность работы" достигается за счет использования event loop.

    Проблема в следующем, есть форма поиска, которая увеличивается при наведение мыши или когда набираешь что то в поиске. Но нужна и обратная функция когда ты перестаешь набирать или когда ты отводишь мышь


    Ну так сделайте два обработчика событий, они будут работать независимо друг от друга когда можно будет. Ну то есть если вы в одном обработчике влепите бесконечный цикл - то конечно второй обработчик так вызван и не будет. Но если там маленькие кусочки работы либо через setTimeout либо сетевые запросы - то все будет хорошо.
    Ответ написан
    Комментировать
  • Какого мед. приложения вам не хватает?

    victorzadorozhnyy
    @victorzadorozhnyy
    если не очень заморачиваться, то подойдет веб приложение история болезни с визуализацией данных (по пациентам, по больницам, по врачам...). аля единая база данных. область применения можно определить от распределение бюджета до контроль больных
    Ответ написан
    Комментировать
  • Как сделать безусловный перенос каждого слова на новую строку?

    FMars
    @FMars
    Средствами CSS: https://jsfiddle.net/akr0s0w0/1/
    Ответ написан
    Комментировать
  • Есть хорошие примеры использования data-*?

    @yuras666
    Удобнее всего работать с ними через jquery data - это решит проблему совместимости со всеми браузерами.
    https://api.jquery.com/data/
    Например у нас есть кнопки по клику на которые у нас должны открываться попапы:
    <button type="button" data-open-dialog="#bs-example-1-dialog">Окно 1</button>
    <button type="button" data-open-dialog="#bs-example-1-dialog">Окно 1</button>
    <button type="button" data-open-dialog="#bs-example-1-dialog">Окно 1</button>

    Далее, мы можем в js описать только один обработчик:
    $(document).on('click', '[data-open-dialog]', function(){
       showPopupById($(this).data('openDialog'));
    });

    Кроме того, ты можешь хранить в data любой json, приводя пример с тем же попапом, можно хранить данные об объекте и строить из них попап после клика на кнопку.
    Еще пример jquery плагины часто ставят флаг о том, что они уже установлены на элементе, чтобы избежать повторной инициализации. Скажем $('#search-input').autocomplete() при первой инициализации запишет элементу $('#search-input').data('isAutocompleteInstall', true) и инициализирует элемент, а при втором вызове уже не будет инициализироваться по новой. Как-то так, если я верно понял твой вопрос.
    Ответ написан
    5 комментариев
  • Есть хорошие примеры использования data-*?

    petermzg
    @petermzg
    Самый лучший программист
    В input элементах форм, для дальнейшей валидации.
    <input name='name' data-required='Необходимо задать имя обьекта' />

    есть атрибут data-required значит поле обязательное, для информации можем вывести содержимое атрибута.
    Ответ написан
    Комментировать
  • C#. Операторы доступа для сокрытия, но не для защиты?

    Предствим следующу ситуацию:

    Человек N узнал про модификаторы доступа и решил, что они не нужны. Т.е. следуя этой логики необходимо выбросить огромный пласт приемов и условностей, которые создавались на протяжении десятков лет по одной простой причине - упростить разработку ПО...

    Эм.. как вы считаете, захочется ли комуто отвечать этому человеку всерёз?

    Если вы не поняли сути вопроса не нужно бежать на форум и строчить вопрос, который уже мог быть задан 100500+ раз такими же как вы.

    По сути вопроса:
    Заморачиватся над этим необходимо, поскольку это существенно упрощает жизнь вам и остальным. При помощи модификаторов вы должны описать, то как необходимо пользоватся вашим классом, защитить его от не желательного вмешательства и кривых рук. То что все это можно поламать при помощи рефлексии не значит, что на это стоит просто забить... Рефлексия это тоже инструмент призваный помочь в решении определеного круга задач и то как его использовать напрямую зависит от разработчика...
    Ответ написан
    2 комментария
  • C#. Операторы доступа для сокрытия, но не для защиты?

    Casper-SC
    @Casper-SC
    Программист (.NET)
    В каком энтерпрайзе? Это как рассуждение, что одежда нужна лишь для показухи и чтобы прилично выглядеть среди людей, детей и т.д., а дома можно ходить и голым. Так же можно придраться к любому принципу программирования. Вот забьёшь ты на всё это, тебя самого не будет парить, что у тебя в привычку входит быдлокодить? Следовательно у тебя не развивается определённый навык, ведь ты не паришься о сокрытии. Да и сам ты через месяца разберёшься в своём большом проекте, что можно вызывать из вне, что нет.

    А зачем вообще классы? Давай всё в один класс, но у каждого метода будет префикс, чтобы понятно было, а то ещё точку ставить надо. Вот ещё!
    Ответ написан
    3 комментария
  • Как сделать сайдбар фиксированным при прокрутке двух других блоков?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    bottom:0px;
    position:fixed;
    Ответ написан
    Комментировать
  • Что отличает freelance программиста от корпоративного?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    Подскажите, что это за стек технологий?

    По опыту своих коллег:
    Потрындеть по 4 часа в день друг с другом, час пить чай/кофе, ещё час материть заказчиков и последний час чтобы написать пару строчек кода.
    Ответ написан
    5 комментариев
  • Как пустить трафик в обход ВПН?

    sizaik
    @sizaik
    сисадмин, Витебск
    Для отдельных приложений это будет сделать затруднительно.
    Маршрутизация работает на сетевом (3) уровне OSI, а не на прикладном (7).
    Но обычно эта проблема решается так:
    • в клиенте OpenVPN уберите создание шлюза по умолчанию через удаленную сеть
    • через route add настройте маршрутизацию на те хосты/подсети в удаленной сети, которые нужны вашим приложениям.
    Ответ написан
    7 комментариев
  • Трансформация SVG, как повернуть вокруг центра?

    erniesto77
    @erniesto77
    oop, rb, py, php, js
    Надо добавить transform-origin: 50% 50%;
    .logo a:hover #halfcircle1 {
        -webkit-animation: animatelogo1 .5s ease infinite;
        animation: animatelogo1 .5s ease infinite;
        -webkit-transform-origin: 50% 50%;
        -moz-transform-origin: 50% 50%;
        -o-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
    }

    https://jsfiddle.net/bcum7ja7/3/
    Ответ написан
    4 комментария