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

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


Выпуск # 684

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


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

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

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

Форумы Kbyte.Ru

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

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

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

Access @Egoza 19.04.2012 12:27
Доброго времени суток!Подскажите пож-та:
в базе данных есть 2 таблицы. Первая содержит информацию о водителях и соответственно первичный ключ Таб.номер водителя,Вторая таблица содержит информацию о том,какой водитель куда едит(внешний ключ-таб.номер водителя).Можно ли сделать так,что при вводе ФИО водителя во вторую таблицу информация о его таб.номере и прочее введётся автоматически?

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

Ответ #1 @Aleksey Nemiro 19.04.2012 13:19
Для выборки данных из нескольких таблиц по ключевому полю можно использовать инструкцию INNER JOIN.
Например:
SELECT * FROM [водители]
INNER JOIN [поездки] ON [поездки].[номер водителя] = [водители].[номер водителя]

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

Ответ #2 @Egoza 19.04.2012 13:30
strSQL = "SELECT * FROM Voditely "
INNER JOIN [Reisy] ON [Reisy].[Tabelny number voditelya] = [Voditely].[Tabelny number voditelya]
Set rs = db.OpenRecordset(strSQL)
вот так это должно выглядеть?

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

Ответ #3 @Aleksey Nemiro 19.04.2012 16:41
strSQL = "SELECT * FROM Voditely "
INNER JOIN [Reisy] ON [Reisy].[Tabelny number voditelya] = [Voditely].[Tabelny number voditelya]
Это единый запрос, он весь должен быть в кавычках:
strSQL = "SELECT * FROM Voditely INNER JOIN [Reisy] ON [Reisy].[Tabelny number voditelya] = [Voditely].[Tabelny number voditelya]"

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

Ответ #4 @Egoza 19.04.2012 20:41
Хорошо,это я сделала..а каким образом это будет работать?В первой табл вводится таб.номер водителя,желательно чтоб во второй не вводился..а выводился в соответствии с выбранной фамилией..Скажем выбираем Иванова и он определяет,что его таб.номер=5..и выводит это..Так можно?

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

Ответ #5 @Aleksey Nemiro 19.04.2012 20:57
В первой табл вводится таб.номер водителя,желательно чтоб во второй не вводился..а выводился в соответствии с выбранной фамилией..Скажем выбираем Иванова и он определяет,что его таб.номер=5..и выводит это..Так можно?
Да, можно. Однако с числами будет работать быстрее, чем со строками. Т.е. желательно, чтобы номер водителя был в обоих таблицах. Тем более, что у разных людей могут быть одинаковые фамилии, хотя можно в INNER JOIN добавить дополнительные условия выбора, но это может сильно отразиться на производительности (скорости выборки данных), особенно если данных будет много (тысячи строк и более).
Например:
strSQL
= "SELECT * FROM Voditely INNER JOIN [Reisy] ON [Reisy].[Фамилия водителя] = [Voditely].[Фамилия водителя] AND  [Reisy].[Имя водителя] = [Voditely].[Имя водителя]"
Условия можно продолжать, добавляя AND.
Либо, аналогично, можно сделать при помощи оператора WHERE:
strSQL = "SELECT * FROM Voditely INNER JOIN [Reisy] ON [Reisy].[Фамилия водителя] = [Voditely].[Фамилия водителя] WHERE [Reisy].[Имя водителя] = [Voditely].[Имя водителя]"
Чем больше условий, тем медленней будет происходить выборка данных.
В случае с числами, выборка будет происходить быстрее, так число занимает строгое, незначительно, количество байт, в отличие от строк.

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

Добавить свой ответ в эту тему · В теме есть еще 6 ответов. Смотреть все ответы.
400 Bar request @SocrAT 18.04.2012 11:21
Добрый день, Форумчане!
Прошу помощи в следующем вопросе:

Есть веб-сервис (SOAP 1.1).
Обращаюсь к методу этого веб-сервиса, передавая бизнес-объект с набором атрибутов.
В числе прочих атрибутов - перечень работ на определенном объекте.
Если этих работ не очень много - все отлично. Метод отрабатывает успешно.
Если работ становится много - ловлю "Удаленный сервер вернул неожиданный ответ: (400) Bar request".
С помощью Fiddler изучал запросы. Выяснилось следующее:
Если запрос имеет размер 56650 символов - то все отрабатывает успешно.
Если 62699 - уже ответ 400.
Эти цифры получились в результате обработки двух разных файлов.

Прошу помочь разобраться, почему ответ 400 и как с этим бороться?
Может быть можно IIS настроить? Или web.config со стороны сервиса поправить?

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

Ответ #1 @Aleksey Nemiro 18.04.2012 11:33
В web.config нужно смотреть на max-ы. Скорей всего maxReceivedMessageSize:
 <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="pppSoap" closeTimeout="00:01:00" openTimeout="00:01:00"
          receiveTimeout="00:01:00" sendTimeout="00:05:00" allowCookies="false"
          bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
          maxBufferSize="16581375" maxBufferPoolSize="524288" maxReceivedMessageSize="16581375"
          messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
          useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None"
              realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
  </system.serviceModel>
maxBufferSize - целое значение, указывающее максимальный размер (в байтах) буфера, хранящего сообщения во время их обработки для конечной точки, настроенной с этой привязкой.Значение по умолчанию — 65 536 байт.
maxBufferPoolSize - максимальное значение буферных пулов, используемых транспортом. Значение по умолчанию — 524 288 байт.
maxReceivedMessageSize - максимальный размер (в байтах) сообщения, обрабатываемого привязкой. Значение по умолчанию — 65 536 байт.
maxStringContentLength - максимальная длина возвращаемой строки. По умолчанию 8192.
maxArrayLength - максимально допустимая длина массива. Значение по умолчанию — 16384.
maxBytesPerRead - Максимально допустимое число байтов, возвращаемых для каждой операции чтения. Значение по умолчанию — 4096.
maxNameTableCharCount - максимально допустимое количество символов в имени таблицы. Значение по умолчанию — 16384.

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

Ответ #2 @SocrAT 18.04.2012 11:43
Алексей, привет!
Не совсем мой вариант, потому что данные настройки отвечают за подключение к сервису.
А я подключаюсь из Excel-аддона.
И в моих настройках:
maxBufferSize="7168000" maxBufferPoolSize="524288" maxReceivedMessageSize="7168000"

Но, проблема в том, что именно сервер мне отвечает 400.
Видимо надо на стороне сервера крутить, а не в <binding>.

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

Ответ #3 @Aleksey Nemiro 18.04.2012 11:50
На стороне сервера, в web.config, в секции system.web:
<httpRuntime maxRequestLength="102400"/>
maxRequestLength - размер запроса в Кб.

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

Ответ #4 @SocrAT 18.04.2012 11:56
14 Мб там стоит.

Добавлено: даже не Мб, а Гб.

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

Ответ #5 @Aleksey Nemiro 18.04.2012 12:17
Сервер будет выдавать 400 ошибку в случаях, если клиент будет отправлять неполноценный (например, урезанный) запрос или с неверными заголовками. Т.е. нужно смотреть, что отправляет клиент. Чтобы были правильные HTTP-заголовки и содержимое запроса. Так что от binding это тоже может зависеть зависит.

61 Кб - странное число..

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

Добавить свой ответ в эту тему · В теме есть еще 12 ответов. Смотреть все ответы.
ComboBox в VB @Egoza 18.04.2012 11:15
Доброго времени суток!Подскажите пожалуйста как связать объект ComboBox с БД Access?

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

Ответ #2 @Egoza 18.04.2012 11:49
Спасибо за хорошую ссылку,но там я ничего не нашла,относительно моего вопроса..

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

Ответ #3 @Aleksey Nemiro 18.04.2012 13:38
Вот в этом примере: Как получить данные из базы данных?, показано как программно получить данные из базы.

В этом фрагменте кода:
 Do Until RS.EOF 
  'вывод данных 
  Debug.Print RS("id") 
  'следующая запись 
  'ВНИМАНИЕ: если эту строку пропустить 
  'получится бесконечный цикл 
  'и программа зависнет! 
  RS.MoveNext 
 Loop 
Вместо Debug.Print RS("id") можно сделать добавление данных в ComboBox:
ComboBox1.AddItem RS("id")'или ComboBox1.Add RS("id")'давно не видел vb 6.0

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

Ответ #4 @Egoza 18.04.2012 14:37
Спасибо!
Правильный синтаксис:
Combo1.AddItem rs.Fields("id")

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

Добавить свой ответ в эту тему
DataGridView @rusiko 17.04.2012 23:55
Привет всем. Подскажите пожайлуста как мне сделать так чтоб при поиске из DataGridView не выводилась ошибка. Дело в том что у меня прога на Visual Basic 2010, а БД на SQL Sever 2008, так вот я на форму поставил несколько кнопок и textbox. И с помощью этих кнопок и textbox я ищу данные из DataGridView. Когда я заполняю все поля в DataGridView у меня все получаеться, а вот как только оставляю одно поле пустым сразу же выдаеться ошибка что "поле isDBNull".
Много чего пробовал, но не получаеться. Хотел изменить значения <Allow Nulls>, edit columns и много чего, но не получилось. Помогите мне с этим справиться. Спасибо заранее

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

Добрый день,

У меня страница обновляется с помощью PageMethods.
В связи с этим я бы не хотел производить обновление с рефрешь.


Можно ли с помощью javascript определить что произошло нажатие
кнопки Refresh браузера (F5 Или Ctrl+R можно перехватить).

Можно ли на сереврной стороне (ASP.NET) определить что пользователь нажал рефрешь?

Владимир

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

Ответ #1 @Aleksey Nemiro 16.04.2012 16:21
Можно ли с помощью javascript определить что произошло нажатие
кнопки Refresh браузера (F5 Или Ctrl+R можно перехватить).
Определить, какая кнопка нажата, наверное можно, а вот запретить вряд ли, из-за ограничений безопасности.
Например:
document.attachEvent("onkeydown",window_onkeydown);
function my_onkeydown_handler() {
if (event.keyCode == 116)//wich
{
  alert("ф5");
  // можно попробовать отменить нажатие
  /*  event.returnValue = false;
  event.keyCode = 0;*/
}
}
Можно ли на сереврной стороне (ASP.NET) определить что пользователь нажал рефрешь?
Можно сделать hidden-поле на странице. После первого PostBack поставить туда какое-нибудь значение, например: 1. При последующих PostBack проверять это значение, если оно равно 1, значит юзер обновил страницу.

Если есть возможность, для избежания повторных PostBack, можно после первой отправки формы на сервер делать редирект куда-нибудь.

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

Добавить свой ответ в эту тему
Подскажите как убрать и потом обратно вернуть при необходимости фокус выбранной строки в ListBox_е.Спасибо...

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

Пишу программу на C#. На форме есть picturebox с некоторым изображением, поверх изображения ставлю кнопку. Мне нужно чтобы на этой кнопке отображалась часть фонового изображения. Возможно ли это реализовать? Знаю, что на делфе это делалось свойством flat у кнопки, а на C# как?

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

Ответ #1 @Aleksey Nemiro 16.04.2012 16:32
Т.е. нужна прозрачная кнопка? Так просто это в .NET не сделать..

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

Ответ #2 @Shark1 17.04.2012 02:05
Можно сделать так: на форме ElementHost1, Button1 и Picturebox1, далее код :

VB.Net :
Imports System.ComponentModel
Public Class Form1

  Public btn As New System.Windows.Controls.Button
  Public brsh As System.Windows.Media.VisualBrush
  Dim img As New System.Windows.Controls.Image
  Dim ofd As New OpenFileDialog

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Try
      If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
        Dim bi As New System.Windows.Media.Imaging.BitmapImage
        bi.BeginInit()
        PictureBox1.ImageLocation = ofd.FileName
        bi.UriSource = New Uri(ofd.FileName)
        bi.EndInit()
        img.Source = bi
        btn.Width = 80
        btn.Height = 30
        btn.Content = String.Empty
        btn.Background = New System.Windows.Media.VisualBrush(img)
        ElementHost1.Child = btn
      End If
    Catch ex As Exception
      MessageBox.Show(ex.Message, ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
  End Sub
End Class


C# :
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Diagnostics;
using System.Windows.Forms;
using System.Linq;
using System.Xml.Linq;
using System.ComponentModel;
public partial class Form1
{

	public System.Windows.Controls.Button btn = new System.Windows.Controls.Button();
	public System.Windows.Media.VisualBrush brsh;
	System.Windows.Controls.Image img = new System.Windows.Controls.Image();

	OpenFileDialog ofd = new OpenFileDialog();
	private void Button1_Click(System.Object sender, System.EventArgs e)
	{
		try {
			if (ofd.ShowDialog() == Windows.Forms.DialogResult.OK) {
				System.Windows.Media.Imaging.BitmapImage bi = new System.Windows.Media.Imaging.BitmapImage();
				bi.BeginInit();
				PictureBox1.ImageLocation = ofd.FileName;
				bi.UriSource = new Uri(ofd.FileName);
				bi.EndInit();
				img.Source = bi;
				btn.Width = 80;
				btn.Height = 30;
				btn.Content = string.Empty;
				btn.Background = new System.Windows.Media.VisualBrush(img);
				ElementHost1.Child = btn;
			}
		} catch (Exception ex) {
			MessageBox.Show(ex.Message, ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error);
		}
	}
	public Form1()
	{
		InitializeComponent();
	}
}

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

Добавить свой ответ в эту тему
Всем добрый день. Не могу понять почему после декодирования, вместо желанного русского текста вылезает полная абракадабра. Проект делаю на C# .NET 4, используя статью и пример http://kbyte.ru/ru/Programming/Articles.aspx?id=65&mode=art Получение почты по протоколу POP3 и обработка MIME. Все работает замечательно кроме.....кодировки. Не подскажете где у меня в ДНК проблема?

Вот строка из кода которая должна раскодировать поступающий символ в 16-ом виде:

return ((char)int.Parse(m.Groups["char"].Value, System.Globalization.NumberStyles.AllowHexSpecifier)).ToString();

где m.Groups["char"].Value равен допустим D0, возвращает ?...

Может нужно добавить какой-нибудь другой параметр в проект или код?

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

Ответ #1 @Aleksey Nemiro 13.04.2012 17:24
Это, как я понимаю из функции декодирования заголовков: HeadersEncode.
Похоже в статье преобразование кодировки для Quoted-Printable пропущено
Сделать это можно так: result = ConvertCodePage(ParseQuotedPrintable(m.Groups["value"].Value), cp);
private string HeadersEncode(Match m)
{
 string result = String.Empty;
 Encoding cp = Encoding.GetEncoding(m.Groups["cp"].Value);
 if (m.Groups["ct"].Value.ToUpper() == "Q")
 { // кодируем из Quoted-Printable
   result = ConvertCodePage(ParseQuotedPrintable(m.Groups["value"].Value), cp);
 }
 else if (m.Groups["ct"].Value.ToUpper() == "B")
 { // кодируем из Base64
   result = cp.GetString(Convert.FromBase64String(m.Groups["value"].Value));
 }
 else
 { // такого быть не должно, оставляем текст как есть
   result = m.Groups["value"].Value;
 }
 return result;
}
Однако проблема может быть в самом сообщении, если кодировка указана неверно. В таких случаях абсолютно надежного автоматического решения проблемы, к сожалению, нет..
Один символ UTF-8 занимает 2 байта, в Quoted-Printable под один символ выделен один байт. UTF-8 удобней кодировать Base64, у меня сомнения, что эта кодировка может быть использована для кодирования Quoted-Printable.. Если это действительно так, то функцию ParseQuotedPrintable придется полностью переделывать. Сейчас функция ParseQuotedPrintable работает со строками, чтобы правильно обрабатывать Utf-8 нужно работать с байтами - заполнять массив байт и потом преобразовывать кодировку.

В Windows есть COM-компонент для автоматического определения кодировки, который использует IE. Найти его можно по адресу C:\Windows\System32\MLang.dll. Dll-ка для работы с MLang.dll под .NET Framework 4 во вложении. Пример использования:
//result = ParseQuotedPrintable(m.Groups["value"].Value)
//cp - кодировка, которая указана в заголовке, она будет возвращена, если не удастся определить кодировку автоматически
Encoding cpa = MultiLanguage.CodePageDetector.GetOutboundEncoding(result, cp);
//cpa - будет содержать автоматически определенную кодировку, либо кодировку, которая была передана в заголовках (cp)
result = ConvertCodePage(ParseQuotedPrintable(m.Groups["value"].Value), cpa);//преобразование кодировки декодированного текста в cpa

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

Ответ #2 @Aleksey Nemiro 13.04.2012 17:31
Набросал функцию ParseQuotedPrintable, но не проверял:
private string ParseQuotedPrintable(string source, Encoding cp)
{
  source = source.Replace("_", " ");
  source = Regex.Replace(source, @"(\=)([^\dABCDEFabcdef]{2})", "");
  MatchCollection mc = Regex.Matches(source, @"\=(?<char>[\d\w]{2})");
  byte[] result = new byte[mc.Count];
  for (int i = 0; i <= mc.Count - 1; i++)
  {
    result[i] = byte.Parse(mc[i].Groups["char"].Value, System.Globalization.NumberStyles.AllowHexSpecifier);
  }
  return ConvertCodePage(result, cp);
}
использование:
private string HeadersEncode(Match m)
{
 string result = String.Empty;
 Encoding cp = Encoding.GetEncoding(m.Groups["cp"].Value);
 if (m.Groups["ct"].Value.ToUpper() == "Q")
 { // кодируем из Quoted-Printable
  result = ParseQuotedPrintable(m.Groups["value"].Value, cp);//ParseQuotedPrintable
 }
 else if (m.Groups["ct"].Value.ToUpper() == "B")
 { // кодируем из Base64
  result = cp.GetString(Convert.FromBase64String(m.Groups["value"].Value));
 }
 else
 { // такого быть не должно, оставляем текст как есть
  result = m.Groups["value"].Value;
 }
 return result;
}

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

Ответ #3 @АлекСашка 13.04.2012 18:11
ОГРОМНОЕ СПАСИБО!!!! РАБОТАЕТ!!!

P.S. Еще в метод дешифровки текста тогда надо передать cp.

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

Ответ #4 @АлекСашка 13.04.2012 19:36
В теле сообщение у меня текст в формате text/html. Там тоже присутствует выше упомянутая кодировка.

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

Ответ #5 @Aleksey Nemiro 13.04.2012 19:43
По идеи текст должен нормально декодироваться. Функция ParseQuotedPrintable общая для заголовков и содержимого.

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

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

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

Вакансии в IT

требуется амбициозный программист

Украина | Удаленная работа

Web-программист

Россия, Санкт-Петербург | Работа в офисе

Web программист

Россия, Санкт-Петербург | Работа в офисе | 20 000.00 KBP

Web-программист

Россия, Санкт-Петербург | Работа в офисе | 50 000.00 KBP

Web-программист

Россия, Санкт-Петербург | Работа в офисе | 25 000.00 KBP

Web - программист

Россия, Санкт-Петербург | Работа в офисе

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

Россия, Санкт-Петербург | Работа в офисе | 30 000.00 KBP

Веб-программист

Россия, Санкт-Петербург | Работа в офисе | 40 000.00 KBP

SEO-Оптимизатор интернет-магазина

Россия, Санкт-Петербург | Работа в офисе

Программист Интернет магазина

Россия, Нижний Новгород | Работа в офисе | 30 000.00 KBP

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

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

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

В России создан "iPhone-дозиметр"

Резидент Фонда «Сколково» представил первый Apple-совместимый дозиметр-радиометр «ДО-РА», разработанный в России. Резидент кластера ядерных технологий Фонда «Сколково» представил первый Apple-совместимый прототип дозиметр-радиометр «ДО-РА», работающий на базе смартфона iPhone 4 и 4s.

В январе 2012 года ОАО «Интерсофт Евразия» под проект «ДО-РА» получило свой первый грант от Фонда «Сколково». Рыночная стоимость исключительного права на активы «ДО-РА», патенты и изобретения, составляет более $323 млн в соответствии с методикой рыночной оценки нематериальных активов, разработанной «Deloitte & Touche» для Российского рынка. 

Как рассказали в компании, «ДО-РА» - это индикатор радиоактивности с функциями дозиметра-радиометра. Прибор работает в содружестве с мобильными приложениями DO-RA.Soft собственной разработки, которые бесплатно скачиваются на смартфоны, мобильные телефоны через Интернет. Затем прибор подключается через аудио разъем для телефонной гарнитуры. Запускается программа, и устройство «ДО-РА» начинает свою работу. Измерение радиационного фона устройством «ДО-РА» осуществляется каждые 4 сек. и в течение первых 60 сек. результаты измерений «ДО-РА» постоянно уточняются. Через 60 сек. результат измерения с паспортной точностью высвечивается на экране смартфона о радиационном фоне местности, объектов измерения, продуктов питания.

18.04.2012 11:37 · Категория: Железо · Источник: CyberSecurity.ru

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

Microsoft рассказала о трех версиях Windows 8

Windows 8 выйдет в трех версиях: Windows 8, Windows 8 Pro и Windows RT. Первые две предназначены для процессоров с архитектурой x86, а третья - для процессоров ARM. В состав Windows RT войдут программы из офисного пакета MS Office. Windows 8 Pro рассчитана на продвинутых пользователей и бизнес.

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

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

Компьютер за 35 долларов добрался до заказчиков

Начались поставки первой партии 35-долларовых компьютеров Raspberry Pi на базе Linux. В партию вошли десять тысяч устройств. Все они были распроданы по предзаказам в конце февраля 2012 года. Доставка стартовала с задержкой из-за осложнений при производстве и сертификации.

18.04.2012 11:35 · Категория: Железо · Источник: 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 если иное не указано отдельно.


В избранное