Рассылка закрыта
При закрытии подписчики были переданы в рассылку "BloggLand и Я | Блоггландия" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Октябрь 2004 → | ||||||
1
|
2
|
3
|
||||
---|---|---|---|---|---|---|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
16
|
17
|
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
Статистика
0 за неделю
В двадцать третьем выпуске рассылки '.Net Собеседник' вы можете прочесть обзор новых компонент и продуктов,
Информационный Канал Subscribe.Ru |
.Net Собеседник #23
Содержание- От автора
- Обзор новостей
- Статья выпуска - Как обезопасить свои сборки
- Время кода - Пустой ListView в C#
- Форумы .Net на www.sql.ru
От автора
Здравствуйте, коллеги!
- интервью с А.Гладченко
- А.Гладченко «Резервное копирование в репликации SQL Server»
- В.Веденин «Работа с Crystal Reports в приложениях .Net»
- М.Прохоров «Как правильно работать с Excel в .NET»
- М.Сухов «Технологии построения распределенных приложений в .NET»
- Д.Орлов «Подсистема сопоставления записей в Хранилище Данных»
- Б.Джоши, С.Топорков «Передача значений между веб-формами в ASP.NET»
- Козарь К. «Что нам стоит построить мост между .NET и Visual Fox Pro?»
- Чужа В.Ф. «Делаем отчёты в .Net своими руками»
- Чужа В.Ф. «System.Object в отражении глаз Саламандры»
Приглашаю авторов разместить в журнале свои статьи. Основная тематика – программирование, особенно приветствуются статьи о программировании на платформе .Net, программирование и администрирование СУБД MS SQL Server, Oracle, Interbase и т.д.
Обзор новостей
-
TallComponents выпустила версию бесплатную версию 1.1 компонента ASP.NET для
рендеринга PDF пиктограмм. Доступна демо-версия в онлайне.
- TallComponents серьёзно улучшила свой компонент для рендеринга страниц PDF в виде изображений для браузера (макс. 18 DPI). Компонент бесплатен как для коммерческого, так и для некоммерческого использования.
-
Dundas
Gauge для .NET предлагает разработчикам ещё одну улучшенную настройку
визуалиции данных
- Dundas Software объявила о выходе новой линейки улучшенных компонент для визуализации данных - Dundas Gauge for .NET. Dundas Gauge позволяет разработчикам добавлять в свои приложения хорошо настраиваемые шкалы различной формы.
-
devAdvantage 2.1 теперь доступен с обработкой исключений C#
- devAdvantage соединяет возможности инструментов рефакторинга и анализаторов статического кода, может детектировать и исправлять проблемы на основе проверенных практик на C#, стандартов кодирования и т.п.
-
Выполнение
длительных операций – ч.1
- Часто выполнение веб-приложений заканчивается выдачей ошибки "time out". Есть приемлемые пути выхода из этой ситуации, которые и обсуждаются в первой части этой статьи.
-
Компонент Nevron Chart для ASP
.NET
- Nevron LLC сообщает о выходе очередной версии компонента Nevron Chart для ASP .NET.
-
RichDatePicker
v1.5 для ASP.NET
- RichDatePicker v1.5 предлагает продвинутый пользовательский интерфейс для выбора даты и времени в приложениях ASP.NET. Поддерживает финансовые периоды, такие как Q1, Q2 и т.д.
-
ComponentOne объявила о выходе ComponentOne Response для Embedded Self-Service
- ComponentOne объявила о выходе новой версии ComponentOne Response, которая позволит разработчикам ПО включать Self-Service в приложения. При использовании этого инструментария конечный пользователь может получить доступ к онлайновым базам знаний без закрытия своего основного приложения.
-
Ускорьте разработку
приложений с помощью DataAide 1.0
- DataAide ускорит разработку ваших приложений путём генерирования стандартных хранимых процедур CRUD SQL Server и предлагая лёгкое генерирование слоёв доступа к данным на VB6 и .NET. Многие другие инструменты также включены в этот набор, который бесплатен и доступен по адресу http://dataaide.sourceforge.net.
-
Axosoft выпустила OnTime Defect
Tracker V4.2
- В OnTime V4.2 появилось множество разных отчётов, позволяющих командам разработчиков и тестировщиков анализировать дефекты и готовность продукта к выпуску. Доступна бесплатная однопользовательская версия и бесплатный SDK.
- You may receive an "Unable to connect to" error message when you try to debug a process through a firewall on a remote computer
- Some files in the Dllcache folder may not be updated when you run the Setup program for Microsoft Data Access Components
- Programmatically check for canonicalization issues with ASP.NET
- The Start Page of the IDE appears to be incomplete in Visual Studio .NET 2002
- You may require more than 300 MB of free disk space to install the October 2003 Visual Studio .NET Documentation Update
- PRB: You may not be able to establish an SIP session with audio between RTC clients
Статья выпуска
Как обезопасить свои сборки
ЯЗЫК: C#
АВТОР:
Ссылка на отзыв
Код к статье :
Демонстрационный проект
ПЕРЕВОД: Чужа В.Ф ака hDrummer
Вступление
Что заставляет людей воздерживаться от использования вами написанных сборок?
Использование Strong Names
Главный способ защиты сборки от атаки – использование строгого
имени (strong name) сборки. Строгое имя представляет из себя пару ключей (строк
чисел)— один закрытый и один открытый. Закрытый ключ находится внутри сборики и
является недоступным. Открытый же доступен всем. Вобщем, эта пара используется
для шифровки: открытый ключ используется для зашифровки потока данных, а
закрытый – для расшифровки, если, конечно, он у вас есть.
sn -k <keyfilename>.snk
[assembly: AssemblyKeyFile("mykeyfile.snk")]
Атрибуты доступа к коду
Есть несколько атрибутов, которые вы можете использовать вместе с вашими
классами для того, чтобы предотвратить их несанкционированное использование.
Все они являются наследниками
System.Security.Permissions.CodeAccessSecurityAttribute. Здесь я приведу пример
использования одного из них - StrongNameIdentityPermissionAttribute. Для
использования этого атрибута вам для начала необходимо извлечь открытый ключ из
файла .snk. Делается это с помощью утилиты Secutil.exe.
secutil -hex -c -s <yourassembly>.dll
То увидите примерно следующее:
Microsoft (R) .NET Framework SecUtil 1.1.4322.573
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
Public Key =
0x002400000480000094000000060200000024000052534131000400
0001000100B7E269CFBC5A020745C65DD01E39A01FC4819125A52265
186DB13D82B947B5745AC14CC11EAD50A6DE94B1BA7E2973867298C6
BB031A86DB0570BF8E12D08A98DF6D2609258449D3A10AE89165222E
F04A9B15BF7E896BB317B383137F12B3A93D928EA43720739BB62A22
0508BF4FD2E20F1CFE0FF63888FC25B6A1E0EABABD
Name =
Assemblies.File
Version =
1.1.0.0
Success
secutil -hex -c -s <yourassembly>.dll > key.txt
[StrongNameIdentityPermissionAttribute(SecurityAction.Demand,
PublicKey = "002400000480000094000000060200000024000052534131000400" +
"0001000100B7E269CFBC5A020745C65DD01E39A01FC4819125A522" +
"65186DB13D82B947B5745AC14CC11EAD50A6DE94B1BA7E29738672" +
"98C6BB031A86DB0570BF8E12D08A98DF6D2609258449D3A10AE891" +
"65222EF04A9B15BF7E896BB317B383137F12B3A93D928EA4372073" +
"9BB62A220508BF4FD2E20F1CFE0FF63888FC25B6A1E0EABABD")]
public class MyClass
{
public MyClass()
{
}
}
Выводы
Итак, мы рассмотрели как можно защитить наш код от замены хакером или от несанкционированного использования нашей сборки. В действительности существует гораздо больше атрибутов кода, которые можно использовать – я же поработал только с одним. В добавок вы можете написать и свои атрибуты доступа к коду – но это уже тема отдельной статьи.
Вот и всё, удачного программирования!Время кода
Пустой ListView в C#
ЯЗЫК: C#
АВТОР: Lubos Haskohttp://www.hasko.com.au/blog/
Код к статье : Демонстрационный код к статье
ПЕРЕВОД: Чужа В.Ф ака hDrummer
Вступление
Не удивляло ли вас, каким образом отображается текст в элементе управления ListView, если он пуст, например так, как это делается в Microsoft Outlook Express или других похожих приложениях?
За кулисами
OnPaint() работать не станет
Если вы подумали насчёт использования события OnPaint() – забудьте. Компонент ListView – всего лишь обёртка для элемента управления из библиотеки ComCtl и не генерирует это событие.
Можно использовать такой подход – сделать свой собственный пользовательский комопонент с ListView и меткой (Label) поверх него, которая будет видна только тогда, когда ListView пуст. Однако есть маленькая проблема – при изменении размера столбцов отрисовывается чёрная линия под меткой, что выглядит очень уж непрофессионально. Конечно, можно закрыть меткой всю площадь Listview, но тогда окажется, что не всегда видны полосы прокрутки. Вобщем, решив одну проблему – получаем другую и т.д.
Использование кода
Возможно наилучшим решением будет перегрузка метода WndProc примерно таким образом. Если m.MSG == 20, Listview вызывает функцию перерисовки своего фона, а мы просто сверху нарисуем нашу строчку, если компонент пуст.
protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == 20) { if (this.Items.Count == 0) { _b = true; Graphics g = this.CreateGraphics(); int w = (this.Width - g.MeasureString(_msg, this.Font).ToSize().Width)/2; g.DrawString(_msg, this.Font, SystemBrushes.ControlText, w, 30); } } } |
Вобщем то, что надо, но со временем мы заметим, что это решение не является идеальным. При изменении размеров всего Listview или одной колонки, часть строки будет видна вне области это колонки, что выглядит просто по-ламерски. Вот и улучшенный метод WndProc, в котором решена эта проблема:
protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == 20) { if (this.Items.Count == 0) { _b = true; Graphics g = this.CreateGraphics(); int w = (this.Width - g.MeasureString(_msg, this.Font).ToSize().Width)/2; g.DrawString(_msg, this.Font, SystemBrushes.ControlText, w, 30); } else { if (_b) { this.Invalidate(); _b = false; } } } if (m.Msg == 4127) this.Invalidate(); } // Не забудем перерисовать весь элемент управления при событии Resize и отобразить //нашу строку private void ListView2_Resize(object sender, EventArgs e) { if (_b) Invalidate(); } |
Вот и всё.
{К содержанию}
Форумы .Net на SQL.RU - вопросы оставшиеся без ответа
Программное создание отчета Crystal из .NETНе запускается приложение
Назначение и считывание значений переменных в цикле...
по Microsoft ACT
Как заставить .NET Framework устанавливаться вместе с приложением
Ошибка с ODBCConnection
почему не происходит изменения данных на сервере
Открытие диалога с выбранным путем на PPC
yield
На этом двадцать третий выпуск .Net Собеседника закончен.
До следующего номера.
Чужа Виталий Ф. aka hDrummer,
hdrummer@sql.ru - жду ваши предложения, вопросы и замечания.
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.prog.dotnetgrains |
Отписаться |
В избранное | ||