Sessions
Beginner
An Introduction to Kanban
Learn to take your development workflow to the next level by examining a core part of lean software development: the Kanban. Kanban is a way to manage workflow in an iterationless manner, with a focus on delivering value at the end of the stream. In this session you will get a brief introduction to lean principles, learn to identify some of the waste associated with scrum and waterfall processes, and how a Kanban helps you overcome those wastes. The focus will be on the concepts that drive a kanban workflow, and a discussion of how to migrate from your existing methodology.
Constructing Effective User Stories
This session will talk about some of the pitfalls to traditional software requirements and how to improve the overall development process and software quality with user stories and team planning.
Database Design Fundamentals
by Keith Rowe
Before you get immersed in all the technical details of SQL Server, let's talk about the fundamentals. What does it mean to normalize a database? How do I pick a natural primary key vs. a sequence? What about naming tables, views, columns, etc? We will use the "chalk talk" format. I will introduce a topic then ask the class to share their ideas and experiences with the topic. We will have plenty of fundamentals to cover, so I will serve as moderator to keep us on track. Quoting cycling great Greg LeMond – "Perhaps the single most important element in mastering the techniques and tactics of racing is experience. But once you have the fundamentals, acquiring the experience is a matter of time."
Delegates, Lambda’s, and Expressions (Oh My!)
by Jim Wooley
The .Net framework has slowly evolved to allow for different programming paradigms. Over the recent versions, there have been a number of features added to allow for more declarative and functional programming options. In this session, we will explore the concepts of Delegates, Anonymous Delegates, Lambda Expressions, and Expressions and see how using them can add flexibility and functionality in our applications.
Foundations of SharePoint
So you have heard about SharePoint but don’t know much about it. Maybe your company is talking about moving to SharePoint and you want to see what this means for you. Or maybe you just want to find out what the fuss is about the biggest selling product in the Microsoft product line. This session may be perfect for you. Here you will get an overview of SharePoint and how it works. You will get an understanding of what some of the differences are between Microsoft Office SharePoint Server (MOSS) and Windows SharePoint Services (WSS). You will see what functionality comes out-of-the-box with things like a library of included Web Parts as well as a glimpse of what you can do when OOTB doesn’t meet your needs. This is a high-level course that will provide a basic overview of all facets of SharePoint and is intended for all audiences.
Intro to 3D Computer Graphics with XNA
by Daniel Rowe
The genius of XNA lies in its simplicity, yet many beginners are intimidated by its powerful 3D graphics features. This lecture aims to demystify some of the concepts that block a casual learner from getting started. What is a projection matrix? What’s the difference between a vertex shader and a pixel shader? What does a graphics card actually do? XNA’s 3D features are approachable by even a casual programmer with average math skills, and this lecture seeks to aim aspiring game programmers in the right direction.
Introduction to InfoPath 2007
InfoPath is one of the hottest technologies associated with SharePoint today. This is for good reason. InfoPath allows developers (and even non-developers) to quickly and easily create web forms to replace their paper counterparts. For example, if your company has a paper expense reimbursement form (or maybe even one using something like Microsoft Excel), InfoPath can easily convert that form to an electronic version that can seamlessly store the submitted results in your SharePoint environment. From there, SharePoint can do things like run workflows on submitted form or even generate reports for decision-makers. Once the data is in SharePoint, you have all the tools within SharePoint to use that data how you see fit. This course will give an overview of InfoPath 2007 and the differences between Microsoft Office SharePoint Server (MOSS) 2007 and Windows SharePoint Services (WSS) 3.0 implementations. Since one of the biggest selling points of InfoPath is that it allows non-developers to create elaborate digital forms, this course is literally applicable to anyone currently using SharePoint or planning on making the move.
Introduction to the MVC Framework
This is an introductory level presentation on the Asp.Net MVC Framework to include popular topics such as URL Routing, Controllers, Views, and Model Databinding.
LINQ Tools
by Jim Wooley
LINQ was introduced with Visual Studio 2008 as an abstraction layer over set based data. Since then, the simple, yet expressive has spawned a variety of tools and extensions to work in conjunction with LINQ. In this session, we’ll look at a number of the free tools that are available to add functionality to LINQ, including the LINQ to SQL Visualizer, Expression Tree Visualizer, Paste as XML, LINQPad, and T4 Templates. We’ll also look at some of the extensions to LINQ to work against other data sources, including REST and Twitter.
Refactoring 101
Code refactoring is the process of changing a computer program's internal structure without modifying its external behavior or existing functionality. This is usually done to improve code readability, simplify code structure, change code to adhere to a given programming paradigm, improve maintainability, or improve extensibility and is directly related to SOLID principles. Come see how we can refactor poorly written code to be more descriptive and better structured.
Reporting Services 2008 - Report Authoring
by Ryan Duclos
Introduction to Reporting Services 2008 and an overview of some the Report Authoring changes from Reporting Services 2005 and Reporting Services 2008.
RESTful Data
by Chris Eargle
REST is an architectural style that allows for a layered, scalable, and cacheable enterprise information system. With ADO.NET Data Services, a database can be surfaced to a service as a REST-style resource collection that is addressable with natural URIs and can be interacted with using the usual HTTP verbs: GET, POST, PUT, and DELETE. This session will describe RESTful Data, the benefits it conveys, and its uses. Then we will set up a data service using an existing database that developers would then access rather than accessing the database directly.
RIA Data Services Introduction
NET RIA Services address the complexity of building n-tier applications through framework, tools and services. Framework components support prescriptive patterns for writing application logic and validation so that it can be easily used on the presentation tier. I will start by building a simple application using a new Silverlight 3 control called the Dataform. Will then move on to building a more complex detail vew. Will demostrate how this framework can be used to build UX with little code and address N-Tier issues.
Setup and Configuration of SharePoint
When you are thinking about SharePoint, one of the first things you will probably want to know is “What is involved in setting this thing up?” This session will go into exactly what you will need in order to set up your own SharePoint environment. The presenter will go into a single-server installation and how you might set up different multi-server farm topologies. You will get an idea of the differences in a clean install versus an upgrade from a legacy version of SharePoint as well as brief discussions on storage requirements and site structure considerations. While this course is more targeted at the system administrators maintaining SharePoint infrastructures, it will be taught at a level that anyone interested should be able to follow along and gain valuable information for decision making and planning purposes in your own environment.
SharePoint Experts Panel
This presentation will essentially be a facilitated discussion on SharePoint hosted by a panel of SharePoint professionals (including those the SharePoint speakers from Code Camp). Planned speaking points will include best practices, tips & tricks, and a peak at SharePoint 2010. Come to this session to ask your questions on SharePoint and to get some exposure to real-world practices that may help you get your own implementation started or running more safely and securely. This session is intended for all audiences.
Software Process Improvement with Lean and XP Principles
Learn how a focus on continuous improvement coupled with supporting engineering principles can be a major difference maker in managing your project portfolio and increasing team throughput. During this session we will focus on quality software, the Zero Defect Mentality, and the workflow of a lean software team. You will get an introduction to lean methodology and how it differs from agile, as well as the measurements and organizational changes that are required to implement lean on your team and in your organization.
SOLID Principles
SOLID Principles are generic practices to writing clean, quality code. Each letter represents a principle for software development. These practices have been proven again and again that they are excellent practices to adopt and bring to your team.
Source Control with Subversion
An introductory course discussing the basic of source. What is the trunk, a branch, or a tag? How do you get started with a source control product? How does a tool like Subversion integrate with Visual Studio?
The Elements of Software Design
by Dave Laribee
When we're making software all we're really doing is designing according to some conceptual model that lives in our minds and the minds of our users. In this talk we'll examine how Domain-Driven Design and Language-Oriented Programming techniques can help us build affordances and live with constraints in our software models. The discussion will be part intro and part interactive question and opinion, which is to say: if you don't participate, this talk will suck and everyone from beginner to expert is welcome!
WPF - XAML an Introduction
by Steven Lane
This session will be an introduction to the Windows Presentation Foundation. We will concentrate on XAML and declarative based programming. Will examine the document capabilities of WPF. We will also look at the implementation of “loose” XAML.
Writing Widgets for WindowsMobile 6.5
How to write a basic widget & use Widget API. How to use AJAX to talk back to your .NET application.
Intermediate
A Mashup Made In Heaven
Get set to meet up at the intersection of Practical Problems (2), Social Networks (3+), and Services in "The Cloud". This talk is a relatively deep-dive into a solution for the age old problem of reducing distraction... while integrating some of today's proven, but still cutting-edge, technologies to do it. So what exactly are we going to do? 1). Discuss a simple, but real-world, problem 2). Quickly examine possible solutions 3). Walk through one such solution AND, we'll make use of no less than three (count 'em, three) recently discussed technologies. See you there!
ASP.NET MVC Custom View Helpers
If you have been using ASP.NET MVC then you certainly have been using some of the built in view helper methods that are available, you know those expressions like Html.TextBox("textBoxName") and Html.ValidationMessage("Required"). View helpers are nothing more than extension methods which create HTML that is injected into your views based on the method and its parameters. Creating your own view helpers is very simple and can be extremely beneficial. By writing your own custom view helpers you will benefit in at least the following ways • Simplifies Your Views • Easies Rehydrating HTML Elements with ModelState Values • Standardizes the Creation of Common HTML Components • Helps you Implement the DRY (Don’t Repeat Yourself) Principal We will take an in depth look at how you can easily and effectively create your own view helpers.
Control your reports? (Reporting Services 2005)
by Ryan Duclos
Having trouble or trying to figure out how you can navigate to your reports through your application, without creating a complete dashboard? This session will show you how to navigate and control your reports through your application using links.
Developing a Calculator Restful WCF service in Azure with Silverlight Client
The Azure™ Services Platform is an internet-scale cloud computing and services platform hosted in Microsoft data centers. This session will explore the development of a WCF Calculator service hosted in Azure. I will show how to register the Azure service locally for testing and deploy the result in Azure. The WCF call is Restful so the service can be consumed by any web based client .I will then consume it from a Silverlight client although this could just as easily be an IPhone.
IE8 for Developers
by Joe Healy
More user are on IE8 than Safari? Are you ready? Is your website standards compliant so it works with IE8? If not are you handling the 'x-ua' meta tag to make your site render in IE7 mode? If not, come explore the wonders of x-ua, as well as the world of the built-in dev tool bar, accelerators, web slices, managed add-ins for IE. Also covered will be IE8 enhancments to the javascript langauge.
Integrating Reporting Services into SharePoint
One of the important components for any line of business application, web or otherwise, is the ability to accurately report on business data in a way that decision makers can easily understand. To this end, Microsoft SQL Server Reporting Services is there to allow developers and non-developers alike to easily create stunning reports that can connect to a variety of data sources to provide rich interactive reports that can be easily integrated into your SharePoint portal. In fact, since the 2005 version, SQL Server Reporting Services has come with the ability to run in a special “SharePoint Integrated” mode. Come to this session to find out what is new in SSRS 2008 and how it integrates directly into SharePoint to make reporting a powerful and essential part of your SharePoint implementation. This session is intended for all audiences.
jQuery Basics
Multiple versions of multiple browsers make it hard to write JavaScript that works in all situations. Complex web applications don’t simplify the task. jQuery is a JavaScript library that simplifies JavaScript coding and lives by its motto: Write less, do more. This session will take an introductory look at jQuery and how to leverage in your web apps.
Learn to build distributed multiplayer games with cloud messaging
Boat Battle (http://boatbattle.com) is an open source distributed multiplayer naval warfare game. It is also the first distributed multiplayer game powered by cloud messaging. Come and see how you can quickly and easily build your own massively multiplayer online (MMOs) and casual (turn-based) games using cloud messaging and the Boat Battle source code as a template.
Learn to build your own desktop instant messenger
Linxter Messenger (http://linxtermessenger.com) is an open source instant messaging application, serving as a sample of the benefits of cloud messaging. We will play with the ready-to-run version and do a full code walk through. You are encouraged to modify and extend the code to make it your own. Come and see how you can quickly and easily build your own app for either internal use or bring your own commercial app to market.
Mashing it up: ASP.NET MVC, Bing, Maps, and Flickr
by Chris Eargle
Did you know that many of the technologies you use are available for consumption in your own applications? In this session, we will build an ASP.NET MVC website mashing up various resources available from around the web. We will pull businesses from Bing Phonebook and map them to a Bing Map control using their location information. Using the Bing Map control, we will allow the user to obtain directions from the location they entered. We will then use Flickr to locate photos that have been geotagged from nearby locations to provide our users with a visual context of the business for which they're finding directions.
Persisting Data with NHibernate
Tired of writing all of your data access code by hand? Perhaps you've heard of NHibernate but you are not sure where to begin. We'll take a look at how to getting with NHibernate and discuss some of the fundamentals of ORM (Object Relation Mapping).
SharePoint Site Administration
by Jamey Baxter
This session will walk through some of the best practices for things like Code Access Security (CAS), Roles & Groups, and different levels of permissions (item-level, site-level, list-level, etc.). You will also get a glimpse of Site Templates and Web Application creation for your SharePoint environment. This session is a slightly deeper dive than some of the other SharePoint sessions and is more targeted towards topics important to someone already familiar with SharePoint. However, the session will be taught in a way that anyone can get something from the presentation.
The SharePoint Developer
SharePoint is awesome right out of the box. However, to get the most out of your SharePoint implementation, you really need to get under the hood and tweak some things (or just create some new things). This is when the SharePoint Developer comes into play. This session will show you what developers can do and the tools they have available towards that end. You will get exposure to the SharePoint Object Model as well as a demonstration of the tools, Microsoft SharePoint Developer and Microsoft Visual Studio, that every developer should be intimately familiar with. This session is more targeted towards developers. However, if you want to know the things your developers can do for your own implementation, this session will be really insightful for you as well.
The wonderful world of Generics, and Reflection
Have you ever wondered what the benefits to using generics in your application are? Have you wondered how linq can perform operations on such a variety of types? I will cover topics such as generic collections, implementing method and class generics, commonly used .Net Framework intefaces, and the art of using Reflection. Note: All code samples will be in C#.
Utilizing Web Deployment Projects
In this session we will take a look at how Web Deployment Projects can be used to assist in the deployment of web sites and web applications; including ASP.NET Web Applications and ASP.NET MVC Web Applications. We will give an overview of what Web Deployment Projects are and the functionality that is available out of the box. A Web Deployment Project is a wrapper for the aspnet_compiler.exe tool in the form of an MSBuild project and adds value to using the tool itself. Because they are MSBuild files we are able to customize and extend the process. We will discuss how we can customize the process to perform common steps such as 1. Creating Virtual Directories 2. Updating values in the web.config file 3. Encrypting the web.config file 4. Minimizing JavaScript files 5. Versioning the Assemblies
What is a DSL?
A broad survey of the topic of Domain Specific Languages as it is being rethought by the current generation of software developers. The question of “What is a DSL?” will be explored using the state machine example. We will discuss the various types of DSLs and how you may be creating them and don’t even know it. If time permits there will be a demonstration and discussion of Microsoft’s graphical DSL tool.
What’s new in Managed Languages
by Jim Wooley
The next version of Visual Studio will bring a number of enhancements that will reduce the amount of code you need to write and maintain. We'll show you how to use the following technologies in the next release of Visual Studio: Auto Implemented Properties, Implicit Line Continuation, Statement and Multi-Line Lambda Expressions, Parallel extensions to the .Net Framework, Dynamic Language Interop, Co- and Contra-Variance, and Programming office without requiring dependancies on the Primary Interop Assemblies. In the process we will also show how Visual Studio 2010 allows us to generate code based on our usage to enable test first development models.
Advanced
Migrating from LINQ to SQL to the Entity Framework
by Jim Wooley
With 3.5 SP1, Microsoft released two competing technologies to provide Object Relationship Mapping strategies over data - LINQ to SQL and the Entity Framework. Microsoft has indicated that, although they will continue to support both technologies, future enhancement efforts will be directed toward the Entity Framework. As a result, people who built applications over LINQ to SQL are faced with the challenge of moving them over to the Entity Framework to take advantage of future enhancements. In this session, we will explore the similarity and differences between the two technologies to help identify times when you should and should not migrate existing code bases. We'll focus on the common pitfalls that developers need to be aware of when moving between the technologies. We'll also look at architectual options you can make to make migration less painful. Additionally, we'll look at some of the functionality scheduled to be included in future versions of the Entity Framework which may influence decisions on making migrations.
Practical Guide to Software Craftsmanship
A practical how-to guide to becoming a better software developer. Taking you through examples of unit testing, SOLID principals, refactoring, and techniques for continuous improvement. This is a practical guide that will give you techniques that you can start building on today.
Silverlight with Model-View-View Model pattern
It will show how to use the Model-View-View-Model in combination with dependency injection to provide a powerful flexible framework for Silverlight apps including unit testing. MVVM pattern is an adaptation of the MVC and MVP patterns in which the view model provides a data model and behavior to the view but allows the view to declaratively bind to the view model. Dependency injection thru interfaces will let us provide different data access strategies such as RIA data services , WCF or Azure.
