SyntaxHighlighter

Thursday, October 25, 2007

My First Ever Code Camp!!!





Finally a code camp in the seattle area... usually they hold these in places I can't visit like Canada, Oregon, California, etc. Now finally there will be a code camp at the old Nintendo building now Digipen in Redmond. It will surely be a lot of fun and I hope to learn a great deal... especially with the following break out sessions.

Sessions


Using SubSonic

There are a lot of ActiveRecord implementations out there. Come check out SubSonic a lightweight offering on CodePlex.Track: ASP.NETSpeaker: Chris Kinsman
Castle - The DVD Extras

Many people have already heard of the Castle Project [http://castleproject.org] and some of the major subcomponents: Monorail, ActiveRecord, Windsor. Whether you use these things or not, Castle has build up a compelling array of supporting components and libraries that are relatively easy to use from your application - even if you're not using the rest of Castle: Dynamic Proxy, an NVelocity fork, Scheduler, FlexBridge, and other things not directly associated with Castle. In addition, a lot of the Code is so well written, you just feel smarter after having read it. Let's take a look at some of these things, how you can leverage them, and what the code looks like.Track: ASP.NETSpeaker: Chris Bilson


Dependency Injection with ObjectBuilder 2.0

What is dependency injection? When should I use it (and when not)? This talk will answer those questions and more, plus show off some of the design changes made to ObjectBuilder 2.0 (and sample containers that drove and validated the design).Track: Core .NETSpeaker: Brad Wilson


Rethinking Unit Testing: xUnit.net

The release of NUnit 2.0 was 5 years ago. This version of NUnit was more than just a warmed over port of other frameworks, pioneering the use of aspects to describe tests in .NET. Unit testing began to really catch on in .NET. Five years later, most developers are doing unit testing, and many of them cut their teeth on NUnit. With many unit tests under their belt, Jim Newkirk (the primary NUnit 2.0 author) and Brad Wilson -- with feedback from many friends and co-workers -- have released a new unit testing framework for .NET, xUnit.net. In this talk, Brad will discuss the history of xUnit.net, including their motivations and decisions, as well as show the new framework both for test writers and for those who wish to extend the framework for their own uses.Track: Agile PracticesSpeaker: Brad Wilson


Pex – Automated White Box Unit Testing

Parameterized unit testing is becoming a mainstream feature of most unit test frameworks; MbUnit RowTest (and more), VSTS data tests, xUnit.net Theories, etc... Unfortunately, it is still the responsibility of the developer to figure out relevant parameter values to exercise the code. With Pex, this is no longer true. Pex is a unit test framework addin that can generate relevant parameter values for parameterized unit tests. Pex uses an automated white box analysis (i.e. it monitors the code execution at runtime) to systematically explore every branches in the code. In this talk, Peli will give an overview of the technology behind Pex (with juicy low-level .NET profiling goodness), then quickly jump to exiting live demos.Track: Core .NETSpeaker: Peli
Windows Live DevelopmentIn this session, we'll take a look at the Windows Live development platform, which enables 3rd party applications to integrate with Live ID, Contacts, Spaces, Messenger, Alerts, Silverlight Streaming, Virtual Earth, and Expo.Track: ASP.NETSpeaker: Ed Kaim


Reflector and Friends: An overview of Lutz Roeder's .Net Reflector and its add-ins

Do you use Reflector on a daily basis? How about it's addins? Ever want to write your own addin? If so, you will probably find this session of some use and maybe even have something to add. This will be an introduction and overview of Lutz Roeder's .Net Reflector tool and some of the addins the community has developed for it along with a look at developing additional addins of your own. There are two sections to this talk: an introduction and overview of the tools (length depends on the experience of the attendees) and a look at developing Reflector addins or extending existing ones.Track: Core .NETSpeaker: Jason Haley


Black Belt DSA, building Duplex Agents

The Disconnected Service Agent in the Smart Client Software Factory allows you to queue up web service calls to a remote server when disconnected. These calls are played back once the connection returns. This is great for simple message exchange patterns that instantly return a response. However, it does not help you in the case of a long-running operation in which the response is to be returned out-of-band. Come to this session and see how we can tweak the DSA to allow it receive an asynchronous response. We'll utilize a WCF Duplex channel to provide an agent that will make a call and go about it's merry way until it receives a call back from the server. This functionality is beneficial beyond offline scenarios, I'll show you how you can also use this technique to faciliate exchange patterns with multiple responses. For example requesting a large result set of data that is returned in a chunked fashion over multiple successive calls. If you are develeoping with SCSF / CAB, don't miss this session.Track: WCF and WFSpeaker: Glenn Block


Session state injection your way with WCSF

The StateValue mechanism in Web Client Software Factory provides a nice clean way of injecting values to and from ASP.NET's session state. One of it's big advantages is it provides for testability, allowing the values to be substituted in a unit test. Another big advantage is that it allows a declarative way for values from ASP.NET Session's state to be plugged in. But what happens if you aren't relying on ASP.NET Session and have a custom or third-party mechanism? Are you "up the creek without a paddle"? Actually no. Come to this session and I'll show you to "Have it your way" and make our Session State strategy bow to submission.Track: ASP.NETSpeaker: Glenn Block


Data Enhancements in Visual Studio 2008

Visual Studio 2008 offers a number of features that make it easier to build both 2-tier and n-tier data applications. This session will cover the following: • Using the new TableAdapterManager to manage updating of related table. No more having to write the code make sure child rows are deleted before parent rows. Now, it’s automatic. • Using ADO.NET Synchronization Services to maintain a local copy of data that doesn’t change often, such as lookup tables, and then synching that data with the server version. • Automatically separate DataSet code from TableAdapter code. Today, you must do this by hand if you want to use the DataSet Designer and build an n-tier application. Or you can have VS 2008 do it for you. • LINQ to SQL classes and the Object Relational Designer. The LINQ to SQL classes provide a way to map a database model to an object model. You can write the code yourself, or you can use the Object Relation Designer and drag and drop tables and stored procedures from the Server Explorer. Track: Core .NETSpeaker: Robert Green


Windows Application Enhancements in Visual Studio 2008

Visual Studio 2008 includes some cool and exciting new features for building Windows client applications. In this session, we will explore two of them: • Client Application Services provide a way for you to add remote login, roles and profiles to client applications. Today, you can log into a Web site such as Amazon and the Web site knows who you are and what your preferences are. They are stored on the server and you are who you are regardless of what computer you use. Client application services gives you the ability to add this same functionality to a Windows application. You will write a service to authenticate users and to determine what roles they have. You can then call that service from any client. You can also write a service to manage settings. So you can store user settings on the server rather than only locally. • Windows Forms and Windows Presentation Foundation Interoperability. WPF is the revolution in user interface we have all been waiting for. Over time, it will increasingly be the way you build client applications. In the meantime, what do you do with all your Windows Forms and user controls? You will want to use them in your WPF applications. And what if you build a neat WPF control? You will want to use it in your Windows Form applications. With Visual Studio 2008, you can and we’ll see how. Track: Core .NETSpeaker: Robert Green


An Introduction to Windows Communication Foundation

This session will provide an introduction to Windows Communication Foundation. It will answer a number of questions such as: What is WCF? Why was it invented? How does it compare to Web services or .NET Remoting? How is it better than those? What is a service? How do I create one? How do I host one? How do I call one from my applications? What do I need to do to make sure clients and services can communicate? Once we answer these types of questions, you will be able to start creating your own WCF services and have a much better understanding of how to work with this promising new technology. Track: WCF and WFSpeaker: Robert Green

For more info head over to the site.

Seya There!!!

Tuesday, October 23, 2007

Modifiability: Or is there Design in Agility






This is a question that often comes up in Software Engineering. As I follow the blogs and discussion I often run into some wonderful information... and sometimes it's life changing. I happen to catch the following video which I encourage all developers to watch which is narrated by none other than Martin Fowler.
The discussion covers quite a few aspects of software design including things like how to make design decisions, TDD (Test Driven Development), BDD (Behavior Driven Development), encapsulation, and more. The panelists for the discussion are so very gifted and talented at what they do, they are all brilliant in there own way and conveniently enough work at thoughtworks.

Rather than go into each one of these guys web site... I'd rather just point you to InfoQ
which is where there web sites, articles, and videos can be found. If you can... check out each one of them, they all cover so many topics and you will certainly learn a lot. I have... ; )

Saturday, September 15, 2007

"Make It Right" Software






For those of you that know I'm buying my first home soon(Prescott) also know that I'm going to be there during the build to make sure all the necessary additions are made the way they are supposed to be. For the past several months I've been watching Discovery Homes new show... Holmes on Homes Mike Holmes is my definition of a world leader in pure and honest craftsmanship. His approach to building/renovating homes is second to none... he has a clear vision to all projects and fully supports learning and implementing new concepts to make outstanding finished products. I like his approach so much I've decided to use that same approach to building software... when Mike has a problem with implementing the right kind of solution such as removing asbestos... he calls in the pro's and makes sure it gets done right. This same principle can be applied to software development... whether it's security, exception handling, validation, or just pure design its very feasible to look around at what others are doing to help ease the pain in implementing these kinds of important decisions that every developer faces. Speaking from experience... this approach works, you can implement such things as Microsoft application blocks, Design Patterns such as MVP (Model-View-Presenter) to help with certain areas of each application build or re-build. My approach to building software or re-factoring software will always be to "Make It Right" and "Above Code" which can be translated to above standards. This will insure that the software will run and last a long time... the same will be true for my first home.

-Thanks Mike

Thursday, September 13, 2007

"The Meeting"

Today I reached a milestone in my life where I heard everything I had been working so hard to hear. "Cameron... we need you to be apart of our team and we're prepared to make you happy to do so." Today I got promoted to develop on the C++ team, thanks to all the hard work and research I did on C++/CLI integration with native C++ I was able to bridge the gap between native and managed code and leverage both in a .NET web application. Anyway they want me to do more of this, especially since I was able to completely erase 6 months of COM work in just a few short weeks of C++/CLI... This promotion is leading to a lot of great opportunities and experience in the financial industry and with the C++ language. Knowing that I'm only 27 and earning 95k annually is a great feeling... I thank god and my family (Wife... Rachel & Daughter... Katheryn)for supporting me through all the extra time I put in on the weekends and the late nights so that I can learn. Learning is the best thing anyone can do in anything that they do, and I will never stop learning. ; )

Friday, August 17, 2007

Developing software in the financial industry

The new job is going great only 4 weeks in and already so much has happened. My first task was to migrate a VS2003 C# Windows application with 3rd party charting capability to VS2005 C# 2.0. That took about a week seeing as how the application wasn't very big... and since I used the MVP (Model View Presenter (Supervising Controller)) Design pattern the data was flowing very well. Then came the infamous request from my boss that most developers never want to face, but will most likely face at one time or another in there career... "Can you port that windows application in to a web application?" Luckily my use of the MVP Design pattern helped me to confidently respond "Yep! No problem..." So week two I began the journey of encapsulating the majority of the windows application logic in to ASP.NET 2.0 Web Components. These components would ultimately be used in the departments intranet site... This was looking to be a smooth transition until I got to the new major dependency of the application which was none other than a C++ COM object. Oh and did I mention the person that created the C++ code and COM object are no longer working for the company. :) So what's an experience C# developer to do... what any experience developer would do... research. So the idea is to integrate legacy code in to my modern .NET code, otherwise known as Interoperability. So I looked at my options and it turns out there is a managed C++ language known as C++/CLI and Microsoft has done a significant amount of work to not only aid in Interoperability challenges of COM, but to have the best of both worlds with performance of native(UnManaged) code and Managed code. Week three I read as much as I could on C++/CLI for C# developers by Dean Willis... a great reference to help any .NET developer come up to speed on writing C++, and since I'm new to the language it was even more of a hurdle, so I got a few native C++ books as reference as well. Overall, the main thing I needed to understand was interop between native/managed code. so by the end of
week four and the entire weekend I was able to write my own C++/CLI wrapper around native C++ API's. Awesome stuff, after a while of writing managed C++ begins to feel a lot like C#... so I began to feel right at home... I'm happy to report that I've replaced the COM object which took the guy who wrote it 3 months development time. It took me about a week and half. :) My boss was so impressed that he's considering moving me up a step to work on a C++ team. I've only been writing C++ for about three weeks time... thank god for Microsoft's work on C++/CLI.

Long story short... if you have any interoperability to do with C++ into managed code, seriously consider C++/CLI... there are a lot of options to help with seamlessly integrating with native code. Oh... and on a side note, no one on the C++ team including my boss even knew about C++/CLI so when I told them about the interop story on the white board they literally where stunned, and I of course looked very good. : )

Thursday, July 5, 2007

My New Developer Job!


Alright... taking a break from the home automation projects I was able to focus on job interviews
much like the picture above. Well... maybe not exactly like the picture above, but the job I did land is similar. I'm now working for a well known banking company that goes by the name "Washington Mutual"... Scott Hanselman eat your heart out. This is going to be a great move,
I'll get to embark on the world of JAVA and C++ and Oracle 10i on the back end... I'll be sure to give updates as I go along, my start date is 7/16/07!!

Sunday, June 3, 2007

Project Morning Weather Channel



The project has been completed for about a week now... I'm still editing the videos and will post them soon. For the time being I thought I would at least discuss the products used in the videos in a little more detail. If you have not read any of the previous post then "shame on you"... and if you have... "thank you". This project surfaced due to my daily struggle of waking up, getting to the living room, turning the t.v. on, and channel surfing to the weather channel to check the daily weather with out waking up my 5 year old daughter or lovely wife. As if this weren't enough challenges I have to keep a 1 1/2 year old yapping Yorkie and 9 year old tuxedo cat quiet as well... as you can probably imagine it's a daunting task... so I started looking for a solution. I need a way to automatically turn the t.v. on, navigate to the weather channel and mute the volume prior to my waking up in the morning. Enter the solution... so I will be using an old school 32inch Zenith TV(Man I can't wait until I get my house so I can upgrade to plasma) with a comcast DVR reciever, then I will use a USB IRTrans transmitter along with packaged web server which is controlled through a custom .NET application.
At first I implement a console application for simplicity... then I factor out the code into a windows service for a little bit of polish. The videos should shed more light on the implementation and I certainly had a lot of fun doing them. :)