• Безопасно ли хранить файлы в архиве WinRar?

    x67
    @x67
    Обойдусь без демагогий. Winrar использует алгоритм шифрования AES с ключом 128 или 256 бит в зависимости от версии. И это на сегодняшний день очень надежный алгоритм, которые используется повсеместно. Если ваш 25 значный пароль смогут взломать за разумное время, можете не беспокоиться, так как у всего мира проблемы будут побольше. Поэтому используйте винрар 5 версии (ключ 256 бит) и не забывайте о криптопаяльнике, скорость взлома которым никогда не зависела от алгоритма шифрования)
    Ответ написан
    2 комментария
  • Как в C# обращаться к API Linux?

    @Win332 Автор вопроса
    .NET
    Ответ написан
    Комментировать
  • Насколько пригоден ASP.NET Core для стартового проекта?

    @MherArsh
    Привет!
    Я уже года полтора сижу с .NET на линуксе )) с начала был MONO с HyperFastGCI но когда вышел .Net Core наступило счастье. Стабильность и производительность норм, единственное что сейчас неудобно это то что надо билдить проект для каждой платформы, но это очень просто (во второй версии которая привю этот вопрос решили, теперь одна сборака на все) , проект запускается как самостоятельный сервис которой хостируется по Nginx, других вариантов не советую использовать, Nginx крутая штука! Единственное что сейчас отсутствует в .Net Core это oauth2, и во второй версии ее нет, есть библиотека под виндоу но о кроссплатформенности в этом случаи можно забыть. Я сам в читаном виде .Net Core не использую, до нее были разные интерфейсы для контролеров АПИ и сайта, сейчас все объединили, но много подводных камней, на рынке есть очень хорошие решения, я сам использую ServiceStack, есть еще Nancy, настоятельно рекомендую посмотреть на первый вариант, достаточно зрелый продукт который с коробки заводится под .net и имеет много готовых решений.
    Ответ написан
    Комментировать
  • Насколько пригоден ASP.NET Core для стартового проекта?

    @kttotto
    пофиг на чем писать
    На днях сдаем достаточно крупный проект на asp.net core, который не только на тестах, но и уже в бою отработал. Причем это не первый сданный проект на core. Все замечательно работает. Каких то особых проблем, что это именно core, не возникало.
    Ответ написан
    3 комментария
  • Насколько пригоден ASP.NET Core для стартового проекта?

    @denismaster
    Добрый день! Поднимали уже два проекта на asp.net core, остались довольны. В целом технология готова, многое что еще не допилили - допиливают активно, работает стабильно.
    По вашим вопросам:
    • Реализация BCL в целом почти полная, все что нужно в 90% случаев уже давно есть, обработка данных, криптография и рефлексия поддерживается.
    • Возможно запустить asp.net core поверх полного дотнета, можно и так. Проблем в целом нет, без каких либо проблем тот же код, если не использует что-то специфичное, запускается и на других платформах.
    • PInvoke не применяли, но в интернете довольно много успешных историй его применения, в частности, фреймворк Avalonia его успешно применяет вроде как.
    • Kestrel отлично справляется в связке с nginx, да и сам по себе годен. Работает быстро.

    Как по мне, будущее за .NET Core. Использовать его уже реально.
    Ответ написан
    1 комментарий
  • Как лучше реализовать авторизацию в Web API?

    impwx
    @impwx
    Разработчик
    Да, это хорошая статья. Так оно обычно и делается - bearer token и атрибуты Authorize.

    Кроме обычных токенов есть еще дополнительный тип - refresh token. Они используются в том случае, если срок жизни первого токена истекает и нужно его обновить. Использовать их необязательно - зависит от кейса. Но на всякий почитайте:

    https://leastprivilege.com/2013/11/15/adding-refre...
    Ответ написан
    Комментировать
  • Где и как можно найти тренера/наставника/ментора для решения проблем по программированию (треб. технологии: asp.net mvc, nhibernate, webapi и др)?

    alexfilus
    @alexfilus
    Senior backend developer
    Устройтесь на работу в команду которая практикует ревью кода. Вам и зарплату будут платить, и насчёт качества кода/подхода к решению задач гонять будут.
    Понимание пробелы в знаниях устраняются очень быстро.
    Ответ написан
    Комментировать
  • Как реализовать generic репозиторий в c#?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Зачем вам дженеричные сущности? Вам же очевидно, какие там должны быть ключи. "дженеричность" заканчивается на имплементации базового репозитория
    class BaseRepository<TEntity, TKey> 
                where TEntity: class
    { 
        ...
        public TEntity GetById(TKey id)
        {
            _context.Set<TEntity>().Find(id); // в случае EF
        }
        ...
    } 
    
    class TranslationRepository: BaseRepository<Translation, int>, ITranslationRepository 
    { ... }


    ЗЫ По сути, у вас должнно быть 2 сущности:
    1. текст (включая "оригинал", ибо он тоже на каком-то языке написан)
    2. язык

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

    @seamen
    программист любитель
    Чувак, своим вопросом ты в открытую заявляешь, что ты в принципе не хочешь учиться. Но если ты хочешь учить программирование самостоятельно, то тебе всё равно придётся трудиться как не крути. Выше ответившие отговаривают тебя от ВУЗа. Но это узколобое мнение. Никакой ВУЗ ни по какой специальности не учит работать. Проверено! Но ВУЗ даёт систему знаний и упорядочивает её для того, чтобы на работе ты максимально быстро вошёл в курс дела. Став взрослее, поработав на работах и не скатившись на кривую дорожку, ты сам поймёшь всю пользу университетских предметов. Из студента делают специалиста, который знает как подойти к инженерной проблеме.
    ВУЗ тебе даст инженерный и жизненный кругозор, вложит в тебя полезные вещи. ВУЗ это друзья, тёлочки, знакомства. Потом в нашем мире, где в/о стало доступным, будет странно общаться с человеком без диплома. Сразу появятся вопросы относительно его умственного благополучия. Поверь, это так.
    С дипломом хоть и трудно, но гораздо легче, чем без него.
    Мой совет: если не хочешь стать хрен знает кем с уклоном только в одну сторону, с сомнительными отрывочными знаниями, то поступай в ВУЗ и не парь мозги.
    ----------------------------------------------------------
    Братан, всё нормально у тебя. Не торопись. В ВУЗовской программе всё предусмотрено. Хочешь изучать основы - изучай. Если боишься, что в этом случае ты будешь "буксовать", то это пустые страхи.
    Ответ написан
  • Как на Asp.Net core использовать https соединение?

    Добавляешь в NuGet библиотеку Microsoft.AspNetCore.Server.Kestrel.Https.
    Затем,
    var host = new WebHostBuilder()
    .UseKestrel(options =>
    {
        // options.ThreadCount = 4;
        options.NoDelay = true;
        options.UseHttps("testCert.pfx", "testPassword");
        options.UseConnectionLogging();
    })
    .UseUrls("http://localhost:5000", "https://localhost:5001")
    .UseContentRoot(Directory.GetCurrentDirectory())
    .UseStartup<Startup>()
    .Build();


    Подробнее
    Ответ написан
    Комментировать
  • Как проверить team lead?

    @mletov
    Вы бы рассказали, специалисты какого профиля у вас есть и в каком количестве.
    Как я понимаю (сужу по тегам), есть некоторое количество ASP.NET программистов, раз им понадобился тимлид. Если есть, то почему не устраивает выбор из своих программистов? На мой взгляд, выращенный тимлид в большинстве случаев лучше, чем пришлый.

    Если без тимлида все-таки не обойтись, то:

    - Технические требования. Вот с этим пунктом беда, т к непонятно, кто будет собеседовать. Можете отправить собеседовать кого-то из своих программистов, но это как-то тупо, когда программист собеседует своего потенциального начальника. Вы, конечно, сами можете загуглить требования к ASP.NET Middle/Senior (даже на тостере их хватает), но скорее всего потеряете уважение в глазах соискателя, т к он быстро поймет, что вы разбираетесь в теме хуже него.

    - Лидерские качества и организаторские способности. Это уже вопрос к психологам и к вашим умениям разбираться в людях. Распросите его, как бы он построил работу в своем отделе, как бы устанавливал подчиненным сроки, как бы воздействовал на конфликтных и т д.

    В основном вам все равно придется ориентироваться на резюме, отзывы пред работодателей и на свою интуицию.
    Ответ написан
    9 комментариев
  • Как проверить team lead?

    longclaps
    @longclaps
    Среди слепых и одноглазый - король. Не знаете, как проверить - берите так, раз уж взялись не за своё дело.
    Ответ написан
    3 комментария
  • Как получить id пользователя, и записать его в другую таблицу?

    p00h
    @p00h
    Фехтовальщик-стропальщик
    INSERT INTO Users2 (id,text) VALUES(LAST_INSERT_ID(),'text');
    Ответ написан
    2 комментария
  • Какие минусы могут вылезти в дальнейшем при такой примитивной реализации очереди задач?

    @basrach
    При такой реализации проблемы вылезут сразу, как только случится несколько одновременных запросов к вашей службе из-за отсутствия синхронизации потоков, если только вы не используете Single режим для службы. Но тогда непонятны заморочки c Parallel.ForEach и прочие очереди.
    1. в addCall несколько потоков могут попытаться добавить один и тот же ключ в словарь calls и это будет exception
    2. в invokeAll перед выходом очищается словарь calls, при этом на момент выходы из этого метода в нем вполне могут оказаться новые команды, которые будут также удалены
    3. Wait() перед выходом из AddDataToDevice заблокирует поток, который будет ждать окончания выполнения другого потока, который был запущен в Parallel.ForEach - странно выглядит
    4. В методе getInfo не обрабатывается ситуация отсутствия ключа в словаре, в таком случае будет выброшено исключение
    5. перед вызовом invokeAll не проверяется был ли завершен предыдущий вызов. Если первый вызов invokeAll не успел завершиться за минуту и придет второй, то тут вообще начнется каша от исключений при переборе ключей словаря, до отправки одних и тех же команд несколько раз
    6. Данные из словаря callsInfo не удаляются, что при длительной работе приведет к утечкам со всеми вытекающими
    Но если вы используете Single mode для WCF service-а, либо в один момент времени может быть только один запрос на сервис, то наверное будет работать.
    Ответ написан
    2 комментария
  • Какие есть хорошие книги по SQL (MsSQL)?

    То что прочитали Грайбера огромный плюс - правильный выбор.
    Следующую книгу, которую посоветую - Хомоненко А. Д., Мальцев М. Г., Цыганков В. М., Корона-век. Базы данных. Учебник для высших учебных заведений. Раздел про проектирование БД (не всю книгу)
    Ответ написан
    Комментировать
  • Какие есть хорошие книги по SQL (MsSQL)?

    Ответ написан
    Комментировать
  • В каких случая использовать обобщенные коллекции ICollection, IList, List?

    Про интерфейсы IEnumerable и IQueryable почитай мой ответ тут.

    Интерфейс ICollection наследуется от IEnumerable и подразумевает, что реализующие его классы умеют эффективно вставлять и удалять элементы.

    Интерфейс IList наследуется от ICollection и подразумевает, что реализующие его классы умеют предоставлять доступ к элементу по индексу.

    List это конкретный класс, который реализует интерфейсы IList, ICollection т.е. подразумевается, что он умеет эффективно вставлять/удалять и давать доступ по индексу.

    Попробую на пальцах когда и что использовать...
    Функция получает:
    IEnumerable - подразумевается, что ты только перебираешь элементы.

    IQueryable - клиентам придется попотеть что бы ты мог дополнить дерево выражений, что бы обеспечить более точный запрос.

    ICollection - ты уверен, что хочешь что то добавить или удалить в коллекции в этой функции ? Один из звоночков, что с архитектурой могут быть проблемы.

    IList - а ты уверен что тебе очень критично иметь доступ по индексу в этой функции ? Второй звоночек про архитектуру.

    List - работаю только со списками и не пытайтесь дать мне другой контейнер.

    Функция возвращает:
    IEnumerable - никаких обещаний, пусть клиенты рассчитывают только на перебор.

    IQueryable в функции запрос (например к дб) фактически не выполняется и клиенты могут попытаться его дополнить условиями, что бы с базы шло меньше данных.

    ICollection - ты возвращаешь коллекцию путь кто хочет тот и добавляет и удаляет в ней элементы.

    IList - ты уже создал в функции соответствующую коллекцию, возможно кому то понадобится доступ по индексу.

    List - да мне наc..ть на интерфейсы создал список - отдал список и я всегда буду создавать список, даже если мне потребуется создать последовательность из 100500 миллионов элементов.
    Ответ написан
    Комментировать
  • Почему IQueryable когда IEnumerable?

    Строго говоря Select это метод расширения (extension method) и в зависимости от объекта может вернуть и IEnumerable и IQueryable.

    IQuerable "является" (наследует) IEnumerable поэтому в твоем примере приведения как такового не происходит, но вызывающий код не может быть уверен, что ему вернули именно IQuerable (db.SomeValue.ToList().Select(item=>item); и все меняется ).

    Возвращать базовый интерфейс можно (надо только смотреть почему и зачем) и в данном случае, в вызывающем коде можно выполнить приведение к IQueryable. Но в общем случае не каждый IEnumerable можно привести IQueryable.

    Интерфейс IEnumerable обычно реализуют коллекции, которые хранят уже полученные объекты, тогда как IQueryable объекты, которые инкапсулируют запросы. В вызывающем коде к IQueryable ты как бы можешь добавить условия (Skip(), Take(), Where()) и реальный запрос на сервер будет с учетом этих условий. Но если ты уже выполнил запрос (ToList()) тогда все остальные операции будут на клиенте.

    Представь таблицу с миллионом записей и подумай в чем разница:
    db.SomeValue.Select(item=>item).Take(100);
    и
    db.SomeValue.Select(item=>item).ToList().Take(100);
    Ответ написан
    2 комментария
  • Как в ASP.Net Core работать с PostgreSQL?

    @Beltoev
    Живу в своё удовольствие
    Ответ написан
    Комментировать