• Почему не принимает задачу на с#?

    Попробуйте убрать все using, и "BigInteger" заменить на "int".
    Ответ написан
  • Как заблокирвоать комбинацию ctrl+alt+del?

    Гуглите "C# KeyboardHook win api".
    Я делал пару лет назад, на виртуалке срабатывал как и ожидалось.
    Ответ написан
    Комментировать
  • Как написать сервер клиент на C#?

    1) WCF
    2) OWIN Self Host

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

    Статья 2011 года.

    Используйте OWIN to Self-Host.
    https://www.asp.net/web-api/overview/hosting-aspne...
    odetocode.com/blogs/scott/archive/2014/02/10/build...

    Веб сервер в любом приложении просто и быстро, возвращать можете что угодно.
    Ответ написан
    Комментировать
  • Можно ли как нибудь через Powershell узнать статус обработки макроса?

    Насколько я понял исходя из вопроса, нужно:
    1) "excel macros return result" -> stackoverflow.com/questions/2781689/how-to-return-...
    2) "PowerShell: How to get exit code of a process" -> techibee.com/powershell/powershell-how-to-get-exit...
    Ответ написан
    Комментировать
  • Как вывести html-текст письма запретив js?

    Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment
    Ответ написан
    Комментировать
  • Как совместить гармонично совместить теорию и практику на C#?

    У меня наоборот было.
    Начитался про C#, а вот практики мало, и валился на простых вещах.
    Сейчас уже и эти пробелы закрыл.

    Раз книги читал, то сходи на ITVDN курс мидл и проф.
    Просто заучи, повторяй раз в неделю, месяц, полгода заметки из книг.
    Выписывай то что считаешь главным, своими словами.
    У меня набралось на 3-4 часа чтения.
    Но зато это покрывает ~5 книг сразу.

    Коллекция нужна только если используется Add, Remove. Книги то читали, вот например заметки из Jon Skeet C#:
    List - внутренне хранит массив и отслеживает логический размер списка и размер поддерживающего массива. Добавление элемента является либо простым случаем установки очередного значения в массиве, либо (если массив уже заполнен) копированием существующего содержимого в новый массив большего размера (обычно в два раза, т.е. происходит удвоение, но это недокументированно) и затем установки в нем значения. Сложность O(1) или O(n) в зависимости от того требуется ли копирование значений. Удаление элемента из List требует копирования расположенных за ним элементов на позицию назад, поэтому сложность составляет O(n-k), где k - индекс удаляемого элемента. По индексу RemoveAt() удалять значительно быстрее чем по значению Remove(), т.к. во втором случае происходит сравнение каждого элемента где бы он не находился сложность O(n).

    **Массивы** - самый низкий уровень коллекций в .Net. Унаследованы от System.Array, и они единственные имеют прямую поддержку в среде CLR. Массивы всегда изменяемы в терминах своих элементов, но всегда фиксированы в терминах своих размеров.
    Foreach для массива использует его свойство Length и индексатор массива, а не создает объект итератора.

    **LinkedList** - связанный список, каждый элемент которого имеет ссылку на предыдущий и следующий элемент. Быстро можно удалять, вставлять новые элементы, т.к. происходит только изменение ссылок на соседних узлах. Проход по коллекции тоже эффективен, но разумеется нет индекса.

    **Dictionary** - подобно List хранит свои элементы в массиве, со всеми вытекающими по вставке и увеличению размера последствиями. Для реализации эффективного поиска использует хештаблицу. Можно либо применять стандартные функции хеширования и эквивалентности внутри самих объектов ключей, либо передать реализацию IEqualityComparer в аргументе конструктора. Ключи должны быть уникальными, но хешкоды могут совпадать, что снижает эффективность поиска. Словарь даст отказ, если ключи являются изменяемыми и меняют свои хешкоды после того, как были вставлены в словарь. Внутри этого словаря нет гарантии порядка следования элементов, так что рассчитывать на него нельзя. Вставка происходит на основе ключа (что-то вроде индекса), а не последовательности заполнения словаря.

    **ReadOnlyDictionary<,>** - просто оболочка, которая скрывает все изменяемые операции за явной реализацией интерфейса, и генерирует исключение если они все же вызываются. Но если лежащая в основе коллекция (та что передается конструктору) модифицируется, то модификации будут видны через оболочку.


    APS.NET без рефлексии и доменов не работал бы.
    Ответ написан
    3 комментария
  • Как в проекте Visual C# работать в интернете с кнопками?

    Selenium
    Ответ написан
    Комментировать
  • Написание диплома. C# + OpenCV + Angular 2 + ...?

    Возьми тут любой SPA (Web API, Core, MVC 5) + Ang + EF.
    Изучи как работает, переделай под себя.
    Ответ написан
    Комментировать
  • Каким образом можно отлавливать текст в консоли?

    Что то старое было:

    System.Diagnostics.Process p = new System.Diagnostics.Process();
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.RedirectStandardError = true;
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.CreateNoWindow = true;
                //p.StartInfo.StandardOutputEncoding = System.Text.Encoding.UTF8;
                int lcid = GetSystemDefaultLCID();
                var ci = System.Globalization.CultureInfo.GetCultureInfo(lcid);
                var page = ci.TextInfo.OEMCodePage;
                p.StartInfo.StandardOutputEncoding = Encoding.GetEncoding(page);
                p.Start();
                try
                {
                    p.BeginOutputReadLine();
                    p.BeginErrorReadLine();
                    p.StandardInput.AutoFlush = true;
                    p.OutputDataReceived += (s, e) => { ... }
                    p.ErrorDataReceived += (s, er) =>  { ... }
                    while (true)
                    { // "\x3" - Ctrl+C
                        if (p.HasExited == true) { break; }
                        p.StandardInput.WriteLine( ... );
                    }
                }
                catch (Exception)
                {
                    ...
                }
    Ответ написан
    Комментировать
  • Обучение Sharepoint 2013, источники?

    Видео курс SharePoint 2013 Администрирование
    itvdn.com/ru/video/sharepoint
    Ответ написан
    Комментировать
  • Как распределить клиентов по серверам?

    1) Посты на хабре о видеохостинге Mail.ru, они подробно описали что и как делают.
    2) https://github.com/quozd/awesome-dotnet#distribute...
    3) getakka.net
    Ответ написан
    Комментировать
  • Как реализовать защиту приложения по его «железу» и дальнейшей авторизацией на сервере?

    Вы ведь новости читаете, крэк группы выкладывают свои труды регулярно для новинок ИГР, Софта.

    .net и c/c++/asm откроют за пару часов при желании.
    К железу привязываться - звонки с жалобами, HDD/CPU/Motherboard заменил и программа не запускается. Отломают быстрее чем напишите.

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

    VM - vmware есть настройки, обнаружение VM сработает если вы сами его напишите или не слишком распространенный способ использовать будите.

    Клиент не должен подключаться к партнеру на прямую, узнают через wireshark/netstat/... ip, и вас обойдут в этой цепи.
    Данные шифровать через https, проблем не будет, firewall пропустит.

    Флаги установки программы на ПК обходят быстро, снимают снимок состояния ПК, ставят ваше ПО, удаляют его, делают еще 1 снимок. Сравниваются 2 снимка, находят флаг присутствия установки программы. У MS такая утилита даже есть, название забыл.

    Хочется защиты - используйте виртуальные машины (~VMProtec), квалификация средняя и выше нужна для их взлома.
    Ответ написан
    3 комментария
  • Как объединить списки объектов, имеющие в своем составе словари?

    GroupBy
    Ответ написан
    Комментировать
  • Почему не работает Visual Studio 2015?

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

    Думаю вы хотите компилировать свои сборки используя код из текстовых файлов (ресурсов).
    Compiling C# Code at Runtime.
    Ответ написан
    Комментировать
  • Трехуровневая архитектура ASP.NET MVC. Где проводить валидацию данных?

    Проверять можно на всех уровнях.
    1) Контроллеры MVC - FluentValidation
    2) Далее все через контракты.
    Через IoC обертываем все в интерфейсы, и далее:
    [ContractClass(typeof(IArrayContract))]
    public interface IArray
    { контракт }
    
    [ContractClassFor(typeof(IArray))]
    internal abstract class IArrayContract : IArray
    { проверка входных и выходных параметров контрактов }


    + проверки на интерфейсах можно включать и выключать на вкладке свойств проекта, 4 уровня проверки.
    + проверки внедряются во все типы реализующие контракт.
    - нельзя просто так взять и перехватить тип исключения от контракта, придется ловить все.

    Из BBL не выкинишь HTTP ошибку, придется либо делать фильтр, либо ловить их в каждом методе и через switch кидать, но это не очень.
    Ответ написан
    Комментировать
  • Где лучше бросать исключения?

    Правила разработки исключений

    Показывай окно ошибки как на программах обычных.
    Класс который должен вернуть конфиг может как выбрасывать исключение, так и не делать этого используя подход TryXXX().
    Ответ написан
    Комментировать
  • Как правильно создать валидатор DataAnnotations?

    1) metanit.com/sharp/mvc5
    Глава 7. Метаданные и валидация модели
    Аннотации данных для отображения свойств
    Основы валидации
    Атрибуты валидации
    Валидация модели в контроллере
    Отображение ошибок валидации
    Создание собственной логики валидации


    2) FluentValidation, модель отдельно, валидация отдельно.
    https://chsakell.com/2015/08/23/building-single-pa...

    public class MovieViewModel : IValidatableObject
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public string Image { get; set; }
        public string  Genre { get; set; }
        public int GenreId { get; set; }
        public string Director { get; set; }
        public string Writer { get; set; }
        public string Producer { get; set; }
        public DateTime ReleaseDate { get; set; }
        public byte Rating { get; set; }
        public string TrailerURI { get; set; }
        public bool IsAvailable { get; set; }
        public int NumberOfStocks { get; set; }
     
        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            var validator = new MovieViewModelValidator();
            var result = validator.Validate(this);
            return result.Errors.Select(item => new ValidationResult(item.ErrorMessage, new[] { item.PropertyName }));
        }
    }
    
    public class MovieViewModelValidator : AbstractValidator<MovieViewModel>
        {
            public MovieViewModelValidator()
            {
                RuleFor(movie => movie.GenreId).GreaterThan(0)
                    .WithMessage("Select a Genre");
     
                RuleFor(movie => movie.Director).NotEmpty().Length(1,100)
                    .WithMessage("Select a Director");
     
                RuleFor(movie => movie.Writer).NotEmpty().Length(1,50)
                    .WithMessage("Select a writer");
     
                RuleFor(movie => movie.Producer).NotEmpty().Length(1, 50)
                    .WithMessage("Select a producer");
     
                RuleFor(movie => movie.Description).NotEmpty()
                    .WithMessage("Select a description");
     
                RuleFor(movie => movie.Rating).InclusiveBetween((byte)0, (byte)5)
                    .WithMessage("Rating must be less than or equal to 5");
     
                RuleFor(movie => movie.TrailerURI).NotEmpty().Must(ValidTrailerURI)
                    .WithMessage("Only Youtube Trailers are supported");
            }
     
            private bool ValidTrailerURI(string trailerURI)
            {
                return (!string.IsNullOrEmpty(trailerURI) && trailerURI.ToLower().StartsWith("https://www.youtube.com/watch?"));
            }
        }
    Ответ написан
    1 комментарий
  • Как связать динимически созданые контролы: два dropdownlist и sqldatasourse для них?

    XMLHttpRequest.

    dropdownlist1 - при выборе элемента отправляется запрос, ответ на него помещается в dropdownlist2.
    Ответ написан
    Комментировать