• Как скомпилировать ASP.Net Core проект из командной строки?

    @kvasek
    dotnet build или dotnet run
    Вот вам в помощь команда dotnet -h
    Ответ написан
    Комментировать
  • C# на стороне сервера возможен?

    petermzg
    @petermzg
    Самый лучший программист
    Да.
    1. Web сайт
    а. Windows + IIS
    б. Linux + .NET Core
    2. Job
    а. Azure WebJobs для примера
    Ответ написан
  • Что нужно установить для разработки на C# из под Ubuntu 16.04?

    JohnnyGat
    @JohnnyGat
    Стараюсь писать код, понятный человеку.
    .NET Core - https://www.microsoft.com/net/core#linuxubuntu
    Visual Studio Code - https://code.visualstudio.com/Download

    ну или Mono - www.mono-project.com/download/#download-lin-ubuntu

    Смотря что вы подразумеваете под "разработкой на C#".
    Ответ написан
    7 комментариев
  • Стоит ли учить ASP.NET MVC?

    @vanillathunder
    1) Первое время будет сложно перейти. Нужно знание типов данных, архитектуру, паттерны.
    2)Для мелких смысла нет. проще на PHP реализовать.
    3)Не на много дороже
    4)Курсы itvdn.
    Книги: Паттерны проектирования на платформе .NET
    ASP.NET 4.5 с примерами на C# 5.0 для профессионалов
    Ответ написан
    Комментировать
  • Как проверить существует ли email?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Достоверно нельзя никак.
    Учитывая сколько сейчас есть спама, многие почтовики могут даже не возвращать ошибку, либо возвращать ее только доверенным серверам.
    А так - просто отправить письмо.
    Ответ написан
    1 комментарий
  • Какой процессор взять для Visual Studio?

    Alexey_Suprun
    @Alexey_Suprun
    Web Developer Blog - ссылка в описании
    Поставьте еще пару планок оперативки, ну и конечно i5, но я бы так же рекомендовал взглянуть и в сторону i7
    Ответ написан
    2 комментария
  • Какой процессор взять для Visual Studio?

    Jump
    @Jump
    Системный администратор со стажем.
    Какой процессор взять для Visual Studio?
    Какой по деньгам устроит.
    i5 разумеется пошустрее будет чем i3, ибо четыре ядра это все-таки четыре, а не два с гипертредингом.
    Сама по себе компиляция неплохо паралелится, поэтому важно и количество ядер, и частота ядра.

    А оперативки маловато.
    Ответ написан
    4 комментария
  • Какие есть понятные и хорошие учебники по C# для новичка?

    Можно поучиться по C# и WPF на сайтах: metanit.com и https://professorweb.ru. Там достаточно понятно. Остальное можно набраться знаний только в процессе практики программирования. Если учить сразу на Visual Studio, то столько запоминать не придётся: достаточно подсказок, чтобы понять, что делает та или иная функция, метод и прочее.
    Ответ написан
    Комментировать
  • Как парсить json на C#?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Есть достаточно популярная библиотека библиотека Json.NET от Newtonsoft.
    Ответ написан
    5 комментариев
  • Можно ли как-то изменить дизайн окна OpenFileDialog?

    EreminD
    @EreminD
    Кое-что умею
    Сам по себе, ofd не кастомизируется
    У вас варианта два:
    1. или пилить самому новое модальное окно, что, на деле, не так уж и долго делается
    2. искать готовые решения (вот или вот еще ну или еще где) в интернете, потому что задача не нова
    Ответ написан
    Комментировать
  • .NET неоправдано сжирает память?

    ayazer
    @ayazer
    Sr. Software Engineer
    1) алгоритмы сжатия изпользуют доп. память для генерации словарей. Размер словаря будет зависеть как от алгоритма сжатия, так и от данных которые надо сжать.
    2) для того чтоб освободить память от кучи хлама - можно сделать GC.Collect для инициализации сборщика мусора. В данном случае прийдеться делать GC.Collect(2), что достаточно дорогая операция.

    кроме того, следует помнить про нюансы сборки мусора для LOH. В отличии от SOH, для LOH не будет проводиться дефрагментация данных в памяти, а CLR будет просто пытаться переиспользовать освободившиеся куски. Потому вполне возможна ситуация когда память в куче вроде как есть, но CLR продолжает ее выделять для новых обьектов.
    Ответ написан
  • .NET неоправдано сжирает память?

    @SZolotov
    Asp.net core, MAUI,WPF,Qt, Avalonia
    трудно что-то сказать не видя всего кода. Но вот тут:

    byte[] buffer = new byte[1000000000]; // RAM заюзалась
    buffer = null;
    buffer = new byte[100]; // (<b>GC</b>) тот же самый буфер. Но памяти при этом выделено под 1000000100 байт.


    Нет никакой гарантии что сборщик мусора сработает. От может сработать, а может когда-нибудь потом.
    Что происходит в этом коде? Вы выделяете память, buffer = null не говорит о том что память должна освободиться, а только что переменная ссылается на другой участок памяти (с адресом 0). Далее выделяете еще память и теперь переменная ссылается на новый участок памяти..
    По поводу сборщика мусора. В 99,999% случаев, когда программисту хочется поработать вручную со сборщиком мусора, нужно править код.
    Ответ написан
    7 комментариев
  • С чего начать обучение C# для разработки софта под соц.сети и дальнейшей работы с API этих соц.сетей?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Работа с API - это просто веб-запросы.

    Подготовка запросов и обработка ответов - это в большинстве своем сериализация/десериализация, в основном JSON-данных, реже XML.

    Все остальное будет зависеть от типа приложений, которые вы планируете разрабатывать.

    По работе с API социальных сетей лучше читать официальную документацию.

    У меня есть библиотека для авторизации по протоколу OAuth (используется многими, если не всеми, социальными сетями), которая помимо прочего, имеет унифицированные механизмы работы с API. Посмотреть на работу библиотеки можно по следующей ссылке: demo-oauth.nemiro.net

    Для многих крупных проектов (сайтов) можно найти готовые узкопрофильные решения.

    Ниже представлен небольшой пример использования библиотеки Nemiro.OAuth в проекте Windows Forms для авторизации через Instagram и использование полученного маркера доступа для загрузки списка последних изображений текущего пользователя. Изображения загружаются в ImageList и затем выводятся в ListView:
    using System;
    using System.Drawing;
    using System.Net.Http;
    using System.Windows.Forms;
    using Nemiro.OAuth;
    using Nemiro.OAuth.LoginForms;
    
    namespace InstagramWinForms
    {
    
      public partial class Form1 : Form
      {
    
        // базовый адрес API
        private const string API_BASE_URL = "https://api.instagram.com/v1";
    
        // элемент для хранения полученных изображений
        private ImageList ImageList = new ImageList();
    
        // элемент для вывода изображений
        private ListView ListView1 = new ListView();
    
        private string AccessToken;
    
        public Form1()
        {
          InitializeComponent();
    
          // размер изображений 150x150px, 16bit
          this.ImageList.ImageSize = new Size(150, 150);
          this.ImageList.ColorDepth = ColorDepth.Depth16Bit;
    
          // настраиваем список для вывода
          this.ListView1.View = View.LargeIcon;
          this.ListView1.LargeImageList = this.ImageList;
    
          this.ListView1.Dock = DockStyle.Fill;
    
          // добавляем список на форму
          this.Controls.Add(this.ListView1);
        }
    
        private void Form1_Load(object sender, EventArgs e)
        {
          // запрос на получение маркера доступа
          this.GetAccessToken();
        }
    
        private void GetAccessToken()
        {
          // создаем форму для Instagram
          // ВНИМАНИЕ: используйте собственный идентификатор и ключ
          // получить идентификатор и ключ можно на сайте instagram:
          // https://www.instagram.com/developer/clients/manage/
          var login = new InstagramLogin
          (
            // client id вашего приложения
            "9fcad1f7740b4b66ba9a0357eb9b7dda", 
            // client key вашего приложения
            "3f04cbf48f194739a10d4911c93dcece", 
            // требуется адрес возврата, 
            // можно использовать указанный, 
            // но лучше сделать свой
            "http://oauthproxy.nemiro.net/",
            // права доступа
            // https://www.instagram.com/developer/authorization/
            // для public_content (и возможно других) убедитесь, 
            // что в настройках приложения (на сайте instagram) 
            // в разделе Permissions нет никаких требований 
            // (если требования есть, то чтобы все работало, 
            // нужно их удовлетворить :-) ...)
            scope: "basic public_content",
            // требуем получить данные профиля пользователя
            loadUserInfo: true
          );
    
          // привязываем форму авторизации к текущей форме
          login.Owner = this;
    
          // показываем форму
          login.ShowDialog();
    
          if (login.IsSuccessfully)
          {
            // все прошло успешно, запоминаем маркер доступа
            this.AccessToken = login.AccessToken.Value;
    
            // выводим в заголовок текущей формы имя пользователя
            this.Text = (login.UserInfo.DisplayName ?? login.UserInfo.UserName);
    
            // получаем изображения
            this.GetRecentMedia();
          }
          else
          {
            MessageBox.Show("Error...", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
          }
        }
    
        private void GetRecentMedia()
        {
          // отправляем запрос на получение изображений
          OAuthUtility.GetAsync
          (
            String.Format
            (
              "{0}/users/self/media/recent?access_token={1}", 
              API_BASE_URL, 
              this.AccessToken
            ),
            // результат запроса будет передан в метод GetRecentMedia_Result
            callback: GetRecentMedia_Result
          );
        }
    
        private async void GetRecentMedia_Result(RequestResult result)
        {
          if (result.StatusCode == 200)
          {
            // получили успешный ответ
            // обрабатываем его
            foreach (UniValue item in result["data"])
            {
              // загружаем текущую картинку
              using (var client = new HttpClient())
              {
                var s = await client.GetStreamAsync(item["images"]["thumbnail"]["url"].ToString());
    
                // добавляем изображение в список
                Invoke(new Action(() => this.ImageList.Images.Add(Image.FromStream(s))));
              }
    
              // создаем элемент для вывода в список 
              var image = new ListViewItem();
              // название изображения
              image.Text = item["caption"]["text"].ToString();
              // индекс изображения в списке (ImageList)
              image.ImageIndex = this.ImageList.Images.Count - 1;
    
              // добавляем элемент в список
              Invoke(new Action(() => this.ListView1.Items.Add(image)));
            }
          }
          else
          {
            this.ShowError(result);
          }
        }
    
        private void ShowError(RequestResult result)
        {
          if (result["meta"]["error_message"].HasValue)
          {
            MessageBox.Show
            (
              result["meta"]["error_message"].ToString(), 
              "Error", 
              MessageBoxButtons.OK, 
              MessageBoxIcon.Error
            );
          }
          else
          {
            MessageBox.Show
            (
              result.ToString(), 
              "Error", 
              MessageBoxButtons.OK, 
              MessageBoxIcon.Error
            );
          }
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
          this.GetRecentMedia();
        }
    
      }
    
    }

    preview.gif?raw=true
    Код проекта можно найти по следующей ссылке:
    https://github.com/alekseynemiro/nemiro.oauth.dll/...
    Ответ написан
    2 комментария
  • ASP.NET Core: чего нет в .Net Core в сравнении с .Net Framework?

    Мне например пока не хватает в Core работы с xsd схемами, но core 1.2 будет поддерживать .net standart library 2.0 так, что жду второго квартала 2017.
    А так думаю можно почитать roadmap и посмотреть если из планируемого ничего не надо можно пробовать.
    Ответ написан
    Комментировать
  • ASP.NET Core: чего нет в .Net Core в сравнении с .Net Framework?

    EreminD
    @EreminD
    Кое-что умею
    ASP.NET 5 = ASP.NET Core

    Если речь идет о выборе между Core и православным .Net Framework, хочу предостеречь от проблемы нашего проекта

    У нас проект на .net Core. При этом, в решении используется много проектов (csproj) на .net (не Core).
    Все работает вполне корректно при запуске из студии, но проблемы начинаются, при работе, например с CI или сборкой через командную строку. Есть либо сборщик MSBuild, который не понимает зависимости между Core и обычными проектами. И такой же dotnet, который больше на Core приучен.
    В общем, мешанина и не можем наладить CI
    Так что смотрите, сможете ли работать, не мешая платформы.
    Если не уверены - лучше .net framework
    Ответ написан
    2 комментария
  • Как обновить C# до версии 7.0?

    Для Visual Studio 2013 никак. Нужно ставить Visual Studio 2017.
    Ответ написан
    Комментировать
  • Может ли два exe-файла x86 и x64 использовать общие dll?

    xpert13
    @xpert13
    Full Stack Developer
    Не можете, разрядность исполняемого файла и используемых ею библиотек должны совпадать. Исполняемый файл делит с библиотекой своё адресное пространство, а у x86 и x64 разный размер ячейки памяти, они не смогут правильно работать в одном адресном пространстве.
    Ответ написан
    Комментировать
  • Как в ASP.NET WebApi загрузить файл не записывая его на диск?

    @kttotto Автор вопроса
    пофиг на чем писать
    Вот решение:

    var provider = new MultipartMemoryStreamProvider();
    var result = await content.ReadAsMultipartAsync(provider);
    
    var stream = provider.Contents[0];  // если гарантированно один файл передавался, иначе - пройдитесь с помощью foreach
    var fileName = stream.Headers.ContentDisposition.FileName.Trim('"');
    var imgStream = await stream.ReadAsStreamAsync();
    var img = GetImageResize(Image.FromStream(imgStream), width, height);
    
    img.Save($"{basePath}\\{fileName}");


    Как заметили, просто вместо потока этого вида MultipartFormDataStreamProvider, создается этот MultipartMemoryStreamProvider.
    Ответ написан
    Комментировать
  • Как в ASP.NET WebApi загрузить файл не записывая его на диск?

    petermzg
    @petermzg
    Самый лучший программист
    Для примера:
    Stream stream =  await content.ReadAsStreamAsync();
    Image image = Image.FromStream(stream);
    Ответ написан
    3 комментария
  • Как обмануть оптимизатор C#?

    petermzg
    @petermzg
    Самый лучший программист
    private volatile bool _isWait;
    Ответ написан
    1 комментарий