Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование (VB,C#,ASP,.NET): новости, советы, примеры


Выпуск # 748

Друзья! Прошло совсем мало времени с момент последнего выпуска, и вот уже новый! Удивительно, как быстро летит время в Интернете, сколько всего нового происходит ежедневно, да что там, ежесекундно. И Kbyte.Ru в этом плане не исключение, на сайте столько всего произошло, столько всего, что многое даже и не влезло в этот выпуск! И кто только придумал ограничения скорости интернет-соединения и объемов писем! Эх..., благо на сайте есть живая лента событий, которая не даст потеряться среди гущи событий.
Надеюсь, этот выпуск будет интересен для вас. Если вы хотите увидеть в следующих выпусках что-то конкретное, напишите мне об этом на ящик subscribe@kbyte.ru.


Содержание выпуска

Читайте в этом выпуске:

Если у вас есть вопросы по программированию или работе с компьютером, не стесняйтесь, спрашивайте.

Форумы Kbyte.Ru

На форумах Kbyte.Ru постоянно появляются новые интересные темы и обсуждения. В этом выпуске представлены лишь новые темы, с момента прошлой рассылки.

Кстати, любой желающий может на форумах Kbyte.Ru совершенно свободно получить помощь грамотных специалистов в области программирования, да и в целом информационных технологий.

Задать свой вопрос прямо сейчас

Последние несколько дней периодически замечаю, что при переходе по адресу http://kbyte.ru браузер выдает ошибку: Сайт не найден.

Не могу понять, проблема с сайтом, или где-то у меня.

Начинаю проверять, сайт открывается нормально.

Кто-нибудь замечал проблемы с открытием kbyte.ru?

[- к содержанию -]

Самоучитель по XML
Когда-то нашёл ВЕЛИКОЛЕПНУЮ книгу по HTML
In PDF-format. За БЕСПЛАТНО.
Подскажите, где подобное можно скачать
По XML, Спасибо.

[- к содержанию -]

Ответ #1 @Shark1 23.10.2013 19:10
Вот стянул с торрента, может подойдет ...

[- к содержанию -]

Ответ #2 @Akiva 24.10.2013 05:36
Shark1,
спасибо за ссылку. Akiva

[- к содержанию -]

Ответ #3 @capetownn 24.10.2013 17:07
Shark1,
тоже БЛАГОДАРЮ за ссылку. capetownn

[- к содержанию -]

Добавить свой ответ в эту тему
Добрый день, сразу скажу языков не изучал (неуч) но нужда матушка ещё и не тем иной раз заставляет заниматься, собственно ситуация:
Есть приложение при запуске рвущееся в сеть и ищущее там файл Version.php, в какой то момент этот файл безусловно будет находится на сервере, но сейчас там его нету, и при запуске .exe сразу выбивает ошибку, функция запроса вот:
Private Sub ChecUpdate() 
        Dim Path As String = IO.Path.GetFileName(Application.ExecutablePath)
        Dim assemblyVersion As String = My.Application.Info.Version.ToString
        Dim webClient As New Net.WebClient() With {.Proxy = Nothing}
        Dim UpdateInfo
        Dim Version = webClient.DownloadString("http://*.*.*.*/Version.php")
        If webClient.DownloadString("http://*.*.*.*/Version.php") <> assemblyVersion Then  
            UpdateInfo = MsgBox("Доступна новая версия лаунчера (" + Version + "), желаете обновить?", MsgBoxStyle.YesNo + MsgBoxStyle.Information, "Обновление")
            If UpdateInfo = vbYes Then 
                Clipboard.Clear()
                My.Computer.Network.DownloadFile("http://*.*.*.*/Update.exe", "Update.exe") 
                My.Computer.Clipboard.SetText(Path)
                Process1.StartInfo.FileName = ("Update.exe")
                SetAttr("Update.exe", vbReadOnly + vbHidden)
                Process1.Start()
                Me.Close()
            Else
                BackgroundWorker1.RunWorkerAsync()
                BackgroundWorker2.RunWorkerAsync()
                Timer1.Enabled = True
            End If
        Else
            If Not My.Computer.FileSystem.FileExists("Update.exe") Then
                Kill("Update.exe")
                MsgBox("Обновление прошло успешно!", MsgBoxStyle.Information, "Поздравляем")
            End If
            Timer1.Enabled = True
            BackgroundWorker1.RunWorkerAsync()
            BackgroundWorker2.RunWorkerAsync()
        End If
    End Sub

собственно задача избавится от ошибки .ехе если файла на сервере нету, какими средствами можно решить? Я так понимаю существует возможность пропустить выполнение кода если после
If webClient.DownloadString("http://*.*.*.*/Version.php") <> assemblyVersion Then
сервер дал 404 ошибку, или иные варианты решения, буду благодарен за помощь.

[- к содержанию -]

Ответ #1 @Алексей Немиро 22.10.2013 17:08
Try
  'в этом месте можно указать любой код, который может привести к возникновению ошибки
Catch ex As Exception
  'здесь можно получить текст ошибки, например:
  'MsgBox(ex.Message)
End Try
Private Sub ChecUpdate() 
Try
        Dim Path As String = IO.Path.GetFileName(Application.ExecutablePath)
        Dim assemblyVersion As String = My.Application.Info.Version.ToString
        Dim webClient As New Net.WebClient() With {.Proxy = Nothing}
        Dim UpdateInfo
        Dim Version = webClient.DownloadString("http://*.*.*.*/Version.php")
        If webClient.DownloadString("http://*.*.*.*/Version.php") <> assemblyVersion Then  
            UpdateInfo = MsgBox("Доступна новая версия лаунчера (" + Version + "), желаете обновить?", MsgBoxStyle.YesNo + MsgBoxStyle.Information, "Обновление")
            If UpdateInfo = vbYes Then 
                Clipboard.Clear()
                My.Computer.Network.DownloadFile("http://*.*.*.*/Update.exe", "Update.exe") 
                My.Computer.Clipboard.SetText(Path)
                Process1.StartInfo.FileName = ("Update.exe")
                SetAttr("Update.exe", vbReadOnly + vbHidden)
                Process1.Start()
                Me.Close()
            Else
                BackgroundWorker1.RunWorkerAsync()
                BackgroundWorker2.RunWorkerAsync()
                Timer1.Enabled = True
            End If
        Else
            If Not My.Computer.FileSystem.FileExists("Update.exe") Then
                Kill("Update.exe")
                MsgBox("Обновление прошло успешно!", MsgBoxStyle.Information, "Поздравляем")
            End If
            Timer1.Enabled = True
            BackgroundWorker1.RunWorkerAsync()
            BackgroundWorker2.RunWorkerAsync()
        End If
Catch ex As Exception
End Try
    End Sub

[- к содержанию -]

Ответ #2 @ГлавныйЧудик 22.10.2013 17:21
Благодарю сердечно) Всё получилось)

[- к содержанию -]

Добавить свой ответ в эту тему
Как-то здесь, ранее, показывал подобное.
Как пользоваться: Нажмите на кнопочку Help.
Укажите мне, что я натворил хорошего?
Что выкидывать в корзину? Или что еще добавить?

[- к содержанию -]

Ответ #1 @Crash666 22.10.2013 10:07
Может не много оформление сменить?

[- к содержанию -]

Ответ #2 @Akiva 22.10.2013 17:38
Спасибо.Убрал мрачность
.

[- к содержанию -]

Добавить свой ответ в эту тему
Web @Crash666 18.10.2013 20:29
Как сделать форму регистрации а точнее сам функционал? на чем?

[- к содержанию -]

Ответ #1 @Алексей Немиро 19.10.2013 11:55
В ASP .NET можно использовать Membership. Стандартный Membership довольно странный, в идеале его нужно переделывать (наследоваться от стандартных классов и написать свой код, структуру базы).

Есть утилита, которая позволяет создавать таблицы и процедуры в базе для стандартного Membership. Запустить её можно через Пуск -> Выполнить:
%WINDIR%\Microsoft.Net\Framework\%Framework .NET Version%\aspnet_regsql.exe
Вместо %WINDIR% - путь к папке Windows.
Вместо %Framework .NET Version% - папка нужной версии .NET Framework (см. список в %WINDIR%\Microsoft.Net\Framework\).

Если все сделано правильно, то в базе появится много всякого го.. бесполезного хлама. Но в принципе, все это го.. вполне можно использовать для работы с Membership.

Нужно будет настроить web.config, прописать там параметры Membership-а. Прописать строку соединения с базой данных.
<configuration> 
 <connectionStrings>
 <add name="SecurityTutorialsConnectionString" 
 connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SecurityTutorials.mdf;Integrated Security=True;User Instance=True" 
 providerName="System.Data.SqlClient"/>
 </connectionStrings> 
 <system.web>
 <membership defaultProvider="SecurityTutorialsSqlMembershipProvider">
 <providers>
 <add name="SecurityTutorialsSqlMembershipProvider" 
 type="System.Web.Security.SqlMembershipProvider"
 connectionStringName="SecurityTutorialsConnectionString"
 enablePasswordRetrieval="false"
 enablePasswordReset="true"
 requiresQuestionAndAnswer="true"
 applicationName="SecurityTutorials"
 requiresUniqueEmail="true"
 passwordFormat="Hashed"
 maxInvalidPasswordAttempts="5"
 minRequiredPasswordLength="7"
 minRequiredNonalphanumericCharacters="1"
 passwordAttemptWindow="10"
 passwordStrengthRegularExpression=""/>
 </providers>
 </membership>
 ... остальной код конфигурации приложения ... 
 </system.web>
</configuration> 

В ASP .NET WebForms есть готовые элементы для управления учетными записями. Для авторизации: <asp:Login />.

Но, как я говорил, качество готовых механизмов в ASP .NET оставляет желать лучшего. Слишком все громоздко и не поворотливо, да еще непонятно по каким стандартам сделано. Лучше сделать свой Membership, на основе стандартного.

Несмотря на то, что стандартный Membership сделан чтобы облегчить жизнь программистам, тема довольно сложная.

Чтобы лучше понимать, как работает Membership, нужно не использовать Membership, а сделать полностью свой велосипед - механизм авторизации пользователей. Это будет проще, ну и самое главное, будет все понятно :)

Для своего велосипеда, нужно сделать в базе таблицу. Например, users. Поля:
id_users - числовой счетчик;
email - строка, содержащая майл пользователя, который будет использоваться для авторизации;
password - пароль, можно хранить как есть, в голом виде. В плане безопасности особого значения это не имеет, если сервер взломают, то все данные окажутся в руках злоумышленника. Но в идеале, пароли в голом виде лучше не хранить, можно записать, например хеш (md5, sha1);
nickname - отображаемое имя пользователя;
ip - апишник пользователя;
date_created - дата регистрации;
... другие нужные данные.

Собственно в базе больше ничего делать не нужно.

Теперь в коде ASP .NET нужно будет написать функционал для проверки и авторизации пользователя.

Проверять авторизированность пользователя можно через Session:
If Session("UserId") Is Nothing Then
  'это гость
Else
  'это пользователь
End If

Если пользователь не авторизирован (т.е. гость), то ему нужно показывать форму входа. Форма должна состоять как минимум их двух полей: E-Mail и пароль, а также кнопки:
E-Mail: <asp:TextBox ID="tbEmail" runat="server" /><br />
Пароль: <asp:TextBox ID="tbPassword" runat="server" /><br />
<asp:Button ID="btnEnter" runat="server" Text="Вход" />

После нажатия на кнопку, необходимо проверить существование пользователя в базе по указанным E-Mail и паролю.
Если пользователь существует, нужно сделать Session:
Session("UserId") = 123 'идентификатор пользователя из базы
Session("Nickname") = "Вася" 'имя пользователя из базы
... другие нужные данные, но не слишком много, т.к. Session хранится в памяти сервера и чем больше данных, тем больше будет расходоваться памяти

Для регистрации, соответственно, форма будет немного больше. Нужно будет проверять уникально E-Mail, чтобы в базе не было дубликатов. После регистрации, создавать Session не обязательно, но будет неплохо отправить пользователю письмо с регистрационной информацией, или же реализовать механизм активации учетной записи.

Также нужно будет сделать механизм восстановления пароля.

Это самый простой вариант, в общих чертах.

[- к содержанию -]

Ответ #2 @Crash666 19.10.2013 18:48
CREATE TABLE first_users_base(id integer, user_name text, mail text,
pass text, nickname text, user_ip а какой тип тут казать??);

[- к содержанию -]

Ответ #3 @Алексей Немиро 19.10.2013 19:07
Нет, запрос не такой. Это что-то на Access похоже.

Нужен SQL Server, т.к. Access просто не справится с нагрузкой на сайт.

Вместо id лучше писать id_[имя таблицы], т.к. в таблице могут быть ссылки на другие id, работать будет удобней.

CREATE TABLE users (id_users int identity primary key, user_name nvarchar(100), email nvarchar(100), nickname nvarchar(100), ip varchar(15));
identity - счетчик, может быть только один в одной таблице.
primary key - ключевое поле.

nvarchar - строка юникод.
varchar - обычная строка, не юникод.
В скобках - размер строки (максимальное количество символов).
Если в скобках написать max, то размер строки будет практически безграничным. Например: biography nvarchar(max), в данном случае будет текстовое поле "безграничного" размера с именем biography.

user_name - типа логин, как на Kbyte.Ru? На Kbyte.Ru такой метод является ошибочным и идет с древних времен, еще с начала 2000-х годов :) Устарело. Сейчас, чем проще пользователю будет, тем лучше. Т.е. нужно стараться не грузить пользователя лишними данными. Вместо логина удобно использовать E-Mail.

[- к содержанию -]

Ответ #4 @Crash666 19.10.2013 19:30
Я выполнил данную команду а что должно произойти дальше??:DD

[- к содержанию -]

Ответ #5 @Алексей Немиро 19.10.2013 19:42
В базе данных должна появиться таблица users

[- к содержанию -]

Добавить свой ответ в эту тему · В теме есть еще 88 ответов. Смотреть все ответы.

Все темы и обсуждения

Исходные коды

Keyboard-Клавиатура-מקלדת

.NET Compact Framework (.NET CF): Клавиатуры, мыши, джойстики @Akiva 25.10.2013 01:43
Эта программа дает возможность печатать
текст на Кириллице,Latiny,Greek,Грузинс ком,עברית
Эсперанто.
Формировать и сохранять.

К данном исходному коду прилагаются файлы примеров. Скачать.

[- к содержанию -]

Все исходные коды

Вакансии в IT

Seo специалист

Россия, Казань | Работа в офисе | 20 000,00 KBP

Программист

Россия, Новосибирск | Работа в офисе | 25 000,00 KBP

Разработчик сайтов без опыта

Россия, Новосибирск | Работа в офисе | 12 000,00 KBP

Программист PHP

Россия, Новосибирск | Работа в офисе | 50 000,00 KBP

Junior Android developer

Россия, Новосибирск | Работа в офисе | 15 000,00 KBP

Программист

Россия, Новосибирск | Работа в офисе | 30 000,00 KBP

Программист

Россия, Новосибирск | Работа в офисе | 25 000,00 KBP

Web-разработчик

Россия, Новосибирск | Работа в офисе | 40 000,00 KBP

SEO-оптимизатор, программист, web-дизайнер

Россия, Новосибирск | Работа в офисе | 30 000,00 KBP

Web-программист, web-разработчик

Россия, Ростов-на-Дону | Работа в офисе | 35 000,00 KBP

Все вакансии в IT · Создать резюме

[- к содержанию -]

Новости мира IT

YouTube запустит музыкальный сервис до конца 2013 года

Видеохостинг YouTube планирует до конца 2013 года запустить сервис для потокового прослушивания музыки. Новый сервис будет ориентирован на прослушивание аудиоконтента с помощью мобильных устройств. Часть музыкальной коллекции будет бесплатной, однако большинство треков будут доступны только для платных подписчиков.

24.10.2013 11:48 · Категория: Бизнес в IT · Источник: Lenta.ru

[- к содержанию -]

Анонсированы самые большие смартфоны на Windows Phone

Компания Nokia представила смартфоны Lumia 1520 и Lumia 1320. Они оснащены 6-дюймовыми экранами и являются самыми большими на сегодняшний день устройствами на Windows Phone. Более дорогая Lumia 1520 располагает четырехъядерным процессором и 20-мегапиксельной камерой.

23.10.2013 12:54 · Категория: Железо · Источник: Lenta.ru

[- к содержанию -]

Представлены новые MacBook Pro

Apple представила новые версии ноутбуков MacBook Pro. Компьютеры дольше, чем их предшественники, работают от батареи, а младшая модель стала тоньше и легче. MacBook Pro поступают в продажу 22 октября; 13-дюймовая модель стоит от 1299, а 15-дюймовая — от 1999 долларов США.

23.10.2013 12:54 · Категория: Железо · Источник: Lenta.ru

[- к содержанию -]

Все новости


Подпишитесь на тематические RSS-ленты Kbyte.Ru, чтобы быть в курсе последних новостей:

Основная лента · Форумы (темы и сообщения) · Visual Basic 5.0/6.0 · Visual Basic .NET · C# (Си шарп) · Delphi · JavaScript · ActionScript · ASP .NET · ASP .NET MVC

Ищите Kbyte.Ru в социальных сетях FaceBook, ВКонтакте, Twitter.

Если вы занимаетесь программированием, то наверняка вам пригодятся хитрые инструменты.


Международный портал для программистов и разработчиков Kbyte.Ru основан в 2006 году. Целью портала является объединение программистов и специалистов IT-бизнеса, студентов и преподавателей для обмена опытом и знаниями, оказания помощи во всех делах и начинаниях в области IT.
Kbyte.Ru является парнёром компаний Mail.Ru Group, WebMoney Transfer, Ozon.Ru и др.
Выпуск рассылки подготовлен автоматически. Все права на материалы выпуска принадлежат Kbyte.Ru если иное не указано отдельно.


В избранное