Thursday, 13 March 2008

Post Mix 08

Got back from Mix 08 (Las Vegas) on Monday. Overall, a great conference - all of the sessions I attended were (on the whole) above average, both in terms of content and delivery. The venue (Venetian Hotel) was cooool and oozed class. The delegates were enthusiastic and knowledgeable, and keen to learn and chat. You could say a pleasure to 'mix' with then, ugh! The jet-lag was a pain, and I really suffered for the first few days, but I cannot blame the organisers for that ;-)

Organisation of the conference was good - all sessions started/finished promptly and rooms were nice with excellent large 'hi def' screens and audio in the main keynote area (the best I've seen/heard at such a conf). Some rooms were overcrowded but this is often a problem with multi-track events like these.

There were a few oddities though, regarding organisation. For example, in the conference suite areas, large 'bouncers' were present on door entrances/exits/top of stairways etc whom acted as if they were manning a nightclub... "your names not down, you're not coming in" stylee. Sorry guys but this is a conference not some downtime bar!

Secondly, the delegate bags were poor. Made from what I can only describe as white Tarpaulin, the bags felt cheap and to be honest... 'a bit gay'. Man-bags were to be seen everywhere. I couldn't bring myself to wear mine!

Finally, the organisers had chosen to put all session summaries on the web (fine, makes sense) but did not put session summary printouts in the delegate pack (only a card 'title and time only' jobby) - not ideal. After virtually every session, delegates (me included) rushed to the PC area to look up the descriptions of their next session (the online session builder is fine if you plan ahead, but I, like most, didn't). I'm all for technology but last-minute-printed, paper-based short summaries, in this case, would have been more useful for day-to-day ref during the conference. Anyway... I'm rambling...

Points of interest

What were the interesting bits then? The keynotes in particular are worth a mention.

Ray Ozzie and Scott Guthrie's Keynote on Day 1 was impressive (although Ray's bits were a bit glossy and high level for me), summarising nicely what MS's plans are for the next 12 months or so. In particular they discussed plans for:

  • Personal device meshes
  • Connected entertainment. License media once and use on 'any device'
  • Connectivity productivity... Office live
  • Office communication server
  • Connected business enterprise.
  • Connected development. XNA, Silverlight, VS, .Net, WPF
  • IIS7 - "probably the most significant web server for MS to date"
  • IE 8 seen for the first time at the conf (more on that later) . Beta 1 now avail for download.
  • Silverlight 2.0 - gaining popularity, e.g. vs 1.0 currently receiving 1.5 million downloads per day. vs 2.0 beta 1 now available.

The final item, Silverlight, is worth more discussion. Vs 2.0 is very significant for MS. It bundles a cut down version of .Net which can run in the browser opening up a whole breed of RIA (Rich Interface Applications) on the web. We saw a number of fairly impressive demos, including:

  • Hard Rock Cafe Memorabilia site - Silverlight is used to allow users to browse and zoom into various famous artifacts (uses DeepZoom - the follow up to Seadragon). You can see this for yourself at http://memorabilia.hardrock.com. Go to the site, install Silverlight (if you've not got this already you will be prompted), and you will be able to browse and zoom into the impressive music memorabilia collection. To give you an idea of what is involved, one of the guitar images on the site was created using "57 stitched high quality SLR photos" in order to give the necessary detail when zoomed to the max.
  • Beijing Olympics 2008 site by NBC. They intend to put some 2200 hours of high quality video on the web. Users will be able to replay live footage. The demo was slick and certainly showed off Silverlight's strengths for handling media... but hey, the videos were running locally so I'd expect the quality to be good! I will be very interested (and surprised) if the final live site is as impressive. Surely bandwidth limitations will kick in as the millions of visitors surf to watch their heroes in action. I just hope graceful degradation is built in... Silverlight's 'progressive download' adaptive streaming and the new IIS Media Pack bit rate throttling can only do so much...
  • AstonMartin.com. Able to wonder around the gorgeous DBS and zoom in via 'deep zoom' etc. You can even zoom inside and view the stitching on the  leather. New site does not appear to be live yet (current live version is flash)
  • AOL Email Web Client. Current version uses DHTML and AJAX, but new version will be full blown Silverlight utilising isolated storage and skinning features etc.

The Keynote on day 2 by Steve Ballmer and Guy Kawasiki was cool. Guy (who goes back a long way with Steve) threw some good questions at SB which he answered in his usual enthusiastic and entertaining way. After listening to the banter for an hour or so, one thing I took away was that Steve genuinely has a passion for Microsoft and its success. It was a pleasure to listen to someone who clearly loves his company (and the millions it makes him every year no doubt!). I was impressed.

Other sessions I attended which are worth mentioning:

  • Crossing the Usability Chasm - Advanced and Adaptive User Interfaces. Gil Hupert-Graff, Yochay Kiriaty. Tackled UIs that can adapt to the user (e.g. beginner vs advanced etc). Having an HCI/usability background I found little to learn in this session (disappointing) but for those new to the 'adaptive UI' idea, there were many points to pick up on. Changing the UI at runtime based on the user's experience and usage patterns is an interesting area.
  • Building Rich Internet Applications Using Microsoft Silverlight 2, Part 1 and 2. Mike Harsh, Joe Stegman. Two sessions on using VS to build Silverlight apps utilising XAML, Web Services and LINQ. Very well done.
  • Developing ASP.NET Applications Using the Model View Controller (MVC) Pattern. Scott Hanselman. Excellent presentation by Scott whom I have a lot of respect for. Covered the MVC (front controller) pattern  and how it is implemented in ASP.Net MVC. Also highlighted the pros/cons of the approach, pointing out that it is not for everyone. The page control model (especially for complex web forms) is still a contender but the merits of MVC, e.g. aiding TDD (test driven development etc) and meaningful URIs etc, cannot be overlooked.
  • Cross-Browser Layout with Internet Explorer 8. Scott Dickens. One of two sessions I attended on IE8, this was the better of the two. Scott covered in detail the new layout engine of IE 8. The MSHTML engine has been re-written to be fully standards compliant but now has two code paths (one for old IE 7 compatibility and another for full IE 8 standards mode).
  • Hard Rock: Behind the Music with Deep Zoom. Scott Stanfield. Case study style session discussing how the site was built (see earlier re hard rock memorabilia site).
  • Lighting Up Your AJAX Applications with Silverlight. Stefan Schackow, Chung Webster. Integrating Silverlight and AJAX. Included background processing and IsolatedStorage. Use of the new History object for back button support in AJAX (hooray!).
  • Designing Next Generation User Interface Experiences with Microsoft Expression Blend and Windows Presentation Foundation. Johnathan Lansing, Stuart Mayhew, Nicholas Petterssen. The guys from Electric Rain gave a detailed account of their WPF application 'StandOut' (actually presented using the tool). If you are bored with powerpoint, maybe the StandOut app is for you. A true whizzy multimedia experience. When asked how long the project took though.. "ermm... just the 5 years". RAD at its best then! To be fair, this was "from initial idea to finished product" - nevertheless seems a difficult one to justify from a ROI standpoint - depends on your measurements of success I guess.
  • Sandbox area: Surface. I saw a fascinating demo of Microsoft Surface in action (I also tried it out for myself). Demo consisted of what was essentially 'a glass coffee table' with a touch screen interface. The software demonstrated was a restaurant menu. See an earlier youtube Surface demo here. Apparently T-Mobile have signed up to use the technology 'in production'.

IE 8 was mentioned a number of times in various sessions and looks like it is worth waiting for, bits of interest are:

  • Standards and quirks modes. IE 8 will by default be 'very' standards compliant (to the point that many older sites will no doubt break). CSS 2.1 standards based. HTML 5. IE 8 will pass the Acid2 test.
  • IE 8 Web Slices - allows a user to subscribe to 'areas of a page' which then appears as a link on the user's IE 8 toolbar. If that page section updates, the link will highlight to indicate it has been modified. The author of the page decides where the slice begins and ends using markup.
  • IE 8 Activities. Via XML markup (see OpenService Architecture), rather than just having simple URI links to other pages, you can now add 'in page menus of activities' such as 'buy now on Amazon'.
  • Developer tools now built-in (bit like the IE developer toolbar you could install in IE 6/7). This offers JS debugging and CSS rules/hierarchies. For example you can highlight an element on the page and see which CSS rule is taking priority.
  • 'IE 7 Quirks' mode option currently has its own dedicated button on the toolbar (for those sites that refuse to work with IE 8 then!)

 

So overall, a fab conference. In case you are interested they have already set the date for next year's Mix 09, March 18 to 20th, 2009  ;-)

Clarkey

Useful Links:

Mix 2008 Sessions all online (videos)

Download IE 8 Beta 1

Download Silverlight 2.0 Beta 1

Friday, 22 February 2008

Mix 2008... just over a week to go

Mix 2008 is less than two weeks away. I missed it last year and reading the post event blogs etc, kicked myself for not attending. This year I made no such mistake and registered early to avoid the inevitable sell out (last year various Microsoft employees themselves were not allowed past the entrance, having failed to register in time... "your name's not down you're not coming in"...).

Choosing which conference(s) to attend each year is often a difficult call. I usually allocate myself one "attend only" conference plus a "speak at" conf if I have something useful (rare I know) to talk about. This is separate from the single day seminar stuff we often attend during the year. One conference a year seems reasonable from a budget, time, family commitments, ROI etc point of view.

So, if you are attending only one, which one should it be? I try to vary it. Obvious candidates for me are the US based PDC and Tech·Ed along with the UK based SPA. SPA I've been to before a number of times, with PDC and Tech·Ed on my "must go there sometime if I can justify it" list.

This year, Mix was at the top of the list. When choosing, I often go out of my comfort zone to learn new stuff and being a day-to-day techy server-side kind of a guy rather than a whizzy flash, silverlight, wpf type of soul, Mix fits the bill nicely.  Mix will be an ideal opportunity to dedicate some time to acquiring new techniques and technologies (albeit at surface level), being a Web conference biased toward creativity, media, design,[hopefully] usability and rich client-side UIs - I'm especially interested in seeing where "we are up to" with Silverlight 2, WPF, .Net 3.5, Expression Blend, XAML, Web 2 (i dislike that phrase) and generally where the Web interface is heading (see the full session list here, which includes keynotes by CEO Steve Ballmer and .Net Framework team founder Scott Guthrie). I'm also especially interested in chatting with fellow delegates to see what they are up to.

The conference looks set to be entertaining too, with some non-developer focused events such as:

  • Tue eve: The King of Kong: A Fistful of Quarters (movie screening and Q&A with Steve Weibe, one of the stars of the movie, Ed Cunningham the producer, and Twin Galaxies referee Walter Day).
  • Wed eve: Party at club TAO
  • Thu eve: RockBand tournament, on a real stage, massive sound system and huge plasmas!

Glitzy Vegas is of course another attractor...

Tuesday, 15 January 2008

Using ExcelWriter on 64bit Kit

I've recently been migrating some web apps to 64bit Windows 2003 Server. So far all testing has gone pretty well, with most pure ASP.Net apps running on the kit with little or no code changes.

One issue you may have though, is if your app uses any COM interop with old 32bit components. Earlier ExcelWriter versions used exactly this approach, providing dot net wrapper classes for what were essentially 32bit COM objects on the box. You will find these will no longer work on the new kit (unless you use WOW64 emulation) so the key is to ensure you now use the "pure dot net" versions of ExcelWriter.

Conversion is quite straight forward. Here's some old "dot net wrapped" 32bit only code:

SAExcelApplicationDotNet Xlw = new SAExcelApplicationDotNet();  // old 32bit wrapper ExcelApplication
SoftArtisans.ExcelWriter.SAWorksheet Sheet = Xlw.Worksheets[1];
Sheet.Cells[1, 1].Value = 20;
Xlw.Save(@"test.xls", SoftArtisans.ExcelWriter.SASaveMethod.saOpenInPlace, SoftArtisans.ExcelWriter.SAFileFormat.saFileFormatExcel2000);

The above code also requires ASPCompat=True in your aspx page to ensure single-threaded apartment (STA) mode is used for that page's thread. Not ideal for web apps, see COM Compatibility Page for full run down.

Anyhow, here's the pure dot net version:

ExcelApplication Xlw = new ExcelApplication();   // new pure dot net ExcelApplication
Workbook WB = Xlw.Create();
Worksheet WS = WB.Worksheets[0];
WS.Cells[1, 1].Value = 20;
Xlw.Save(WB, Page.Response, "test.xls", false);

Easy... even I can follow the above!

Tuesday, 6 November 2007

MS Search Server 2008

Well it's been a long time coming but it looks as if Microsoft have decided to release a standalone 'crawler-based search engine' (based on its SharePoint offering) set to replace its rather dated (albeit free) file-based index server in the first half of 2008.

There will be two editions plus the full blown Office SharePoint Server.

It is worth investigating the free express edition at least, which looks like it may suffice for smaller projects... you can get the RC version here.

VS 2008 released end of November

Looks like we all need to get those licenses organised... Visual Studio 2008 (aka 'Orcas' and .Net 3.5) is due end of this month:

http://www.microsoft.com/presspass/press/2007/nov07/11-05TechEdDevelopersPR.mspx

Friday, 2 November 2007

Book on ODP.Net

Do a book search on Amazon for most .Net topics and you will usually be rewarded with a wealth of doorstops to choose from. Enter the search term “ODP.Net” though and you get erm… one result. This I find a little surprising, especially as, according to Oracle at least, ODP.Net (Oracle’s Data Provider for .Net) offers [probably] the best performance and richness for accessing Oracle back-ends. I've used ODP.Net myself on some fairly large scale developments and find the provider reliable, functionally more rich than Microsoft's offering (see a comparison article on MSDN, albeit now a little dated) and has excellent performance.

Anyhow, the aforementioned Amazon "only resulting" book (entitled ODP.NET Developer's Guide) recently landed on my doormat from the publisher PackT who contacted me to take a peruse at it. I've not had chance to look at it in detail yet but here's a chapter summary in case you are looking for such a volume...

The Chapters

Summary of the content:

Chapter 1: introduces the concept of Oracle Database Extensions for .NET and provides information about Oracle Developer tools for Visual Studio.

Chapter 2: introduces the Provider Independent Model in ADO.NET 2.0 and how it relates to Oracle.

Chapter 3: shows you several methods to retrieve data from an Oracle database. You will work with the core ODP.NET classes like OracleCommand, OracleDataReader, OracleDataAdapter etc.

Chapter 4: is all about CRUD operations but also includes caching, array binding, offline data, transactions and error handling

Chapter 5: PL/SQL stored procedures and executing routines in PL/SQL packages. Array parameters and ref cursors are also covered.

Chapter 6: dedicated to dealing with Large objects in Oracle. This chapter illustrates concepts, configurations, and programming for BFILE, BLOB, and CLOB (or NCLOB) in conjunction with ODP.NET.

Chapter 7: Oracle XML DB. It provides information about generating XML from existing rows in tables, manipulating rows in a table using XML, and working with native XML in the Oracle database.

Chapter 8: a bit of a mix this one. Covers database change notifications, Asynchronous Application development, Web Application development, Web Reporting (including grouping, sub-totals, charts etc.), Object-Oriented Development with ODP.NET and ASP.NET, XML Web Services development using ODP.NET and Smart Device Application development (for clients like the Pocket PC etc.).

Chapter 9: introduces you to Oracle Developer Tools (ODT) for Visual Studio 2005.

All .Net code examples are in VB.Net.

Tuesday, 2 October 2007

Upgrading from Visual SourceSafe 6d to VSS 2005

We've recently just upgraded from Visual SourceSafe 6d to 2005. The process was (surprisingly) painless.

This is worth a read before you start: MSDN Visual SourceSafe Install Documentation

 Here's the steps I went through:

Server:

  • created a Virtual Machine (VM) running windows 2003 to host the VSS 2005 server. We decided to use a VM this time to host the service, thus aiding portability and backups/DR.
  • Connected to the VSS 2005 iso install image file as a mapped drive (via VMWare's excellent "CD Rom use iso image" option).
  • Installed VSS 2005 (I chose full install).
  • Got all developers to "check in" their code in the old 6d database.
  • Copied over the VSS 6d database files to the new VM (I used robocopy as I dislike explorer's "sorry I've had to stop copying EVERYTHING because one file was in use" etc...). Copying them across is OK because the file structures are compatible which makes migration easier.  TIP: allow plenty of time for the copy to take place if you have a large database.
  • Give relevant Windows user(s)/groups modify access to the database dir (ntfs permissions).
  • Opening up Visual SourceSafe, gives a prompt for database the location. Browse to the dir where you copied your database to. All done. VSS Users come across too with access rights.
  • I also then ran VSS analyze (you are prompted first time in) to pick up any corrupt or missing files in the database.

Client:

  • Uninstall VSS 6d via add/remove programs. (if you don't, I found that 2005 got installed separately and left 6d there too, despite what some documentation says).
  • Rebooted
  • Install VSS 2005 (choose custom and untick server components).

Initial impressions? Firstly, here's the relevant "what's new in VSS 2005":

  • Access via IIS (via web services). Mainly useful for off site working. Not tried it yet.
  • LAN booster service (Wow.. anything with "boost" in it I want!). Once enabled you will see a new service SSService.exe appear in service list. Its job... to compress files for transfer, check for newer files, handle chatting to client blah d bla bla. Note this only works with the Visual Studio (VS) plug in.
  • Improved VS Plug in. For example, to open a new project from source safe you now simply select File/open project/ and "Sourcesafe (LAN)" appears as an option in the dialog. Also, files are now retrieved asynchronously (background thread) so that annoying "lockup while fetching files" should be a thing of the past.

So far my feeling is that VS integration is better. File access seems quicker (but I doubt by the "3-5 times faster" quoted by Microsoft). Less VS hanging during "get latest" type activities and generally more responsive. Apart from that you are unlikely to notice any major changes.

What about VS 2003 Support?

For those lucky developers supporting .Net 1.1 projects, you still need trusty VS 2003 so it was a relief when I fired VS03 up and the VSS add in worked fine. I successfully fetched an ASP.Net 1.1 project, checked out some files and all seemed normal. Performance was back to VSS 6d standards though.

If I come across any issues I'll post them here.