# Monday, September 19, 2005

I spent a lot of my time at PDC meeting with different people in meetings that were covered by a Non-Disclosure Agreement (NDA). The various parties in the meeting kept reminding us how seriously they take the NDAs but there is always the chance that something will leak out. Now there might be a partial technology solution. It seems some researchers have found a way to block digital cameras. That might help with some problems but won't stop others like where someone (in this case a Microsoft employee) makes a public announcement about a "product" that I later learned under NDA was still being thought about and was not to be publicly discussed.

You can read the article on the digital camera/camcorder blocker at http://news.com.com/Crave+privacy+New+tech+knocks+out+digital+cameras/2100-7337_3-5869832.html?tag=nefd.lede

Monday, September 19, 2005 6:32:50 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Saturday, September 17, 2005

The PDC ended yesterday but true to form I didn't blog the sessions last night but insead am doing it a day late. I heard that an article I wrote on the "language wars" was posted on Comnet at http://commnet.microsoftpdc.com/pdcreflections.aspx. I am not sure if you had to register to see this article or not. I will check that out and post it here later if there is a problem getting to it. I only took notes on 1 session that I attended so here they are:

DAT408-ADO.NET: Advanced Data Access Patterns
Getting data wiht a DataReader is fast, going back to the server is slower but UpdateBatchSize helps. If the provider supports it parameters will be sent in an array.
Going from the client to the server - Bulk insert to a temporary table then use DML to move the rose (one statement/type) and do it all in a single transaction.
Grouping lots of data operations in a transaction can be faster because there will be less writing of the transaction log to the disk.
Must load data into a DataTable to do batch updating.
For BulkCopy to go fast the database needs to be in simple or bulk-logged recovery mode. Tempdb is already in simple mode.
To speed it up further you can implement a custom data reader to read the data and stream it rather than reading into a DataTable (DataTable puts all rows in memory at once).
Use SqlDependency to notify of changes to the data and invalidate the cache. Use a DataSet to store the data in cache and invalidate the DataTables as needed.
SqlDependency doesn't have any granualarity control so to make it more efficient load data in chunks, when a cache miss occurs. On a notification, just delete the chunk so the rest of the chunks in the cache aren't invalidated. In the callback for the notification delete the rows from the DataTable.
If you use a DataSet for a cache you wll need to query the data in it. Joins are missing. You get the ability to filter rows now.
To create an "index" on a datatable call select for a temporary one or create a DataView for a permanent "index".
Pablo will post the code to do joins in a DataSet to the blog at blogs.msdn.com/dataaccess.

It was a fun week at PDC. I really enjoyed being there to hear about all the new technologies. I got enough DVDs to keep me busy for a long time looking at new stuff. The only real bummer was that sometime Friday afternoon I lost my cell phone. The security guys at the convention center found it and are supposed to be sending it to me but for a few days I will be without it.
 

Saturday, September 17, 2005 4:14:13 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Friday, September 16, 2005

Here are my notes from the 3rd day of PDC. I have to admit that after 3 days and nights of going non-stop I had a hard time tracking in some of the sessions so these notes are a little more sparse and flaky than usual.

Keynote - Bob Muglia
There will be releases about every 6 months.
WS-Management submitted to DMTF for standardization.
SDM and MOM Management packs let you see the error, call stack, and source coce where the error occured.
Windows Server compute cluster Beta 1 at microsoft.com/hpc. This appears to not do anything in parallel but rather just gives you some place to run stuff when you don't care what machine it runs on just that it gets done.
MONAD - Object based command line language. Integrates command line, COM and .NET. Microsoft will build commmandlets for their servers. We should do the same.
Security Token Servic ewill provide back end for InfoCards and will shp post Longhorn server.
CTP of IIS7 and update of Longhorn server available.
TxF is an update to NTFS with full transactional support. Single digit overhead for using it.
More info in the event log in Longhorn allows metadata wo be logged as well.
Longhorn is modular. IIS 7 is modular as well. Turn on and off features in the web.config file. Metabase is dead.
New API for IIS 7 is a superset of ISAPI.
ASP.NET extensibility API leveraged so you can do things like forms auth for all pages not just ASP.NET.
Longhorn server to include some virtualization.
I had to leave early to go man a booth so I missed the end of this talk.

Visual Studio Tools for Office
Office 12 Foundation Investments:
1. Managed Add-Ins
2. Custom Task Panes
3. Ribbon Extensibility
4. Office Open XML Formats
Add-In Loader and IDTExtensibility2 proxy starts add in loading
Add-ins will implement IStartup interface and inherit from a base class specific to the office product to give you strong type support.
Appliction level custom task panes. Not just at the document level.

COM325 Workflow + Messaging + Services - Developing Distributed Applications with Workflows
This one was by Don Box. I was listening and laughing a lot but got caught up and didn't take a lot of notes. If you have a chance to see this one on the DVD or via the web I would highly suggest it. It really clarified the relationship between WCF, WWF, and where Microsoft sees the platform evolving.
Contracts and protocol based integraton that is message based and opaque to implementaton runtime, IT Pro, etc. is the desired end game.
WWF - Activities (opaque code) stitched together into workflows (transparent view of state) where you send and recieve messages. Worlflow modeld in XAML. Information pushed into config files at build time.
Workflow transactions handled by System.transaction.

Friday, September 16, 2005 7:35:57 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Thursday, September 15, 2005

Here are my notes from the second day of PDC.

Keynote - Eric Rudder
Eric made the following product announcements
   Windows Workflow Foundation (WWF) for system and human workflow. I can just see it now, everytime I start a workflow there will have to be a bunch of guys dressed up in makeup yelling at each other about how they are going to beat each other up in the ring. Who thought up the acronym anyway?
   Microsoft Expression for Designers with 3 separate products: Acrylic designer, Sparkle interactive designer, and Quartz web designer.
   VSTA - Visual Studio Tools for Applications - Next version of VBA
After the announcements there were a lot of product demos. Here are the things I thought were cool.
In WWF you can set a breakpoint on an activity in the workflow and have it break into the debugger. You can then step down into other steps in the workflow and eventually down to the code that is running.
You can create custom activities to extend the workflow.
You can get WWF information at www.windowsworkflow.net
Acrylic has tools and built in styles that make it possible for even people like me to make good graphics but it will help the artistic types to do a really good job.
Quartz supports drag and drop data binding.
Quartz updates linked style sheets when you make a change to a style. I am not sure if I like this feature. If I am using the linked stylesheet in other places it might have unintended consequences. I guess I will have to get the tool and play with it.
Visual Studio and the Expression products share XAML so you can have full graphic fidelity.

Keynote - Steven Sinofsky
Enterprise Content Management - ECM - livecycle menagement for documents - More of this functionality will be built into SharePoint 12
CMS will be new for Office 12.
WWF will be integrated into Office 12.
Web parts will be built in ASP.NET 2.0 web parts.
Content types provide OO definition of documents that associate metadata and workflow.
New version of Frontpage that you can think of as a "SharePoint Designer" along with ASP.NET, Expressions, etc.
Forms server will let you create InfoPath forms that are able to be run in the browser.
There will be pre-defined form parts in InfoPath 12 so you can reuse some design.

Enterprise search has a "did you mean" functionality for when you mistype a search term.
You can define "best bets" for easily finding search items.
Search on people using Active Directory - presence information and links to the person's "My Site".
Search on customers using code and integration to a CRM system.
The list is the fundamental item in SPS that has an API. You can join lists in a master/detail relation.
RSS feed for lists and email notifications for a list. You can open lists in Access or other database tools.
Outlook 12 has the ability to host an InfoPath form as a mail message. submitting the form sends it back to the sender and you can set it up to automatically process the form and store the data in SharePoint.

I spent most of the morning in a Software Design Review. A SDR is where Microsoft shows you a bunch of PowerPoint slides and says something like "if we built this would you come?". Really they are looking to see if the scenarios and problems that they are trying to solve are real world and if the propsosed solution will work. They are really great but there is no guarantee that the ideas will even make it to an alpha product let alone a final one.

DAT312: WinFS Programming with LINQ
There are 4 layers to the object model:
1. Tables - Rows and columns
2. Reshaped Data - Custom mapping
3. Entities - Collections and inheritance
4. Objects - hydration and projection
Queries get stored in a Cannonical Command Tree that for now is parsed back into optimized SQL but in the future could be sent directly to the database.
WinFS is an extended model that uses spcializations on the core object model.
There is a WinFS blog at blogs.msdn.com/winfs

 

Thursday, September 15, 2005 7:49:55 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Wednesday, September 14, 2005

Tuesday, September 13 was the official first day of PDC. I had been in meetings all day Monday but since they are covered by NDA I decided not to blog them :)

Here are my notes from the sessions that I attended. They are pretty much how I wrote them down. I hope that they will help you out.

Keynote - Bill Gates
The 3 pillars of Vista are confident, clear, connected.
Office 12 will release in the same timeframe as Windows Vista.
Virtual folders in Vista give you a flat view of all the data accross your machine.
The Windows sidebar is for realtime data. You can add gadgets to the sidebar. The sideshow is for auxilliary displays on laptops. You can get more information at microsoftsideshow.com.
Parental controls in Vista. Nice.
Dynamic Protection Service - Opt-in service - block known and suspected phishing sites.
Quicktabs - slide view of open tabs in IE 7.
Print preview in IE 7 lets you shrink to a single page and turn on and off headers and footers.
IE 7 will discover RSS feeds and let you search on them.
Microsoft Dynamics CRM integrates RSS and publishes info to clients/customers.

Office 12 gets a new UI with tabs and no dropdowns menus.
Office 12 has buttons for predefined formatting with live previews.

SharePoint Portal Server 12 will have a new library for PowerPoint slides.

In Outlook 12 the ToDo bar will have date and time on tasks.
Preview attachments in the preview pane.
RSS in Outlook integrated with IE 7 subscriptions. Read in Outlook what you subscribe to in IE 7.
Outlook subscribe to document library and pull down documents for offline viewing.

Server will be a rich point of integration. WSS will replace many department level file servers.

Keynote - Jim Alchin
Vista Beta 2 will be a broad reach beta.
Network Access Protection - machines go into quarantine until they can be verified.
Hardware monitoring built in.
Goal of 50% fewer reboots.
File system is transacted.
Running as a standard user is the default.
Superfetch - enhances memory manager to look over time to optimize the system.
USB memory sticks can become part of the virtual memory. With writethrough you don't have to worry about loosing data. With 2x encryption the page file is safe.
Low integrity mode = apps are sandboxed.

Lap around technologies
ATLAS will support AJAX programming.
WPF runtime can run in browser, windows, etc.
WPF/E = Windows Presentation Foundation Everywhere. Strict subset of WPF that uses Javascript.
LINQ = Language Integrated Query
InfoCards - Federated identity providers, common UX dialog. Can integrate using WS-*

If you can foreach something you can use LINQ to query it.
DLINQ - map relational data to classes
XLINQ - modernized DOM

beta.asp.net - download ATLAS.
You can build sidebar components as ATLAS components.

Download Microsoft Max (photo sharing application that showcases WPF and WCF) from http://www.microsoft.com/max

The Northface showed off an application. There will be a whitepaper on MSDN on how they did it.
Windows Vista Partner Showcase - $100 Million program for Vista apps.

Preview of "Digital Locker" for buying software at windowsmarketplacelabs.com

OFF201 - Office "12": Introduction to the Programmable Customization Model for the Office 12 User Experience (Part 1)
New UI prompted by number of menu items, toolbars, and task panes getting out of hand.
"Sense of Mastery" - finite space to search for functionality. Very predictable. Simplify through contextualization.
"Consistency is good but homgeneity is not" so standardize where it makes sens but don't force it. Make everything make sense.
The first tab in Word 12 accounts for 90% of the clicks.
UI replaces menus and toolbars. If it is not in the ribbon it is not in the product.
Show the result of command and not the command itself.
The main means of customization is the quick access tool bar (or quick launch tool bar). It sits between the file menu and the first tab.
Dialog boxes remain in the UI. You use them to set advanced functionality. "Dialog Launchers" from a chunk or dialog let you get to the dialog box.
"Floatie" is an on-object floating toolbar with most commonly used commands so you don't have to move the moue to the top of the screen.
"Super Tooltips" show pictures or other information. Pressing F1 will bring up context help.
Ctrl key shortcuts will stay the same.
"Key Tips" make every tab and command keyboard available. Use Alt + a letter to get to something. It will take about the same number of keyboard strokes as Word 2003.
There is no "classic mode". Toolbars and menus have been removed from the product.
UI extensibility through XML files.
Speaker blog at http://blogs.msdn.com/jensenh

OFF302 - Office "12": Introduction to the Programmable Customization Model for the Office 12 User Experience (Part 2)
Developers can change the ribbon but not the quick launch toolbar.
New codeing model code named RibbonX. You can add your own meny or hook into existing menus including context menus.
RibbonX works the same in all office applications!
Things you can't customize with RibbonX - status bar, floatie, inside built-in chunks, right click menus (existing Word 2003 customization continues to work). Global repurposing works regardless of where the command is executed from.
Implement IMsoRibbonExtensibiility - Return markup using GetCustomUI so you can change the UI returned based on who the person is or other factors.
Documentation will be available with Beta 1.

Wednesday, September 14, 2005 7:52:51 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Monday, September 05, 2005

If you think you have figured out something really cool that the rest of the world would just die to know but haven't been able to round up thousands of friends to have a big event, here is your chance. As part of the PDC, Microsoft will be hosting a "Show Off" night. All you have to do is create a video and then post is some place where Microsoft can get to it. Complete details are listed at http://channel9.msdn.com/ShowPost.aspx?PostID=102337#102337.

So show the rest of the world what you have been working on.

Monday, September 05, 2005 8:27:55 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |