Чтобы получить мультивизу Microsoft, достаточно указать адрес электронной почты и пароль. >>
ИТ, разработка ПО, .NET, C# и не только.
Чтобы получить мультивизу Microsoft, достаточно указать адрес электронной почты и пароль. >>
Автор: Mindberg на 8/06/2007 03:47:00 AM 0 коммент.
Программа «Майкрософт-Бизнес-Старт» открывает новые перспективы и возможности для начинающих компаний-разработчиков, благодаря которым они смогут:
Автор: Mindberg на 7/22/2007 01:08:00 PM 0 коммент.
Проекты, созданные в Orcas (Visual Studio 2008), не загружаются в Visual Studio 2005.
Но Orcas проекты можно загрузить и откомпилировать в Microsoft Expression Blend.
После загрузки проекта нажать Ctrl+Shift+B; для запуска программы - F5.
Автор: Mindberg на 7/18/2007 01:33:00 AM 0 коммент.
OneNote team members:
Chris Pratley: http://blogs.msdn.com/chris%5Fpratley/
David Rasmussen: http://blogs.msdn.com/owen%5Fbraun/
Daniel Escapa: http://blogs.msdn.com/descapa/
John Guin: http://blogs.msdn.com/johnguin/
Olya Veselova: http://blogs.msdn.com/olya_veselova/
P.S.
Автор: Mindberg на 7/12/2007 12:16:00 AM 0 коммент.
Дата релиза/выхода/запуска Windows Server 2008, Visual Studio 2008 и SQL Server 2008 - 27 февраля 2008 года.
см. здесь
Автор: Mindberg на 7/11/2007 02:51:00 AM 0 коммент.
После установки обновлений для Visual Studio 2005, во время компиляции проекта может появиться сообщение «Unable to find manifest signing certificate in the certificate store». Если такое случилось, то ... без паники, с проектом все нормально J.
Просто надо открыть свойства проекта, стать на Signing и отключить «Sign the ClickOnce manifest». Сохранить свойства.
Автор: Mindberg на 7/07/2007 08:12:00 AM 4 коммент.
Предрелизные версии Windows Vista назывались Longhorn и включали в себя файловую систему WinFS. На конференции Windows Hardware Engineers Conference в 2004 году была представлена Windows Longhorn (сборка 6.0.4074) с WinFS. Но релиз Windows Vista вышел без WinFS.
Говорят, что проект WinFS был прекращен из-за того, что у Microsoft не хватило времени. Но, ведь никто не знал точной даты выхода релиза.
Пока одни гадали, нашлись те, кто решил выпустить операционную систему со всеми функциональными возможностями, которые не вошли в Windows Vista. Энтузиасты объединились и даже выпустили предварительную версию Longhorn Reloaded. Но теперь проект закрыт. Наверное юристы объяснили энтузиастам, что есть такое понятие как чужая собственность, и что без письменного разрешения не надо эту самую собственность использовать ... даже в качестве фундамента.
Поменьше бы таких энтузиастов, а то ведь не у всех есть хорошие юристы J.
Что касается WinFS, то по сути – это база данных, в которой хранятся имена файлов, папок и их отношения. Проект не был закрыт и забыт. Он просто стал частью другого большого проекта под названием Katmai (SQL Server 2008). Подробнее про Katmai, см. здесь.
Автор: Mindberg на 7/02/2007 12:27:00 PM 0 коммент.
Первым был QnA.live.com – cервис Microsoft, позволяющий задать вопрос и получить ответ на него.
Потом появился otvet.mail.ru
А теперь открылась служба «Вопросов и ответов» Google.
Автор: Mindberg на 7/02/2007 12:27:00 PM 0 коммент.
VSCmdShell Tool – это Command Prompt, встроенный в Visual Studio.
После установки в Visual Studio см. в главном меню: View – Shell Windows (VsCmdShell).
Умеет работать с Ctrl+C и Ctrl+V; есть привычное выделение мышью.
Прощай, Command Prompt J, в котором в результате Ctrl+V появляется ^V, а для копирования текста надо вызвать контекстное меню, нажать Mark, выделить блок (а не текст), нажать Enter ... это ж надо было такое придумать. Наверное, идея такого копирования лежала в основе допотопного *niх'а J, и реализовывал такое копирование тайный фанат этого самого *nix'a.
Каждый раз как я использовал такое копирование, отмечал, что это – тихий ужОс.
Автор: Mindberg на 6/30/2007 02:07:00 PM 0 коммент.
Как жизнь разработчика сделать проще?
Надо дать ему инструмент, который позволит сократить необходимое количество ударов пальцами по клавиатуре. Т.е. это средство должно само редактировать проект по-щучьему велению и по хотению разработчика. Вот таким средством и является Guidance Automation.
Основные принципы работы GA:
· GA интегрирован в Visual Studio.
· Диалог GA можно вызвать через контекстное меню.
· GA содержит список заданий, которые можно выполнить над объектом (для которого было вызвано контекстное меню).
· В результате выполнения определенного задания в Solution вносятся изменения. Например, в текущий класс добавляются методы. Или в Solution добавляется еще один проект. И т.д., и все, что угодно.
· Задания можно создавать на основе готовых компонентов. Созданные задания отображаются в диалоге GA.
Guidance Automation Extensions
The Guidance Automation Extensions (GAX) enable you to run guidance packages, such as the Guidance Automation Toolkit or those included in Software Factories. You can use the Guidance Automation Toolkit (GAT) to author or customize guidance packages.
The Guidance Automation Toolkit allows you to author guidance packages and software factories which expose reusable code and pattern assets directly in Visual Studio 2005. It is designed to simplify integrating reusable code into applications, by automating development activities that developers would usually perform manually.
P.S.
Software Factories является приоритетным направлением ... См. Where Software Architecture Goes from Here «While concepts like patterns and SOA are already or are becoming mainstream, software architecture continues evolving and expanding to new spaces. Although this article is too short to discuss all of the other software architecture trends which build on SOA, like model driven architecture (MDA) or software factories, you can find more information on the Software Factories page in the MSDN/Architecture Center.»
Автор: Mindberg на 6/30/2007 08:12:00 AM 0 коммент.
Skyscrapr - site on MSDN where you can learn about software architects and architecture. Whether you have a career aspiration to become a software architect, or you are wondering what architects in IT organizations are responsible for, Skyscrapr is the place to find out the answer.
FAQ с ответами на вопросы: Кто такие архитекторы? Что делают / чем занимаются архитекторы? Как стать архитектором?
Другие сайты по теме: MSDN/Architecture, The Architecture Journal, Related Sites.
Типы архитекторов: Solutions Architecture, Infrastructure Architecture, Enterprise Architecture.
Форум по архитектуре ПО: forum
Адреса, явки и пароли известных архитекторов: Architect Career Profiles.
Автор: Mindberg на 6/30/2007 07:05:00 AM 0 коммент.
Как можно организовать работу с командной строкой (подразумевается, что через командную строку программа получает необходимые данные).
Способ 1:
(код разбора строки и загрузки свойств находится внутри класса)
public class Host
{
public static void Main(string[] args)
{
Util util = new Util(args);
util.Start();
}
}
public class Util
{
public Util(string[] args)
{
// парсинг и валидация значений args[]
}
public void Start() {...}
}
Плюс: коротко и ясно.
Минус: если Util понадобится, например, в WF-активности, то при каждом вызове будет происходить парсинг и валидация значений args[].
Примечание: конструктор Util можно сделать без параметров, при этом использовать значение Environment.CommandLine.
Способ 2:
(отдельный immutable-класс с параметрами для класса Util)
public class Host
{
public static void Main(string[] args)
{
UtilSettings us = new UtilSettings(args);
Util util = new Util(us);
util.Start();
}
}
public class Util
{
public Util(UtilSettings s) {...}
public void Start() {...}
}
public class UtilSettings
{
public UtilSettings(string[] args) {...}
}
Плюс: избавились от минуса, который был в «Способ 1».
Минус: данные для UtilSettings передаются через конструктор. Если источников с данными будет несколько, то и конструкторов будет несколько. В итоге, чтобы понять что делать с данными, надо будет смотреть на количество и очередность параметров у конструкторов.
Способ 3:
(модифицированный UtilSettings из «Способ 2»)
public class UtilSettings
{
private UtilSettings() { }
public static UtilSettings FromCommandLine(string[] args) {...}
}
Плюс: избавились от минуса, который был в «Способ 2».
Минус: нет.
Теперь, если понадобится загрузить параметры, например, из xml-файла, то в UtilSettings надо просто добавить соответствующий метод, например,
public static UtilSettings FromXml(string path) {…}
Автор: Mindberg на 6/30/2007 06:30:00 AM 0 коммент.
Вот эти «хлебные крошки»* MSDN Home > Visual Studio > Extending Visual Studio > Affiliate Home Page ведут к набору компонентов для работы с HTTP, FTP, SMTP and POP3.
Компания RemObjects предлагает «Internet Pack 'Vinci' for .NET»:
The main goal of Internet Pack is to abstract the already powerful and relatively easy to use Socket classes of the .NET framework to provide a library that makes it easy to implement the different communication protocols commonly used on the Internet, as well as to implement custom forms of network communication. Built on top of this flexible and highly scalable architecture, Internet Pack provides ready-to-use client and server components for many protocols, including HTTP, FTP, SMTP and POP3, and more components are added over time. Internet Pack for .NET is available as a free download including full source, under the Internet Pack License.
Product Features: |
|
Пока не смотрел, но судя по описанию, там есть на что посмотреть.
То что есть исходник – это хорошо. Но можно и без него обойтись, если сборки не обфусцированы (см. Reflector) ;)
* «хлебные крошки» = navigation path — which is also known as a breadcrumb or eyebrow — that shows the user the current page location and displays links as a path back to the home page.
Автор: Mindberg на 6/30/2007 04:17:00 AM 0 коммент.
В Windows Live скоро появятся новые сервисы:
Windows Live Photo Gallery
is a stand-alone service that upgrades Windows Vista's Windows Photo Gallery. Offered at no charge, Windows Live Photo Gallery enables both Windows Vista and Windows XP SP2 customers to share, edit, organize and print photos and digital home videos).
Windows Live Folders
will provide customers with 500 megabytes of online storage at no charge.
Так сказал Chris Jones (Corporate Vice President, Windows Live Experience Program Management).
А еще он сказал: we want to people to be able to connect to the content they want regardless of what device they're on – be it a PC at home or work, or a phone. ... We're taking proactive steps to make this a reality.
P.S.
Наверное, не пройдет и года, как Microsoft объявит о выходе .NET-процессора с названием, например, «Кристаллический .NET» или «Силиконовый .NET». Скорее всего .NET-процессоры будут использоваться не только в телефонах ;)
Автор: Mindberg на 6/30/2007 02:56:00 AM 0 коммент.
Windows Mail - это всем известный Outlook Express после прокачки J. Наконец-то, можно создавать учетные записи на основе xml-файлов (IMAP Mail Account File, NNTP News Account File, Template Account File).
см. MSDN: New Handling for Account Data
(ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/outlookexpress/oe/overviews/account_entry.htm)
Автор: Mindberg на 6/28/2007 08:39:00 AM 0 коммент.
Ситуация: иногда бывает, что IE не может или не хочет отобразить код страниц. Т.е. вызов View – Source не работает как предполагается.
Решение:
1. Создать папку, например, Z:\Projects\IE View Source
2. Создать в ней файл: ViewSource.htm со следующим текстом:
<html>
<body>
<script language="JavaScript" defer>
var win = external.menuArguments;
var szsource = win.document.documentElement.outerHTML;
var wincounter = 0;
var mywin = null;
do
{
mywin = window.open("about:blank", "Source" + wincounter++,
"toolbar=no,location=no,menubar=yes,status=yes,scrollbars=yes,resizable=yes");
}
while(mywin == null);
mywin.document.open("text/plain");
mywin.document.write(szsource);
mywin.document.close();
mywin.document.title = "Source for: " + win.location.href;
</script>
</body>
</html>
3. Запустить regedit; в ветке HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt создать Key с именем
View Source. В Default записать: Z:\Projects\IE View Source\ViewSource.htm
4. Открыть IE, в контекстном меню выбрать View Source.
Подробнее, см. MSDN: "Adding Entries to the Standard Context Menu" (ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WEBDEV.v10.en/ieext/workshop/browser/ext/tutorials/context.htm)
P.S.
Все сказанное выше не поможет, если IE запущен в режиме Run As с включенным Run this Program with restricted access.
Автор: Mindberg на 6/28/2007 04:41:00 AM 0 коммент.
Под управлением Windows Server 2008 теперь работают все сайты Microsoft.
Статистика:
Audience Reach:
#4 in U.S (65M UU) & #5 worldwide (287M UU)
Availability YTD:
99.83% (Measured by Keynote Systems, Inc.)
0% Impact to Availability during upgrade to Beta 3
99%+ of hosted App's upgraded without any change required
Hosting Model:
2 Internet Data Centers & 80 Web Servers
500+ Vroots, 350+ IIS Web Applications & 12 Application Pools
10,000 Requests/Sec & 300,000 Concurrent Connections
Автор: Mindberg на 6/28/2007 04:41:00 AM 0 коммент.
Outlook Express:
Открыть Outlook Express во весь экран. Перейти на одну из групп новостей на любом из новостных серверов (NNTP). Запустить flash.exe (Microsoft HTML Help Image Editor Version 4.73). Выбрать режим «Capture Using Mouse».Окно flash'а скрывается, под мышью находится Outlook Express и список тем из выбранной группы новостей. Щелкнуть левой кнопкой мыши. Окно flash'а появляется и в нем некорректный скриншот. Список новостей в Outlook Express смещен в правый нижний угол
Excel 2007:
Открыть Excel 2007 во весь экран. Запустить flash.exe. Выбрать режим «Capture Using Mouse». Щелкнуть левой кнопкой мыши. В результате скриншот некорректный, а в Excel вся сетка съезжает вниз. И с каждым создание скриншота съезжает все больше и больше.
P.S.
ОС: Windows Server 2003 R2 EE SP2
Автор: Mindberg на 6/27/2007 01:30:00 PM 0 коммент.
Кто писал Automatic Updates? Сэкономили на юзабилити: окно маленькое, изменить размер невозможно; невозможно указать порядок загрузки исправлений; список обновлений отображается в виде текста, а не в виде таблицы: [степень важности | дата выхода | название | размер обновления | продукт ];
Среди компонентов Windows нашел Software Update Services. Подумал, что в нем есть все что мне надо.
После установки в IIS появилось новое веб-приложение http://localhost/susadmin/
На странице Synchronize server нажал на кнопку Synchronize Now. Через какое-то время получил сообщение, что загружается 1-е исправление из, кажется, 1345 исправлений. М-да ... L
Автор: Mindberg на 6/27/2007 03:50:00 AM 0 коммент.
Сегодня можно поставить точку, переезд на Windows Server 2003 завершен! Это было похоже на страшный сон. То драйверов нет, то еще что-то. Самый ужас - установка TFS (Team Foundation Server). У него самый привередливый инсталятор. Ему надо … нет, не буду говорить, что ему надо J ... лучше всего при его установке строжайшим образом соблюдать все шаги, приведенные в TFSInstall.chm! Иначе инсталятор TFS будет выдавать ошибки одну за другой, см. Common Team Foundation Server installation errors and possible resolutions.
Автор: Mindberg на 6/27/2007 03:49:00 AM 0 коммент.
Решил посмотреть на последовательность событий, которые создает DataGridView. В гриде всего один столбец и две строки с текстом.
DataTable table = new DataTable();
table.Columns.Add("key", typeof(string));
for (int i=0; i < 2; i++)
table.Rows.Add("key" + i);
DataGridView grid = new DataGridView();
grid.Dock = DockStyle.Fill;
grid.Parent = this;
grid.DataSource = table;
grid.AllowUserToAddRows = false;
grid.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
С помощью UniversalEventHandler сгенерировал код, который ко всем найденным 187-и событиям подключил общий для всех обработчик. Запустил программу и получил от DataGridView следующие события:
0001: DockChanged
0002: ParentChanged
0003: VisibleChanged
0004: Layout
0005: Resize
0006: SizeChanged
0007: ClientSizeChanged
0008: ColumnAdded
0009: RowHeightInfoNeeded
0010: RowHeightInfoNeeded
0011: RowsAdded
0012: RowsRemoved
0013: RowHeightInfoNeeded
0014: RowHeightInfoNeeded
0015: RowsAdded
0016: RowHeightInfoNeeded
0017: RowsAdded
0018: RowHeightInfoNeeded
0019: RowsAdded
0020: BindingContextChanged
0021: DataBindingComplete
0022: RowsRemoved
0023: ColumnRemoved
0024: ColumnAdded
0025: RowHeightInfoNeeded
0026: RowHeightInfoNeeded
0027: RowsAdded
0028: RowsRemoved
0029: RowHeightInfoNeeded
0030: RowHeightInfoNeeded
0031: RowsAdded
0032: RowHeightInfoNeeded
0033: RowsAdded
0034: RowHeightInfoNeeded
0035: RowsAdded
0036: DataSourceChanged
0037: DataBindingComplete
0038: RowsRemoved
0039: AllowUserToAddRowsChanged
0040: AutoSizeColumnsModeChanged
0041: HandleCreated
0042: RowHeightInfoNeeded
0043: RowHeightInfoNeeded
0044: RowHeightInfoNeeded
0045: RowHeightInfoNeeded
0046: RowHeightInfoNeeded
0047: RowHeightInfoNeeded
0048: RowUnshared
0049: RowStateChanged
0050: RowUnshared
0051: RowStateChanged
0052: ColumnStateChanged
0053: Invalidated
0054: ColumnWidthChanged
0055: RowHeightInfoNeeded
0056: RowHeightInfoNeeded
0057: RowEnter
0058: CurrentCellChanged
0059: CellEnter
0060: RowHeightInfoNeeded
0061: RowHeightInfoNeeded
0062: Invalidated
0063: RowHeightInfoNeeded
0064: RowHeightInfoNeeded
0065: Invalidated
0066: RowHeightInfoNeeded
0067: RowHeightInfoNeeded
0068: Invalidated
0069: RowStateChanged
0070: SelectionChanged
0071: RowHeightInfoNeeded
0072: RowHeightInfoNeeded
0073: Invalidated
0074: RowStateChanged
0075: SelectionChanged
0076: CellLeave
0077: RowLeave
0078: CellFormatting
0079: CellValidating
0080: CellValidated
0081: RowValidating
0082: RowValidated
0083: ImeModeChanged
0084: CurrentCellChanged
0085: RowHeightInfoNeeded
0086: RowHeightInfoNeeded
0087: Invalidated
0088: RowHeightInfoNeeded
0089: RowHeightInfoNeeded
0090: Invalidated
0091: Invalidated
0092: RowsRemoved
0093: RowStateChanged
0094: RowStateChanged
0095: ColumnRemoved
0096: Invalidated
0097: ColumnStateChanged
0098: ColumnAdded
0099: ColumnStateChanged
0100: Invalidated
0101: Invalidated
0102: Invalidated
0103: RowHeightInfoNeeded
0104: RowHeightInfoNeeded
0105: RowHeightInfoNeeded
0106: RowHeightInfoNeeded
0107: RowHeightInfoNeeded
0108: RowUnshared
0109: RowStateChanged
0110: Invalidated
0111: RowsAdded
0112: RowEnter
0113: CurrentCellChanged
0114: CellEnter
0115: RowHeightInfoNeeded
0116: RowHeightInfoNeeded
0117: Invalidated
0118: RowHeightInfoNeeded
0119: RowHeightInfoNeeded
0120: Invalidated
0121: RowHeightInfoNeeded
0122: RowHeightInfoNeeded
0123: Invalidated
0124: RowStateChanged
0125: SelectionChanged
0126: RowHeightInfoNeeded
0127: RowHeightInfoNeeded
0128: RowHeightInfoNeeded
0129: RowHeightInfoNeeded
0130: RowHeightInfoNeeded
0131: RowHeightInfoNeeded
0132: RowHeightInfoNeeded
0133: RowHeightInfoNeeded
0134: RowHeightInfoNeeded
0135: RowUnshared
0136: RowStateChanged
0137: Invalidated
0138: RowsAdded
0139: Invalidated
0140: BindingContextChanged
0141: DataBindingComplete
0142: VisibleChanged
0143: Enter
0144: RowEnter
0145: CellEnter
0146: RowHeightInfoNeeded
0147: RowHeightInfoNeeded
0148: Invalidated
0149: GotFocus
0150: RowHeightInfoNeeded
0151: RowHeightInfoNeeded
0152: Invalidated
0153: Invalidated
0154: CellPainting
0155: CellPainting
0156: RowHeightInfoNeeded
0157: RowErrorTextNeeded
0158: RowPrePaint
0159: RowErrorTextNeeded
0160: CellPainting
0161: CellErrorTextNeeded
0162: CellFormatting
0163: CellPainting
0164: ChangeUICues
0165: Invalidated
0166: RowErrorTextNeeded
0167: RowPostPaint
0168: RowHeightInfoNeeded
0169: RowErrorTextNeeded
0170: RowPrePaint
0171: RowErrorTextNeeded
0172: CellPainting
0173: CellErrorTextNeeded
0174: CellFormatting
0175: CellPainting
0176: RowErrorTextNeeded
0177: RowPostPaint
0178: Paint
0179: CellPainting
0180: CellPainting
0181: RowHeightInfoNeeded
0182: RowErrorTextNeeded
0183: RowPrePaint
0184: RowErrorTextNeeded
0185: CellPainting
0186: CellErrorTextNeeded
0187: CellFormatting
0188: CellPainting
0189: RowErrorTextNeeded
0190: RowPostPaint
0191: RowHeightInfoNeeded
0192: RowErrorTextNeeded
0193: RowPrePaint
0194: RowErrorTextNeeded
0195: CellPainting
0196: CellErrorTextNeeded
0197: CellFormatting
0198: CellPainting
0199: RowErrorTextNeeded
0200: RowPostPaint
0201: Paint
На этом события прекратились. Строка «Key0» выделена. Жму на клавиатуре, например, на «d». В результате DataGridView посылает следующие события:
0202: PreviewKeyDown
0203: CellBeginEdit
0204: CellFormatting
0205: ControlAdded
0206: EditingControlShowing
0207: RowHeightInfoNeeded
0208: LostFocus
0209: RowHeightInfoNeeded
0210: RowHeightInfoNeeded
0211: Invalidated
0212: RowHeightInfoNeeded
0213: RowHeightInfoNeeded
0214: Invalidated
0215: RowHeightInfoNeeded
0216: RowHeightInfoNeeded
0217: Invalidated
0218: CurrentCellDirtyStateChanged
0219: RowHeightInfoNeeded
0220: RowErrorTextNeeded
0221: RowPrePaint
0222: RowErrorTextNeeded
0223: CellPainting
0224: CellErrorTextNeeded
0225: CellPainting
0226: RowErrorTextNeeded
0227: RowPostPaint
0228: RowHeightInfoNeeded
0229: Paint
Вместо «Key0» в текстовом редакторе отобразилась буква «d». Нажимаю «Enter». DataGridView посылает следующие события:
0230: CellLeave
0231: RowLeave
0232: CellValidating
0233: CellParsing
0234: RowHeightInfoNeeded
0235: RowHeightInfoNeeded
0236: Invalidated
0237: RowHeightInfoNeeded
0238: RowHeightInfoNeeded
0239: Invalidated
0240: CellValueChanged
0241: RowHeightInfoNeeded
0242: RowHeightInfoNeeded
0243: Invalidated
0244: CurrentCellDirtyStateChanged
0245: CellValidated
0246: GotFocus
0247: RowHeightInfoNeeded
0248: RowHeightInfoNeeded
0249: Invalidated
0250: ControlRemoved
0251: RowHeightInfoNeeded
0252: RowHeightInfoNeeded
0253: Invalidated
0254: CellEndEdit
0255: RowValidating
0256: RowHeightInfoNeeded
0257: RowHeightInfoNeeded
0258: Invalidated
0259: DataBindingComplete
0260: RowHeightInfoNeeded
0261: RowHeightInfoNeeded
0262: Invalidated
0263: RowValidated
0264: RowHeightInfoNeeded
0265: RowHeightInfoNeeded
0266: RowHeightInfoNeeded
0267: RowHeightInfoNeeded
0268: Invalidated
0269: RowStateChanged
0270: RowHeightInfoNeeded
0271: RowHeightInfoNeeded
0272: RowHeightInfoNeeded
0273: Invalidated
0274: RowStateChanged
0275: RowEnter
0276: CurrentCellChanged
0277: CellEnter
0278: RowHeightInfoNeeded
0279: RowHeightInfoNeeded
0280: Invalidated
0281: RowHeightInfoNeeded
0282: RowHeightInfoNeeded
0283: Invalidated
0284: RowHeightInfoNeeded
0285: RowHeightInfoNeeded
0286: RowHeightInfoNeeded
0287: Invalidated
0288: RowHeightInfoNeeded
0289: RowHeightInfoNeeded
0290: RowHeightInfoNeeded
0291: Invalidated
0292: SelectionChanged
0293: KeyUp
0294: RowHeightInfoNeeded
0295: RowErrorTextNeeded
0296: RowPrePaint
0297: RowErrorTextNeeded
0298: CellPainting
0299: CellErrorTextNeeded
0300: CellFormatting
0301: CellPainting
0302: RowErrorTextNeeded
0303: RowPostPaint
0304: RowHeightInfoNeeded
0305: RowErrorTextNeeded
0306: RowPrePaint
0307: RowErrorTextNeeded
0308: CellPainting
0309: CellErrorTextNeeded
0310: CellFormatting
0311: CellPainting
0312: RowErrorTextNeeded
0313: RowPostPaint
0314: Paint
Вот и все J
Автор: Mindberg на 6/18/2007 10:46:00 AM 2 коммент.
Высоту строк можно задавать в обработчике события DataGridView.RowHeightInfoNeeded. Например, если высота каждой второй строки должна быть равна 50 пикселей, то в обработчике пишем следующее:
if(e.RowIndex % 2 != 0)
e.Height = 50;
else
e.Height = 24;
else … – это обязательно; иначе высота у всех строк будет одинаковая.
Автор: Mindberg на 6/18/2007 09:40:00 AM 0 коммент.
Наконец-то получил долгожданную посылку! Теперь у меня есть полная последняя версия MSDN за июнь 2007 прямо из Microsoft. Еще номинация подтвердилась бы, и буду полностью счастлив J
Ах, да еще нужна сеть широкополосная … а то, я со своими 56 к/битами (на самом деле меньше) могу только посмотреть на список файлов для загрузки. Да, это не то, что в Москве, где за $20 в месяц можно получить безлимитный доступ.
Поставил Microsoft Outlook 2007. Удобно, красиво. Но без шероховатостей не обошлось. Открыл контекстное меню для «RSS Feeds», выбрал “Import an OPML File…”, указал файл уже не помню какого сайта с блогами. Загрузилось примерно 500 блогов. И, о ужас, в Outlook не реализованы групповые операции над фидами. Т.е. в папке RSS Feeds невозможно пометить несколько элементов и переместить их в другую папку. А может есть где-нибудь разрешающий чекбокс?
Автор: Mindberg на 6/15/2007 03:39:00 PM 0 коммент.
Например, есть большой проект с большим количеством файлов, некоторые из которых - это многие сотни строк кода. Чтобы упростить работу с такими "монстрами", можно определенные методы поместить в регионы (т.е. между #region и #endregion). Это помогает, но регионов тоже бывает слишком много. В таком случае можно объявить класс как partial и вынести часть методов в отдельный файл. Например, часть содержимого ObjectVisualize.cs вынести в ObjectVisualize.Interop.cs.
На первый взгляд - это удобно, но при этом количество файлов в Solution Explorer увеличивается - это "минус". Если файл разбит на несколько частей, и их надо перекинуть в другой проект, то приходится помечать каждый файл и после этого перекидывать. Что не очень удобно. Но есть еще один способ - создать зависимость между файлами. Например, для ObjectVisualize.cs и ObjectVisualize.Interop.cs надо:
Автор: Mindberg на 6/12/2007 12:55:00 PM 0 коммент.
Наверное, 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
Автор: Mindberg на 6/05/2007 07:36:00 AM 0 коммент.
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.
Автор: Mindberg на 6/05/2007 05:02:00 AM 0 коммент.
Люди так устроены, что не могут без общения. Форма общения значения не имеет. Главное, чтобы было с кем поделиться порцией результатов деятельности своего ума и получить в ответ результаты деятельности чужого ума. Наверное, поэтому такое распространение получили блоги. Что только не пишут в блогах, какие только темы не обсуждают. Это может привести к серьезным последствиям. Например, всего одна фраза в блоге: "мой шеф решил использовать зеленую краску для покрытия носа" может очень не понравиться работодателю, для которого это не просто фраза, а факт - раскрытие конфиденциальной информации. И никто не будет смотреть на то, что блог читает только бабушка блоггера, которая работала на том же месте, что и внук, а теперь на пенсии и живет в другом городе, но очень интересуется делами компании из праздного любопытства. Что же делать блоггеру? Оградить бабушку или надеяться на то, что работодатель не сможет найти блог? Найдет, еще как найдет ;) Очевидно, что необходимо спрятать определенный контент от посторонних глаз. Но как спрятать контент, если он находится на серверах у хостера? Понятно, что у хостера никак не спрятать. И не надо надеяться, что "утечка" никогда не произойдет. Казалось бы - это тупик, но выход есть - это WHS, а также результаты конкурса Code2Fame Challenge.
Кстати, люди еще любят фиксировать моменты своей жизни: фотографируют, снимают видео. Поэтому в исследовательских центрах уже ведутся работы по разботке технологий для фиксации всего того, что человек видит, слышит, чувствует. В Microsoft есть проекты MyLifeBits Project и Digital Memories (Memex). В Японии разработали систему по записи и воспроизведению запахов. Еще есть концепция personal-memory storage (см. Computing in the 21st Century: A Collection of Heady Visions). Но все это проникнет в нашу жизнь через несколько лет, а пока в броузеры наконец-то встроят базу данных (SQLite) для хранения истории посещенных страниц.
Подробнее о MyLifeBits:
"MyLifeBits is a lifetime store of everything. It is the fulfillment of Vannevar Bush's 1945 Memex vision including full-text search, text & audio annotations, and hyperlinks. There are two parts to MyLifeBits: an experiment in lifetime storage, and a software research effort. The experiment: Gordon Bell has captured a lifetime's worth of articles, books, cards, CDs, letters, memos, papers, photos, pictures, presentations, home movies, videotaped lectures, and voice recordings and stored them digitally. He is now paperless, and is beginning to capture phone calls, IM transcripts, television, and radio. The software research: Jim Gemmell and Roger Lueder have developed the MyLifeBits software, which leverages SQL server to support: hyperlinks, annotations, reports, saved queries, pivoting, clustering, and fast search. MyLifeBits is designed to make annotation easy, including gang annotation on right click, voice annotation, and web browser integration. It includes tools to record web pages, IM transcripts, radio and television. The MyLifeBits screensaver supports annotation and rating. We are beginning to explore features such as document similarity ranking and faceted classification. We have collaborated with the WWMX team to get a mapped UI, and with the SenseCam team to digest and display SenseCam output. Support for academic research: Our team helped administer the Microsoft Research Digital Memories (Memex) request for proposals. Winners are now posted. We also helped establish the ACM CARPE Workshops: CARPE 2004 CARPE 2005 CARPE 2006. Many more links can be found at the CARPE Research Community web site".
Автор: Mindberg на 6/04/2007 09:10:00 AM 0 коммент.