• Авторизация вконтакте без api на c#?

    hePPer
    @hePPer
    string AuthUrl = "https://m.vk.com/login";
    string logoutId = "act=logout";
    string MainUrl = "https://vk.com";
    
    ******************************
     httpHandler = new HttpClientHandler
                                  {
                                      CookieContainer = new CookieContainer(),
                                      AllowAutoRedirect = true,
                                      AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip
                                  };
    
     httpClient = new HttpClient(httpHandler) {Timeout = TimeSpan.FromSeconds(150)};
                httpClient.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate");
                httpClient.DefaultRequestHeaders.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
                httpClient.DefaultRequestHeaders.Add("Cache-Control", "no-cache");
                httpClient.DefaultRequestHeaders.Add("Accept", "*/*");
                httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36");
    
    *************************************
    Uri authUri = new Uri(AuthUrl);
                string data = await httpClient.GetStringAsync(authUri);
                IsAuth = data.Contains(logoutId);
                if (!IsAuth)
                {
                    string result = data.Substring("<form method=\"post\" action=\"", "\"");//достаем ссылку для авторизации
                    authUri = new Uri(result);
                    var body = new Dictionary<string, string> {{"act", "login"}, {"email", Email}, {"pass", Pass}};//тут заполняем логин и пароль
                    var response = await httpClient.PostAsync(authUri, new FormUrlEncodedContent(body));
                    var page = await response.Content.ReadAsStringAsync();
                    IsAuth = page.Contains(logoutId);//если вошли на странице появится ссыль для выхода :)
                    Uri mainUri = new Uri(MainUrl);//переходим на главную страницу
                    data = await httpClient.GetStringAsync(mainUri);
                }
                return IsAuth;
    Ответ написан
    5 комментариев
  • Как стать профессиональным разработчиком WPF?

    Nipheris
    @Nipheris Куратор тега C#
    А у MVVM нет общих правил, каждый реализовывает его по-разному.

    Ну я б не говорил, что их прям нет. Есть привязки, есть INotifyPropertyChanged, есть рекомендации от MS. Да, вы правы в том смысле, что WPF это библиотека, но НЕ фреймворк для разработки, т.е. она не регламентирует структуру приложения.

    И у меня диссонанс — что сначала изучать, куда копать, что вообще делать, что стоит изучать, а что нет.

    Вот пару дней назад советовал книгу: Raffaele Garofalo, "Building Enterprise Applicatio... - если ничего не читали еще, начните с неё.

    И действительно хороших, многофункциональных и понятных проектов на WPF + MVVM я не видел.

    Неудивительно: WPF-приложения это обычно line-of-business, а это не open-source по определению.

    С чего начать изучение WPF?

    Убедитесь, что более-менее понимаете платформу .NET и ООП в ней, иначе будет тяжело.
    Вам надо будет разобраться:
    а) с системой зависимых свойств (dependency property);
    б) c MVVM и INotifyPropertyChanged;
    в) само собой с XAML и контролами, принципами написания своих контролов;
    г) со стилями и стилизацией;
    д) с системой команд (ICommand) и прочим.

    Нужны ли MVVM-фреймворки? Почему столько дискуссии возникает. Одни говорят да, другие — нет.

    Дискуссии возникают потому что а) некоторые вещи можно сделать разными способами; б) разработчики имеют дело с приложениями разного размера и сложности, но редко об этом задумываются в спорах; в) опытные разработчики нередко сами себя уже обеспечили нужным "библиотечным" пока разрабатывали приложения (ViewModelBase, хах :) ). Лучше пока разберитесь сами как что работает, потом поймете, какой фреймворк вам пригодится.

    Впоследствии еще советую познакомиться с IoC-контейнерами, если еще не пользовались. Это общий совет для крупных приложений, не только для WPF. Некоторые имеют спецальные интеграционные библиотеки для работы на пару с фреймворками, например Autofac: Prism.Autofac.
    Ответ написан
    1 комментарий
  • Как стать профессиональным разработчиком WPF?

    @serber
    1. Начните с чтения книги и понимания основ: routed events, data binding, comands, styles & triggers. На метаните есть раздел по WPF
    2. Книги, статьи
    3. Например вот здесь пример простого MVVM
    4. Искать на codeproject, github
    5. Я бы посоветовал посмотреть в сторону caliburn micro. Посмотрите исходники проекта.
    6. В моем понимании делать интерфейс на Blend, это все равно, что верстать страницу на FrontPage. Лично мне он не по нраву.
    Ответ написан
    1 комментарий