Log in

No account? Create an account

DevLynx Labs

At the end of April Microsoft announced a new initiative called Microsoft Office Labs. Microsoft Office Labs is an experimental concept - in their own words: “We're a group of designers and developers that collect ideas from all over Microsoft... We build working prototypes of the most promising of these ideas to see if they work as well as we hope they might.”

Karel Kral responded to my April 17th post with an interesting discussion. In his response he mentions that Rich Newman, skeptical of their value, is not using UIExtensionSites in his project. Karel Kral also notes that the Ribbon contains more than buttons and galleries. He is of the opinion that creating a workable UIExtensionSite from the Ribbon control is not possible; that switching between the menu/toolbar and Ribbon paradigm will result in an interface which caters only to the lowest common denominator.

My response can be summed up in three simple words: “I don’t know”. Welcome to DevLynx Labs. DevLynx.ShellApp is a lab experiment in how far I can take the CAB technology and create a rich user experience. I expect that there is an even chance that I will fall flat on my face - a prospect which, while not appealing, I am willing to risk.

There are a number of reasons that I started this experiment:
  • I need to learn C# - not just the syntax of a new language, but the philosophy of .NET. I have been a Turbo Pascal / Borland Pascal / Borland Delphi programmer for 22 years but it's time to move on.
  • I wanted to experiment with the full range of tasks required to produce excellent software. In all of my development employment I have worked in a code like hell (#27) environment. So I have gone to great effort to try many new things and find out how they work. These are the technologies that I am using (* indicates I am using this technology substantially for the first time in this experiment):
    • *Visual Studio and C#
    • *Loosely coupled development using the Composite UI Application Block
    • *DXperience Enterprise
    • Subversion source control (SmartSVN client)
    • FinalBuilder automated build tool
    • *XML Documentation using Sandcastle and Sandcastle Help File Builder
    • *GhostDoc to stub out the XML documentation
    • FogBugz bug tracking integrated with Subversion (I have used an issue tracking program for all of my career - this is my first try with FogBugz and integrated source control)
    • Help & Manual for writing this journal (and eventually the help file for DevLynx Address Book)
    • *Regular Expressions (using RegexBuddy to help build and learn)
    • *XPath (using SketchPath to help build and learn)
    • Sparx Enterprise Architect for UML diagramming
    • *CodeRush and Refactor! Pro as coding enhancements
    • *NUnit for unit testing
    • *NMock2 for mocking objects
    • *NCover for code coverage testing
    • *TestDriven.NET test runner
    • *Object Relational Mapping for data access and database agnosticism
    • Beyond Compare for file and directory synchronization
    • I have not decided on an installation program but I'm leaning towards Inno Setup
  • I also desire to be a better writer. The best way to improve writing is to write. This journal, the XML documentation and additional help content is an effort to improve this skill.
  • I have used many, many, ideas from people who have posted those ideas on the web. I think that it's time to give back to that community. If I can help someone else struggling with these same issues I feel that I should do so. This is the first step in that direction - I hope that it is a sustainable effort.
  • I left the military because they had taught me everything they were going to teach. I have left other employment because I had stopped learning at that position. If I'm not learning something new I get restless and unhappy. Quite frankly, I was (am) approaching this state at my current job (Is my boss listening? - I hope so!). This experiment is an effort to remain happy in my chosen profession.
  • Finally, the environment at work is not conducive to reflection (code like hell and then directly into the next fire). We can only better our skill if we can take time to reflect on issues and problems. This experiment is done at a pace where I can take time to reflect and really improve my skills.
So in the end will I (or you) be able to use the framework that I am developing? I hope so. I'm working hard to keep that end in site, but there is still risk. If you read the reasons stated above they don't include producing a functional framework. So far I have satisfied ALL of my goals with this project. Plus, I'm having more fun than I have had in years. Even if I fail to produce a usable framework, it has been a raving success for me.