• Как отрисовать 3D графики функции в C# Visual Studio .NET (WIndows Forms)?

    @Akaero
    Про WF точно сказать не могу, но в WPF трехмерная графика точно есть.
    Вот линк на туториал: тык
    Ответ написан
    Комментировать
  • Как отрисовать 3D графики функции в C# Visual Studio .NET (WIndows Forms)?

    DarkRaven
    @DarkRaven
    разработка программного обеспечения
    Как вариант, можно взять 3D-графики, которые дают WPF-контролы и внедрить в WinForms, там есть специальный контрол.

    Пример графиков:
    wpf-surfaceplot3d.readthedocs.io/en/latest
    https://www.codeproject.com/Articles/42174/High-pe...
    Пример, как внедрять:
    https://docs.microsoft.com/en-us/dotnet/framework/...
    Ответ написан
    Комментировать
  • Как развиваться .NET разработчику?

    Я делаю тоже самое, и тоже 2 года.
    Но вот мне все также интересно, по вечерам читаю книги, на выходных смотрю видео.

    Развиваться можно бесконечно.
    Попробуйте почитать про алгоритмы и структуры данных, начнете смотреть на привычные вещи другим взглядом.

    1) Род Стивенс - "Алгоритмы. Теория и практическое применение".
    2) Джон Маккормик - "Девять алгоритмов, которые изменили будущее".

    Выучите SOLID (Боб "Принципы, паттерны и методики гибкой разработки"), GOF (банда 4х, хватит https://metanit.com/sharp/patterns/), GRASP (Крэг Ларман - "Введение в объектно-ориентированный анализ, проектирование и интеративную разработку") наизусть, прочитайте книги авторов.

    Работа работой, делайте свое дело.
    А в свободное время учите и читайте то что вечно, или почти вечно - алгоритмы, паттерны и т.п., то что можно применить где угодно и на чем угодно. Не забивайте голову неиспользуемыми фрейворками (приходят и уходят) и другими языками программирования на которые не собираетесь переходить.
    Ответ написан
    2 комментария
  • Какие знания нужно иметь,чтобы джуном устроиться хотя бы,термины какие знать и т.п - .Net разработчик,например? Допустим веб/десктоп?

    VK28111995
    @VK28111995
    Interested in C# and have big passion by AI
    Не хочу матерится но все же... .Net довольно большая штука! Хочу подметить что одного базового понимания синтаксиса не достаточнос для того что бы устроится на нормальную работу!
    .Net Разработчик понятие довольно таки и абстрактное, а более специфические это:
    -> .Net Developer - Database Developer
    -> .Net Developer - SQA Developer
    -> .Net Developer - UI Developer
    -> .Net Developer - Mobile Device Developer
    -> .Net Developer - Solution Architect
    -> .Net Developer - Game Developer
    -> .Net Developer - Front End Developer

    Для каждой узкой спецификации существуют свои *изюминки*, но их всех обьеденяет большой Фреймворк .Net
    Ответ написан
    5 комментариев
  • Как посмотреть исходный код .NET в Visual studio?

    @PushMeNow
    .NET Developer
    Если вы имеете в виду библиотеки .net framework, то никак. их исходный код это закрытая информация. можно посмотреть только метаданные (какой класс какие методы, поля и др. содержит и описание того, что они делают), выбираете нужный класс -> Go To Definition или можно через Object Browser (там можно вообще можете посмотреть из чего состоит пространство имён).
    Ответ написан
    2 комментария
  • Верно ли понимаю TPL и асинхронность?

    Nipheris
    @Nipheris Куратор тега C#
    1. Да, задача может исполниться где угодно. Более того, вы не поверите, но некоторые таски вообще могут нигде не исполняться, т.к. исполнять нечего (см. п. 5). Таск - это прежде всего абстракция значения, которое будет получено в будущем, и для получения которого возможно нужно что-то посчитать или просто подождать. См. futures and promises.
    2. Ну не обязательно в новом потоке, может быть выполнится и в существующем потоке если в пуле потоков есть свободный.
    3. Асинхронные операции ввода-вывода называются так потому, что выполняются через асинхронное API операционной системы. Нет никакого смысла использовать асинхронную операцию, но делать это в отдельном потоке созданном специально для этой операции. Потоки нужны прежде всего для того, чтобы эффективно нагружать исполнителей, т.е. процессоры (в том числе разные их ядра).
    4. Можно в новом, можно в потоке из пула. Так или иначе, если операция предполагает именно расчёты, а не ожидание ввода/вывода, то безусловно это тот случай, когда имеет смысл переложить нагрузку на другой поток.
    5. Если представлять таск как одну из сторон "трубы", по которой прилетит результат асинхронной операции, то Task - это принимающая сторона, а TaskCompletiotionSource - передающая (производящая результат) сторона. Когда вы создаёте таск из кода который нужно выполнить, этот код становится передающей стороной. Но Task абстрагирует любую асинхронную операцию, не только ту где нужно долго что-то считать. Возможно вам нужно дождаться одного байтика из сети, и операция будет считаться завершенной. Во всех тех случаях, когда вы хотите самостоятельно "произвести" результат для какого-то таска (а сам таск отдать "наружу" другому коду, например вернуть из функции), вы можете использовать TaskCompletionSource.
    (Кстати, в C++ принимающая сторона называется future, а передающая (производящая) - promise. В JS принимающая сторона называется Promise, а передатчиком является функтор).
    Ответ написан
    1 комментарий
  • Как десериализовать JSON в объект класса C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - https://github.com/JamesNK/Newtonsoft.Json стандарт дефакто для .Net

    2 - есть родной сериализатор/десериализатор, но менее удобный

    ps самое смешное, как раз на встроенном, пару лет назад, десериализовал довольно простой json в анонимный класс, то есть без предварительного описания структуры, без контрактов и тд... совсем недавно вспомнил об этом... и не смог найти тот код )) ... таки пошел смотреть Newtonsoft ... и в итоге доволен как слон, всем рекомендую, доки простые, много примеров, почти не надо читать на английском, много простого кода примеров
    Ответ написан
    Комментировать
  • Unity(C#) - Как указать Vector3.Direction в градусах?

    Griboks
    @Griboks Куратор тега C#
    Вы гуглили перевод float в Vector3, а надо было учебник математики. Скаляр и вектор имеют разную природу. Нельзя преобразовать одно в другое.

    Как вы собираетесь указать направление в градусах? 20 градусов - это куда? В трёхмерном пространстве (Vector3) должно быть две координаты, а не одна. Например, вы можете указать азимут и угол возвышения.

    1) Прочитайте учебник по математике.
    2) Правильно сформулируйте и исправьте вопрос.
    Ответ написан
    4 комментария
  • Какую бесплатную версию microsoft visual studio можно использовать в коммерческих целях?

    Она одна - Community. Ее можно использовать в коммерческих целях для физ.лиц.

    a. Индивидуальная лицензия. Если вы являетесь физическим лицом, разрабатывающим собственные приложения для продажи или с какой-либо другой целью, вы можете использовать данное программное обеспечение для разработки и тестирования таких приложений.

    https://www.visualstudio.com/ru/license-terms/mlt5...
    Ответ написан
    Комментировать
  • Кто это мне тут Windows "переустановил"?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    cleanmgr вам в руки.
    Или более тяжелая артиллерия -
    Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
    Ответ написан
    Комментировать
  • C# как с помощью атрибута изменить вывод свойства типа bool?

    @Vug Автор вопроса
    Новичок в .NET
    Нашел следующее решение:
    Добавляем следующий атрибут в класс [UIHint("Gender")]
    public class Student
    {
            [DisplayName("Пол")]
            [UIHint("Gender")]
            public bool? Gender { get; set; }
            [DataType(DataType.Date)]
            [DisplayName("Дата рождения")]
            public DateTime? Birthday { get; set; }
    }

    Теперь переопределим шаблоны отображения и редактирования
    Ссылка
    В папке Views в папку Shared создадим новую папку EditorTemplates.
    Добавим в эту папку новый View: Gender.cshtml
    @model bool?
        
    <select class="list-box tri-state" id="Gender" name="Gender"><option value="">Не задано</option>
        <option selected="selected" value="true">Мужской</option>
        <option value="false">Женский</option>
    </select>


    5a771f7a0286b572674673.jpeg
    Ответ написан
    Комментировать
  • Как перевести этот код c++ на python?

    @techkuz
    import sys
    if __name__ == "__main__":
        k, m, n = map(int, input().split())
        res = n / k * 2 * m
        if n % k: res += 2 * m
        print(res)
        sys.exit(0)

    Python 3.6
    Ответ написан
    2 комментария
  • Как указать статический IP?

    Stalker_RED
    @Stalker_RED
    Если хотите чтобы он именно получал один и тот-же айпи, то нужно настраивать не windows, а ту штуку, которая эти айпи выдает. Роутер, или что там у вас этим занимается.

    Или можно открыть настройки сети и вручную прописать любой айпи адрес, какой вам нравится.
    iw2VFlm.png
    Ответ написан
    3 комментария
  • Как решить это матричное уравнение и сделать проверку на C++?

    longclaps
    @longclaps
    Никто никогда не далал ничего подобного.
    Ты первый - как Гагарин.
    Действуй.
    Ответ написан
    3 комментария
  • Как правильно приступить к созданию кода на Си в visual studio?

    @cicatrix
    было бы большой ошибкой думать
    File / New / Project
    Ответ написан
    Комментировать
  • Что не даёт на C++ писать кроссплатформенные приложения?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Да, как бы, ничего не мешает писать один С++ код для множества платформ. Почти весь мой трудовой стаж связан именно с разработкой кроссплатформенных игр. Я работал с несколькими (самодельными и не очень) движками и имею свое собственное детище, прекрасно и однозначно собирающееся на 5 целевых платформ (Win, Mac, Linux, ios, Android), к которым без труда можно добавить и консоли, и новые платформы.

    Нет, вру, не без труда. Попотеть над слоем абстракции придется. Но попотеть придется только над ним, все остальное заведется само, т.к. изначально написано в стандарте C++, без расширений под конкретные компиляторы, и с применением ряда очень важных для кроссплатформенности подходов.

    Кроссплатформенность подразумевает решение ряда вопросов, которые и выливаются в слой абстракции над операционной системой. Эти вопросы, зачастую, решать никто не хочет. Несколько раз встречал такое сам и еще мне рассказывали о том, как тот или иной движок сперва был только под конкретную ###, а потом решили портировать на @@@. Оказалось, что компилятор, которым всегда и собирали движок, нашпигован расширениями языка, которые конечно же все пользовали на 100%, и при смене компилятора ни один файл исходников не остался без доброй сотни ошибок. Т.е. переписывать надо было ВСЁ.

    Mercury13 хорошо рассказал про Unicode пути к файлам. Drakonoved правильно подметил про разделители путей к файлам. Максим Гришин очень хорошо напомнил про порядок следования байт. Это все и есть часть этого ряда вопросов.
    У каждой платформы есть свой API, которого не будет на другой платформе. Но на другой платформе будет свой API, со своими именами и схожей функциональностью. И работу с API надо абстрагировать от универсального кода.
    Еще, на одной платформе у тебя может быть разомкнутый главный цикл обработки сообщений (Win), а на другой - замкнутый (Android). Надо подстраиваться. GUI везде разный, надо подстраиваться. Сама структура приложения на одной платформе может быть монолитной, а на другой - композиционной. Графические и звуковые API могут быть и кроссплатформенными, однако простоты использования это им не прибавляет. Инициализация все равно будет платформозависимой.
    На самом деле даже в рамках работы на одной платформе надо соблюдать ряд правил, чтобы иметь возможность из одного кода получать и 32-битное приложение, и 64-битное тоже. Об этом неплохо написано на сайте разработчиков PVS-Studio.

    И все это решается. От части - с помощью архитектурных приемов. Один из таких я уже показывал в другом своем ответе.
    И еще эти вопросы можно не решать.
    ДубльГИС, например, уже давно работает на базе Qt, что сильно упростило им кроссплатформенную жизнь. Qt решает ряд проблем кроссплатформенности.
    Ответ написан
    10 комментариев
  • Можно ли в WinApi использовать slider control для получения целочисленного значения в заданном диапазоне?

    MaxLevs
    @MaxLevs Автор вопроса
    Вопрос снят. Все-таки смог найти решение. (сложно как-то мне в документации искать: не то все время получаю)

    Для начала нужно подключить вот этот файл для получения кодов сообщений для слайдера
    #include <Commctrl.h>

    Диалог вызывается так
    DialogBox(
    	hInst,
    	MAKEINTRESOURCE(IDD_USER_TERN),
    	hWnd, 
    	(DLGPROC)(AskNumber)
    );


    Затем сама процедура обработки диалога
    AskNumber
    LRESULT CALLBACK AskNumber(
    	HWND hDlg,
    	UINT Msg,
    	WPARAM wParam,
    	LPARAM lParam
    ) {
    	
    	HWND sliderBar = GetDlgItem(hDlg, IDC_NUMBER));
    	switch (Msg)
    	{
    	case WM_INITDIALOG:
    		SendMessage(sliderBar, TBM_SETRANGEMIN	, false, 1);   //минимум
    		SendMessage(sliderBar, TBM_SETRANGEMAX, false, 10); //максимум
    		SendMessage(sliderBar, TBM_SETTICFREQ	, false, 1);   //шаг
    		return static_cast<LRESULT>(true);
    
    	case WM_HSCROLL:
    	{
    		if (sliderBar == (HWND)lParam) //если речь идет о нашел слайдере
    		{
    			int curNumb = SendMessage(sliderBar, TBM_GETPOS, 0, 0); // Получаем текущее положение слайдера
    			/* Делаем с ним, что хотим */
    		}
    
    		break;
    	}
    
    	case WM_COMMAND:
    		switch (LOWORD(wParam)) {
    		case ID_DO_TERN:
    			int curNumb= SendMessage(sliderBar, TBM_GETPOS, 0, 0);
    			wchar_t buff[100];
    			wsprintfW(buff, L"%d", curNumb); // Преобразуем число к строке
    			MessageBox(hWnd, buff, L"Число!", MB_OK); // Выводим выбранное значение
    			EndDialog(hDlg, LOWORD(wParam));
    			return static_cast<LRESULT>(true);
    			break;
    		}
    		break;
    	return static_cast<LRESULT>(false);
    }



    Единственная моя проблема - навигация по документации...
    Ответ написан
    Комментировать
  • MBR(Главная загрузочная запись) и две операционные системы, как это работает?

    fzfx
    @fzfx
    18,5 дм
    так и работает: в таблице разделов загрузочной помечена какая-то одна запись, а уже она предлагает выбор, какую операционную систему грузить.
    Ответ написан
    1 комментарий