вторник, 3 апреля 2007 г.

.netTiers Application Framework

.netTiers - это открытый (open source) бесплатный набор шаблонов для ORM (Object-Relational Mapping), берущий за основу существующую БД SQLServer и автоматически генерирующий персонализированные слои данных приложения (Data Tiers application block) для использования в .NET приложениях. Проект также можно найти на SourceForge.net, на SF его поддерживает один из авторов John Roland.

Для получения приемлемых результатов при применении O/RM технологий критически важно грамотно спроектировать модель БД, .netTiers не исключение из этого правила.

.netTiers генерирует код непосредственно по модели БД без использования вспомогательного XML (или иного) уровня представления. Поэтому использование написанной на "скорую руку" модели, с плохим выбором primary / foreign ключей и т.п. код получится таким же неудачным, так что перед первым использованием .netTiers, даже если это тестовая БД, проверьте еще раз, что она нормализирована и ключи определены верно и, по возможности, добавьте еще несколько не-ключевых полей, которые будут в дальнейшем использованы как фильтры.

Пропустить индексы в своей пробной БД модели достаточно просто, так как обычно выполняется предварительная оценка запросов и, затем уже определяются действительно необходимые индексы. .netTiers по индексам определяет, какие из столбцов должны иметь собственные методы для получения значений (и соответствующую автоматически генерируемую хранимую процедуру для обработки этих запросов). Если не определить индексов, то получение значений придется делать с помощью более общего запроса, с указанием критериев поиска, что скажется на быстродействии и удобстве.

.netTiers построен на основе платного генератора кода CodeSmith Tools, но выполняется (в январе было заключено соглашение) адаптация под бесплатный Smart Code Generator.

В данный момент для работы потребуется:

  • Visual Studio 2005
  • Codesmith 3.x+
  • Microsoft SQL Server 2000+ (с ограничениями поддерживаются и другие БД)
  • Microsoft .NET 2.0

Рекомендуются так же:

Скачать последнюю версию можно отсюда, там же есть доступ к SVN-репозитарию с текущими исходными кодами.

На RSDN есть тема в средствах разработки, посвященная в том числе и .netTiers.

Интересующиеся технологиями O/R mapping могут посмотреть на подобные бесплатные open source генераторы: EasyObjects.NET (еще один OR/M для Microsoft Enterprise Library) и MyGeneration.


Technorati tags: , ,

суббота, 17 февраля 2007 г.

Все о PInvoke

Недавно набрел на замечательный FAQ от GotDotNet, посвященный Platform Invoke (PInvoke): возможности вызова unmanaged (native) кода, например, Win32, из приложений .NET. В FAQ много полезной информации.

При использовании PInvoke частенько возникают проблемы, в том числе, не последняя - отсутствие прототипов Win32 API функций в пригодном для вставке в .NET виде. Я использую PInvoke.Net, также можно воспользоваться Interop Declarations for Windows.h Несложно и самому по прототипу составить соответствующее описание, но удобнее и быстрее воспользоваться готовым.

Пригодится так же Microsoft Win32 to Microsoft .NET Framework API Map

Technorati tags:

Blogus tags:

Возможности расширения приложений .NET

Уже довольно давно не обновлял свой блог: навалилось много работы, домашние дела и вообще много всего. Постараюсь исправиться :)

Microsoft решила более-менее стандартизировать подход к расширению приложений за счет разнообразных плагинов:

Microsoft .NET Framework сильно облегчает встраивание в собственные приложения компонентов, созданных другими разработчиками. Однако это просто, только если известно, к каким компонентам выполняется привязка. Если в момент сборки такие компоненты не известны, что типично для надстроек, то все становится намного сложнее. При расширении своих приложений у разработчиков часто возникают вопросы. Например, надстройки следует хранить в базе данных или на диске? Следует ли в надстройке использовать известный интерфейс или запрашивать тип для активации? Каков наилучший способ использования AppDomain, AppDomainManager и AppDomainSetup?

Эти и другие вопросы решаются в двух выпусках внутреннего бюллетеня CLR за счет введения в библиотеку базовых классов нового пространства имен System.AddIn, которое будет доступно в следующем выпуске Visual Studio® (с кодовым именем "Orcas").

Подробнее об этом можно узнать на русском языке, прочитав статью из февральского номера CLR Inside Out и ее продолжение Расширяемость приложений .NET, часть 2.

Этому же посвящен блог разработчиков: CLR Add-In Team Blog.

В блоге Jason He's WebLog рассматривается реализация данной модели для Paint.Net. Может быть интересен и блог одного из авторов: Jack Gudenkauf (JackG) WebLog.

Новые библиотеки доступны в январском CTP Visual Studio


Technorati tags: ,

Blogus tags: ,

вторник, 2 января 2007 г.

Tweak'и для Visual Studio 2005 SP1

Выпущенный недавно Service Pack (SP) для Visual Studio требует для установки очень много времени и свободного дискового пространства. Однако, эту ситуацию можно улучшить.

Для установки создайте и выполните командный файл:

reg export HKLM\Software\Policies\Microsoft\Windows\Installer installer.reg
reg add HKLM\Software\Policies\Microsoft\Windows\Installer /v MaxPatchCacheSize /t REG_DWORD /d 0 /f
net stop msiserver
start /wait VS80-KBnnnnnn-X86-mmm.exe
reg delete HKLM\Software\Policies\Microsoft\Windows\Installer /v MaxPatchCacheSize /f
reg import installer.reg
net stop msiserver
del /q installer.reg 2>nul

Здесь VS80-KBnnnnnn-X86-mmm.exe - имя файла с Service Pack'ом.

Подробнее можно почитать в блоге у автора метода: Save Time and Space for VS 2005 SP1 by Disabling the Patch Cache

Там же доступна информация о встраивании SP в инсталляционный пакет: Slipstreaming Visual Studio 2005 Service Pack 1

Technorati tags:

Blogus tags :

понедельник, 1 января 2007 г.

С Новым 2007 годом!

Поздравляю всех с наступившим 2007 годом!

Дружбы, радости и смеха,
Новых знаний, сил, успеха,
Жизни в счастье и в ладу,
Я Вам искренне желаю
В наступающем году!

Всего самого наилучшего!

З.Ы. У меня конец года выдался крайне насыщенным, настолько, что времени на ведение блога не было совсем. Сейчас, наконец, всё пришло в норму, и я смогу продолжить свои заметки.

вторник, 19 декабря 2006 г.

Professional C#/VB .NET Coding Guidelines

Компания SubMain выложила в свободный доступ книгу "Professional C#/VB .NET Coding Guidelines", посвященную вопросам соглашения имен, проверенным практикам кодирования и паттернам.

Книга содержит информацию по следующим темам:

  • Naming Guidelines
  • Class Member Usage Guidelines
  • Guidelines for Exposing Functionality to COM
  • Error Raising & Handling Guidelines
  • Array Usage Guidelines
  • Operator Overloading Usage Guidelines
  • Guidelines for Casting Types
  • Common Design Patterns
  • Callback Function Usage
  • Time-Out Usage
  • Security in Class Libraries
  • Threading Design Guidelines
  • Formatting Standards
  • Commenting Code
  • Code Reviews
  • Additional Notes for VB .NET Developers

Прямая ссылка на книгу. Перед скачиванием необходимо будет указать произвольный e-mail.

Там же на сайте обнаружил удобный бесплатный плагин для Visual Studio: SmartOutline for VS2005, облегчающий работу с регионами.

  • Easy way to create, edit and remove custom regions - even those that are not possible with the VS built-in tools
  • Works in any Visual Studio code editor, including custom editors
  • Works in conjunction with the auto outlining feature of the code editors such as those for VB.NET, C# etc
  • Persists/saves state (region name, collapsed/expanded) of regions between Visual Studio sessions

Technorati tags: ,

Blogus tags : ,

пятница, 15 декабря 2006 г.

Visual Studio Service Pack 1 (SP1)

Вышел релиз первого сервис пака для Visual Studio.

Подробнее: Visual Studio 2005 Service Pack 1 (SP1)

Through further advancement and feedback, Service Pack 1 also provides over 70 improvements for common development scenarios including:

  • New processor support (e.g., Core Duo) for code generation and profiling
  • Performance and scale improvements in Team Foundation Server
  • Team Foundation Server integration with Excel 2007 and Project 2007
  • Tool support for occasionally connected devices and SQL Server Compact Edition
  • Additional support for project file based Web applications
  • Windows Embedded 6.0 platform and tools support
Technorati tags:

Blogus tags :