Рассылка закрыта
При закрытии подписчики были переданы в рассылку "BloggLand и Я | Блоггландия" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
В восемнадцатом выпуске рассылки '.Net Собеседник' вы можете прочесть обзор новых компонент и продуктов, разработанных с использованием платформы .Net,
Информационный Канал Subscribe.Ru |
.Net Собеседник #18
Содержание- От автора
- Обзор новостей
- Статья выпуска - Используем сетку свойств в C#
- Время кода - Проверка дат с использованием классов .NET пространства имён Globalization
- Форумы .Net на www.sql.ru
От автора
Здравствуйте, коллеги!
Герой последней недели - компания Microsoft, выпустившая в свободное плавание
беты своих экспресс-версий Visual Studio C#, VB.Net, SQL Server 2005, .Net
Framework 2.0 и бету SDK.
Обсудить нововведения и поделиться впечатлениями можно на нашем форуме -
- .NET Framework 2.0 ADO.NET. Что нового?
- Visual Studio 2005 Whidbey, NetFrameWork 2.0 {Кто-нибудь попробовал .NET Framework 2.0?}
Обзор новостей
-
Microsoft
выпустила "Express"-редакцию Visual Studio
- Если вы пишете на одном языке и любите поиграться с последними инструментами от Microsoft, то специально для вас Microsoft выпустила "Express" редакции Visual Studio, которые доступны для бесплатной загрузки через MSDN. Каждая версия инструмента в этой редакции способна скомпилировать консольное приложение или приложение WinForms, а также библиотеки классов.
- В добавок к версиям, поддерживающим VB.NET (в будущем VB 8), C#, C++ и J#, есть Express редакции SQL Server 2005 и версия "для веб-разработчика" (для разработки приложений ASP.NET на любом языке .NET).
- Посетите страничку Express center home page для скачивания этих продуктов.
- Доступна первая бета-версия Visual Studio 2005/.NET 2.0
- Microsoft выпустила первую бету среды разработки и платформы Visual Studio 2005/.NET 2.0, для подписчиков MSDN. Также, уже для свободного скачивания, доступны SDK и сам Framework.
- Microsoft также утверждает, что вскоре, за небольшую плату, будет доступна Visual Studio 2005 Beta 1, детали «оплаты» пока не известны.
- Проект Mono вышел в версии 1.0
- Проект Mono, результат усилий сообщества, возглавляемого Miguel de Icaza и Ximian (теперь являющейся частью Novell), достиг версии 1.0, по прежнему являясь open-source инициативой платформы .Net, совместимой со стандартом ECMA CLI. Доступны версии для ОС Red Hat, Windows и Mac OS/X.
- В состав Mono 1.0 входят несколько компонентов. Это компилятор языка C# (версии 1.0), совместимая с .Net виртуальная машина и два набора программных интерфейсов (API). Первый из них предназначен для использования преимуществ Linux, а второй обеспечивает совместимость с .Net Framework 1.1, обеспечивает поддержку ASP.NET, ADO.NET и других компонентов .Net. С помощью Mono могут создаваться как клиентские, так и серверные приложения и веб-сервисы. Кросс-платформенная библиотека Gtk# позволяет разрабатывать приложения для Windows, Linux и Mac OS X на базе одного и того же кода, написанного на любом из поддерживаемых Mono языков, среди которых VisualBasic, Python, JScript и Java.
- Больше вы можете узнать по ссылкам http://www.mono-project.com/about/index.html, скачать Mono можно здесь http://www.mono-project.com/downloads/index.html. Комментарии к выпуску Mono лежат здесь http://go-mono.com/archive/1.0/index.html, а лицензионный FAQ - http://www.mono-project.com/about/licensing.html.
- Вышел Quadrasis EASI Community Edition
- Quadrasis, Inc. (http://www.quadrasis.com) объяявила о выходе EASI Express Community Edition, набора сервисов и API, обеспечивающтх интегрированную безопасность вашего приложения. EASI CE бесплатна и поддерживает ОС Windows, Solaris и Linux. Поддерживаются также средства разработки для языков Java, C++ и платформы .NET.
- Вышел deloittes.NET ASP.NET Directory v1.0
- С помощью этого продукта можно легко создать портал по типу Yahoo!. Поставляется с кодом на VB.NET и файлами проектов VS.NET, администрированием каталогов через веб, поддерживает списки Что Нового и Горячие Новости, поиск с подсветкой, SQL Server с хранимыми процедурами и т.д.
- Вышел siteDirector .NET
- siteDirector .NET – это обработчик ошибок HTTP 404, тесно интегрированный с IIS для обработки ВСЕХ ошибок типа «ресурс не найден». Представляет собой небольшую, лёгкую в использовании утилиту, которая расположена на сайте – «must-have» для всех собственников веб-сайтов.
- DataGridColumns .NET Column Styles
- Количество работы, которую необходимо выполнить для достижения поставленного результата с помощью Windows Forms DataGrid, зачастую гораздо больше, чем вы могли ожидать. В основном, из-за того, что элемент управления Windows Forms DataGrid работает с колонками данных, а не с ячейками. Предлагаемая сборка поможет решить эту проблему.
- Вышла СУБД VistaDB 2.0 (Beta 3) для .NET
- Доступна для загрузки СУБД VistaDB 2.0 (Beta 3) для .NET. Beta 3 имеет существенные улучшения по сравнению с предыдущими выпусками. VistaDB – альтернатива №1 при выборе БД Access/JET, MSDE, xBase и иногда SQL Server, для построения от малых до средних приложений .NET, использующих БД.
- Соглашения по наименованию: вышла бесплатная бета devAdvantage 2.0 – обнаружение и устранение нарушений
- devAdvantage beta 2.0 теперь доступна для использования! devAdvantage выполняет анализ кода C#, автоматизируя процесс его проверки. В отличие от других продуктов, devAdvantage позволяет вам быстро корректировать нарушения соглашений наименований, благодаря использованию встроенной возможности рефакторинга кода. Последний релиз поставляется с большим набором настраиваемых соглашений для языка C#. Участники бета-программы получат 45% скидку на версию 2.0 после её выхода.
- Если вы пишете на одном языке и любите поиграться с последними инструментами от Microsoft, то специально для вас Microsoft выпустила "Express" редакции Visual Studio, которые доступны для бесплатной загрузки через MSDN. Каждая версия инструмента в этой редакции способна скомпилировать консольное приложение или приложение WinForms, а также библиотеки классов.
- A System.Security.SecurityException exception occurs when you try to impersonate a user from a secondary thread in an ASP.NET Web application
- BUG: The Visual C++ compiler generates an incorrect Microsoft intermediate language (MSIL) data type for a managed pointer to an IntPtr variable
- How To Use Windows XP Visual Styles with .NET Windows Forms
- How To Insert NULL Data with OLE DB SDK Interfaces
- How To Logical Values Must Be Sent to SQL Server as 1 or 0
- How To Open Documents Using the Internet Publishing Provider
Статья выпуска
Используем сетку свойств в C#
ЯЗЫК: ASP.Net
Автор статьи: Mike Gold http://www.c-sharpcorner.com/
Знакомы ли вы с тем окном в Visual Studio .NET, с помощью которого происходит редактирование свойств всех ваших форм? Вы помните, то самое, которое вы хотели бы добавить к своим программам, поскольку оно имеет такой приятный интерфейс? Да-да, то самое Окно Свойств (Property Window)! Представляете? Вы можете добавить его к форме во время ее дизайна и использовать ее для предоставления пользователем возможности редактирования свойств класса, поскольку Microsoft уже разработала такую функциональность, которая просто не отображается на панели инструментов. Элемент управления называется Сетка Свойств (Property Grid) и вы имеете к нему полный доступ. Просто щелкните правой кнопкой мыши на панели инструментов и выберите Add/Remove Items...
Тем самым вы вызовете диалоговое окно Customize Toolbox, которое позволит вам выбрать компоненты .NET или COM компоненты. Прокрутите вниз до PropertyGrid, отметьте его и нажмите OK. Опа! Теперь у вас есть очень мощный компонент редактирования, в котором вы можете дать возможность пользователям изменять свойства ваших классов посредством удобного интерфейса.
Подготовка класса для работы с Property Grid
С Сеткой Свойств очень просто работать. Единственным сложным моментом является этап подготовки вашего класса для корректного отображения в ней. Первым шагом является создание публичных свойств для полей, которые вы хотите отобразить. Все свойства должны иметь методы get и set. (Если у вас не будет метода get, свойство не отобразится в PropertyGrid). Как только вы сделаете необходимый минимум по созданию свойств, объект вашего класса станет доступен для отображения в Сетке Свойств. Однако, ваша Сетка Свойств не будет разбивать поля на разделы с описаниями, категориями и т.п., так, как это делает Visual Studio.NET. Для того, чтобы сделать вашу Сетку Свойств изящной, вам необходимо добавить специальные атрибуты к каждому из ваших свойств. Эти атрибуты содержатся в пространстве имен System.ComponentModel и показаны в таблице ниже:
Атрибут | Описание |
CategoryAttribute | Этот атрибут помещает ваши свойства в соответствующую категорию в узле сетки свойств. |
DescriptionAttribute | Этот атрибут помещает описание вашего свойства внизу сетки свойств. |
BrowsableAttribute | Этот атрибут используется для определения показывать или скрывать свойства от Сетки Свойств. |
ReadOnlyAttribute | Данный атрибут позволяет сделать ваше свойство свойством только для чтения. |
DefaultValueAttribute | Определяет значение по умолчанию свойства, отображаемое в Сетке Свойств |
DefaultPropertyAttribute | Если этот атрибут размещается над свойством, то это свойство получает фокус при первом отображении Сетки Свойств. |
Таблица 1 – Атрибуты, необходимые для подготовки класса к отображению в Сетке Свойств
Пользовательский класс
Теперь мы готовы создать собственный класс и сделать его способным
отобразить себя в Сетке Свойств. Для того, чтобы использовать атрибуты,
перечисленные в таблице 1, мы должны указать пространство имен
System.ComponentModel:
using System.ComponentModel;
Затем мы просто создаем собственный класс с приватными полями и публичными
свойствами для доступа к этим полям. Атрибуты размещаются над этими свойствами
для того, чтобы приготовить каждое свойство для отображения в Сетке Свойств.
Листинг 1 – Пользовательский класс, готовый для отображения в PropertyGrid
/// <summary>
/// Пользовательский класс для отображения в Сетке Свойств /// </summary> /// [DefaultPropertyAttribute("Name")] public class Customer { private string _name; private int _age; private DateTime _dateOfBirth; private string _SSN; private string _address; private string _email; private bool _frequentBuyer; // Свойство Name с атрибутом категории и // атрибутом описания [CategoryAttribute("ID Settings"), DescriptionAttribute("Name of the customer")] public string Name { get {return _name;} set {_name = value;} } [CategoryAttribute("ID Settings"), DescriptionAttribute("Social Security Number of the customer")] public string SSN { get { return _SSN;} set {_SSN = value;} } [CategoryAttribute("ID Settings"), DescriptionAttribute("Address of the customer")] public string Address { get {return _address;} set {_address = value;} } [CategoryAttribute("ID Settings"), DescriptionAttribute("Date of Birth of the Customer (optional)")] public DateTime DateOfBirth { get { return _dateOfBirth;} set {_dateOfBirth = value; } } [CategoryAttribute("ID Settings"), DescriptionAttribute("Age of the customer")] public int Age { get {return _age;} set {_age = value;} } [CategoryAttribute("Marketting Settings"), DescriptionAttribute("If the customer has bought more than 10 times, this is set to true")] public bool FrequentBuyer { get {return _frequentBuyer;} set {_frequentBuyer = value;} } [CategoryAttribute("Marketting Settings"), DescriptionAttribute("Most current e-mail of the customer")] public string Email { get {return _email;} set {_email = value;} } public Customer() { } } |
Указание объекта для PropertyGrid
Все, что осталось сделать для запуска Сетки Свойств – указать объект нашего
пользовательского класса. Сетка Свойств автоматически, через отображение,
определит все поля объекта и выведет их на экране. Еще одним приятным свойством
этой сетки является то, что она создает специальные элементы управления для
редактирования значений, базируясь на типе этих значений. Например, свойства
Date of Birth (типа DateTime) нашего объекта позволит вам редактировать
значение даты с помощью элементов управления календарь. Логические
значения могут редактироваться с помощью комбобокса, отображая True или False
(спасая вас от излишнего набора этих значений на клавиатуре).
Листинг 2 – сопоставление объекта сетке свойств
private void Form1_Load(object sender,
System.EventArgs e)
{ // Создает объект для отображения Customer bill = new Customer(); // Установка значений для свойств bill.Age = 50; bill.Address = " 114 Maple Drive "; bill.DateOfBirth = Convert.ToDateTime(" 9/14/78"); bill.SSN = "123-345-3566"; bill.Email = bill@aol.com; bill.Name = "Bill Smith"; // Установка сетки в объект для отображения propertyGrid1.SelectedObject = bill; } |
Просмотр результатов
Если мы посмотрим на результат наших усилий, то увидим, что наши свойства разбиты на две категории ID Settings и Market Settings, которые отображаются как заголовки двух узлов дерева. Описание свойства FrequentBuyer показано внизу Сетки Свойств, таким, каким мы указали его в DescriptionAttribute этого свойства.
Вывод
Сетка Свойств является мощным элементом управления, позволяющим пользователю редактировать свойства вашего класса. Благодаря возможности вашей Сетки Свойств к отображению и привязке к вашему классу, остается не так много работы для того, чтобы заставить этот компонент функционировать. Вы можете добавить категории и описания к вашей сетке, используя специальные атрибуты модели System.Component, получив в итоге новый и удобный элемент интерфейса вашей программы.
Время кода
Проверка дат с использованием классов .NET пространства имён Globalization
ЯЗЫК: C#
АВТОР: Tom Archer, http://www.developer.com/
ПЕРЕВОД: Чужа В.Ф ака hDrummer
Вступление
Зачастую самая простая проверка пользовательского ввода сводится к
использованию маски в строке ввода таким образом, чтобы пользователь вводил
верные данные день/месяц/год в эту строчку. Можно также позволить пользователю
вводить дату в свободном виде, что означает последующую проверку этой даты в
коде.
static bool ManuallyValidate(String date)
{ // проверяем месяц в формате mmddyy или mmddyyyy if (Convert.ToInt32(date.Substring(0, 2)) < = 12 && Convert.ToInt32(date.Substring(0, 2)) > = 1) // продолжаем проверку ... return true; else return false; } |
Однако ясно, что такой подход работает только для одного формата даты — если только вы не добавите в него параметр формата и кучу кода для поддержки каждого формата дат. Более удачным подходом будет использование типов, доступных в пространстве имён .NET Globalization. Вот пример использования типов DateTimeFormatInfo и DateTime, служащий для проверки ваших дат тремя строками кода:
static bool ValidateDate(String date, String
format)
{ try { System.Globalization.DateTimeFormatInfo dtfi = new System.Globalization.DateTimeFormatInfo(); dtfi.ShortDatePattern = format; DateTime dt = DateTime.ParseExact(date, "d", dtfi); } catch(Exception) { return false; } return true; } |
Как мы видим, метод ValidateDate принимает параметр типа String, представляющий дату для проверки и ещё один параметр типа String, представляющий формат этой даты - yymm или MMdd. Метод можно вызвать так:
bool success;
success = ValidateDate("3403", "MMmm");// false, т.к. 34 месяца нет success = ValidateDate("3403", "yymm");// true success = ValidateDate("1212", "MMdd");// true |
Конечно, можно дальше развить эту идею, но эта статья призвана служить всего лишь примером того, что может быть сделано с помощью пространства имён Globalization и как легко мы можем его использовать. Список поддерживаемых шаблонов можно посмотреть в помощи по типу DateTimeFormatInfo, а также в статье ShortDatePattern vs. LongDatePattern из встроенной помощи.
Скачайте код
Здесь можно скачать код для этого примера.
{К содержанию}
Форумы .Net - вопросы оставшиеся без ответа
Как
сохранить данные из ADO Recordset, что бы распечатать?
добавление удаление в DataGrid
заставить XMLSPY печатать русские буквы в редакторе
Подключение компилятора к EditPlus
Ошибка обращении к файлу Access из ASP.NET C#
Использование библиотеки dll в asp страницах
Как реализовать клик на заголовке ListView
Деление на 0
Размер исполняемого файла
На этом восемнадцатый выпуск .Net Собеседника закончен.
До следующего номера.
Чужа Виталий Ф. aka hDrummer,
hdrummer@sql.ru - жду ваши предложения, вопросы и замечания.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Адрес подписки |
Отписаться |
В избранное | ||