Twin Cities Code Camp - Fall 2007 Sessions
Here's a list of session titles currently submitted. Note that the final list may
not contain all of the session ideas.
Sessions
Quixo 3D: Game Programming in .NET
Quixo is a simple board game that is very similar to tic-tac-toe with a little more
complexity. In this session, we'll take the game from the 2D world into 3D space.
We'll discuss the underlying engine, the add-in model, design tools, and the client
application that renders the game using WPF.
Speaker
Jason Bock and Mike Hodnick
Links
Insane Code Generation
There are two primary ways of doing code generation: one, using code generation
mechanisms such as "wizards" that someone else provides and, two, creating your
own code generation templates. Writing your own code generation templates is coding,
pure and simple (well perhaps not so simple). I am going to show you how to code
templates using XML/XSLT, CodeSmith, MyGeneration, and (maybe) Orcas Software Factories.
This will include a lot of code from templates that I have written (will write)
for generating CSLA applications. One of the problems in generating code is how
to extend the generated functionality. No matter how cleverly you code the code
generation templates, there will always be some functionality that makes more sense
to generate by hand. I will take a look at three different approaches to how to
add that functionality to the generated code: using partial classes, using inheritance,
and using delegates. Unit testing is one very important factor in wanting to extend
to extend the generated code. I will cover some ways to structure the code, generated
and hand-crafted, to support unit testing.
Speaker
Jon Stonecash is a Senior Consultant at Magenic. Jon Stonecash has worked in software
development for much longer than he would like to admit. In that time Jon has had
the opportunity to make most of the serious software development mistakes at least
once. He has programmed in over a dozen languages including several different assembly
languages, Fortran, COBOL, SNOBOL, classic Visual Basic, VB.NET, and C#. He has
survived the structured programming revolution and the object-oriented revolutions
(having inexplicably missed out on the sexual revolution). Jon’s software development
activities have included the development of operating systems, scientific and engineering
applications, and enterprise systems. He has worked in every phase of software development
from the initial specification of requirements through to customer support. Along
the way, he picked up a BS in Mathematics and an MBA. He still has hopes of finding
something that he can be reasonably good at. His long term interests center about
databases and the aspects of the application that handle data access and business
logic. He is also interested in the tools and processes that assist the development
process. Jon can be reached at jons@magenic.com.
Links
NBusiness: An Entity Oriented Programming Library
NBusiness is an open source code generation project aimed specifically at the business
logic layer and the data access layer. NBusiness includes an Entity Language Provider,
E# compiler and a light weight business object framework. This discussion will describe
how to create an Entity Library with NBusiness, generate a database and integrate
it into an ASP.NET website. In addition we will discuss some methods in which you
can extend NBusiness and your generated business objects with custom code. NBusiness
leverages visual studio extensibility quite heavily, and this will also be a topic
of discussion.
Speaker
Justin Chase is a Software Professional working with Magenic Technologies for the
last two years. He is the lead developer on the open source project NBusiness. In
his spare time he likes to play paintball, brew beer and play games. He has participated
in judging a few home brew competitions with the Minnesota Home Brewers Association
over the last two years including the Minnesota State Fair.
Build an App using WPF, WCF, WF and CSLA .NET in an Hour
Using .NET 3.0 and CSLA .NET, see how you can build a (small) application in an
hour. The resulting app will have a UI layer, business layer and data layer. The
WPF UI will be rich and interactive, but nearly code-less. The application will
include both n-tier and service-oriented features, and will leverage WF for back-end
processing. Tired of PowerPoint? Want to see non-stop coding action? Then this session
is for you!
Speaker
Rockford Lhotka is the author of several books, including the Expert VB 2005 Business
Objects and Expert C# 2005 Business Objects books. He is a Microsoft Regional Director,
MVP and INETA speaker. He contributes to several major magazines and regularly presents
at major conferences around the world - including Microsoft PDC, Tech Ed, VS Live!
and VS Connections. Rockford is the Principal Technology Evangelist for Magenic,
a company focused on delivering business value through applied technology and one
of the nation's premiere Microsoft Gold Certified Partners.
Simple Web Part Development
I will be show how easy it is to get up and running with web parts in visual studio
for your web application, SharePoint 2003 or MOSS 2007. This talk is aimed at those
of you who have never played with web parts and would like the 100 level introduction
to creating and deploying your first web part.
Speaker
Scott Yokiel is a consultant at RBA Consulting. He has been in the IT space for
7 years with the last 4 dedicated to Microsoft .NET. He has served in many rolls
in his career from BA to developer; currently he is concentrated in the asp.net
space and looking to leverage 3.0. Outside of developing software Scott enjoys skiing
in the winter and camping in the summer, as long as there is no wi-fi access he’s
a relaxing.
Links
Utilizing the ASP.NET Adapter Architecture
ASP.NET 2.0 provides the ability to override control and page rendering in order
to tailor the output for specific browsers or provide new behaviors. One great use
of adapters is to use session storage for viewstate rather than a hidden client
field saving bandwidth and improving performance, which can be easily accomplished
with a custom page adapter. Learn how to use the siteMapPath control, but render
its output in a DropDownList to save screen space. See how to add querystring tamperproofing
to HyperLink controls without having to modify any existing site code.
Improving ASP.NET User Interfaces with the AJAX Control Toolkit
There are many controls and extenders provided by the AJAX Control Toolkit that
can be used to enhance ASP.NET user interfaces. The ValidatorCallout is used with
the existing validation controls to show a nice box with the validation message
that points to the field in error. The CollapsiblePanel provides an area of the
screen that can be collapsed to hide the content but leave a title bar with the
header. The ModalPopup displays a popup window and disables the remainder of the
page. There are many controls provided which provide a much richer experience for
ASP.NET web sites.
Speaker
Robert Boedigheimer works for Schwans Shared Services, LLC providing business solutions
with web technologies and runs Robert Boedigheimer Consulting, LLC. Robert has been
designing and developing web sites for the past 12 years including the early days
of ASP and ASP.NET. He was the lead architect, designer, and developer for the schwans.com
rewrite with ASP.NET, and recently implemented a large ASP.NET 2.0 project. He is
a columnist for aspalliance.com, an "Early Achiever" MCSD for .NET with C#, an MCPD:
Web with C#, and a 2nd degree black belt in Tae Kwon Do. Robert has spoken at industry
conferences including the Heartland Developers Conference, Twin Cities Code Camp,
Tulsa Tech Fest, Microsoft's Visual DevCon, and numerous national and international
VSLive! events.
Links
XNA Game Studio Express for teh total n00b!
In this session, we'll start from Ground Zero and hit all the high points of Game
Development with XNA. We'll spend a few minutes on what you need to get everything
running along with where to find it. Then we'll talk about what XNA (& XNA GSE)
is and is not! We'll cover Creator's Club, the 360 and finally we'll jump into some
code, talk about the game loop and dissect a working game. We'll also give away
an XNA book or two.
XNA and TorqueX - Let's Make a Game
This session assumes a basic familiarity with XNA. We'll take a look at what TorqueX
(Garage Games) has to offer XNA game developers and we'll go through a quick game
(using one of the TorqueX starter kits.) Time permitting, we'll also talk about
some of the resource packs from Garage Games.
Speaker
Chris Williams.
Links
An Introduction to Windows PowerShell
Windows PowerShell ( formerly code-named Monad) is a fantastic addition to any developer
or power user's set of tools. Windows Power shell has the widest range of any language
known. Quickly learn the basic concepts, it's a command line shell to write simple
adhoc scripts. Learn a bit more and use it to write rich sophisticated scripts to
manage production servers and the like. Taken even further, use it to write .Net
programs with the full power of the .Net frameworks.
Speaker
Doug Nelson is a Practice Partner with ILM. He provides expert application development
services for a growing number of clients with a primary focus on solving complex
business problems. These applications developed are based on a Sql Server backend
database with a web based front-end. He has been doing web development since 1996,
transitioning from CGI applications to classic ASP and on to ASP.Net. In addition
to the web development, these applications also support WinForms and Pocket PCs.
He has extensive experience implementing truly distributed applications involving
windows services, message queueing and web services.
Indexed LINQ
This session will discuss how the new features of C# 3.0 enable LINQ to work, and
how by using the new features of C# 3.0, you can extend LINQ to do enable innovation.
I will give an example of this in practice by demonstrating the building of an indexing
mechanism over LINQ to objects.
Speaker
Aaron Erickson is a Principal Consultant for Magenic. He is a ruthless advocate
for concentrating on creating the most business value in the least amount of time
when his clients entrust him to deliver a technical solution. Aaron has been delivering
solutions on the Microsoft platform for over 14 years, and currently leads open
source development efforts related to LINQ, including Indexes of Objects (i4o) and
LINQ to Expressions (MetaLinq).
ASP.NET - Planning for the Presentation
"[Javascript/Client Side Code] must be viewed as being a separate application that
interacts with your application as it runs on the server." – Rocky Lhotka, Expert
C# 2005 Business Objects. The presentation layer of web applications has
evolved into a complex tier that can be sometimes overlooked and underestimated.
In this session we’ll discuss best practices for implementing rich client interfaces,
de-mystify what ‘AJAX’ really is, and explore the process of architecting a Presentation
layer.
Speaker
Part of the emerging Canadian Developer Community 2.0, D’Arcy Lussier has been an
active member of the developer community for many years. In addition to being part
of the leadership for the Winnipeg .NET User Group, he is also the INETA Membership
Mentor for Manitoba, Saskatchewan, and Alberta, and has organized various user group
tours which saw Roy Osherove, Jean-Paul Boodhoo, and Jean-Luc David (among others)
make their way across central Canada. In addition to his community efforts, D’Arcy
holds an MCSD and has been developing with .NET since the initial beta. His focus
over the last 6 years has been on web development with ASP.NET and has presented
at the Winnipeg .NET User Group and the recent Calgary Code Camp on the subject.
XML Data Type Methods in the Real World
Tired of trying to extract values from comma separated lists? Need a more efficient
way to handle flexible parameters? This session is intended to show the power in
SQL Server 2005 in relation to the XML data type. SQL Server has a number of methods
which make using XML simpler. This session will demonstrate the usage of the XML
data type methods in the real world that makes database development easier. This
session will also discuss performance implications and any issues discovered while
using these methods.
Speaker
Steve Hughes is the Senior Data Architect at XATA Corporation, the expert in optimizing
fleet operations through an on demand software service for the trucking industry.
He has been working with SQL Server since version 7.0. Steve currently sets the
direction for storing and using data at XATA which includes using SQL Server 2005
and its many attached services. He is also a co-author of "SQL Server 2005: Applied
Techniques Step by Step" by MS Press and Solid Quality Mentors.
Emerging Data Tools: LINQ, Astoria and the ADO.NET Entity Framework
Data access has evolved over time to make working with databases easier and more
productive. In the Microsoft .NET Framework version 3.5, access to data is integrated
natively into the languages. In this session, we look at some of these technologies
including LINQ and Astoria and see how they impact our development approach. We'll
dive into the ADO.NET Entity framework and explore how to create and use the models
to map our way back to the data stores.
WPF, Silverlight and XAML
Working with XAML, a new way of declaratively creating user interface elements,
the professional design tools and innovative technologies in Expression give you
the flexibility and freedom to bring your vision to reality - whether you are designing
standards-based Web sites, rich user experiences on the desktop, or managing digital
assets and content. In this session, we'll look at the products that make up Expression
Studio and how they are used together to make great user experiences a reality both
on the web and on the desktop. We'll dive deep into Expression Blend and Expression
Design to see how they can be used along with Visual Studio 2005 to deliver rich
interfaces based on Windows Presentation Foundation for online and offline scenarios.
Speaker
Mike Benkovich is a published author, technology specialist and an MSDN developer
evangelist based in Minneapolis, Minnesota. Focusing on the effective use of relational
technologies for scalable, high-performance, and mission-critical applications,
Mike has worked as an architect, project manager, developer, and technical writer.
He speaks regularly at technical conferences and corporations.
Using Microsoft Robotics Studio
This presentation will show you the basics of using Microsoft Robotics Studio, Phidgets
USB control boards with an on board computer. We will cover using basic sensor available
and how to create an autonomous robot using sensor readings and visual input via
an everyday web cam. This presentation will also demonstrate using the System.Speech
API which allows your robot to do speech synthesis and speech recognition.
Warning: Presenter in not responsible for bodily injuries due to explosions
or attacks on attendees named John Connor.
Speaker
Michael Dunn is a Technical Evangelist for Magenic, specializing in speech recognition.
He is the author of the APress book, "Pro: Microsoft Speech Server 2007" and a MVP
for Office Communications Server.
Links>
LINQ to XML
We've been hearing a lot about LINQ lately, the new data access technology in the
upcoming 3.5 version of .NET. We've heard how it can be used to easily access data
from a variety of sources like custom objects, SQL Server, web services, and XML.
This session focuses on how to use LINQ to quickly and intuitively query XML data.
We'll take a look at the new XML object model in the System.Xml.Linq namespace (XDocument,
XElement, etc.) and how it supports LINQ to XML. While most of our time will be
spent in C#, we will also examine the new "XML literals" language feature in VB.NET
and how it makes coding LINQ to XML even easier.
Speaker
Peter Stromquist is a lead software engineer for Reuters, a world leader in news
and financial data. He's been in software architect and developer roles for over
eight years, working in industries such as financial data, banking, manufacturing,
and commercial software. Peter enjoys spending time with his family, biking, eating
good food, and screwing around with .NET.
Getting REST with WCF
This session will take a look at building REST-style services using WCF 3.0 and
3.5. It will provide a brief introduction to REST and what its advantages over typical
WS-* services are, especially for browser-based applications. The majority of the
session will be spent showing what it takes to build REST services using WCF 3.0
and how things get even better and easier with WCF 3.5.
Speaker
Jeff Brand is a .NET Developer in Microsoft’s Developer and Platform Group. Jeff
assists customers in evaluating, developing and deploying applications built on
the .NET Framework and the Microsoft platform. He has been with Microsoft for eleven
years and has served in variety of roles including infrastructure consultant, e-commerce
technology specialist, and enterprise technology advisor.
Hacking Arduino to Create a Cheap Ambient Orb
Like the Ambient Orb - but not the price? Want to get your own data into an orb
and don't want to go wireless? Have no idea what an Ambient Orb or Arduino is? Join
this session to learn about the open source Arduino board and how to make your own
orb using an Arduino and a handful of components from RadioShack and Ikea.
Speaker
Dan Bennett is a technology director with the online applications development group
of Thomson West. A software developer/lead/architect for 15 years, Dan has now joined
the ranks of pointy haired managers. However, all is not lost as he remains a keen
'hobby' developer in a variety of languages ranging from C to F#.
Links
Advanced Concepts in Software Testing
Software testing has gained a lot of interest in the recent past. Similarly, determining
system capabilities has been something people increasingly care about. But how do
you truly know what your system's capabilities are? How do you know for instance,
that the result of a stress test are not just a fluke or isolated incident? How
can you make accurate and responsible predictions about scalability? A few mathematical
techniques collectively known as Statistical Process control can provide an excellent
mechanism for measuring system performance and resource usage. It provides a solid
theoretical framework so there's no more "Seems to me like it should do ______"
or "Well, to me it looks right..." Statistical Process control was the driving force
behind Toyota, Nissan and Honda's successes, as well as Sony, Nakamichi and many
other brands known for their quality. And it can be applied to virtually every aspect
of software. To use it, you need a pencil, piece of paper and a calculator, although
a copy of Excel makes it really simple. No expensive tools needed and no heavy learnign
curve.
Speaker
Bill Ryan