Silverlight, WPF, ASP.NET

A Day of Questions

Tuesday, October 28, 2003 3:22:43 AM (Eastern Daylight Time, UTC-04:00)

Today I was very excited to wake up in LA knowing full well that I didn't need to depend on a form of transportation other than my own two feet to get me to the PDC. (I confess, I took the shuttle, but I could have walked). Arriving early at the site to register (Thanks to Scoble for the heads up on the early registration times) before any sort of rush.


Without any lines I walked up and was rapidly provided with a bag full of goodies. Since there was no line, the nice lady that helped me decided she had some time to ask about my "I'm blogging this" t-shirt. "What does that mean?" She asked, "What is blogging". Hmmm.... what is blogging?? I know what it is. I have a blog, but what "is it"? I did my best to explain that it was an online journal that allowed me to make comments about subjects, in this case the event, that allowed anybody on the internet to view it. She heard the words, but I think I need to come up with a better definition.


I quickly found myself all ready nowhere to go. I used the time to get my devices configured for the wireless access. Everything worked great just like it's supposed to. However, seeing that I was online brought a number of questions from others having problems getting configured. (Most just needed to refresh and IP or connect to the correct wireless service)


Before long it was time to get in line to get a good spot for the keynote. The whole line up, file in, and find a site made the "longhorn" name seem much more appropriate. However, before going in there was another question. A fellow in a "Longhorn" shirt approached, greeted me and proceeded to ask what I expected to see and hear. Again, more questions. If I knew what I was going to see and hear I wouldn't be standing in line. I did my best anyway to explain that I was optimistic we'd see the new OS Longhorn and some demos about the other various aspects. I continued on to explain that I was also there see the "hype" and too be inspired by it. After a few minutes of chatting he mentioned his name (Hillel). A short while later in the middle of Bill's talk I was quite shocked when he introduced Hillel Cooperman to demo Longhorn. All I could think about was what I could have said differently if he had walked up and said "Hi, I'm Hillel Cooperman and I'll be doing the Longhorn demo for Bill Gates." Oh well... You live and learn.

Posted in  | Comments [0] 


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 [1] 


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 [1]