• Страничка с ошибкой 500 Angular2?

    import { Injectable, Injector } from '@angular/core'
    
    import {
    	HttpEvent,
    	HttpInterceptor,
    	HttpHandler,
    	HttpRequest
    } from '@angular/common/http'
    
    import { Observable } from 'rxjs/Observable'
    import 'rxjs/add/observable/throw'
    import 'rxjs/add/operator/catch'
    
    @Injectable()
    export class MyHttpInterceptor implements HttpInterceptor {
    	intercept(
    		req: HttpRequest<any>,
    		next: HttpHandler
    	): Observable<HttpEvent<any>> {
    		console.log('intercepted request ... ')
    
    		return next.handle(req).catch((error, caught) => {
    			// Проверяем код ошибки. Берём роутер и перенаправляем куда вам угодно.
    			return Observable.throw(error)
    		}) as any
    	}
    }
    Ответ написан
    1 комментарий
  • Деление меньшего на большее возвращает ноль. Как исправить?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    нет и нет... почти все слова. почти правильные...

    но суть в том, что если оба операнда int то и результат будет int...

    начните с этого
    Console.WriteLine((1.0 / 7).ToString());
    или
    Console.WriteLine((1 / 7.0).ToString());
    или
    Console.WriteLine((1f / 7).ToString());
    или
    Console.WriteLine((1 / 7d).ToString());
    или
    Console.WriteLine((((double)1) / 7).ToString());
    или
    Console.WriteLine((1 /((float)(7))).ToString());
    для верности сравните с
    Console.WriteLine(((float)(1 / 7)).ToString("0.##"));

    ... обдумайте, почему во последнем примере, приведени к "плавающей точке" запоздало... и будет полное понимание, удачи..

    ps

    ... по быренькому можно тут все проверить - https://dotnetfiddle.net/

    Давно я конечно не писал на C#..

    ..или изменилась правила деления?

    ... а тут огорчу )))... в C# так было всегда (еще точнее - во всех строготипизированых ЯП)
    Ответ написан
    2 комментария
  • Какие инструменты написать самому?

    Новичку можно написать пару проектов для предметных областей по вкусу, а потом быстро станет ясно, каких инструментов ему как разработчику не хватает. Самое главное - не писать библиотек только ради написания библиотек. На гитхаб не обязательно выкладывать только то, что нужно другим разработчикам, можно написать законченное приложение или сервис, которые нужны простым людям.
    Ответ написан
    1 комментарий
  • Как применить formControlName к input?

    StivinKing
    @StivinKing
    На основе вашего примера - ссылка. Пример с ControlValueAccessor и добавил пример с FromGroup (файл input-control.component.ts)
    Ответ написан
    1 комментарий
  • Актуальность WPF?

    yarosroman
    @yarosroman
    C# the best
    Я бы сказал есть конкуренты, например Qt. Для .net core есть новый проект Avalonia.
    Ответ написан
    Комментировать
  • Как убрать полный путь до файлов проекта .NET Core в исключениях?

    @basrach
    Эта информация хранится в файлах с расширением *.pdb. Они нужны для дебагера. Удалить часть пути из них невозможно, но можно удалить файл целиком и тогда в исключениях не будет информации об исходном коде вообще, будет только стек вызовов (имя класса, название метода и т.п.). Также можно в .csproj добавить условие, чтобы при релизном билде эти файлы не создавались:
    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
      <DebugType>none</DebugType>
      <DebugSymbols>false</DebugSymbols>
    </PropertyGroup>

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

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Мысль о том, что за UWP — будущее, была основана исключительно на том предположении, что рынок покорят мобильники и планшеты на винде.
    Увы, не покорили. И вряд ли это произойдет.
    В связи с этим UWP, именно как "универсальная" платформа, не актуальна.
    А для десктопа, соглашусь с коллегами выше, — никаких преимуществ относительно WPF нет.
    Ответ написан
    2 комментария
  • Что вы думаете про UWP?

    NightmareZz
    @NightmareZz
    Нищий разработчик из Симферополя
    Очередная мёртвая технология от Microsoft.
    Это контора, которая может позволить себе тыкать рынок в разных местах - авось где-то выстрелит. Потому от неё много как хороших продуктов, так и всякой лабуды, которая уже канула в Лету или только собирается.
    В этот же список "неудачников" смело можно записать J#, XNA, Silverlight, WinRT и многое другое.
    Ответ написан
    Комментировать
  • Возможно ли создать CRM на C#?

    Да. Возможно.
    Ответ написан
    Комментировать
  • Нужна среда разработки на С# под Linux?

    zolt85
    @zolt85
    Программист
    Ответ написан
    Комментировать
  • Нужна среда разработки на С# под Linux?

    arxont
    @arxont
    C# программист
    Комментировать
  • Что лучше выбрать для обчения asp.net или php?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Ну да, не совсем корректное сравнение. MVC - это целая система, реализующая архитектурный паттерн. Помимо основного языка, на котором написана платформа (C#) необходимо изучить еще множество вещей: модели, представления, контроллеры, ОРМ, роутинг, принятые соглашения. Также не помешает знание "прикладных" вещей: IIS, .NET, Visual Studio, база данных (Oracle, MS SQL, etc)

    И не соглашусь, что мало литературы по ASP.NET MVC. Ее полно. Даже есть неплохие русскоязычные ресурсы, такие как Professorweb и metanit.
    Ответ написан
    Комментировать
  • Можно ли начинать разработку проекта на ASP.NET Core?

    ayazer
    @ayazer
    Sr. Software Engineer
    В принципе использовать можно, надо надо быть готовым что иногда вылазят проблемы которых ты не ожидал бы работая с .нет фреймворком. Для того-же серверлесса на амазоновских лямбдах можно пока использовать только .нет кор 1.1, а он под линуксом в некоторых ситуациях дико течет. в 2.0 проблему пофиксили, но официальный ответ амазоновского суппорта по поводу миграции на 2.0 - "в роад мапе нету, ничем не можем пока помочь". Причем докер контейнера с окружением который крутится в амазоновской лямбде нету только под .нет кор, для остальных языков можно спокойно его скачать и потестировать у себя локально. В итоге ждем ре:инвент в декабре, есть надежда что таки будет анонс. Опять таки, анализ дампов .нет кор приложения которое работает на линуксе - gdb/lldb в зубы и вперед. Никаких привычных инструментов.
    Ответ написан
    Комментировать
  • Как сделать деконструктор класса?

    @kttotto
    пофиг на чем писать
    Во первых не совсем понятно какой деструктор Вы хотите. Если такой как в С++, то в C# такого нет по причине существования GC. Если Вы хотите метод, который будет выполняться перед сборкой мусора, то нужно реализовать IDisposable. И даже если Вы явным образом вызовите Finalize, то в какой момент он выполнится, никто гарантии не даст, как GC решит.

    Во вторых, C# язык строго типизированный, а значит нужно каким то образом ему понимать, какого типа будет headerA и headerB. Значит для них нужно определить тип
    class HeaderA
    {
          public string Signature {get;set;}
          public DateTime CreatedDate {get;set;}
          public int Version {get;set;}
    }
    
    class HeaderB
    {
          public string Signature {get;set;}
          public DateTime CreatedDate {get;set;}
          public long AuthorId {get;set;}
          public string MagicString {get;set;}
    }

    затем инкапсулируете их
    public class A<TData>
    {
      //header
      public HeaderA Header {get;set;}
      //data
      public TData Data {get;set;}
    }
    
    public class B<TData>
    {
      //header
      public HederB Header {get;set;}
      //data
      public TData Data {get;set;}
    }

    Видно, что можно еще обобщить и сделать
    class HederData<THeder, TData>
    {
          public THeder Header {get;set;}
          public TData Data {get;set;}
    }

    Теперь объекты можно создавать таким образом
    var a = new DataHaeder<HeaderA, string>();
    var b = new DataHeader<HeaderB, int>();

    Ну вот собственно мы и получили объект с полями, какими Вы хотите
    (var headerA, dataA)
    a.Header и a.Data, b.Header и b.Data;

    И, кстати, общие поля можно вынести в один класс
    class CommonProp
    {
          public string Signature {get;set;}
          public DateTime CreatedDate {get;set;}
    }

    А потом хедеры от него отнаследуйте.
    class HeaderA : CommonProp
    {
          public int Version {get;set;}
    }
    
    class HeaderB : CommonProp
    {
          public long AuthorId {get;set;}
          public string MagicString {get;set;}
    }
    Ответ написан
  • Почему так мало стартапов используют .net в качестве основной платформы?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    .NET Core появился относительно недавно (ранее не было офф реализаций net платформы не под windows).
    Ответ написан
    Комментировать
  • Как красиво реализовать возможность подписания блока данных?

    lam0x86
    @lam0x86
    Как я понял задачу: у вас есть две сущности, реализация которых неизвестна:
    • подписываемый объект
    • сервис генерации подписи

    Объект ничего не знает, каким сервисом он будет подписан, а сервис не знает, какая структура у подписываемого объекта.
    В этом случае логично ввести некую промежуточную сущность, в которую объект может себя сериализовать, а сервис будет знать, как её подписать. В простейшем случае это может быть массив, например, byte[]. Можно придумать более изощренный способ с потоковой генерацией подписи, чтобы не создавать промежуточный объект.

    Может, я неправильно понял задачу, но вот, что у меня вышло.

    Интерфейсы:
    public interface ISignable
    {
        ISignature Signature { get; set; }
        byte[] Serialize();
    }
    
    public interface ISignature
    {
    }
    
    public interface ISignatureService
    {
        bool Validate(ISignable signable);
        void Sign(ISignable signable);
    }


    Простейшая имплементация (в качестве подписи используется просто хеш-код):
    class MyObject : ISignable
    {
        public ISignature Signature { get; set; }
        public long Param1 { get; set; }
        public string Param2 { get; set; }
        public string InnerData { get; set; }
    
        public byte[] Serialize()
        {
            return Encoding.UTF8.GetBytes(Param1 + Param2 + InnerData);
        }
    }
    
    public class HashCodeSignatureService : ISignatureService
    {
        public void Sign(ISignable signable)
        {
            var signature = CalculateSignature(signable);
            signable.Signature = signature;
        }
    
        public bool Validate(ISignable signable)
        {
            var s1 = CalculateSignature(signable);
            var s2 = signable.Signature as SimpleHashCodeSignature;
            return s1?.HashCode == s2?.HashCode;
        }
    
        private static SimpleHashCodeSignature CalculateSignature(ISignable signable)
        {
            var body = signable.Serialize();
            var signature = new SimpleHashCodeSignature(body.Aggregate(0, (a, b) => a + b.GetHashCode()));
            return signature;
        }
    }
    
    public class SimpleHashCodeSignature : ISignature
    {
        public int HashCode { get; }
    
        public SimpleHashCodeSignature(int hashCode)
        {
            HashCode = hashCode;
        }
    }


    А так это можно использовать:
    class Program
    {
        static void Main(string[] args)
        {
            var obj = new MyObject {Param1 = 1, Param2 = "asd", InnerData = "some data"};
            var signatureService = new HashCodeSignatureService();
            signatureService.Sign(obj);
            // Passing the object across untrusted boundary
            signatureService.Validate(obj);
        }
    }
    Ответ написан
    Комментировать
  • Разрабатывают ли WPF для Net Core?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Нет и пока в roadmap даже нет, но есть такая вещь https://github.com/AvaloniaUI/Avalonia, тоже базируется на XAML
    Ответ написан
    Комментировать
  • Что лучше учить после front-end-a, Node.js или PHP??

    @Alex493049469
    Я для себя выбрал C# asp.net core.
    Но если отталкиваться от того что ты уже знаешь JS то бери Node.
    Вот отличный скринкаст по Node
    Ответ написан
    Комментировать
  • Как активировать функции из сторонних скриптов в Angular2?

    @Component({
      selector: 'slick-carousel',
      template: `<ng-content></ng-content>`
    })
    export class SlickCarouselComponent {
      constructor(private el: ElementRef) {}
    
      ngAfterViewInit() {
        $(this.el.nativeElement).slick({});
      }
    }
    Ответ написан
    Комментировать