# 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]  | 
# Wednesday, August 10, 2005

I just read an article on DevX that explains how unscrupulous people can use the XMLHttpRequest (also know as "AJAX") to send anything and everything that you type into a text box on a web site back to the server. I also saw an e-mail the other day on how cool the new Google toolbar is because it uses this technology to do spell checking on ANY web page. Now I have not tried the toolbar so I am not sure how you are told that something is misspelled or if you are prompted to correct it but I can easily see how many a porn purveyor would love to know how people misspell popular domain names so they can know which ones make sense for them to register.

I am normally not all that paranoid but this article has got me to thinking. I am not sure what I can do other than to turn off scripting which will break a lot of other things or to run something like Ethereal to watch all traffic going to sites I am not quite sure of. It will not stop the information from going out but at least I will know and can then choose to avoid those sites.

Wednesday, August 10, 2005 5:40:24 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Saturday, July 30, 2005

My family has been out of town and they are about to come back home so I have had a lot of people asking me how long. I can figure out the days but when I started getting ribbed about having to figure it out in hours or minutes I decided to do something about it. I wrote my first "real" .NET Compact Framework application. By "real" I mean one that I actually deployed to a Pocket PC and not just the emulator. Coding the application turned out to be rather simple. It has a label, a text box, and a button. I ask the user to input a date and then when they click the start button I enable a timer that fires an event once a second. On the event I calculate a TimeSpan of the difference between the date entered by the user and the current date on the device. I then use the DrawString method from the Graphics object to write out the time in a NASA type countdown with days, hours, minutes, and seconds. On other lines I output the totla number of days, hours, minutes, and seconds left until the date. It took me just over an hour to code it. Most of the problems came from the fact that even though intellisense says there are methods on controls they don't do anything other than throw a NotImplementedException. I seem to remember some guest on .NET Rocks! saying that the .NET Compact Framework was just a wrapper around NotImplementedException but at the time it didn't mean anything to me, now I understand a little more what they were talking about.

The real problem came when I tried to deploy to the Pocket PC. I got an error saying that communication to the device could not be made. I looked on the Microsoft Knowledge Base and found article 813579 that explained that if you do not install ActiveSync before installing Visual Studio the necessary registry entries will not be there. The article also offered two possible solutions. I could either find the registry values from a different machine or I could uninstall and re-install Visual Studio. I didn't have another machine with Active Synch and VS .NET 2003 installed so I opted for the uninstall and re-install. After spending a couple of hours at the process (I was away from the computer eanting dinner for part of the time so it took longer than needed) I still could not deploy. I got the same exact error. I thought it might be because I was running as a least priviledged user so I opened a new copy of VS .NET as the local administrator. I still coudn't deploy. Finally I ran MakeMeAdmin to open a command prompt as my user with administrative priviledges and ran VS .NET from there. I still couldn't deploy. I was about ready to go back to searching the web to find out if anyone else had found and fixed the problem when I decided to remove the Pocket PC from its cradle and reseat it. When I did that I was able to deploy without any problems. I am not sure what it was about removing and reseating the device that suddenly made VS .NET want to play nice but now I am wondering if I could have skipped the whole uninstall and re-install step. I guess the world will never know.

P.S. Just in case you are curious I am now down to under 238,000 seconds until my family gets home.

Saturday, July 30, 2005 9:51:07 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Friday, July 29, 2005

Patrick Wright has been working hard to line up more events based on the topics presented at the 2005 Betas Unleashed conference in May. I just got the following schedule in my e-mail today. Please make sure you sign up for the ones that you can attend. All the events will be held in the Microsoft offices in Salt Lake.

Aug 3rd 9:30-12:00
Data warehousing using SQL 2005
Jim Hill
Event ID: 1032279359
Link:
http://msevents.microsoft.com/cui/eventdetail.aspx?culture=en-US&eventid=1032279359

Aug 10th 09:30-12:00
Aaron Zupancic
.Net 2.0
Event ID: 1032279360
Link:
http://msevents.microsoft.com/cui/eventdetail.aspx?culture=en-US&eventid=1032279360

Aug 17th 09:30-12:00
Tjay Belt
Profiler and 2005 Tools
Event ID: 1032279405
Link:
http://msevents.microsoft.com/cui/eventdetail.aspx?culture=en-US&eventid=1032279405

Aug 24th 09:30-12:00
Pat Wright
DB Mirroring with 2005
Event ID: 1032279361
Link:
http://msevents.microsoft.com/cui/eventdetail.aspx?culture=en-US&eventid=1032279361

Aug 31st 09:30-12:00
Scott Golightly
SQL CLR
Event ID: 1032279362
Link:
http://msevents.microsoft.com/cui/eventdetail.aspx?culture=en-US&eventid=1032279362

Sept 7th 09:30-12:00
Jason Walker
Team System
Event ID: 1032279363
Link:
http://msevents.microsoft.com/cui/eventdetail.aspx?culture=en-US&eventid=1032279363

 

Friday, July 29, 2005 5:27:57 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 

I have been going though my list of things to blog and came up with these links that I intended to blog bug hadn't yet.

Backups? We Don't Need No Stinkin' Backups! - If you don't mind a little bit of advertising there is a bunch of humorous content on backups and the importance of doing them at http://www.backuptrauma.com/video/default2.aspx The site is pushing backup to disk which is looking more and more feasible every day with the low cost of disks and their relative speed.

Adobe Illustrator to Avalon/XAML Exporter - Anyone who has seen the programs I write will know that I am graphically challenged. I have never used Adobe Illustrator but the whole idea of converting from that format to XAML intrigues me. You can read a blog announcement or watch a video about how this all works.

Connected Systems Developer Contest - This contest has been running for a while now but there is still time to sign up. With a grand prize of $50,000 USD you can bet that there are a lot of people wracking their brains on what they can do to create the greatest applications using the next generation tools from Microsoft. If you have a good idea go over to http://msdn.microsoft.com/devcompetition and register. Hurry, you only have until August 30 to register your idea. You can get the full list of categories and the official rules from the web site.

ASP.NET 1.1 to 2.0 Upgrade Center - Microsoft has set up an upgrade center for information on upgrading to ASP.NET 2.0. There is a video, answers to questions, and a tutorial avaliable at http://msdn.microsoft.com/asp.net/migration/upgrade/default.aspx.

Friday, July 29, 2005 5:21:29 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |