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

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


Выпуск # 635

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


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

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

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

Блог Kbyte.Ru

Весна пришла!

Приветствую!
Вот и пришла весна, день становится длиннее, птицы возвращаются из теплых краев, не за горами посадка картошки. С момента последней записи в блоге, на Kbyte.Ru произошли небольшие, но важные изменения и события. Во-первых, сайт номинирован на премию «Стерх». Во-вторых, изменен формат рассылки новостей сайта через сервис Subscribe. Ну а в-третьих, по традиции, месяц март у нас будет посвящен технологии Silverlight. Обо всем этом и пойдет речь далее.[cut]

Премия «Стерх»



В этом году Kbyte.Ru номинирован на премию «Стерх».
Дальневосточная интернет-премия «Стерх» проводится уже в девятый раз и присуждает за вклад в развитие Дальневосточного Интернета. Как известно, Kbyte.Ru родом из города Владивостока (Приморский край). Хотя проект и ориентирован на гораздо большую аудиторию, нежели Дальний Восток, сайт все же являет частью Дальневосточного Интернета. Дальневосточный Интернет долгое время был изолирован от внешнего мира из-за своей дороговизны и низких скоростей, что послужило причиной появления довольно неплохих локальных веб-проектов. Тем не менее, аналогов Kbyte.Ru на Дальнем Востоке, да и пожалуй в мире, нет и по сей день.
Поддержите Kbyte.Ru! Это не займет много времени.
Чтобы проголосовать необходимо указать email, на который придет ссылка для подтверждение голоса.

Страница для голосования:
http://www.premiasterh.ru/vote/468/

Принять участие в голосовании может любой желающий, независимо от места жительства.

На этой неделе на Kbyte.Ru случился небольшой казус, связанный с этим конкурсом. Всем зарегистрированным пользователям было отправлено предложение поддержать проект. Вроде бы поначалу все прошло нормально, каждый получил по одному письму соответствующего содержания. Однако ночью Kbyte.Ru, видимо осознав, что решается его судьба, решил разослать уведомления еще раз, а потом еще и еще. В общем, когда я стал утром проверять почту, у меня на голове осталась лишь небольшая колония из седых волос, остальные испугались и разбежались в разные стороны. Причина была найдена и устранена, но неприятный осадок и с десяток одинаковых писем в ящиках пользователей остался. Еще раз приношу свои извинения за «спам».

Рассылка в новом формате


Буквально сегодня был изменен формат E-Mail рассылки новостей Kbyte.Ru через сервис Subscribe. Напомню, что рассылка была возобновлена в январе текущего года после продолжительно перерыва. Рассылка изначально была основана на главной RSS-ленте Kbyte.Ru и имела довольно неудобный формат. Теперь рассылка будет примерно такая же, как и старая (в 2007-2008 гг.), только еще лучше. В рассылку будут попадать записи блога Kbyte.Ru (например, как эта), а также новые темы с форумов и не более 5 ответов на каждую тему. Исходные коды и статьи, а также 3-5 новостей. В новой рассылке акцент сделан на интересный материал. Рассылка будет выходить по пятницам. Если ничего нового за неделю на сайте не произойдет, то выпуск будет отложен до следующей недели. В общем, теперь все будет цивилизованно, без бомбежки одинаковым и непонятным контентом.
Подписаться на рассылку можно здесь.

Месяц Silverlight


Март месяц на Kbyte.Ru посвящен технологии Silverlight.
Microsoft Silverlight — это программная платформа, включающая в себя плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики, что характерно для RIA (Rich Internet application).

Технология будет прежде всего интересна .NET программистам и разработчикам. В апреле Microsoft обещает внедрить Silverlight 4.0 в Visual Studio 2010 (сейчас в ней только Silverlight 3.0), в котором будет множество интересностей. Например, поддержка Drag'n'Drop в рамках всей системы, а также встроенный RichTextBox и многое другое. Собственно, начать работать с Silverlight 4.0 можно уже и сейчас.

Кстати, судьба апреля в ваших руках ;-)

На этом пока все.

--
Благодарю за внимание,
Ваш Kbyte.Ru.

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

Форумы Kbyte.Ru

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

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

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

Создание папки в директории программы @kot2007 10.03.2011 22:32
Все здравствуйте-подскажите пожалуйста:

на vb.net

стартует программа-проверяет наличие директории-если нет то создает-если есть то ничего не делает!<-(как бы это я знаю)

директория должна создаваться в том месте(директории,диске) откуда стартует программа!

И еще вопросик как теперь эту директорию привязать к программе(допустим если я в ней хочу хранить некие картинки,текст и т.д. чтобы программа их использовала при своей работе?! чего то я мучаюсь и так и так,но не доходит до моего мозга!

да и в поиске даже не знаю как это правильно сформулировать чтоб найти ответ!

заранее благодарен!

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

Ответ #1 @[i]Pro 11.03.2011 06:29
Imports System.IO

директория должна создаваться в том месте(директории,диске) откуда стартует программа!
Directory.CreateDirectory(Application.StartupPath
& "\Твоя папка")
И еще вопросик как теперь эту директорию привязать к программе(допустим если я в ней хочу хранить некие картинки,текст и т.д. чтобы программа их использовала при своей работе?!
Используй везде Application.StartupPath - возвратит тебе путь откуда запущена программа

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

Добавить свой ответ в эту тему
Шифровка текста @Артем Федоров 10.03.2011 20:54
Самое элементарное но то что я немогу сделать..обращаюсь к вам,ув эксперты
допустим есть слово "БОКА" надо сделать так чтобы программа поменяла попарно символы и в результате получилось что то вроде "ОБАК" т.е надо попарно поменять символы местами...Заранее спасибо

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

Можно ли написать скрипт создания БД в SQL Server 2008, что бы он подошел для SQL Server 2005? @GoodBoy 08.03.2011 20:45
Нужно написать скрипт создания БД Customers со следующими таблицами:

Customers: IDCustomer, Name, Address, Login, Password
Orders:IDOrder, IDCustomer, Name, Date, Amount, Description

для SQL 2005, но у меня есть скрипт только для SQL Server 2008. Подойдет ли он для создания этой же структуры БД для SQL Server2005?

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

Ответ #1 @Aleksey Nemiro 09.03.2011 10:33
Да, если есть для 2008, то скорей всего подойдет и для 2005. А вот с 2000 и ниже могут быть существенные различия, главным образом с полями типа text.
Orders:IDOrder, IDCustomer, Name, Date, Amount, Description
если поле Date имеет тип данных date, то в 2005 такого типа данных нет, нужно использовать datetime, он есть во всех версиях SQL Server.

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

Добавить свой ответ в эту тему
Эксперты это кто ? @ArkIv 06.03.2011 05:37
Это те кому влом в форум залезть ? или типа вы там чернь в форуме болтайте
как наговоритесь идите к нам - тут ответ получите.
тогда не понятно почему сразу туда не писать ?
чуток недопонимаю я..
в форуме пишу пишу .. всякую хрень слушаю - потом решаю
а блин, хватит - напишу экспертам ..так !?

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

Ответ #1 @[i]Pro 06.03.2011 06:33
Что ж тут не понятного то?) Форум для начинающих или не совсем программистов которые идут с базовыми вопросами, на которые могут любые пользователи форума ответить. эксперт - закрытая группа профессионалов - задавай туда более продвинутые и сложные вопросы - получишь грамотный ответ

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

Ответ #2 @Aleksey Nemiro 06.03.2011 12:17
Система Эксперт на данный момент не работает. Фишка системы была в том, что, во-первых, работать с ней можно было через E-Mail. Т.е. любой желающий мог отправить свой вопрос на адрес expert@kbyte.ru (сейчас ящик отключен) и, возможно, получить ответ. Вторая фишка - это то, что всем Экспертам, как и полицейским России, запрещено пользователям грубить, высмеивать и т.п., т.е. делать все то, что может произойти с пользователем на форумах. В системе действуют(вали) строгие правила:
1. Знаешь ответ - ответь.
2. Не согласен с мнением другого эксперта - просто напиши свой ответ.

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

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

Добавить свой ответ в эту тему
вопрос один @ArkIv 06.03.2011 05:25
как обезопасить себя от не лицензионного ПО.
пока сам не столкнешься с этим врятли ответишь..
и никакие бумажки не помогут - если надо я смогу с заинтересованными развить эту тему
но к сожалению без решения.. в нашей стране это не решить.
а.. ну да купить все лицензионное (как я забыл)

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

Ответ #1 @Aleksey Nemiro 06.03.2011 13:10
как обезопасить себя от не лицензионного ПО.
не пользоваться компьютером, более того, вообще его не покупать! :)
Мне, благо, пока с проверками сталкиваться не приходилось. Что касается доказательства лицензирования, то фирменные коробки и прочие наклейки не являться доказательством. Здесь нужно сохранять все чеки, фактуры и т.п. Соответственно покупать софт нужно у авторизированных дилеров, список которых можно найти на сайтах производителей ПО. А вообще, тема муторная, в нашей стране еще развита плохо.

Если используется нелегальные софт, то нужно сделать следующее:
1. Поставить на входе в офис большое количество видеокамер.


2. Поставить металлические двери во все помещения, где стоят компьютеры с нелегальным софтом.


3. Завести хомячка, который в случае опасности сможет съесть все жесткие диски с нелегальным софтом.


ну и собственно, всегда быть начеку

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

Если есть возможность, использовать удаленную рабочую силу, чтобы "нелегалы" не сидели в офисе.

А в целом, я всеми руками за лицензионный софт, ибо это удобно и экономит уйму времени.

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

Ответ #2 @ArkIv 07.03.2011 02:55
вопрос был чють про другое. - да счас я промолчу

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

Добавить свой ответ в эту тему
Хотелось бы голосование @ArkIv 06.03.2011 05:22
я честно хочу узнать..
люди!!!
сколько вас ? кто работает в чем.. давайте повесим где-нибудь цифру..
линух мак вин.. - больше не надо....

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

Ответ #1 @Aleksey Nemiro 06.03.2011 12:57
Я сижу на Windows 7 Pro, до этого на Windows XP. В молодости у меня был и ASPLinus и openSUSE, но как-то все это не прижилось, и в итоге я стал отъявленным винудязтником

Если интересно, по статистике за февраль на сайте было:

Microsoft Windows XP              54,32% 
Microsoft Windows 7               35,52% 
Microsoft Windows Vista           5,75% 
Microsoft Windows Server 2003     0,93% 
Microsoft Windows 2000            0,23% 
Microsoft Windows 98              0,06% 
Microsoft Windows ME              0,02% 
Microsoft Windows 95              0,01% 
Microsoft Windows 3.x или раньше  0,01%
Linux - неизвестная версия   0,77% 
Linux Ubuntu                 0,58% 
Linux SUSE                   0,05% 
Linux Fedora                 0,04% 
Linux SeaMonkey              0,01% 
Linux Mandriva               0,01% 
Linux Debian                 0,01%

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

Ответ #2 @ArkIv 08.03.2011 13:39
да я вот выбирал в свое время между OS/2 и windows и в итоге как чувствовал прямо... выбрал виндовс.. полуось была по круче в то время..
вобщем я смотрю freeBSD - еще заметны на графике... думаю еще чуть и все кончится.. хотя , если гугл развернется - кто знает...

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

Добавить свой ответ в эту тему
Андроид @ArkIv 06.03.2011 05:18
давайте обсудим поплюем и т.д
если кто пробовал программить расскажите как чего с чего, на чем и примерчик со знаменитым - привет мир...
потом картинки опустим и перейдем
как смс как позвонить как перехватить то как это ну и т.п.
а миру привет передадим попутно..

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

Ответ #1 @[i]Pro 06.03.2011 06:26
Тут как бы форум .Net разработчиков с редкими вставками VB6, а андроид это уже Java как минимум)

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

Ответ #2 @Aleksey Nemiro 06.03.2011 12:29
Для начала, нужно скачать и установить Android SDK и Java. Что делать дальше - вопрос сложный . Я как-то на Windows XP пробовал поставить эмулятор Android-а, но так и не разобрался, он у меня с ошибками при запуске валился. Сейчас не до этого, но в будущем тоже придется его активно ковырять, ибо устройства на базе Android достаточно популярны.
Тут как бы форум .Net разработчиков с редкими вставками VB6, а андроид это уже Java как минимум)
Это было изначально, сейчас проект постепенно пытается охватывать разные языки программирования и технологии.
Другое дело, что у нас наверное нет спецов, которые работают с Android и Java, разве что EROS по-моему с Java работает.

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

Ответ #3 @EROS 06.03.2011 15:06
разве что EROS по-моему с Java работает.
Работал.. 3 года назад.. Сейчас только C#
для Android пишут так же на Qt

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

Ответ #4 @[i]Pro 06.03.2011 15:35
Да на Qt уже под че только не пишут...только вот таскать за собой от 8Мб библиотек для самого простого приложения как то не гламурно)

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

Ответ #5 @EROS 06.03.2011 15:46
Хм.. а ты думаешь Java меньше весит? Ее то тоже придется ставить юзеру.. Для справки: ,бибилиотеки Qt однозначно включены в Андроид по дефолту

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

Добавить свой ответ в эту тему · В теме есть еще 9 ответов. Смотреть все ответы.
Что за раздел? @ArkIv 06.03.2011 05:13
Что подразумевает под собой раздел - управление предприятием ?

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

Ответ #1 @Aleksey Nemiro 06.03.2011 14:29
Предполагалось обсуждение вопросов по управлению уже созданной компанией, решению всяких внутренних проблем, административные вопросы: поощрения, штрафы; делопроизводство, создание и управление штатом сотрудников и т.д. и т.п.

Тема бизнеса пока, к сожалению, на сайте развита плохо.

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

Ответ #2 @ArkIv 07.03.2011 03:10
сложная у вас работа....

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

Добавить свой ответ в эту тему
Про пример - Чат на RichTextBox @ArkIv 06.03.2011 01:31
сразу скажу не смотрел - если я буду не прав поправьте меня и скажите что в этом примере рабочий вариант.
и так..
на С# я надеюсь както проще будет.. но на С+ . идея так выглядела.
TCP - протокол передает данные пакетами - размер пакета определяется по неопределенному алгоритму -вероятно от свободной памяти, поэтому все чаты и примеры чатов , толи по дурости толи для того чтоб выпендриться показывают как передать строку HELLO WORLD. да для этого все примеры подходят.. на самом деле все не так - но вот чудо никто обэтом не говорит. а ситуация выгядит так что если передавать текст больше.. ну хз больше чего . пакет передачи всегда разный. - то виндовс режет отправку данных на пакеты размер их непредсказуем. и поэтому клиент изначально должен знать а сколько он должен получить информации поэтому должен крутиться и ждать столько посылок пока не получет нужное количество данных. и только после этого сказать да принял.. кстати в TCP пакеты приходят друг за другом в UDP вообще в беспорядке.. также если клиент пошлет два сообщения (разных) то они по мнению виндовса влезут в один пакет TCP, точнее он подождет и объединит их. так что примеры все эти только для HELLO WORLD .. еще раз повторю если C# т..е DotNet какимто образом это сам решает скажите мне.. не знаю.
и по по поводу RTF - кто нибудь хоть раз смог объединить или вставить один RTF в другой .. если описание par/ идет в начале файла и цвета и шрифты как можно всунуть кусок RTF со своим описанием стилей..
я правда еще не смотрел пример чата (ну не дойти мне до компа) .. но чувствую что об этом там даже не заикаются..
я попозже не знаю пока когда, проверю пример и тогда чес-слово извинюсь..

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

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

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

MD5 Hash

Visual Basic .NET: Криптография, защита данных @[i]Pro 06.03.2011 09:32
Функция для создания MD5 хэшей.
  Public Function Hash(ByVal line As String)  
    Dim MD5 As New MD5CryptoServiceProvider 
    Dim bArr() As Byte = Encoding.Default.GetBytes(line) 
    Dim Arr() As Byte = MD5.ComputeHash(bArr) 
    Dim SB As New StringBuilder 
 
    For Each B As Byte In Arr 
      SB.Append(B.ToString("x3")) 
    Next 
    Return (SB.ToString)  
  End Function 
 
'Можно изменить вид хэша изменив символы x3 на любые свои

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

Передача файла по сети

C#: Сетевое взаимодействие @Fadi Abdelqader 05.03.2011 18:15
Пример передачи файла по сети между двумя компьютерами. Пример в общем-то ничем особо не отличается от тех же самых чатов, разве что дополнительно используются классы для работы с файлами. Пример состоит из двух приложений. Первое отправляет файла, а второе, соответственно, принимает файл.

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

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

Чат на RichTextBox

C#: Сетевое взаимодействие @Fadi Abdelqader 05.03.2011 18:11
Разноцветный чат реализованный с использованием RichTextBox на C#. Пример состоит из двух приложений - клиент и сервер. Используются сокеты (System.Net.Sockets).

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

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

Цифровая подпись

C#: Криптография, защита данных @Fadi Abdelqader 05.03.2011 18:05
Пример создания и использования цифровой подписи на C#.
/* основные классы */ 
 
public class MD5HashHelper  
{  
 
 public byte[] GetHash(string message)  
 {  
  byte[] data;  
  data = UTF8Encoding.ASCII.GetBytes(message);  
  MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();  
  return md5.ComputeHash(data, 0, data.Length);  
 }  
 
 public bool VerifyHash(string message, byte[] hash)  
 {  
  byte[] data;  
  data = UTF8Encoding.ASCII.GetBytes(message);  
  MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();  
  byte[] hashTemp = md5.ComputeHash(data, 0, data.Length);  
 
  for (Int32 counter = 0; counter <= hash.Length - 1; counter += 1)  
  { 
   if (hash[counter] != hashTemp[counter])  
   {  
    return false;  
   }  
  }  
  return true;  
 }  
} 
 
public class DigitalSignatureHelper  
{  
 private RSAParameters m_public;  
 
 public byte[] CreateSignature(byte[] hash)  
 {  
  RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();  
  RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);  
  RSAFormatter.SetHashAlgorithm("MD5");  
  m_public = RSA.ExportParameters(false);  
  return RSAFormatter.CreateSignature(hash);  
 }  
 
 public bool VerifySignature(byte[] hash, byte[] signedhash)  
 {  
  RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();  
  RSAParameters RSAKeyInfo = new RSAParameters();  
  RSAKeyInfo.Modulus = m_public.Modulus;  
  RSAKeyInfo.Exponent = m_public.Exponent;  
  RSA.ImportParameters(RSAKeyInfo);  
  RSAPKCS1SignatureDeformatter RSADeformatter = new RSAPKCS1SignatureDeformatter(RSA);  
  RSADeformatter.SetHashAlgorithm("MD5");  
  return RSADeformatter.VerifySignature(hash, signedhash);  
 }  
} 
 
// ***************************************************************** 
 
/* использование */ 
public class Form1 : System.Windows.Forms.Form 
{ 
  internal System.Windows.Forms.Button Button2; 
  internal System.Windows.Forms.Button Button1; 
  private System.Windows.Forms.TextBox textBox1; 
  private System.Windows.Forms.TextBox textBox2; 
  private System.Windows.Forms.Label label1; 
  private System.Windows.Forms.Label label2; 
  /// <summary> 
  /// Required designer variable. 
  /// </summary> 
  private System.ComponentModel.Container components = null; 
 
  public Form1() 
  { 
   // 
   // Required for Windows Form Designer support 
   // 
   InitializeComponent(); 
 
   // 
   // TODO: Add any constructor code after InitializeComponent call 
   // 
  } 
 
  /// <summary> 
  /// Clean up any resources being used. 
  /// </summary> 
  protected override void Dispose( bool disposing ) 
  { 
   if( disposing ) 
   { 
    if (components != null)  
    { 
     components.Dispose(); 
    } 
   } 
   base.Dispose( disposing ); 
  } 
 
  #region Windows Form Designer generated code 
  /// <summary> 
  /// Required method for Designer support - do not modify 
  /// the contents of this method with the code editor. 
  /// </summary> 
  private void InitializeComponent() 
  { 
   this.Button2 = new System.Windows.Forms.Button(); 
   this.Button1 = new System.Windows.Forms.Button(); 
   this.textBox1 = new System.Windows.Forms.TextBox(); 
   this.textBox2 = new System.Windows.Forms.TextBox(); 
   this.label1 = new System.Windows.Forms.Label(); 
   this.label2 = new System.Windows.Forms.Label(); 
   this.SuspendLayout(); 
   //  
   // Button2 
   //  
   this.Button2.Location = new System.Drawing.Point(224, 24); 
   this.Button2.Name = "Button2"; 
   this.Button2.Size = new System.Drawing.Size(112, 23); 
   this.Button2.TabIndex = 5; 
   this.Button2.Text = "Generate Signature"; 
   this.Button2.Click += new System.EventHandler(this.Button2_Click); 
   //  
   // Button1 
   //  
   this.Button1.Location = new System.Drawing.Point(224, 64); 
   this.Button1.Name = "Button1"; 
   this.Button1.Size = new System.Drawing.Size(112, 23); 
   this.Button1.TabIndex = 4; 
   this.Button1.Text = "Verify Signature"; 
   this.Button1.Click += new System.EventHandler(this.Button1_Click); 
   //  
   // textBox1 
   //  
   this.textBox1.Location = new System.Drawing.Point(120, 24); 
   this.textBox1.Name = "textBox1"; 
   this.textBox1.Size = new System.Drawing.Size(96, 20); 
   this.textBox1.TabIndex = 6; 
   this.textBox1.Text = "My Signature"; 
   //  
   // textBox2 
   //  
   this.textBox2.Location = new System.Drawing.Point(120, 64); 
   this.textBox2.Name = "textBox2"; 
   this.textBox2.Size = new System.Drawing.Size(96, 20); 
   this.textBox2.TabIndex = 7; 
   this.textBox2.Text = "My Signature"; 
   //  
   // label1 
   //  
   this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(178))); 
   this.label1.Location = new System.Drawing.Point(8, 24); 
   this.label1.Name = "label1"; 
   this.label1.TabIndex = 8; 
   this.label1.Text = "Set Signature"; 
   //  
   // label2 
   //  
   this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(178))); 
   this.label2.Location = new System.Drawing.Point(8, 64); 
   this.label2.Name = "label2"; 
   this.label2.TabIndex = 9; 
   this.label2.Text = "Verify Signature"; 
   //  
   // Form1 
   //  
   this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); 
   this.ClientSize = new System.Drawing.Size(344, 110); 
   this.Controls.Add(this.label2); 
   this.Controls.Add(this.label1); 
   this.Controls.Add(this.textBox2); 
   this.Controls.Add(this.textBox1); 
   this.Controls.Add(this.Button2); 
   this.Controls.Add(this.Button1); 
   this.MaximizeBox = false; 
   this.Name = "Form1"; 
   this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 
   this.Text = "Digital Signature - By Fadi Abdel-qader"; 
   this.ResumeLayout(false); 
 
  } 
  #endregion 
 
  /// <summary> 
  /// The main entry point for the application. 
  /// </summary> 
  [STAThread] 
  static void Main()  
  { 
   Application.Run(new Form1()); 
  } 
 
  DigitalSignatureHelper ds = new DigitalSignatureHelper();  
  byte[] hash1;  
  byte[] hash2;  
  byte[] signedhash; 
 
  private void Button2_Click(object sender, System.EventArgs e) 
  { 
   try //создание подписи 
   { 
    MD5HashHelper md5 = new MD5HashHelper();  
    hash1 = md5.GetHash(textBox1.Text);  
    signedhash = ds.CreateSignature(hash1);  
    MessageBox.Show("Подпись успешно создана!"); 
   } 
   catch(Exception ex){MessageBox.Show(ex.Message);} 
   } 
 
  private void Button1_Click(object sender, System.EventArgs e) 
  { 
   try//проверка подписи 
   { 
    MD5HashHelper md5 = new MD5HashHelper(); 
    hash2 = md5.GetHash(textBox2.Text);  
 
    if (ds.VerifySignature(hash2, signedhash))  
    {  
     MessageBox.Show("Ура! Подпись правильная!");  
    }  
    else  
    {  
     MessageBox.Show("Ой! Подпись неверная!");  
    } 
   } 
   catch(Exception ex){MessageBox.Show(ex.Message);} 
  } 
}

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

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

Шифрование базы данных

C#: Криптография, защита данных @Fadi Abdelqader 05.03.2011 17:58
Пример шифрования базы данных MS Access алгоритмом RSA (Rivest, Shamir and Adleman).

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

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

Защищенный чат

C#: Сетевая безопасность @Fadi Abdelqader 05.03.2011 17:55
Реализация защищенного чата на C# с использованием алгоритма шифрования RSA и сертификата безопасности X.509. Сам чат базируется на веб-сервисе ASP .NET.

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

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

Чат на Visual Basic .NET

Visual Basic .NET: Сетевое взаимодействие @Интернет 03.03.2011 20:13
Реализация чата на Visual Basic .NET в виде двух приложений (сервер/клиент) с использованием сокетов.

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

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

Удаление старых файлов из папки

Visual Basic .NET: Файлы и папки @Алексей Немиро 03.03.2011 13:31
Небольшое консольное приложение, которое позволяет удалять старые файлы из указанной директории. Программа принимает два параметра запуска: path и old. В path указывается каталог, из которого нужно удалить старые файлы. В параметре old указывается количество дней, которое должно пройти с момента создания файла, чтобы считать его устаревшим. Используется пространство имен System.IO. Обработка параметров командной строки производится при помощи регулярных выражений.
Imports System.IO 
Imports System.Text.RegularExpressions 
 
Module Module1 
 
  Sub Main() 
    'получаем параметры 
    '-path "C:\" -old 10 
    Dim path As String = "", old As Integer = 0 
    Dim myReg As New Regex("\-(?<name>[^\s]+)\s+(?<value>[^\s]+)") 
    Dim mc As MatchCollection = myReg.Matches(Command()) 
    For Each m As System.Text.RegularExpressions.Match In mc 
      Select Case m.Groups("name").Value.Trim().ToLower() 
        Case "path" 
          'Trim("""") - удаляет кавычки по бокам 
          'Trim() - удаляет лишние пробелы 
          path = m.Groups("value").Value.Trim("""").Trim() 
        Case "old" 
          Integer.TryParse(m.Groups("value").Value.Trim("""").Trim(), old) 
      End Select 
    Next 
 
    'проверяем, чтобы бы указан путь папки, файлы в которой нужно удалить 
    If String.IsNullOrEmpty(path) Then 
      Console.WriteLine("Необходимо указать путь директории, файлы в которой нужно удалить.") 
      Console.WriteLine("Используйте параметр path. Например:") 
      Console.WriteLine("-path ""C:\MyDir""") 
      Return 
    End If 
 
    'получаем список файлов указанной папки 
    Dim files() As String = Directory.GetFiles(path) 
 
    'листаем файлы 
    For Each filePath As String In files 
      Dim FI As New FileInfo(filePath) 
      'проверяем дату создания 
      If DateDiff(DateInterval.Day, FI.CreationTime, Now) >= old Then 
        'пытаемся удалить 
        Try 
          FI.Delete() 
          Console.WriteLine("{0} - удален", filePath) 
        Catch ex As Exception 
          Console.WriteLine("Не удалось удалить файл: {0}", filePath) 
        End Try 
      Else 
        Console.WriteLine("{0} - будет жить, пока", filePath) 
      End If 
    Next 
 
    Console.WriteLine("Работа программы успешно завершена.") 
  End Sub 
 
End Module

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

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

Голосовой чат

C#: Сетевое взаимодействие @Fadi Abdelqader 03.03.2011 11:37
Пример реализации на C# голосового чата по локальной сети. Голосовой чат состоит из двух приложений - сервер и клиент. Сервер прослушивает указанный порт и организовывает передачу бинарных данных между клиентами. Для работы со звуком в клиентском приложении используется DirectX, а также класс, который уменьшает объем звуковых данных с небольшой потерей качества звука.

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

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

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

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

Акции IBM достигли исторического максимума

Акции корпорации IBM достигли своего исторического максимума, прибавив накануне в цене почти 3,5% и достигнув отметки в 165,86 долларов. Данный внутридневной показатель роста стал самым заметным с 24 января этого года. Всего с начала 2011 года курс акций IBM вырос на 13%. Однако эксперты говорят, что в нынешней ситуации курс еще не достиг своего пика и многие западные трейдеры ожидают, что бумаги IBM уже в этом году подорожают до 200 долларов за акцию.

Крис Уитмор, аналитик Deutsche Bank, говорит, что показать еще 14-16% роста бумагам IBM вполне по плечу. По мнению аналитиков агентства Bloomberg, до конца первого полугодия акции IBM могут достичь 180 долларов за штуку.

10.03.2011 17:32 · Категория: Бизнес в IT · Источник: CyberSecurity.ru

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

Lenovo анонсировала ультрапортативный ноутбук на базе Intel SandyBridge

Китайская Lenovo сегодня представила свой первый ультрапортативный ноутбук, работающий на базе микроархитектуры Intel SandyBridge. Новый Lenovo ThinkPad X220 является одним из самых компактных в линейке этого производителя. Новый ноутбук работает на базе 12,2-дюймового дисплея, а также процессоров Intel Core i3, i5 или i7 на частотах от 2,1 до 2,7 гигагерц. В заявлении компании сказано, что при всей современности начинки, вес ноутбука составляет всего 1,3 кг.

Ноутбук, работая от батареи с максимальной емкостью (9 ячеек), может функционировать до 15 часов без подзарядки, а в случае работы со второй сменной батареей, предлагаемой для ноутбука, время работы машины возрастает до 24 часов.

09.03.2011 10:30 · Категория: Железо · Источник: CyberSecurity.ru

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

Adobe выпускает конвертер Flash-HTML5

Adobe Systems сегодня сделала еще один шаг в сторону HTML5, выпустив программный инструмент Wallaby, позволяющий пользователям создавать файлы HTML5 на основе исходных роликов Flash. Новый конвертер Flash-to-HTML5 сейчас доступен на сайте Adobe Labs и пока он находится в стадии бета-тестирования.

С технической точки зрения, Wallaby представляет собой кросс-платформенное приложение Adobe AIR, позволяющее конвертировать файлы формата FLA (исходники Flash) в скрипты и тяги HTML5. Программа работает по принципу Drag&Drop, то есть от пользователя не требуется какого-либо вмешательства на этапе конвертирования. Сама по себе программа бесплатна.

Впервые о Wallaby представители Adobe заговорили еще на конференции Adobe Max 2010.

Сейчас в Adobe говорят, что Wallaby будет особенно полезен для Mac-пользователей, так как компания Apple всячески поддерживает HTML 5, более того Flash-контент вообще недоступен на iPad и iPhone. Также в Adobe говорят, что пока Wallaby не поддерживает все возможности перевода в HTML5, но есть поддержка основных моментов языка.

Выходные данные компания дает в виде комбинации HTML, SVG и CSS. Векторная графика здесь конвертируется в SVG, растровая - в JPG. Также программа поддерживает пакетное преобразование нескольких файлов в HTML5.

Разработка доступна по адресу http://labs.adobe.com/technologies/wallaby/

09.03.2011 10:30 · Категория: Программирование · Источник: CyberSecurity.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 если иное не указано отдельно.


В избранное