Bookmark and Share

C# Ninjitsu

C# Ninjitsu is a presentation I’ve given at conferences in cities from Cairo, Egypt to Pensacola, FL. I am providing the slide deck and the demo files I use in the presentation. These resources may not be helpful unless you’ve seen the talk, so I may post videos of each segment in the near future. Until that time, why not visit me at DevLink or another conference?

Synopsis: C# is no longer a purely object-oriented language. It is no longer just an imperative, class-based, component oriented discipline. It is also a generic, declarative, functional discipline. I will introduce new principles in the context of the classic object-oriented and SOLID principles and show you how to master the C# language to be more declarative, more fluent, and more functionally cohesive.

Download Demo Files

Bookmark and Share

Speaking at Cairo Code Camp

On February 27th and 28th, I will have the honor of speaking at Cairo Code Camp in Egypt. It is my first international speaking destination, and I hope to make the best of it by presenting two topics I feel are important to designing better systems.

RESTful Data

I’ve given this talk in many locations, but I’m updating it for WCF Data Services in .NET 4. The gist of the presentation is that developers want objects, not relational data, so give it to them. In the process, you will design a distributed, multi-tier architecture! Here is the synopsis.

REST is an architectural style that allows for a layered, scalable, and cacheable enterprise information system. With WCF 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. We will also extend it in such a manner that the service has control over what data is served.

C# Ninjitsu

I will give a teaser presentation of this at CodeMash for Telerik that covers principles in the post object-oriented C# world. The full presentation contains refactorings and patterns to make your code fluent. Design reusable frameworks, be a C# Ninja. Here’s the synopsis.

C# has humble beginnings as an object oriented language of the purest kind. It was class-based, it was imperative, and it was component-oriented. For many years, the classic object-oriented design principles served class library designers well, and the programming world rejoiced.

Chaos began creeping its way into the world of C#. They were minor things at first: a generic list here, a nullable type there. Developers used these elements to enhance their work. But those that understood utilized them to varying degrees. Some applied the new techniques with wanton abandon. Some kept the old traditions in mind.

Then the dark specter of functional programming infiltrated the language. For those that were doomed to a life of incoherent language usage, there was no hope. But those that held onto the old traditions managed to get by.

There is another way. C# is no longer a purely object oriented language. It is no longer an imperative, class-based, component oriented discipline. It is also a generic, declarative, functional discipline.

I will reexamine the object-oriented principles and introduce new principles. I will then introduce new refactorings as we move toward a more declarative, fluent world.

If you can make it out to the Code Camp, be sure to say hi. It will be the largest developer event in Egypt. I can’t wait to meet my friends in Egypt who I’ve collaborated with on open source projects and the social web. I also can’t wait to check out the pyramids and Cairo museum; a dream I’ve had since childhood!

Bookmark and Share

Richmond Code Camp

Tomorrow after work, I'm driving to Richmond to speak at the Richmond Code Camp. In the past, I didn't plan out which sessions I would attend. Instead, I just floated to whatever seemed interesting. This time, I'm taking the steps to get the most out of the conference. Here's my schedule.

8:00 - 8:45am - Auditorium - Welcome And Keynote

I'm not a morning guy, particularly after driving 6 hours. However, I'll try to be on time to catch the keynote.

8:45 - 10:00am - Speakers Lounge - Preparation

Before I give a talk, I like to review my material.

10:15 - 11:30am - Room 223 - Introducing MSBuild - Chris Eargle

My talk. I would be disappointed if I wasn't there.

11:30 - 12:30pm - Lunch

Lunch will most likely consist of pizza. Were you aware that researchers have discovered that people who eat pizza at least once a week are at a lower risk for certain cancers?

12:30 - 1:45pm - Room 220 - Guerilla SOA on WCF - Joshua Graham

I love SOA, and I love WCF. I'm not so sure about the guerilla part.

2:00 - 3:15pm - Auditorium - How to Give Technical Presentations: 101 - Hal Hayes

Maybe I can learn a few tricks to make my presentations better?

3:30 - 4:45pm - Room 210 - Implementing validation when using the ASP.NET MVC Framework - Roberto Hernandez

I'm curious about the validation techniques used when you don't have postbacks. In a layered application, I use UI validation only to provide a better user experience. I would expect true validation to occur in the business or service layer.

5:00 - 5:30pm - Auditorium - Wrap Up and Prizes

The fun part. I haven't won an Xbox 360 yet.

 

Bookmark and Share

Presenting at Raleigh Code Camp

I am speaking at the Raleigh Code Camp during the lunch session. I was told it would be made into a webcast for INETA. If that's the case, I'll post a link up to it when I receive it. The topic is Design Principles, and the slide deck is available.
Bookmark and Share

Braving Fay

I was surprised to hear that the Jacksonville Code Camp wasn't cancelled. A major tropical storm was coming through the area at the time, but the organizers for the Code Camp weren't going to let that stop them. I decided if they were brave enough to hold a conference during a tropical storm, I should be brave enough to drive into it. Just not in my rag top; we took my wife's car.

Friday, my wife and I packed our bags and headed out the door. We were picking Lou Vega up from Charleston, and it was going to take 6 hours total with that detour. We hit the largest storm immediately outside of Columbia. Life is so ironic. The worst we encountered from Fay were strong winds. It's not fun when you're inches away from a concrete barrier and you can feel the wind pushing your car to and fro.

We were quite lucky that the storm had cleared the streets. A certain direction web site changed E Coastline Dr to Line St. This caused us to end up in a very unsavory part of town. Once we determined that there wasn't a Hyatt Regency between what appeared to be crack houses, we called the hotel to get directions. The most eventful part of the evening was when Lou wrestled an alligator driven from its habitat by the storm... but that's a story for another day.

The Code Camp went very well considering the circumstances. The location was moved to a different part of town, but we didn't have trouble finding it due to my spidey senses. It felt kind of odd giving a presentation from the back of a room, but all was well in the end. I was able to meet up with some old friends, Scott Dorman and Russ Fustino, and made a few more. Later that night we went back to the Regency for the after-party. One benefit of the reduced attendance was the proliferation of blue tickets. It ended up being like a pub club with better food and a nice view of the river.

If you haven't made it to a Code Camp before, I recommend you try it out. It gives you a chance to learn, win books and software, and hang out with other members of the development community. The best part is they're always on the weekend, so it will not interfere with your regular work schedule.

Bookmark and Share

MSDN Event in Columbia

Tomorrow, Russ Fustino will be speaking at an MSDN event in Columbia. It's the only MSDN event in South Carolina this quarter. So, if you're around tomorrow be sure to attend!
Bookmark and Share

C# 3.0 Presentation

The examples I showed in my C# 3.0 presentation were based on the examples provided in the Visual Studio 2008 Training Kit. The source code for the new features in C# 3.0 are located, by default, in C:\VS2008TrainingKit\Labs\WhatsNewC#. There are other great labs in this kit as well.

  • Building Web Apps
  • Building WPF Apps
  • CardSpace
  • Client Application Services
  • Dynamic Sites
  • Intro to ASP.NET Ajax
  • JSON
  • LINQ to SQL
  • Silverlight Monster Factory
  • LINQ in VB9
  • VSTO (Excel, Outlook, SharePoint, Word)
  • Windows Communication Foundation
  • Windows Workflow Foundation
  • What's New in VB9
  • Workflow Services
  • WPF Data Binding

That's an exhausting list of material to learn!

Of course, code alone doesn't give you a lot of information. Here are the topics I touched upon with links to MSDN.

C# 2.0

·         Partial Types

·         Aliases

·         Static Classes

·         Property Access Modifiers

·         Generics

·         Nullable Types

·         Null coalescing operator

·         yield

·         Delegates

o   Inference

o   Covariance/Contravariance

o   Anonymous methods

 

C# 3.0

·         Auto-Implemented Properties

·         Object and Collection Initializers

·         Implicitly typed variables

·         Anonymous types

·         Extension Methods

·         Lambda Expressions

·         Expression Trees

·         LINQ

Bookmark and Share

Presentation at SC Code Camp

I will be presenting on Continuous Integration & MSBuild at the SC Code Camp. This will be the first time I've presented at a Code Camp. In fact, it will be the second time I've done a technical presentation. The first was the past Tuesday in Florence. This has been quite a big step for me.

The odd thing is that I'm in the "Smart Client" track. I guess they ran out of room in  "Tools and Framework." My presentation will be during Session 5, 2:35 - 3:40. If you make it, be sure to say hi.

KodefuGuru.GetInfo()

Chris Eargle
LinkedIn Twitter Technorati Facebook

Chris Eargle
Telerik Developer Evangelist, C# MVP

JustCode

Telerik .NET Ninja

 

INETA Community Speakers Program

 

MVP - Visual C#

 

Friend of RedGate

World Map

Tag cloud

Month List

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2010
Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer’s view in any way.