• Программирование без какого-либо использования sql и его аналогов?

    zodchiy
    @zodchiy
    Фуллстэк с 2005
    C# и EntityFramework. Только код, никаких запросов, за тебя все делает EF.
    Ответ написан
    Комментировать
  • Как лучше и быстрее выучить C#?

    zodchiy
    @zodchiy
    Фуллстэк с 2005
    Нужна практика, но нет задач? CodeFights (CodeSignal). Читать не надо, надо писать. Сколько пишу, основная ошибка джунов, это читать книги без практики. Второй путь, это есть бесплатная подписка на Azure. Придумай задачу-сервис-стартап и пиши ее. Хоть мультиплеер к тетрису, хоть сервис по генерации pdf, пофиг что, главное пиши. Для всего остального есть stackoverflow.
    Ответ написан
    Комментировать
  • Какой выбрать способ обновления данных и схемы на тестовом сервере?

    zodchiy
    @zodchiy Автор вопроса
    Фуллстэк с 2005
    С bcp надо разбираться, на первый взгляд отменный инструмент но требующий неповерхностого изучения.
    Решил сделать все скриптами вручную.
    Ответ написан
    Комментировать
  • Как интегрировать аутентификацию для Sharepoint 2013 из сайта на ASP.NET MVC 5 с ASP.NET Identity 2?

    zodchiy
    @zodchiy Автор вопроса
    Фуллстэк с 2005
    Реализовал так:
    - создал кастомный view web part
    - в настройках сайта Custom login page указал адрес своей view web part
    - воткнул в code-behind, не забыв добавить machinekey такой-же как и у сайта который является SSO-провайдером, код который дергает текущее имя пользователя
    private static string GetUserFromCoockie()
            {
                string username = "";
                var request = HttpContext.Current.Request;
                var cookie = request.Cookies.Get(".AspNet.ApplicationCookie");
                if(cookie == null) { return String.Empty; } //coockie is null!!!
                var ticket = cookie.Value;
                ticket = ticket.Replace('-', '+').Replace('_', '/');
                var padding = 3 - ((ticket.Length + 3) % 4);
                if (padding != 0)
                    ticket = ticket + new string('=', padding);
                var bytes = Convert.FromBase64String(ticket);
                try {
                bytes = System.Web.Security.MachineKey.Unprotect(bytes,
                    "Microsoft.Owin.Security.Cookies.CookieAuthenticationMiddleware",
                    "ApplicationCookie", "v1");
                }
                catch(Exception ex)
                {
                    return String.Empty; //u lost machine key!!! stupid idiot 
                }
                using (var memory = new MemoryStream(bytes))
                {
                    using (var compression = new GZipStream(memory, CompressionMode.Decompress))
                    {
                        using (var reader = new BinaryReader(compression))
                        {
                            reader.ReadInt32(); // Ignoring version here
                            string authenticationType = reader.ReadString();
                            reader.ReadString(); // Ignoring the default name claim type
                            reader.ReadString(); // Ignoring the default role claim type
                            int count = reader.ReadInt32(); // count of claims in the ticket
                            var claims = new Claim[count];
                            for (int index = 0; index != count; ++index)
                            {
                                string type = reader.ReadString();
                                type = type == "\0" ? ClaimTypes.Name : type;
                                string value = reader.ReadString();
                                string valueType = reader.ReadString();
                                valueType = valueType == "\0"
                                    ? "http://www.w3.org/2001/XMLSchema#string"
                                    : valueType;
                                string issuer = reader.ReadString();
                                issuer = issuer == "\0" ? "LOCAL AUTHORITY" : issuer;
                                string originalIssuer = reader.ReadString();
                                originalIssuer = originalIssuer == "\0" ? issuer : originalIssuer;
                                claims[index] = new Claim(type, value, valueType, issuer, originalIssuer);
                            }
    
                            var identity = new ClaimsIdentity(claims, authenticationType,
                                ClaimTypes.Name, ClaimTypes.Role);
                            username = identity.Name;
                        }
                    }
                    }
    
                return username;
            }

    - после этого пользователя авторизую
    - работает :)
    p.s. знаю, решение "в лоб", есть вопросы безопасности, но я решил, что если будет скопроментирован провайдер SSO, то и кому доверять тогда?
    p.p.s. если надо кому, могу и код авторизации пользователя выложить
    Ответ написан
    Комментировать
  • Выбор js инструмента для создания рабочей области

    zodchiy
    @zodchiy Автор вопроса
    Фуллстэк с 2005
    Реализовали все на vanilla. Правда проект заглох за отсутствием интереса к продукту у клиентов заказчика.
    Ответ написан
    Комментировать
  • Как максимально быстро выучить ASP.NET MVC?

    zodchiy
    @zodchiy
    Фуллстэк с 2005
    Кроме www.asp.net/mvc есть куча онлайн-ресурсов на русском языке.
    Например - metanit.com/sharp/mvc5 , можно сказать там полный, но простой курс. Для того, чтобы войти в технологию хватит. Плюсом будет почитать - blog.foolsoft.ru/category/c , sergeyteplyakov.blogspot.ru , www.aspnet.com.ua/Category/developer-1.asp .
    В IoC контейнеры, asyn/await, паттерны лезть пока не надо, первоначально над осмотреть на EntityFramework, Ajax, JS.
    Этого будет достаточно. Остальное приложится в поисках решений на stackoverflow и гуглении.
    Ответ написан
    Комментировать
  • Как определить хорошего исполнителя ASP.NET?

    zodchiy
    @zodchiy
    Фуллстэк с 2005
    Количество и объем выполненных работ.
    Если в состоянии оценить качество кода, то и вопросов типа "как оценить" быть не должно.
    Ответ написан
    Комментировать
  • Цитаты, высказывания на IT тематику

    zodchiy
    @zodchiy
    Фуллстэк с 2005
    Хороший программист — это тот, кто смотрит в обе стороны, переходя дорогу с односторонним движением. © Даг Линдер
    Ответ написан
    Комментировать
  • Покупка ноутбука отечественной сборки

    zodchiy
    @zodchiy
    Фуллстэк с 2005
    Друг купил ноут DNS, с отличными потрохами и очень низкой ценой. Я тоже сначала искал где его облопошили, т.к. не верил, но через год пришлось согласиться, что не шаражка.
    Ответ написан
    Комментировать
  • На каких технологиях делать проект?

    zodchiy
    @zodchiy
    Фуллстэк с 2005
    Ничего страшнего в том, что будет все работать на .NET, сайт на asp.net (не такой он уж и страшный), а приложение на winforms, не нужно два раза один и тот-же код писать — ядро одно.
    В другом случае я бы предложил использовать другие платформы для десктопа, а не .NET.
    Иначе весь смысл пропадает.
    Ответ написан
    Комментировать
  • Научное фричество - как бороться?

    zodchiy
    @zodchiy
    Фуллстэк с 2005
    В дебаты вступать не стоит, стойте на своем — только необразовнный человек свое непонимание и незнание объясняет божественной силой и инопланетянами. Это дистанцирует вас от споров — никто не хочет показаться идиотом.
    Ответ написан
    Комментировать
  • Посоветуйте литературу по ASP.NET и C#

    zodchiy
    @zodchiy
    Фуллстэк с 2005
    «C# 4.0 и платформа .NET 4 для профессионалов» Нейгел К., Ивьен Б., Глинн Дж., Уотсон К.
    Отличная книга, написанная простым и понятным языком, описаны все (1440 страниц!) — winforms, asp.net, asp.net mvc, silverlight, WPF, xml, службы, ado.net, работа с SQL-сервером и Entity framework.
    Приписки «для профессионалов» бояться не стоит, основам посвящены 900 страниц, очень подробно описано о ООП под C#, приемы программирования от простых обобщений до unsafe кода, все это подробно с удивительно внятными примерами.
    Ответ написан
    2 комментария
  • Книга по программированию, оказавшая наибольшее влияние

    zodchiy
    @zodchiy
    Фуллстэк с 2005
    «Приемы объектно-ориентирова­нного проектирования. Паттерны проектирования» Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес.
    «C# 4.0 и платформа .NET 4 для профессионалов» Нейгел К., Ивьен Б., Глинн Дж., Уотсон К.
    Ответ написан
    Комментировать