Silverlight, WPF, ASP.NET

PDC Here I Am!

Monday, October 27, 2003 10:52:04 AM (Eastern Daylight Time, UTC-04:00)

What started out as a day of excitment boarding a plane to head west to LA almost become a day ending wondering what strange city (Other than LA) I might rest my head in. While transfering planes half way accorss the country we were informed that the Air Traffic Control Center for southern California had to be evacuated and that all flights into that area were on hold. We were told that our 11:23 am flight would be 12:30... 1:30... 2:30... 4:15.... 7:00.... and FINALLY at 8:30 (I'm not even sure in what time zone) two flights worth of people were loaded onto one larger aircraft and we all finally made it. I hope that everybody attending the conference will share out luck.

It was interesting how during this wait time I was able to meet a number of strangers heading to PDC from various places. We're all really looking forward to the show.

Posted in  | Comments [0] 


Version 0.5 of my PDC Session Browser is ready to roll!

Wednesday, October 15, 2003 7:07:40 AM (Eastern Daylight Time, UTC-04:00)

Version 0.5 of my PDC Session Browser is ready to roll! This started off for me as a way to learn how to do a few specific new things for a current project and to get ramped to attend the (Now sold out!) Microsoft Professional Developers Conference in LA. In order to get the most from the conference, I’ve been working hard to increase what I know going in so that I can build upon it and do even more with what I’ll see. It has been great to hear the ideas of others including those working on similar projects. it has been great to make a number of new contacts and I look forward to meeting you in LA. I think that this is an excellent time to be a Windows developer, with great opportunities for us to make the most of.

 

As mentioned before, I decided to create a Visual Basic.Net application using the Compact .Net Framework so that it would run on my Pocket PC PDA. The goal was to write a small application that would provide me with informational details on the various conference sessions.

A few of the things used in to achieve this were:

 

- To connect to a web service to receive the latest updated session list.
- Store the all data locally on the device in XML
- Create a custom control to display the session data
- Maintain as small of footprint and ease of deployment possible

 

 

 

 

My next steps are:

- Fix the date sort

- Refactor a lot of the code now that I know what I’m doing
- Provide better error handling
- Create some sort of P2P/Blog style message board WIFI equipped devices
- Provide session notes (Share session notes?)
- Update notifications.

 

The ARM self-installing CAB file is available here. Drop me an email if you require a different version. Just copy it onto your device and give it a tap. It will install itself in the Program Files directory.

 

Thanks to everybody for your help and support!

Posted in  |   | Comments [0] 


PDC Session List Web Service

Friday, October 10, 2003 6:21:54 AM (Eastern Daylight Time, UTC-04:00)

To me, it seems really strange that I'm not somehow able to get a data friendly version of the Microsoft PDC sessions and their appropriate info. What better way to attract a bunch of developers than to give them a webservice with the details!!! It's just one of those things that would be really handy. Well folks, it's not official, it's the best list I could compile and I hope it's accurate (Don't blame me if you miss a session at this point because you think it's gospel! Use at your own risk, Bill and Steve own the rights, not me! ...(Did I miss anything?))

PDC Session List Web Service

PDCSessionList returns a dataset that looks something like this. After some sleep I'll do some fine tuning and post some better details!

<?xml version="1.0" encoding="utf-8" ?>

- <DataSet xmlns="http://tempuri.org/DemoApp/PDCSessionList">
- <xs:schema id="sessions" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xs:element name="sessions" msdata:IsDataSet="true">
- <xs:complexType>
- <xs:choice maxOccurs="unbounded">
- <xs:element name="session">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="title" type="xs:string" minOccurs="0" />
  <xs:element name="track" type="xs:string" minOccurs="0" />
  <xs:element name="codenumber" type="xs:string" minOccurs="0" />
  <xs:element name="room" type="xs:string" minOccurs="0" />
  <xs:element name="timeslot" type="xs:string" minOccurs="0" />
  <xs:element name="speakers" type="xs:string" minOccurs="0" />
  <xs:element name="abstract" type="xs:string" minOccurs="0" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:choice>
  </xs:complexType>
  </xs:element>
  </xs:schema>
- <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
- <sessions xmlns="">
- <session diffgr:id="session1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
  <title>"Avalon" Graphics and Media (Part 2): Using Graphics, Animation and Composition in Your Applications</title>
  <track>Client</track>
  <codenumber>CLI341</codenumber>
  <room>Room 403AB</room>
  <timeslot>Tue, October 28 3:45 PM-5:00 PM</timeslot>
  <speakers>Greg Schechter</speakers>
  <abstract>All Windows "Longhorn" application developers that make use of graphics to create exciting applications and controls will benefit from this session's essential knowledge, including the extensive set of graphics primitives and capabilities. For those developing specialized graphics applications, the advanced rendering concepts and capabilities provided in Longhorn will be covered, such as composition, the key graphics abstraction Visual (used for off-screen rendering and printing), and the imaging pipeline.</abstract>
  </session>
- <session diffgr:id="session2" msdata:rowOrder="1" diffgr:hasChanges="inserted">
  <title>"Avalon": Building Applications with Controls and Dialogs</title>
  <track>Client</track>
  <codenumber>CLI300</codenumber>
  <room>Room 502AB</room>
  <timeslot>Mon, October 27 3:00 PM-4:15 PM</timeslot>
  <speakers>Rob Relyea</speakers>
  <abstract>Learn the way to build basic "Avalon"-based applications. This session covers layout of applications, dialogs and controls using markup, code, properties, methods, events and basic animations.</abstract>
  </session>
</sessions>
</diffgr:diffgram>
</DataSet>

 

Posted in  |   | Comments [0] 


Sorting an ArrayList using the .Net Compact Framework

Thursday, October 09, 2003 9:14:50 PM (Eastern Daylight Time, UTC-04:00)

In order to provide sorting capabilities for me Session List custom control, I needed a way to sort the ArrayList that I am using to store my data.  Within the .Net Compact Framework it is possible to due this by implementing the IComparable interface on the object class I’m storing in the array. This allows a single sort method. To provide multiple ways to sort the data, I can add more flexibility allowing multiple sort orders by implementing IComparer. The code listed below allows me to easily add the desired sort without adding a lot of custom sort code and taking advantage of the framework.

 

 

Public Class SessionListItem

        Implements IComparable

 

.

.  ' The rest of the class code is here

.

 

        Public Function CompareTo(ByVal obj As Object) As Integer _

        Implements IComparable.CompareTo

            ' The default sort method

            Return Me.SessionCode.CompareTo(CType(obj, SessionListItem).SessionCode)

        End Function

 

        Public Shared ReadOnly Property SortByName() As IComparer

            Get

                Return CType(New SortByNameClass, IComparer)

            End Get

        End Property

 

        Public Shared ReadOnly Property SortByTitle() As IComparer

            Get

                Return CType(New SortByTitleClass, IComparer)

            End Get

        End Property

 

        Public Class SortByNameClass

            Implements IComparer

 

            Public Function Compare(ByVal obj1 As Object, ByVal obj2 As Object) As Integer Implements IComparer.Compare

                'SortByName can use the default IComparable interface

                ' so call the CompareTo method

                Return CType(obj1, IComparable).CompareTo(CType(obj2, SessionListItem))

            End Function    'Compare

        End Class    'SortByNameClass

        Public Class SortByTitleClass

            Implements IComparer

            Public Function Compare(ByVal obj1 As Object, ByVal obj2 As Object) As Integer Implements IComparer.Compare

                'SortByTitle compares the integer property

                Dim SessionListItem1 As SessionListItem = CType(obj1, SessionListItem)

                Return SessionListItem1.m_SessionTitle.CompareTo(CType(obj2, SessionListItem).m_SessionTitle)

            End Function    'Compare

        End Class    'SortByTitleClass

    End Class

 

 

 

Posted in  | Comments [0] 


nbspAnother Day Some More Code

Thursday, October 09, 2003 9:27:44 AM (Eastern Daylight Time, UTC-04:00)

 Another day, some more code. I made some good progress on my Pocket PC PDC Session project. Mostly just worked on the custom control to display the info. I've started on the code to sort and I'm trying to decide what I want to do about filtering data views. I'm hoping to find time to put together all of the session info from the conference and get the web service going. I'm jus tnot looking forward to trying to strip all the info off of the PDC web site.(Wouldn't it be great if I could just get my hands on an XML file or something with all the session info!)

Posted in  |   | Comments [0] 


Benefits of Exploration Testing

Thursday, October 09, 2003 9:18:59 AM (Eastern Daylight Time, UTC-04:00)

A full day it has been! Tonight at the Triangle .Net User Group I enjoyed a very entertaining talk on the “Benefits of Exploration Testing” presented by Justin Gehtland founding partner of Relevance, LLC. Justin shared a learn by doing approach to software development. His highlights include:

 

The key principles that motivate Exploration Testing are:

 

1. *The best documentation is observed behavior.* Instead of reading
about how something should work, make it work yourself.
2. *Failures in your application are your fault, even if they aren't
in your code.*Between system libraries, frameworks, and third
party tools, most of "your" code isn't actually /your /code.
However, this is little consolation to users who trusted /you/ to
assemble a correctly functioning application.
3. *Learning is active.* Passively reading text or listening to an
instructor does not provide adequate reinforcement of concepts.
4. *Programmers* *are often forced to choose technologies based on
incomplete information.* Basing major decisions on documentation
alone is certain to lead to suffering later.
5. *Programmers must isolate and work around bugs in supporting
libraries.* Since the technologies are chosen based on incomplete
information, we are often forced to work around shortcomings or
flaws in the chosen technology.
6. *Knowledge must be kept continuously up-to-date. *Writing some
sample code before using an API in a shipping application is a
very good idea, but it isn't enough. Your knowledge of an API needs
to be validated against every patch or upgrade that end users
might encounter. Exploration testing naturally dovetails with
continuous integration.

 

He’s got a white paper and some other really good info on his site! I think with the pace of change in the industry, the succesful learning styles are changing. They need to for us to keep up!

Posted in  | Comments [0] 


Pocket PC PDC Session Utility

Wednesday, October 08, 2003 9:58:08 PM (Eastern Daylight Time, UTC-04:00)

Oh sure, just when you think you have a good idea, you read a PDC blog about somebody else doing the same thing. Well, at least similar! Who says there is no competition to innovate! I guess a learning project is still a learning project even if it’s not totally unique. Maybe this will even inspire me to get more done. It’s all good.

 

So what the heck am I talking about you ask? Well, in an attempt to try out a few coding things for a work project I decided to write a .Net Compact Framework app, partially inspired by the Task Vision sample, to act as an event guide at the upcoming Microsoft PDC Conference in LA.

 

The original idea was to have a disconnected app that could obtain a current session list from a web service, allowing the user to view and select their own “personal” session list stored on their device. I also wanted to have certain network aware capabilities to do some cool (potentially P2P) things at the conference if there happen to be some WIFI enable areas. I’ll keep you posted on my progress…

Posted in  |   | Comments [0] 


PDC 2003 - All I want is to be inspired

Sunday, September 28, 2003 8:05:34 PM (Eastern Daylight Time, UTC-04:00)

Talk of the upcoming Microsoft Professional Developers Conference is certainly filling the airwaves. Many are saying how great it’s going to be. The folks in Redmond all seem to have new exciting technology to share. Cool buzzwords including “Longhorn”, “Avalon”, "Whidbey", and “Indigo” have become part of the regular vocabulary.  However, there are now a few voices asking if it’s really going to be as great as everybody says. Is it going to be the conference of all conferences? Will more announcements be made and more secrets shared than at any other time in the history of conferences? Does it really matter? It’s already obvious that there’s more information there than any of us could absorb in such a short time. There’s no way to make every session, hear every tip, and see every single cool thing. For me, I just want to be inspired. I want to feel that I’m part of something bigger. I want to see the faces behind the code. I want to dream about what I can build. Sure, I’m expecting to learn some new things to do more, make my life easier and all that, but I think some times we get too caught up in the details. Go, learn, and meet some new people. Ask some questions, share some stories. People are going to be proud of what they’ve done and what they have to say. Let yourself buy in the vision and go away energized with their message. I try to remember an event like this is largely what I make of it.

 

Oh ya, than and I also hope to get a Datagrid Girl button!

Posted in  | Comments [0] 


Free Wi-Fi!

Thursday, September 25, 2003 10:30:37 PM (Eastern Daylight Time, UTC-04:00)

Well, at least for the day. Being the geek I am I could not resist working this afternoon from the Cafe at our local Borders Book Store. Today Intel and T-Mobile are having a special free wireless access day to promote their products. I've been curious for a while now about thei service so here I am. Besides it's a good test as my hotel for PDC apparently has a T-Mobile hotspot.

I'm personally a big fan of wireless access. Working from a home office just wouldn't be the same without it. Being able to wirelessly roam the head office when I am there as well just adds to the benefit. Bring on the wi-fi coverage!

 

Posted in  | Comments [0] 


PDC - I'll Be There

Thursday, September 25, 2003 8:57:27 PM (Eastern Daylight Time, UTC-04:00)

It’s official, I’ll be there! For me the past couple years has been a great adventure, turning me into a Knowledge Sponge, trying to figure this whole thing out. A lot has been learned and some pretty cool things have been done already, but I hope this will help me put it all together. Bring it on! Know if I only knew somebody else that was going….

Posted in  | Comments [0]