Ответы пользователя по тегу C#
  • Реально ли запустить Visual Studio как portable?

    Nipheris
    @Nipheris Куратор тега C#
    > или может есть другой компилятор под С#?
    в зависимости от версии винды относительно (!) свежий дотнет может быть уже предустановлен, а с ним и csc, т.е. компилятор. С семеркой, например, идет версия 3.5. Конечно старовато, но для попробовать сойдет. Писать код можно хоть в блокноте, разумеется удобство не очень - можете посмотреть другие IDE для шарпа, возможно какие-то станут не в Program Files. Посмотрите кстати свежеиспеченную Visual Studio Code - это конечно не замена полной студии, и больше ориентирована на веб, но все-таки лучше, чем Блокнот. И да, устанавливается в AppData, что как раз вам подойдет.
    Если очень хочется более свежего компилятора, а дотнет установлен старый - можете попробовать повозиться с Roslyn, но это если у вас уже какой-то опыт с дотнетом есть.
    Ответ написан
    1 комментарий
  • C# Как очистить все cookies в WebBrowser?

    Nipheris
    @Nipheris Куратор тега C#
    Попробуйте вот это свойство установить в null или пустую строку.
    Ответ написан
  • System.Object -> System.ValueType (знаковый - на стеке) - как это?

    Nipheris
    @Nipheris Куратор тега C#
    System.Object является базовым для System.ValueType потому, что C# скрывает от вам процесс boxing-а значений value-типов в ссылочные обертки.
    Где выделяется память для ссылочных типов и типов-значений спецификацией не оговаривается (в текущих реализациях типы-значения иногда (!) выделяются на стеке, но могут быть и на куче, если являются членами ссылочных типов (массивы, другие классы, и т.д.). Для вас важно лишь знать логику поведения: как присваиваются и передаются в функции значения reference и value-типов, остальное - детали реализации.

    Довольно важная для понимая статья: blogs.msdn.com/b/ericlippert/archive/2010/09/30/th...
    Ответ написан
    2 комментария
  • Какие существуют фреймворки на C#?

    Nipheris
    @Nipheris Куратор тега C#
    Я думаю вам нужно уточнить объект поиска. Давайте подумаем, что вы вкладываете в понятие фреймворка (и что вообще туда можно вложить): райнтайм, базовые типы данных, базовую библиотеку классов? Может быть, вы имеете в виду фреймворки для конкретных нужд, например ASP.NET как MVC-фреймворк? Для этих пунктов на сегодняшний день есть свои ответы, с учетом того, что MS открывает исходники дотнета, переписала с нуля компилятор и разрабатывает новый рантайм.
    Ответ написан
  • Как отловить момент, когда окно помещается в одну из сторон экрана (прилипает как бы), при нажатии WIN + LEFT?

    Nipheris
    @Nipheris Куратор тега C++
    Я думаю вам придется изучить и частично повторить логику винды в плане приклеивания окна - т.е. получать размер рабочей области на текущем мониторе и делать окно в половину области с нужным положением. С точки зрения приложения нет никакой необходимости сообщать ему, что окно прилеплено - для него не должно быть разницы, прилепили его или вручную поресайзили до такого размера.
    Старый размер окна запоминает виндовый менеджер окон, как и в случае c maximize/minimize - иначе бы старые приложения не работали с прилипанием, а они все работают без проблем, значит операционка ничего нового не требует.
    Ответ написан
    2 комментария
  • Как вывести атрибуты файла?

    Nipheris
    @Nipheris Куратор тега C#
    > Можно как-то написать эту программу (вывести атрибуты), не обращаясь к каждому члену типа FileAttributes (ReadOnly,Hidden и т.д.)?
    Что вы имеете в виду "не обращаясь"? FileAttributes это флаговое поле, вы берете конкретное его значение и or-ите с конкретными значениями перечисления, если операция или дает true - делаете соответствующее действие (выводите что-то на экран). Вам же нужно что-то вменяемое вывести ("Скрытый, Системный" или "HS" например), поэтому это вам проверять и решать, что делать.
    Ответ написан
    Комментировать
  • Как запустить проект под mono?

    Nipheris
    @Nipheris Куратор тега C#
    Под mono-райнтамом, компилятор можно и майкрософтовский. Качайте www.mono-project.com/download/#download-win и запускайте
    Ответ написан
    Комментировать
  • Как сохранить Excel/DataTable таблицу в БД (MS SQL Server)?

    Nipheris
    @Nipheris Куратор тега C#
    > Четкого формата таблиц нет.
    Значит реляционная модель как таковая вам не подходит. Тут есть два варианта:
    1) Entity-Attribute-Value (возможно это вы и имели в виду под "Сохранять каждую ячейку по отдельности", ну тогда решать вам. Работать будет разумеется медленнее, чем нормальная таблица, но у вас же нет схемы, ничего не поделаешь)
    2) JSON/XML. Тут уж либо поля типа XML, либо привет документно-ориентированная СУБД.

    Второй вариант годится, если выборки внутри таблицы не нужны или нужны редко (раз уж вы заговорили про CSV). Если нужны часто - то тогда EAV самое оно.
    Ответ написан
    Комментировать
  • Какой функционал сделать для приложения?

    Nipheris
    @Nipheris Куратор тега C++
    1) Сериализация и десериализация
    2) Работа с JSON и XML
    Можно одновременно и то, и другое покрыть, если сделать конфигурационный файл и сохранение настроек в него.
    3) Работа с потоками данных
    Вряд ли сможете обойтись без этого, вероятно вам понадобятся FileStream и NetworkStream для получения фида и сохранения на диск.
    4) LINQ
    Аналогично, если вы знаете что это такое - то будете использовать везде, где удобно, в любом приложении из более чем 30 строк кода есть foreach-и, которые можно заменить использованием LINQ.
    Ответ написан
    Комментировать
  • Как узнать координаты мыши относительно Canvas (C# WPF)?

    Nipheris
    @Nipheris Куратор тега C#
    Espleth Касательно WinForms - можно обойтись без магических констант (которые неизбежно будут разные на разных операционках, с разными темами и с разыми DPI, т.е. одно и то же значение использовать в принципе невозможно), для этого есть ClientSize
    lucky_e3 Касательно WPF - совершенно не понятно, почему вы в GetPosition передали null вместо вашей канвы: черным по белому написано https://msdn.microsoft.com/en-us/library/ms591423%... - возвращает позицию относительно указанного элемента. Canvas является FrameworkElement, поэтому и IInputElement тоже. Поэтому запросите позицию относительно канвы и не надо констант.
    Ответ написан
    2 комментария
  • Как запустить код Console Application из Windows Form Application?

    Nipheris
    @Nipheris Куратор тега C#
    > Но хотелось бы чтобы исходный код компилировался и запускался.

    Ну так расставьте правильный билд-ордер для консольного приложения, чтобы оно первым собиралось, и настройте аутпуты для обоих проектов в одну и ту же папку (чтобы рядом экзешники лежали). Потом запускайте Process.Start-ом из текущей директории, как и предложили. Не забудьте настроить, чтобы при запуске Debug-сессии текущая директория устанавливалась в выходную директорию (по дефолту - директория проекта).
    Ответ написан
    Комментировать
  • Как передать параметр в cmd из C#?

    Nipheris
    @Nipheris Куратор тега C#
    В кавычки всю строку BrainFuck-а. А вообще, сделайте нормальный интерактивный режим, как у всех.
    Ответ написан
    Комментировать
  • Как добавить контекстное меню в проводнике только для одного файла (одновременно) определенного типа?

    Nipheris
    @Nipheris Куратор тега C#
    Ну вообще мне кажется, что такое поведение (возможность выполнить для нескольких файлов действие, которые выполнимо для одного) вполне логично. Нет никаких естественных оснований запрещать человеку открыть сразу 10 файлов также, как он бы открыл их по-одному. Возможно и есть способ запрета, вопрос в том, стоит ли. Если вас не устраивает, что открывается много экземпляров программы, решите именно эту проблему (чтобы окно программы активировалось, если она уже запущена. Можно, кстати, послать команду на открытие нового файла в уже запущенную программу).
    Ответ написан
    Комментировать
  • Кто может подкинуть заданий на с#?

    Nipheris
    @Nipheris Куратор тега C#
    У тебя есть хобби или интересы какие-нибудь помимо программирования? Если есть - это отличный способ попрактиковаться с языком. Подойдет практически все, даже если ты любишь, например, рыбалку - тогда можешь составить интерактивную карту рыбных мест со статистикой ловли. А вообще: если фотография - напиши себе сам пару фильтров для изображений (поработаешь с графикой немного), если звук/музыка - также ищешь библиотеки, которыми можно прочитать файлы, и пробуешь делать простые вещи - изменение громкости, миксинг звуков. Автоматизируй что-нибудь, что тебе нравится, что ты хорошо знаешь, наверняка что нибудь найдешь. Самый крайний вариант всегда есть - персональная база данных для чего-либо. Тут уже вообще все подойдет - и музыка, и видео, и коллекционные значки, и твои личные спортивные рекорды и вообще что угодно. Я советую такой способ, чтобы ты почувствовал, что язык (особенно промышленный) - это инструмент, и нужно получать удовольствие от его использования. И правильный взгляд на вещи у тебя будет. И не перегоришь на третьей по счету бессмысленной задаче. Еще и корешам покажешь, как круто получилось.
    Мож в доту шпилишь или cs? Тогда инф. поддержу мачтей - статистику какую-нибудь, потом еще и интеграцию с сервером/стимом сделаешь.
    Ответ написан
    1 комментарий
  • C#. Как в реестре задать иконку пункта контекстного меню проводника из ресурсов exe файла?

    Nipheris
    @Nipheris Куратор тега C#
    Вместо пути к ico указываете путь к exe и, через запятую, номер иконки в ресурсах, например, С:\WINDOWS\system32\notepad.exe,1

    Вот неплохой пример: stackoverflow.com/questions/6799553/how-to-set-a-i...
    Ответ написан
    1 комментарий
  • BitmapImage.EndInit выдает NotSupportedException. Зачем?

    Nipheris
    @Nipheris Куратор тега C#
    В общем и целом наиболее вероятно, что ваш буфер с картинкой (который обернут в MemoryStream) содержит не вполне корректные данные. Возможно, не докачали, если качали из инета. Или не дочитали еще откуда-то. Попробуйте в этом месте поставить сохранение содержимого MemoryStream в файл и попробуйте этот файл открыть обычным просмотровщиком.

    Аналогичная проблема на SO:
    stackoverflow.com/questions/7292764/no-imaging-com...
    stackoverflow.com/questions/26404496/wpf-bitmapima...
    stackoverflow.com/questions/3886849/error-in-my-by...

    Вобще поставьте английскую студию и не мучайтесь с русскими сообщениями об ошибках, от них толку так много, что приходиться переводить обратно на английский.
    Ответ написан
    2 комментария
  • Как получить 2 таблицы в хранимой процедуре в SQL Server?

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

    Nipheris
    @Nipheris Куратор тега C#
    Если планируется использовать дотнет (как для "процессов", так и для сайта), то имеет смысл использовать преимущества платформы. Я бы поступил следующим образом:
    - на ASP.NET реализовать логику сайта + бизнес-логику; здесь же - постановку "заказов" в очередь контроллера;
    - отдельный процесс операционной системы - контроллер (хост) для выполняющихся "процессов"; каждый такой контроллер (их может быть несколько) загружает в отдельный домены приложения (application domain) сборку/сборки с кодом "процесса", настраивая ему права доступа к окружающей системе (песочницу); т.о., при постановки задачи в очередь конкретному контроллеру (выбирать можно рандомно или по загруженности), последний, при готовности, создает домен приложения, грузит в него нужную сборку-плагин, и запускает код на выполнение с нужными параметрами.
    - код "процессов" оформлять в виде дотнетовских сборок; оформить интерфейс, который будет реализован каждой сборкой;
    - прогресс можно конечно писать в БД, но можно и не писать: правильно работающий контроллер может и сам докладывать о состоянии выполнения наиболее актуальные сведения; в тот же интерфейс, через который контроллеру отдаются в очередь задачи, можно добавить и возможность запроса состояния выполнения; на клиенте брать по ajax, только конечно не в цикле, а по таймеру.
    - в базу можно и нужно писать время старта/завершения задачи, результат (успех/ошибка) и т.д.;

    такая архитектура позволит вам выделить отдельные машины для сайта, отдельные - для исполнения, наращивать количество контроллеров "процессов" и количество машин, обслуживающих сам сайт.
    Ответ написан
    Комментировать