• Переход. From ASP.NET To ASP.NET MVC?

    Valeriy1991
    @Valeriy1991
    Разработчик .NET C# (ASP.NET MVC) в Alfa-B, Moscow
    Добрый день!
    По собственному опыту могу сказать, что ASP.NET MVC показался мне более понятным, простым, ясным и прозрачным, чем "эти ужасные" (уж извините за субъективное мнение) ASP.NET WebForms. Начал свое знакомство с ASP.NET именно с WebForms, потом перешел на MVC - моему счастью не было предела.

    По Вашим "стадиям":
    1. Когда изучите ASP.NET MVC по книге "ASP.NET MVC x для профессионалов" (x - номер версии).
    2. Здесь все очень субъективно и зависит от самих проектов и их задач. Можно написать 15 проектов на MVC, но они все будут как один. А можно написать 2 проекта на MVC, но при этом они могут различаться настолько, что имея за плечами всего пару проектов, Вы уже будете знать наизусть весь MVC, C#, Entity Framework, JavaScript и паттерны проектирования в придачу.

    Можно, конечно, всю жизнь лепить проекты на WebForms, но я бы Вам настоятельно рекомендовал все новые проекты делать уже исключительно на MVC. Тем более что за неделю Вы сможете его спокойно изучить по книге (при условии полного рабочего дня).
    Ответ написан
    4 комментария
  • Переход. From ASP.NET To ASP.NET MVC?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Сам ASP.NET MVC мне, как новичку, показался несложным в изучении и применении. Гораздо сложнее выстроить правильную работу с моделями (представлениями объектов). Уже сейчас утонул в изучении Framework Entity, Ninject и Moq, выбранных мной для реализации паттернов "Репозиторий", "Абстрактная фабрика", "Стратегия"...

    Вообще, если вы реализовали проект в ASP.NET, то перенести его в ASP.NET MVC вам не составит большого труда.
    Ответ написан
    Комментировать
  • Какой из парсеров JSON для C# самый простой?

    Nipheris
    @Nipheris Куратор тега C#
    @Mr_Sinister
    > но он создает кучу объектов
    безусловно, библиотека библиотеке рознь, но если вы всерьез заморочились производительностью этой де-факто стандартной JSON-либы, то:
    0) вы ищите проблему производительности там, где ее нет (а есть в другом месте)
    1) самое время все-таки протестировать, и написать свое, более подходящее (редко, но бывает и такое)
    2) вам не нужен JSON, возьмите protocol buffers
    3) вам не нужен C#, возьмите C++
    Ответ написан
    Комментировать
  • Как научиться строить модели БД sql в связке с С# (Цель- писать понятные ТЗ для программистов С#)?

    Nipheris
    @Nipheris Куратор тега C#
    Сложно вам посоветовать в такой ситуации что-либо. Интересно, чем занималась контора та, что программисты C# с sql не знакомы, разве что играми..
    В целом вам надо ознакомиться с современным представлением о реляционных БД (вы же все-таки аналитик, вам нужно знать на разных уровнях и масштабах), с архитектурой приложений, использующих РБД (толстые и тонкие клиенты, веб-приложения), и потом уже некоторые детали касающиеся языка.
    С точки зрения программиста C#, я бы от вас как от аналитика ожидал знание различных принципов и дисциплин доступа к рел. данным, а именно:
    - использование ORM: когда можно и нужно), когда хочется, но нельзя, когда можно "толстую" ORM (Entity Framework, NHibernate), а когда - тонкую (LINQ to SQL); использование кода на стороне БД - триггеры, хранимые процедуры;
    - принципы построения слоев доступа к данным в сочетании с бизнес логикой (паттерны и антипаттерны в этих ситуациях, например Anemic Data Model);
    - способы контроля версий схемы реляционной БД - миграции, source control для триггеров и хранимых процедур (если они есть), политики обновления схемы вместе с выкатыванием новой версии ПО;
    - формирование тестовых данных в тестовых базах;

    Вот если сможете по этим вопросам проконсультировать, то разработчикам останется только подучить SQL и конкретную ORM, если будете использовать.
    Ответ написан
    5 комментариев
  • Сильные ли отличия между версиями ASP.NET MVC?

    @ArturNak
    предыдущие версии необязательно изучать. ASP.NET MVC 5 вобрала все из mvc 4 и mvc 3, отбросив все устаревшее и ненужное. Если в двух словах, то в mvc 5 отличается встроенная система авторизации плюс есть добавления.
    Ответ написан
    Комментировать
  • Реализация frontend'а для ASP.NET MVC?

    Valeriy1991
    @Valeriy1991
    Разработчик .NET C# (ASP.NET MVC) в Alfa-B, Moscow
    Добрый день!

    Учитывая объем задач и наверняка не очень большие сроки их реализации, возможно, имеет смысл отдать front-end профессионалу. Но если таковой возможности нет, то я отдал бы предпочтение обычному Razor.

    Постараюсь объяснить - почему.

    1. AngularJS (и ему подобные) мне, увы, не знаком. Следовательно, нужно потратить достаточно много времени на его изучение и решение проблем в ходе использования в проекте. А это в свою очередь может сильно сказаться на сроках проекта.
    2. Использовать какие-либо готовые контролы (аля гриды jQueryUI и т.п.) - тут я бы не стал торопиться. Как ни крути, настает такой момент, когда нужно, чтобы эти контролы могли делать то, что от них хотят, но то, для чего они не приспособлены. Как следствие - код обрастает дикими костылями. К тому же, на мой взгляд, внешний вид оставляет желать лучшего... Если наступает понимание, что этот контрол сможет решить задачу - то тогда его можно применить.
    3. Взял бы в качестве основы front-end'а какой-нибудь нормальный frontend-framework (Bootstrap, FlatUI, Pure). Возможно - даже несколько (сам отдаю предпочтение Pure Grid + FlatUI). Проблем со стилизацией будет гораздо меньше, чем если всё самому с нуля писать.
    4. Razor вполне прост, если его правильно применять (имею в виду правильное разделение на Layout, Partial View, View, при необходимости кеширование вывода) - непонимаю, чем он Вас так пугает.
    5. Насчет всяких всплывающих окон, деревьев, гридов - отдал бы предпочтение специальным плагинам (отдельный плагин под окна, отдельный - под деревья, отдельный - под гриды). Как правило, можно найти очень удобные, простые и кастомизируемые решения. На мой взгляд, лучше использовать какие-то специализированные инструменты (которые решают только 1 задачу), чем унифицированные (которые могут решать целую кучу задач).

    Было бы здорово, если бы другие специалисты привели свою точку зрения. Интересно узнать, как люди решают подобные задачи...
    Ответ написан
    6 комментариев
  • Как реализовать доступ к API из приложения c# .Net?

    Neuroware
    @Neuroware
    Программист в свободное от работы время
    в чем проблема использовать шифрование? Смотрите в сторона ассиметричных алгоритмов, там шифрование идет одним ключем (который зашит в приложение) а дешифрация идет другим, который известен только веб сервису, даже если ктото сможет перехватить данные он с ними ничего с делать не сможет без ключа, которого нет в приложении и декомпиляция ничем не поможет.
    Ответ написан
  • Как реализовать доступ к API из приложения c# .Net?

    @Beltoev
    Живу в своё удовольствие
    Шифровать однозначно. Статья по теме: habrahabr.ru/post/144282

    Для защиты алгоритма шифрования (хотя, даже если злоумышленник будет знать алгоритм шифрования, это ему мало что даст без закрытого ключа) можно библиотеку с алгоритмом реализовать на компилируемом в бинарный код языке (тот же С++). Но это в том случае, если не найдете готовых решений (коих много в сети).
    Ответ написан
    Комментировать
  • Сильные ли отличия между версиями ASP.NET MVC?

    Да чего вы паритесь, учите последнюю технологию. А если уж прям с нуля решили учить, то берите сразу ASP.NET 5 и MVC 6, они пока в превью, но я думаю довольно скоро будет релиз, в Update 1 или 2. А разработка под них будет отличаться довольно прилично от текущего workflow.
    Вы бы еще спросили, надо ли знать WebForms чтобы учить MVC). Ну конечно, если вы будете знать оно пригодится, для общего представления о развитии технологий, от чего к чему пришли.
    Ответ написан
    4 комментария
  • Куда податься ASP.NET программисту?

    sim3x
    @sim3x
    Когда кушать захочется очень сильно, советую пройтись по конторам (или предпринимателям) и спросить какие у них потребности

    Сказать тебе от балды куда тебе идти работать, как-то совесть не позволяет
    Ответ написан
    Комментировать
  • Как подключить SignalR в asp.net mvc 5?

    Посмотрите Первое приложение с SignalR 2
    Возможно, Вы неправильно интегрировали библиотеки.
    Ответ написан
    Комментировать
  • Как убрать фриз программы c# WPF?

    Casper-SC
    @Casper-SC
    Программист (.NET)
    Ты для авторизации создаёшь целый поток. Почему тормоза тебе уже сказали, ты вызываешь authVK.join() в основном потоке и тем самым его сам же стопоришь, пока не выполнится второй поток. Вообще благодаря этому коду ты тратишь больше ресурсов и вызываешь ещё большие тормоза, если бы вообще не юзал поток.

    В данном случае использовать нужно Task. Или ещё уйму способов выполнить код не в основном потоке и не создавать новый. Почитай про пул потоков и задачи (Task).

    Я смотрю ты создал константу Empty с пустой строкой!? Так есть же string.Empty стандартный.

    <Window x:Class="Wpf_Task.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow"
            Width="525"
            Height="350"
            WindowStartupLocation="CenterScreen">
       <Window.Resources>
          <Storyboard x:Key="OnLoaded1"
                      RepeatBehavior="Forever">
             <DoubleAnimationUsingKeyFrames Storyboard.TargetName="border"
                                            Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
                <EasingDoubleKeyFrame KeyTime="0"
                                      Value="0" />
                <EasingDoubleKeyFrame KeyTime="0:0:1"
                                      Value="360" />
             </DoubleAnimationUsingKeyFrames>
          </Storyboard>
       </Window.Resources>
    
       <Window.Triggers>
          <EventTrigger RoutedEvent="FrameworkElement.Loaded">
             <BeginStoryboard Storyboard="{StaticResource OnLoaded1}" />
          </EventTrigger>
       </Window.Triggers>
    
       <Grid>
    
          <Button x:Name="executeButton"
                  Width="75"
                  Margin="0,216,0,0"
                  HorizontalAlignment="Center"
                  VerticalAlignment="Top"
                  Click="Button_Click"
                  Content="Выполнить"
                  TextOptions.TextFormattingMode="Display" />
    
          <Rectangle x:Name="border"
                     Width="100"
                     Height="100"
                     Margin="208,57,208,161"
                     HorizontalAlignment="Center"
                     VerticalAlignment="Center"
                     RenderTransformOrigin="0.5,0.5">
             <Rectangle.Fill>
                <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                   <GradientStop Offset="0" Color="#FFD1BD69" />
                   <GradientStop Offset="1" Color="#FFFFF5C9" />
                </LinearGradientBrush>
             </Rectangle.Fill>
             <Rectangle.RenderTransform>
                <TransformGroup>
                   <ScaleTransform />
                   <SkewTransform />
                   <RotateTransform />
                   <TranslateTransform />
                </TransformGroup>
             </Rectangle.RenderTransform>
          </Rectangle>
    
          <TextBlock x:Name="_result"
                     Margin="0,187,0,0"
                     HorizontalAlignment="Center"
                     VerticalAlignment="Top"
                     Text="..."
                     TextOptions.TextFormattingMode="Display"
                     TextWrapping="Wrap" />
    
       </Grid>
    </Window>


    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows;
    
    namespace Wpf_Task
    {
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                executeButton.IsEnabled = false;
                Task<int>.Factory.StartNew(() =>
                {
                   return Auth.Login();
                })
                .ContinueWith(task => //Выполнить код в основном потоке (TaskScheduler.FromCurrentSynchronizationContext())
                {
                    executeButton.IsEnabled = true;
                    _result.Text = task.Result.ToString();
                }, TaskScheduler.FromCurrentSynchronizationContext());
            }
        }
    
        public static class Auth
        {
            private static int _counter;
    
            public static int Login()
            {
                Thread.Sleep(1000);
                return ++_counter;
            }
        }
    }
    Ответ написан
    3 комментария
  • Как убрать фриз программы c# WPF?

    dordzhiev
    @dordzhiev
    Вы запускаете все в отдельном потоке и "джоините" его к UI-потоку. Джоин блокирует текущий поток, до окончания работы другого потока, так что код у вас по сути синхронный. Используйте async\await.
    Ответ написан
    Комментировать
  • Увидим ли мы C# на Linux?

    dordzhiev
    @dordzhiev
    Если говорить кратко, то под линукс есть две основные реализации CLR и BCL: Mono и .NET Core.

    С Mono все понятно, сторонняя реализация возглавляемая Мигелем де Икаса (один из основателей GNOME). Mono уже переболела свои детские болезни, и очень даже хорошо справляется со своей задачей. Более того, с открытием исходников .NET, разработчики постепенно заменяют свой код для большей совместимости с MS-реализацией.

    Но не так давно Microsoft объявила о разработке своей собственной реализации под названием .NET Core. Грубо говоря это привычный нам CLR (CoreCLR) и урезанная BCL (CoreFx), но не требующая установки и с открытым исходным кодом. И самое главное - кроссплатформенность. Официально портируется на Linux и Mac OS X, но разработчики с радостью принимают пулл-реквесты, так что силами сторонних разработчиков постепенно делается поддержка Free BSD.

    Параллельно с этим ведется разработка ASP.NET 5 и EF7, которые будут работать и на .NET Core. Так что да, в скором времени ASP.NET и консольные приложения будут хорошо себя чувствовать и на Linux, и на других ОС.

    Более того, совсем недавно Microsoft объявила о начале работы над LLILC - компилятор IL -> IR, что позволит для работы .NET приложений использовать LLVM вместо CLR. Что это даст? Больше поддерживаемых платформ, .NET приложения смогут работать на всех архитектурах, поддерживаемых LLVM.

    Хотите узнать как обстоят дела? Следите за гитхабом: .NET Core и ASP.NET. Оба проекта принимают пулл-реквесты, так что вы всегда можете помочь проектам.
    Ответ написан
    2 комментария
  • Увидим ли мы C# на Linux?

    С вашим подходом можно так же утверждать, что надобность в C# отпала с появлением Scala.
    Ну а так, C# на Linux появился лишь на пару лет позже, чем на Windows. И не только консольное ПО. Формочки под Linux на C# вполне клепают.
    Почему нет до сих пор (может и есть, но не распространено) C#+Linux в энтерпрайзе? Потому что весь энтерпрайз на .NET основывается в основном на ASP.NET, которая является попиретарной поделкой с закрытыми исходниками. Но недавно MS много чего открыла, связанного с .NET. Так что совсем скоро, ждите (или помогайте, пулреквесты принимают).
    Ответ написан
    2 комментария
  • Увидим ли мы C# на Linux?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    www.mono-project.com

    что вам еще надо? Чуваки из мелкософта туда активно контрибьютят, серсы пооткрывали (постепенно, это довольно длительный процесс учитывая масштабы продукта), vnext вон вроде обязались даже тестить под моно.
    Ответ написан
    Комментировать
  • Сложно ли перейти с Java на C#?

    opium
    @opium
    Просто люблю качественно работать
    где то за неделю перешел с джавы на сишарп от нечего делать
    Ответ написан
    Комментировать
  • Как центрировать JS alert?

    artemmalko
    @artemmalko
    Frontend developer 2gis
    Нативный alert никак не изменить. А вот sweetalert2 поддается изменению очень легко.
    Ответ написан
    1 комментарий
  • Как центрировать JS alert?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Нельзя.
    Хотите красивости - используйте плагины, их очень много.
    Ответ написан
    1 комментарий