6/18/2007

Высота строки в DataGridView

Высоту строк можно задавать в обработчике события DataGridView.RowHeightInfoNeeded. Например, если высота каждой второй строки должна быть равна 50 пикселей, то в обработчике пишем следующее:

 

if(e.RowIndex % 2 != 0)

    e.Height = 50;

else

    e.Height = 24;

 

else … – это обязательно; иначе высота у всех строк будет одинаковая.

6/15/2007

Получил посылку

Наконец-то получил долгожданную посылку! Теперь у меня есть полная последняя версия MSDN за июнь 2007 прямо из Microsoft. Еще номинация подтвердилась бы, и буду полностью счастлив J

Ах, да еще нужна сеть широкополосная … а то, я со своими 56 к/битами (на самом деле меньше) могу только посмотреть на список файлов для загрузки. Да, это не то, что в Москве, где за $20 в месяц можно получить безлимитный доступ.

 

Поставил Microsoft Outlook 2007. Удобно, красиво. Но без шероховатостей не обошлось. Открыл контекстное меню для «RSS Feeds», выбрал “Import an OPML File…”,  указал файл уже не помню какого сайта с блогами. Загрузилось примерно 500 блогов. И, о ужас, в Outlook не реализованы групповые операции над фидами. Т.е. в папке RSS Feeds невозможно пометить несколько элементов и переместить их в другую папку. А может есть где-нибудь разрешающий чекбокс?

6/12/2007

Создание зависимостей между файлами в проекте

Например, есть большой проект с большим количеством файлов, некоторые из которых - это многие сотни строк кода. Чтобы упростить работу с такими "монстрами", можно определенные методы поместить в регионы (т.е. между #region и #endregion). Это помогает, но регионов тоже бывает слишком много. В таком случае можно объявить класс как partial и вынести часть методов в отдельный файл. Например, часть содержимого ObjectVisualize.cs вынести в ObjectVisualize.Interop.cs.
На первый взгляд - это удобно, но при этом количество файлов в Solution Explorer увеличивается - это "минус". Если файл разбит на несколько частей, и их надо перекинуть в другой проект, то приходится помечать каждый файл и после этого перекидывать. Что не очень удобно. Но есть еще один способ - создать зависимость между файлами. Например, для ObjectVisualize.cs и ObjectVisualize.Interop.cs надо:

  1. открыть .csproj-файл проекта в текстовом или xml редакторе
  2. найти тег <Compile Include="ObjectVisualize.Interop.cs"> и в него добавить тег <DependentUpon>ObjectVisualizer.cs</DependentUpon>
  3. сохранить файл
  4. в VS.IDE в появившемся диалоге "File Modification Detected" нажать "Reload".
В результате в Solution Explorer у ObjectVisualize.cs слева появится [+] и подфайл ObjectVisualize.Interop.cs. Это очень удобно. Cтранно, что в Visual Studio 2005 на уровне UI нет встроенной возможности по созданию зависимостей между файлами c partial классами, но воможно появится в следующей версии.

6/05/2007

Visual Studio 2008 Shell

Наверное, Visual Studio 2008 Shell - это самый долгожданный продукт для всех тех, кто когда-либо пытался создать WinForms приложение, похожее на Visual Studio IDE.

Было много реализаций ... Из всех мне в свое время понравились: DockManager (или WinFormsUI Docking, автор - Weifen Luo, см. на sourceforge.net) и SandDock (обнаружил в статье "Creating MS Office like automation supported object model in .NET", скачать).

Так вот, благодаря Visual Studio 2008 Shell теперь можно создать свою IDE, со своим Solution Explorer'ом, вложенными проектами, своими Toolbar'ами, редакторами и т.д. Наконец-то можно будет предоставить заказчику CMS (систему управления контентом/сайтом), в которой все привычно и удобно, нет ничего лишнего, есть поддержка Drag'n'Drop и не требуется постоянного подключения к сети.

- Visual Studio 2008 Shell Home Page
- Visual Studio Extensibility Team Blog

Visual Studio Shell (isolated mode)

In-process database (встроенная СУБД)

Можно забыть про сериализацию/десериализацию DataSet'ов и про Microsoft Access database.


SQL Server 2005 Compact Edition (прежнее название - SQL Server Everywhere Edition) - Ideal for mobile and desktop applications; Embeddable in applications for all Windows platforms, including tablet PCs, pocket PCs and smart phones (no longer restricted to the Windows Mobile platform); Free to download, develop, deploy, and redistribute; Microsoft is positioning Compact Edition as the default local database.

В Compact Edition отсутствует full text search и XML query processing.

- Microsoft SQL Server 2005 Compact Edition Home



- Microsoft SQL Server 2005 Compact Edition Overview
- Choosing Between SQL Server 2005 Compact Edition and SQL Server 2005 Express Edition
- Microsoft SQL Server 2005 Compact Edition Access Database Synchronizer - provides a way to synchronize data between Microsoft Access database on a desktop and Microsoft SQL Server 2005 Compact Edition database on a device.