Dan Rigsby - Coding Up Style

.Net, C#, & Wcf Development

Archive for the 'Community' Category


Lansing Day of .Net

Posted by Dan Rigsby on 28th June 2008

DSC02881This weekend I spoke at the first Lansing Day of Dot Net in Lansing, MI. This trip was a bit different as my wife joined me for the first time.  She didn’t come for the Day of .Net, but afterwards we headed up to Mackinac Island for an anniversary trip.  She did enjoy the event though and even got to attend my session.

We got up to Lansing on Friday night after dropping out daughter off at the in-laws in Fort Wayne, Indiana.  We arrived around 6:30 pm and met up with Joe Kunk, Keith Elder, Jeff McWherter, Jeff’s wife, Vivek Joshi, Vijay Jagdale, and others at the local Kinko’s.  Somehow my wife and I got tricked into helping fold pocket-mod event schedules while we were there.  Afterwards, we went to a local Lansing event called the Festival of the Moon which as to commemorate summer nights.  It was basically just a fenced in beer garden.  We met up with Alan Stevens, his wife, and James Bender there.  We didn’t stay too long as we got a bit bored with the drunken crowd and odd choices of music by the local band.  We ended up heading across the street to a local pizza shop that offered Karaoke.  Jeff, Alan, Keith, and myself all stepped up to the mic and performed our own renditions of various tunes.  It ended being an early night since many of us had to speak in the morning. While in Lansing, my wife and I stayed with Vijay who graciously let us use a spare bedroom he had instead of paying for two nights in a hotel.  Thanks for your hospitality Vijay!

On Saturday morning we headed to the event.  I quickly met up with a number of old friends: Dave Redding, Chris Woodruff, Michael Wood, Carey Payette, Michael Eaton, Jason Follas, Patrick Foley, Josh Holmes, Jennifer Marsman, and Jay Wren.  I also got to meet Len Smith and Sam Nasr and help forge some new friendships.

Sessions

Distilling the Dynamic Language Runtime

Josh Holmes kicked off one of the first sessions with a talk on the DLR and the relevance of dynamic languages in today’s world.  Josh is a Microsoft Evangelist and an amazing speaker.  I was very surprised to see that there were only 10 attendees in his session.  I can only attribute this to the fact that he held one of the first sessions of the morning.  Originally the event was suppose to start at 9am, but a few days before, they moved the start time to 8:30.  I surmise that many people hadn’t made it to the event yet.

Josh did a great job as usual.  This session was very introductory, but it was still informative and put things into a perspective that I hadn’t quite thought of before.  Here are my notes on his session:

Languages ProgressionDSC02882

Early Languages

More at machine level and programming against registers at a low level

Modern Languages

C++, VB

Frameworks

Java and .Net allow us to write against a framework that talks to a machine.

Looking back over the history of languages, Smalltalk and LISP are dynamic languages.  LISP is 50 years old.  Why didn’t dynamic languages take off?  Some say dynamic languages were infer.  However as we get more powerful PCs a dynamic language becomes more viable

What is a Dynamic Language

  • Analogy of taking everything with camping, like running shoes, and even canoe.  Then as the trip changes, you can adjust.  If you feel like hiking, then you have your shoes.  Everything you could need is with you.
  • Decisions limit options.  Make a decision to go down a long road means there aren’t options to move.
  • Agility = Options, Quarterbacks have options of different receiver they can use
  • Dynamic languages emphasis runtime over compile time
Dynamic typing (or duck typing)

Type can change at runtime. “If it looks like a duck and talks like a duck, then its a duck”.  Josh gave an example where at a banking company they used a 16 bit integer to store values, but as time went on, that was not enough.  It would have been nice to use a dynamic language and allow the variable to expand and adjust as needed.

Dynamic Features

Open up the types at runtime which allow you to inject new properties to existing and running classes. Add the ability to dynamically add new properties to objects.

“Trade CPU cycles for productivity” Dynamic languages are slower, but its all about the trade of ideas.

About making your life easier, not the CPUs life easier.  CPUs are getting faster, why not harness the ease for the developer and user.

Evidently, Ruby is now Josh’s favorite language.  In Ruby, one of the goals is to reduce line noise (things such as variable declarations, casting, semicolons, etc is just noise).  Strings in Ruby are mutable.

What is TDD?

Test Driven Development

Analogy of Car assembly: A car isn’t sculpted as one piece.  A car is built out of many different components. Each part of a car is designed and independently tested before it is put in place.  (However, they aren’t always tested well together).  This is a lot like unit testing.  Each unit of code should be defined and tested.

Yagni (You aint goina need it) – Don’t waste time building stuff you aren’t going to need.  If you design your tests before you write your code, then you are building specifications for how the code should work.  Anything that doesn’t have a test must be fluff.

Steps in TDD
  1. Write tests based off of requirements
  2. Run the tests to make sure they fails.  If a test doesn’t fail, how can it be a good test?
  3. Write just enough code to pass the test.
  4. Go back and write more tests (step 1), and continue down the list

The tests become the documentation for how to write the code.

Dynamic Language Initiative in .Net

CLR –> Frameworks –> DLR –> Langauges

Python was originally written in C.  Eventually there was a Java implementation of python called jython.  When IronPython came along it ended up running twice as fast as standard editions of python.

Regular Expressions can be your Friend

Vijay ran a session on Regular Expressions and since he was hosting us for the weekend, I really wanted to make sure I attended his session.  He did a great job of introducing regular expressions and what is possible with them.  He event got into ways to help circumvent text based attacks.  The only real suggestion I have on the presentation is to go over some of the differences in how regular expressions are implemented in different languages.

I was surprised at the number of people who attended and how much the audience got into the topic.  This presentation contained a lot of code and demos which really fit well with the flow of the topic.  I hope to see Vijay continue to speak at future events.

Manage Complexity with Agility

Alan Stevens gave this session which covered an Introduction to Agile and the MVC pattern.  I have never gotten to attend one of Alan’s speeches before due to other conflicts, so I was glad to be able to attend this one.  Alan did a great job.  His explanation and examples of the basics of MVC and TDD were amazing.  There is no way I could have given that good of an introduction.  I went into session knowing this material, but it was great to see things in a new light, and you could see people in the audience get that little “ah ha” look.  I look forward to catching some of his talks in the future.

My Session: Agile Project Management with Scrum

DSC02887My session had a modest 30 or so attendees.  I covered project management, what is “Agile”, and gave an overview of Scrum.  The audience had a number of good questions and comments.  This was the first speech of mine that my wife attended, she commented, “You did better than I expected, not that I expected you to be bad”.  I am not sure how to take that, but I think it was meant as a complement.  I do think that I get better each time I speak, but I have a long way to go to get as good as many speakers that I see.  I had a number of people come up to me after the session to make comments and ask more about how they could apply Agile techniques at their own companies.  Many people still seem to think that these techniques cant be applied to their environment.  I hope that I can help change that perception over time.  I have some ideas for some other Agile talks, hopefully they will see the light of day and be picked up at future events.

The materials from my session can be found here: http://www.danrigsby.com/files/Presentations/AgileMgmtWithScrum.zip

Closing Thoughts

The Lansing guys did a fabulous job for their first day of .Net.  I was amazed at all of the details they put into the event such as shirts for all attendees, commemorative cups for every speaker, a local camera crew to document the event, getting the mayor of Lansing to give closing remarks, etc.  I will do my best to get on the speaker list again next year.  I am sorry for those who didn’t make the trip up, this event was well worth the time and price of gas.

After the event, Jeff McWherter hosted an afterparty at his house which he claimed took more planning than the actual event itself.  Jeff really organized a high quality afterparty.  Most of the speakers and a lot of the event attendees made it out.  There was a lot of food, even more alcohol, and most importantly many good conversations about .Net. Unfortunately, my wife and I left around 9pm.  We still had to start our anniversary trip up to Mackinac Island in the morning.

Posted in Community | 4 Comments »

IndyPASS 3rd Birthday Bash

Posted by Dan Rigsby on 18th June 2008

DSC02863 IndyPass is the Indianapolis Professional Association for SQL Server.  Tonight they celebrated their 3rd Birthday Bash. The speaker was Tom Pizzato, Data Platform Architect, at Microsoft.

John Magnabosco kicked us off with the introduction.  He gave the usual announcement events, board elections, etc . John ended by asking for job announcements, but was interrupted by the famous Buck Foley.  Buck is a “Matt Foley” impersonator (the ‘van down by the river’ character played by Chris Farley on Saturday Night Live), and the actor is a ‘Database Guy’ by profession.  He brings his own flavor of humor and applies it to SQL technologies. Buck seemed to be under the impression that he was the main speaker and not Tom Pizzato who he called “Pizza-Toe”.  He winged his talk this time, but it was still humorous and set a light hearted tone for the rest of the meeting.

Tom’s talk was broken into two sections: a detailed talk about new features followed by a series of demos.  The talk mainly went over all of the new features and changes in SQL Server 2008.

Tom’s Talk

DSC02865 Amazing Journey

Tom has worked with SQL Server for close to 19 years.  He started his talk by taking us a down memory lane by showing some of the original disks for the first version of SQL Server back when it was just a OS2 port of Sybase.  He also  picked fun of the fact that there was a launch event for a product that has not yet been released. A few items of interest from his introduction were:

  • Microsoft is still on track for a Q3 launch of SQL Server 2008, but skill couldn’t give us a more specific date yet.  The next version of SQL Server will be in 2010 (at least that is where it is planned).
  • FileStream data cannot be saved to a separate machine in SQL Server 2008.  it is still limited to the machine running SQL Server 2008.  Microsoft knows this is a limitation, but they chose to just get the feature out there first.

Protect your Information

  • Secure Access
    • Strong Authentication
    • Granular Authorization
    • Transparent Data Encryption (TDE)
    • External Key Management
  • Protect System
    • Secure Deployment
    • Secure by default: This ones  is going to be a pain for some people.  Secure by default means everything is turned off by default.  Microsoft is taking this mind set into all of its major projects.  I have talked about this before in terms of Wcf, but we also see it in Windows Server 2008 where almost no features are installed by default.

Ensure Business Continuity

  • Ensure Availability
    • Mirror your data: Automatic repair of primary from backups
    • Failover clustering
    • Replicate your data
  • Minimize Downtime
    • Online Operations: More to help you keep your system up including, hot swapping CPUs while running in production
    • Add system resources
    • Reduce Recovery time
  • Concurrent Access
    • Database Snapshots: Not many changes here
    • Snapshot Isolations

Predictable Response

  • Optimize Performance
    • Efficient Data Storage: Finally Compression at the data and backup levels. in SP2 for SQL Server 2005, the vardecimal datatype was introduced which helped open the doors for this feature.
    • Prescriptive Guidance
  • Analyze Performance
    • Data Collection: Collect reports instead of wiping them
  • Predict Performance
    • Plan Freezing: Allow you to save query execution plans to xml that can be run on other machines.
    • Resource Governor: Set up resources into pools and assigned users to them.  Such as giving 70% CPU and memory to a power users and  rest to non-power users.

Reduce Management Cost

  • Flexible Administration
    • Visual Management: Management Studio improvements, Powershell integration, etc.
    • Automate Operations
  • Manage centrally
    • Enterprise Policies
    • Monitor Compliance
  • Monitor Health
    • Management Reports
    • Performance Tuning Tools

Simplify Development

  • Easy Access
    • Model Entities: Models can be built off multiple tables such as a “User” entity that spans multiple tables.  LINQ can then be used to query over this data. This is what is formally called LINQ to Entities.
    • Integrated Query: Most of the LINQ stuff is slightly slower, but it is a trade off of getting the code done faster development vs. performance.  This is also know as LINQ to SQL.
    • Comprehensive connectivity
  • Program data logic
    • Time aware applications: Introduced separate Date and Time fields.
    • Pass data results
  • Sync your data
    • Local data storage
    • Offline Synchronization

Store your information

  • Unstructured Information
    • File Storage
    • Search Text
    • Extensible Types
  • Geospatial Information
    • Spatial Standards
    • Visualize Location
  • Structured information
    • Model complex hierarchies: No more need to use CTEs to recursively query data to build hierarchy trees.  The new Hierarchy data type can store these values
    • Enhanced Partitioning

Integrate and Manage data

  • Build Faster
    • Connect to data
    • Cleanse Data
    • Integrate data
  • Manage Efficiently
    • Efficient Data Storage
    • Mange mixed workloads
    • Streamline Aggregates
  • Scalable Performance
    • DW Query Optimizations: Lots of optimizations in performance of Star joins
    • Enhanced Partitioning: Easier to align partitions with their indices.

Deliver Relevant Reports

  • Author reports
    • Enhanced Designers: Licensed technology from Dundas to create better and more professional looking reports.
    • Flexible Layout: Introduced Tablixs.
  • Manage reports
    • Enterprise Platform: SSRS was rewritten to not require IIS and scale better in the enterprise
    • Server-based Deployment
  • Deliver reports
    • Rich Visualizations
    • Render in office
    • Share reports

Drive Actionable Insight (Analysis Services)

  • Build Analytical Solutions
    • Scalable Platform
    • Prescriptive Guidance
  • Extend Reach
    • Manage KPIs: How many Microsoft tools report KPIs?
    • Predictive Analysis
  • Deliver Insight
    • Work in Office: Data mining add-ins for office allow you to mine and report on data directly from Office tools
    • Business view of data

Tom’s Demos

Demos were done using SQL Server 2008 CTP 6.  Tom had 9 demos to show but only got to 6 of them.  The demos were run from a custom application that had the queries and results all displayed in a custom window.  This was obviously a pre-canned set of demos or at least a pre-canned tool, but it was a great way to display these features.  I know it took a lot of time to put together,

Auditing

  • Auditing performance can eat up to 10%
  • Audit logs are stored in a separate file on the disk.  These files are not xml or directly human readable, but at least they can’t be queried like any other table.
  • Audit logs can be maintained by setting up rollover files and file sizes

Compression

  • Compression types can be set at the row or page levels

Powershell

  • Only works for the relational engine
  • Can right click on teh database in management studio and say “Open Powershell”
  • Once in powershell you can say “dir”and get the list of database objects including being able to drill into tables, users, etc. 
  • You could even run more complex Powershell queries such as the ability to get tables where row count is > 1000 like:
    • dir | where < $._RowCount -gt 1000
  • You can pipe results out to HTML or other mediums

Freezing Plans

  • Gives you the ability to take a query execution plan and save it to XML
  • Can then specify when plan to use when executing a query

New DateTime Datatypes

  • Separate Date and Time datatypes
  • A new DateTimeOffset datatype supports years 0001 to 9999 as well as storing time zone information
  • A new DateTime2 datatype supports years 0001 to 9999

Table Value Parameters and Merge

  • This was the last feature dropped from SQL Server 2005
  • A new MERGE statement allows merging of rows from multiple tables. You can choose to update matched rows, insert unmatched rows, or delete unmatched rows from the primary table.

Prizes

I know a lot of people probably only came here for the prizes, and there were some great giveaways again this year.  There was an Xbox, a 30 gig Zune, two 8 gig Zunes, and a slew of books and other swag.  As usual I didn’t win anything, even though the odds were pretty good.  But I came here for the event more than the prizes

Final Thoughts

I do miss having Bill Baker at the Birthday Bashes, but Tom has been filling in nicely. He is a good speaker, is able to answer most questions, and is very competent in his skills. He was asked some detailed questions about LINQ to SQL and LINQ to Entities that he couldn’t answer, but he wasn’t afraid to punt on them and commit to getting Joe Healy to come to talk about LINQ at a future meeting.  I am looking forward to future events at IndyPASS.

Posted in Community, MSSQL | No Comments »

Heroes {Community} Launch - Ft. Wayne

Posted by Dan Rigsby on 14th May 2008

I finished another Heroes {Community} Launch event last night in Ft. Wayne, IN for the .Net Users of Ft. Wayne (nufw).  I volunteered to speak up here because my in-laws live in Ft. Wayne, and I figured it would be nice to give my wife and daughter the chance to visit with them while I was speaking. I have had this event planned for a couple of months, but I knew it would be hard to do an entire launch event in just one night.  Fortunately, they were really only interested in Visual Studio, but it was still difficult to squeeze everything into one event. The major areas of discussion were:

Visual Studio 2008

  1. What are the features in Visual Studio itself targeted to different types of developers: All, Windows Client, Web Client, Office, Mobile, and Server.  I went into highlights in each one of these that people may or may not know about.
  2. New project properties
  3. UAC support in application manifests
  4. New Css Support in web projects
  5. New Web Designer
  6. Javascript Intellisense
  7. Javascript Debugging

Languages

.Net Framework

  • Additions to .Net 3.0 features (WCF, WF, WPF, Cardspace)
  • Additions to Windows Forms
  • Additions to ASP.Net
  • System.Addin
  • Additions to CLR (HashSet, ReaderWriterLockSlim, DataTimeOffset, TimeZoneInfo, etc)
  • Expression Trees

Overall, I think my presentation went pretty well.  We started a bit late since we had to wait an extra half hour for the pizza to arrive.  It would be hard to hold a 2 hour meeting with a bunch of hungry developers.  The meeting was held in a small conference room at local company. We had 30 people attend which was one of the highest attended events that NUFW has ever put on, but meant that the room was very crowded.  We had to bring in seats to fit everyone, and I was forced to have some attendees sit behind me which was a bit uncomfortable.

I really enjoyed presenting there, and I hope they invite me back again in the future.   Unfortunately though, they didn’t provide questionnaires to the attendees.  So if anyone who attended this event is reading this, please provide any feedback (both good and bad) either as a comment to this post or directly to me.  I would like to know what I am doing well and what I could do better, but I hope everyone enjoyed the presentation.

Here is the entire presentation including slides, before and after projects, code snippets, notes, etc.: http://www.danrigsby.com/files/Presentations/HeroesCommunityLaunch-FtWayne.zip

Posted in Community | 1 Comment »

ArcReady: Architecting for Scalable and Usable Web Applications

Posted by Dan Rigsby on 13th May 2008

ArcReady is a quarterly Microsoft architecture meeting that travels through the Midwest.  This quarter Larry Clarkin himself is presenting on "Architecting for Scalable and Usable Web Applications".  Larry is the Architect Evangelist for the MidWest region and well known in Indianapolis. This session is about how to prevent scalability problems in web applications and how to handle them before they happen.  This is not a quick fix session about how to fix applications that already have an issue.

The room here in Indianapolis was packed.  There was a mix up in the rooms, and the ArcReady event got the smaller room.  There ended up being over 50 attendees with quite a few standing in the pack.  I was pleased that I left early and got a seat.

Performance vs Scalability

Performance is how your application behaves when there is just one user. Scalability is how your application behaves when there are many users.

Scaling Later: Don’t worry about how to handle your 1 millionth customer when you don’t have your first yet.  It’s good to start thinking about scalability early, but don’t spend a lot of time on it until the system is being used.  Getting revenue means that you have money to work on scalability in the future.

Patterns for Scalability

  1. Block and Tackle: Diagram your network layout and all of its resources so you can identify potential bottlenecks early.  Caching can really help elevate the load.  For instance, cache the list of States in the country since this list isn’t going to change between page requests.
  2. Scale Up: Taking existing architecture and improving pieces of it.  Many times this means work on the database server.  Web servers are easy to scale out, but databases can’t be farmed like web servers.
  3. Scale Out: Adding more servers and potentially changing your architecture.  This often means adding more web servers in the web farm and moving the session to the database.
  4. Specialize: For each server you add, give it a dedicated role such as a web application server, web service server, and a resource server.
  5. Split the application: Put different parts of an application on a different server.  For example, at Amazon.com each tab for its’ store is on a different machine.  Microsoft has parts of its’ site on separate machines such as microsoft.com, msdn.microsoft.com, and technet.microsoft.com.  Microsoft ties its’ sites together with Live Passport and search indexing.
  6. Split the database 1: Split the database based on data.  Perhaps have a Reference (read) and Transaction (write) databases.
  7. Split the database 2: Reads happen a lot more than writes.  So have a lazy replication from writable database to a read database.  This could be done with replication.
  8. Split the database 3: Sharding - Split data on some key such as area code or A-L & M-Z, etc.
  9. Geo Distribution: You need to keep multiple copies of the data in multiple locations to avoid things such as power outages and natural disasters.  You could even use these sites to help route the traffic to its closest server center.  This does take a lot of replication work, but can really help with failover and scalability.
  10. Offload the Work: Content distribution networks can help help funnel the work.  You could even push your entire web server farm to a company that specializes in this.

Anti-Patterns for Scalability

  1. Spending all your time looking at code: Chances are the problem may be a setting or a hardware related issue
  2. Caching everything: Scalability can be destroyed because of everything stored in memory.
  3. Services calling services (especially across the network): This is a mess and causes performance issues.

Scalability Tips

  • Make sure you set debug=false in your web.config file before deploying.  Partially because the timeout becomes timeout and the resources held by that request are kept with that infinite timeout.  You can put a string in the machine.config to prevent debug=true settings on any website on a machine.  It’s best to turn this on for every production webserver.
  • Load balancing SSL is specific to the session and the service.  So if you just do true load balancing, performance and scalability will drop with SSL because of how the SSL negotiation works.  For each server a request gets routed to the SSL tokens need to be renegotiated.  To help prevent this, you can use server affinity so that every request for a client stays on the same server.  You could also have a single SSL negotiator that is in front of the web farm.
  • Many times images and resources take up the majority of the data in a web request. So you can move these files to a separate server to help distribute the load.  This can include images, javascript files, css files, etc.

Usability

Application Archetypes

  1. Information/Reference: Wikipedia, blogs, etc
  2. E-Commerce: Amazon, e-bay, etc
  3. Utility: Windows Update, etc
  4. Data Viewer/Editor: Reporting sites, etc
  5. Document Viewer/Editor: Office, etc
  6. Entertainment: Gaming, Movies, etc

Web UX Continuum

  1. Ubiquity: Web
  2. Richness: Supplemented Web such as Silverlight
  3. Next Generation: Platform Optimized such XBAP

Overall there are 35 different UI platforms that Microsoft gives developers.  You can run UXIQ (download) to give you the best option for your needs.

Usability Best Practices

  1. Form follows Function: Think about functionality first
  2. Create a set of design tenets: 5-6 pillars of design principles that the application must have such as "I don’t want the user to have to click more than 3 times to get anywhere".
  3. Use the appropriate level of fidelity: How rich is the application?  Or have a different level of fidelity depending on the user.
    •  ProtoXAML is a template that allows you to take WPF mockups and skin them with "napkin" or "whiteboard" like look to the took.  People like the whiteboard metaphor and respond well to UIs that look this way when giving feedback.  This is an example of using very low fidelity to get a point acrossscreenshotNapkin
  4. Build with the customer and user’s input: Get customer input early and often.  However think about all potential users of the application.
  5. Build for ease of use, but don’t forget the power users: (70-20-10 rule)  Make your application easy to use, but make sure you have options for the power users.  Tripit.com is a good example of this in use.
  6. Plan for concurrency: You will always have more than one user in an application.  Think about locks and other data sharing
  7. Balance computing load: This can make things faster and more scalable (see scalability topics)
  8. Balance security with usability: Make sure you security mechanisms are also easy to use. Some password reminders can be confusing because the answer could be expressed in many ways.   For instance, you may be able to shorten the answer in some way or what about casing of the words.
  9. Build for supportability & maintenance: Marketing always wants to update a website.  Make sure your site is easy to maintain and make changes to in the future.
  10. Compliance: (Section 508 and Accessibility) One such issue is screen readers.  These are programs that read a website out loud for the visually impaired.  The readers have to be able to read your site in such a way that user’s can make sense of the data.

Anti-Patterns for Usability

  1. Golden Hammer: The same solution doesn’t work for all applications
  2. Breaking UI Conventions
    • An example of this could be using a hyperlink to represent a submit button.  Hyperlinks usually open pages or change navigation.  Submission is usually handled via a button.
  3. Overuse of Animations or other types of bling
  4. Not considering multiple "heads" for complimentary online vs. offline scenarios

Overall, it was a very good event (although seating was cramped).  It was Probably one of the best ArcReady events I have attended in quite a while.  Lately, I have thought the sessions have been a bit boring and not very useful.  I am glad to see the event is picking back up again. Larry is an excellent speaker (and mentor of mine).  He did a great job of engaging the audience and getting them involved.  This can often be a very difficult thing to do.  He wasn’t afraid of silence and to solicit the audience to get a response.

During the break, Larry showed a video of the WorldWide Telescope.  You may have seen this video.  Its of a little kid talking about where he lives and how see sees the sky at night. Larry stated that he couldn’t give us a copy yet because it wasn’t out.  I corrected Larry that it was released today (see last post) and can be downloaded.

The event ended with Larry asking the audience about some of the best practices for UI development.  The audience suggested things such as compressed scripts, no vertical scrolling, keep buttons together, keep consistency in site navigation, etc.

If you missed this event you can try to catch it at one of these locations:

  • Columbus - 4/29/2008
  • Kansas City - 4/29/2008
  • Cleveland - 4/30/2008
  • St. Louis - 5/01/2008
  • Austin - 5/06/2008
  • Southfield - 5/7/2008
  • Minneapolis - 5/08/2008
  • Indianapolis - 05/13/2008
  • Downers Grove - 5/14/2008
  • Milwaukee - 05/15/2008
  • Houston - 05/15/2008
  • Nashville - 05/20/2008
  • Dallas - 05/20/2008
  • Cincinnati - 05/21/2008
  • Chicago - 06/11/2008

You can also download the presentation directly from the ArcReady website.

Posted in Community, Software Architecture | No Comments »

West Michigan Day of Dot Net

Posted by Dan Rigsby on 10th May 2008

 

Live blogging this event, expect updates throughout the day.  Pictures will be available in a day or two after the event.

WM Day of .Net May 10, 2008 - I'll be there!

I made it out to Grand Rapids, MI around 8am today to attend the West Michigan Day of .Net (WMDoDN). It was a 5 hour drive from Indianapolis.  However, I spent the night with my In-Laws in Ft. Wayne which cut the trip this morning down to only 3 hours.  Much like with the Central Ohio Day of Dot Net there hasn’t been much representation of Indianapolis in Michigan thus far either.  It seems if you are in a different Microsoft district, you either don’t know much about what is going in other districts, or are afraid the break the barrier.  I have met with a number of people know from Ohio and Michigan, and we are hoping to change that over time. I have another session over Wcf up here, and again no one seems to know any other speakers from Indiana.  I ran into a few familiar faces from other events and meet a few new people(Wally McClure, Bruce Abernathy, Dan Hibbitts, Chris Woodruff, Amanda LaucherSteven Harman, Tim Wingfield, James Bender, Jay Wren, Josh Holmes, Jeff McWherter, Dave Redding, Joe Wirtley, Dan Hounshell, Joel Ross, Jennifer Marsman, Patrick Foley, etc).

I liked the layout of the event.  The 4 rooms, but the were a little bit spread out.  I saw a number of people get lost between rooms.  However the amount of space was very refreshing.  There were a few “break out” areas and there was a dedicated speaking room.  The vendors and sponsors were spread out throughout the hallways which was good.  Many times attendees try to avoid the “sponsor” corner, which is unfortunate for everyone.  The sponsors make these events possible and really do have good things to say.

Soft Skills - They’re not just for humans anymore

I am trying to attend as many sessions as I can and learn as much as I can while I am here.  I started the day attending Josh Holmes session on Soft Skills.  I had seen Brian Prince’s presentation before and wanted to watch Josh’s perspective on it.  Josh got thrown this session at the last minute and piggy-backed on Brian’s slide deck.  However, he brought his own unique perspective to each of the topics:

  • Mentoring: Always have a mentor.  In fact get 3+. Josh attended the toastmaster’s club to find speaking mentors
  • Manage your Career: You are your business.  Your employer just happens to be the person paying you to do your job right now.
  • Creativity: Like myself Josh doesn’t have a CS degree and it does give us a creative edge because we think outside of the box.  This is true for everyone.  Stay creative and think in other ways.  Keep a log or use something like OneNote or a notepad.
  • Brain Storming: Josh asked the question, “If you have an infinite supply of bricks, how would you raise money for your user group, school, or church”.  The audience threw out some of the standard responses, but
  • 3 Illegal Topics to Talk About: Sex, Politics, and Religion - don’t talk about these at work, just don’t do it, unless the setting is totally appropriate.
  • Don’t Assume all People Above you are Idiots: Sometimes they aren’t the smartest people, but there is a reason they have their position.  They are bringing something to the table and at the very least have power and control.
  • Communication Skills: Communicate like a human, not like an alien.  Know your audience: geek talk is ok only if all people are geeks.
  • Know when to say “I don’t know”: It’s ok not to know everything, and if you give wrong answers, you lose all respect.  Don’t be an encyclopedia, be the index.
  • Ask Open Ended Questions: If people just answer Yes/No you never really learn much
  • Don’t Take Reactions Personally: People don’t always mean what you think.  Especially in things like emails.  Some people come off more rigid than others as well.
  • Be an Active Listener: Don’t have distractions, ask smart questions, don’t multi-task in your head.  Take what a person says and rephrase it back to them, and if they can confirm that, then you can answer the question.  Also avoid filler words, enjoy the silence.
  • Take Notes: Notes don’t have to be a distraction, but write down things as much as you can.
  • Tape Yourself: learn to find the filler words in your presentations and how you can improve yourself.
  • Avoid Bad Language:  There is no need for it.
  • Integrity & Honesty:  always tell the truth and remember that its hard to get respect back.
  • Everything you know today will be obsolete in 2 years: which is true from a technology standpoint, but soft skills will always be with you.  So eat like a bird and poop like an elephant.

Josh ran out of time during the presentation, but that’s ok.  Its unfortunate that some of the most important topics are at the end of the slide deck, but it’s better to get a few points across well rather than just throwing out a mess of information sometimes.  A presentation like this is more training rather than a survey of some technology.

Overall, I would say Josh did just as well with the presentation as Brian did.  Brian overall probably had the better pitch of the ideas, but that is understandable since he put together the slide deck.

I did enjoy watching Josh after reading a couple of his latest posts: Words as Filler when Public Speaking and Public speaking and movement onstage.  You could actually see the 2 points on the floor that Josh positioned himself as “home” and “away”.  I didn’t go as far as to try to count his “filler words”, but I either didn’t notice many or at the very least they weren’t a distraction.

You can download the Soft Skills presentation here: http://cinnug.org/files/folders/cododn2008/entry1045.aspx

How to Architect Rich Internet Applications (RIA)

I went ahead and stayed for Josh Holmes’s second session. Josh is a good speaker and potential “mentor” for me, so I wanted to learn all I can.  I always feel awkward talking to Josh in person sometimes though.  The session was packed.  I think I only saw 3 empty seats which brought the audience total up to 60+.

What is a Rich Internet Application?  Its all about context.  The challenge in an RIA is to not make things more difficult by adding some flash.  RIA is web application that has the attempt to bring features and functionality of a traditional desktop application to the web.  There is some overlap between desktop and web, but the differences are killer such as: lack of state on web, non-text layout on desktop, business logic in UI on desktop, limited runtime on web, the nasty back button on the web, etc.

“The Inmates are Running the Asylum” and “About Face” by Alan Cooper bring out the idea of treating the user of your application as “God”.  If “God” says close the application, are you going to ask “Are you sure”?  The reality is that we treat our users as morons.  You need to know when to trust your users, put the user first, and know when to help them.  A big anti-pattern that we often get into is making our SOA layer look like our pure CRUD operations.  Instead we want to think about it more from an end user perceptive.

“Hype” is often very misleading.  Sometimes a manager will say something like, “We need a better web UI.  Let make it more Web 2.0 or Ajaxy”.  The problem is that you want what is best for the user and that shouldn’t mean attaching words and labels to it.

The C# Variety Show

The yield statement as compared to beer: If you ask your wife to get you beer, and she brings you a 6-pack, that would suck to have the entire 6-pack dropped in you lap.  Instead you would want them one at a time.  Yield allows you to get a item one at a time and consume them as needed.

Operator overloading: Barely class, Hops class, Water class, overload the plus operator to add them together to create beer.

Unfortunately, I only attended these 3 sessions.  I had some last minute testing to do of my presentation and spent some time talking in the speaker room.  My session went pretty well.  I had a packed room which was probably around 40-50 people. I felt I was a bit dry, but I did have a lot good questions and comments.  I only had two people doze off, which actually isn’t that bad for a session that late in the day.  I didn’t have any presentation glitches, but I really need to add more images and “real world” examples to my slides.

Posted in Community | 4 Comments »

Heroes {Community} Launch - Indianapolis, IN (Part 2)

Posted by Dan Rigsby on 9th May 2008

Last night I presented at the Indianapolis .Net User’s Group (IndyNDA) monthly meeting.  This is actually the third time I have spoken at IndyNDA in the last 4 months.  I am sure the attendees are getting tired of seeing me up there.  The president of IndyNDA, Brad Jones, jokingly told the audience that they would give me a four month break from speaking at the monthly meetings.  This month was part 2 of the Heroes {Community} Launch event series we have been running for Windows Server 2008, SQL Server 2008, and Visual Studio 2008.  Part 2 focused on new features in C# 3.0, VB 9.0, and .Net Framework 3.5.  The major areas of discussion were:

Languages :

.Net Framework

  • Additions to .Net 3.0 features (WCF, WF, WPF, Cardspace)
  • Additions to Windows Forms
  • Additions to ASP.Net
  • System.Addin
  • Additions to CLR (HashSet, ReaderWriterLockSlim, DataTimeOffset, TimeZoneInfo, etc)
  • Expression Trees

We had around 85 people attend.  Which is on the low end of average, but they were a very active audience.  I had some great questions and answers to the questions that I proposed to the audience.  There were times when I felt like I was losing the audience, but there was a lot of material to cover all at once.  The goal of this meeting was more to show what is possible with the Languages and Framework, not to do in depth training.

Immediately after the IndyNDA meeting, I spoke at the Team Foundation System Special Interest Group (TFS Sig) and covered Scrum in a duet with Jamie Kurtz where I did a short version of my Scrum talk and Jamie covered Scrum in TFS.  As with most special interest group meetings, we had a small attendance.  However I was pleasantly surprised to see that 3 people drove over 3 hours from Decatur, IL specifically to see the Scrum talk.

For those who attended either event, I am always looking for presentation feedback (positive or negative).  Feel free to post a comment here or email me (see address on About Me page).

Here are the presentations including slides, before and after projects, code snippets, notes, etc.:

Posted in Community | No Comments »

Have you tried Community-Credit.com?

Posted by Dan Rigsby on 30th April 2008

logosmall5 I am probably the last person to discover this site (I always seem to be the last to know a lot of stuff), but www.Community-Credit.com is a site where you can record your contributions to the development community. "Stupid prizes" are given to the people who record the most community points for a given month.  Some of these prizes are actually quite nice and all of them are very geeky. If you do any kind work with the community or even just attend user group meetings, I encourage you to check it out.

What is Community Credit?
Community Credit is a way of showing your contribution to the technology community.  Community Credit helps show off the enthusiasm and passion you have for the success of our industry.

How do I actually get points?
You can submit points on our Point Submission page. Simply type your name, email address, date you earned the points and point category and they will instantly be added to your total. The points that you earn can be seen on our Community Leaders.

The site was created by David Silverlight back in 2005.  David has been a great community contributor and Microsoft Mvp for many years.  Microsoft honored him last year when they named Silverlight after him.  After reading so much about him, I hope I have the chance to meet him some day.  Not only is has he done a lot to promote the community, but he also does a lot of work for non-for-profits through his sites.

So why record your community credit?  Well for one, it helps you keep track of everything you have been doing in the community.  It can be easy to forget something you have done many months ago.  You may use the site to show off to potential employers or friends.  Mostly its just fun to compete with your community friends to see who can help out others the most.

When you submit your contributions, you must provide a Url which can be checked to validate your submission.  Each Url can only be submitted once.  So if a single Url could relate to multiple point credit areas, then you will want to pick the one with the highest total.  There is room for this system to be abused, but there is a certain amount of honesty that must be assumed with a site like this.  I’m sure if someone is caught abusing the system, then they would be banned or at least deducted a certain amount of points.

communitycredit1

The point ranges don’t always make sense.  Like a response on a discussion board that is marked as an answer is only worth 150 points, while a blog entry can be worth around 3000.  Sometimes an answer on the forums can be longer than a blog post.  Writing a book is only 30000 points.  I think most books are bigger than 10 blog posts.  You can even get points for posting articles to DotNetKicks. But then again, you are probably getting some kind of commission from a blog post too.  However, I think the point ranges have been fairly well thought out and are at least level among all of the contributors.  They have also added in "curves" so that people who have won prizes in previous months, don’t get as much credit in future months.  For example, the top winner in April, may get a 95% curve placed on them such that if they enter something that is normally worth 1000, they will only be awarded 50 points.  These curves normally expire after a few months, however certain "Hall of Famers" of the have been slapped with a 50% curve making it harder for them to come out on top in a given month.

The site is so great at recording points, that the INETA Community Champions Program even uses the community-credit.com website to log contributions for their own award system.  This program offers its own set of awards that are given to contributions to the development community.  However, the points from community-credit don’t automatically cross over to the INTEA program.  INETA has their own set of Activities and Activity Types.  So if you wish to contribute to INETA and community-credit, then you will have to do a fair bit of dual entry.

Check out my community-credit profile here: http://www.community-credit.com/Portfolios/ShowPortfolio.aspx?UserID=119bae28-46ed-491d-8243-94c452dc1991.

I also created a blog badge (80×15) image that links to my community-credit account.  Feel free to download this badge and use it on your own blog, if you want:  http://www.danrigsby.com/Files/Images/communitycredit.png.

communitycredit

kick it on DotNetKicks.com

Posted in Community | 12 Comments »

IndyCodeCamp

Posted by Dan Rigsby on 27th April 2008

Saturday April 26, 2008 ushered in the first IndyCodeCamp.  This event was designed to be a code camp for all languages, but morphed more into a .Net thing this year.  This may change in future events.  I would love to see the event stay mostly .Net focused, but offer at least one track for other languages such as Ruby, Python, etc.  This year we had over 400 people registered for an event that could only accommodate 250 people.  We had a great line up of speakers as well.  I was very anxious in the days leading up to the event.

On Saturday morning, I arrived at IndyCodeCamp around 7am.  The event started at 8am, but I wanted to be sure to get there early to meet with the staff, speakers, and friends.  Part of my job as Logistics Director of IndyNDA is “speaker support”.  So at events like this, it’s my job to make sure the speakers know what is going on and that they are taken care of.  Personally, I just love being able to hang out with all of these great guys and gals.  Anyway, when I got there, I found the building still locked and a number of people standing around outside.  It had been warm all week, but Mother Nature hit us with a cold front, and it was quite chilly standing outside of the building.  Building staff claimed it was a miscommunication, but were were able to get in the building around 7:30am.  Needless to say, it was a mad house trying to get everything set up.  We had expected to have time to setup sign in booths and tables, but the attendees were right behind us.  Things went a little chaotically up until the first session.

Overall the event went off well.  We had a couple of speakers cancel at the last minute, but we were able to fill in their spots.  Out of the 400 people we had registered, only about 170 showed up.  That is quite a drop off rate, but I think the lack of reminder emails and no iCal files, lead to a lot of people forgetting about the event or not thinking they were registered.  Our local Microsoft representatives Dave Bost and Larry Clarkin had family commitments (we understand guys), but Bill Steele was kind enough to make it down, speak at a couple of sessions, show off his new hud, and buy us pizza for lunch.

There were four rooms setup for sessions and one great room where the sponsers were setup and were the speakers could sit.  It was great meeting up with many of my speaker friends from Indiana, Ohio, Michigan, Kentucky, Tennessee, and Illinois.  It’s nice to see that we had people speaking from all of the surrounding states.  We did have a number of Audio/Video issues in the first couple of sessions, but things got worked out throughout the day and the attendees were patient.

I was fortunate enough to have 3 sessions at IndyCodeCamp.  I was a little worried when I saw that all 3 of them were back to back and that it meant about 4 hours of conversation, but my voice didn’t waver too much and I made it through.  Here are my comment about each session:

  • Agile Project Management with Scrum:  This was my first time performing this session and since this was a code camp, I didn’t think it would be accepted.  However, I had 30 people attend which was a lot more than I expected.  Everyone was very attentive and came with a lot of great questions!  I think the slide deck was good and filled up the time nicely.  I got great comments and some nice laughter at some of the “funnier” slides I put in.  I really hope I get a chance to do this session again in the future.  A couple of people afterwards even asked me about presenting this to people at their places of employment.
  • Introduction to Windows Communication Foundation: I have done this session a few times now, and it always seems to be a hit.  I was fortunate to have over 50 people attend which ended up being the most popular session of at IndyCodeCamp.  The session went off without a hitch and the modifications I made, helped keep the session more introductory for those who may be new to any kind of connected system development.  I do think I am going to add a couple of new slides to this deck over why we need services.
  • Intermediate Windows Communication Foundation: I wanted to discuss the Web Programming Mode, Duplexing, and Asynchronous Operations all in one session.  I hated the name that I gave the session, but I couldn’t think of anything better.  However, I really under estimated how much I can talk about a topic. In the future I will break this up into three self contained sessions.  The talk today went well though. and I had about 28 people attend. But I really had to rush a couple of the topics, and I felt that I lost the audience when I talked about Duplexing.  In my next Duplexing talk, I will have a lot more “lead up” slides to help introduce the topic to the audience.

Because my sessions ate up the 2nd half of the day, I didn’t get to attend any of the afternoon sessions. And during the first half of the day, the best I could do was to take a sampling of each of the sessions.  Overall, I think everyone did a good job.  A few sessions had some issues, but I hope that doesn’t scare the speakers away from speaking again in the future.  The comments I heard from the attendees though were all positive.

After the event of a few of the speakers made it down to Champp’s for a little after-party.  Everyone was invited, but only some of the speakers showed up.  I hope in the future, more attendees will make to out.  It’s important to interact with your peers when possible.

I want to thank all of the speakers and staff for making this event a success.  I hope to see many of you again next year!  And to those who read this blog regularly, I apologize for the lack of posts this past week.  I have 4 great Wcf posts in draft state at the moment, but I spent most of time this week preparing my sessions for this event.

The materials from my sessions can be found here:

Posted in Community | 7 Comments »

Central Ohio Day of Dot Net

Posted by Dan Rigsby on 19th April 2008

Central Ohio Day of .NET

I made it out to Wilmington, Ohio today to attend the Central Ohio Day of .Net (CODoDN).  There hasn’t been much representation of Indianapolis in Ohio thus far. I have session out here on Wcf and no one seems to know any other speakers from Indiana. There must be some magical barrier between Indiana and Ohio (or just miles and miles of open fields).  I am hoping to change that a bit today. I have met a lot of really smart people out here: some speakers and some attendees. (James Bender, Amanda Laucher, Michael Neel, Jay Wren, Jim Holmes, Jeff McWherter, David Redding, Brian Prince, Jeff Blankenburg , Alexei Govorine, Joe Wirtley, Matt Casto, Michael Eaton, etc).  Although I knew no one out here, everyone I met made me feel like I was part of the family.

According to my sources there are 172 people here today (although 300 were registered).  There are 5 sessions rooms each holding around 25-40 people.  Which fortunately means that there is free lunch for everyone!  Some sessions have been pretty packed. While others have had only a handful.  The popular topics so far have been Asp.Net MVC and F#.

Overall the presentations have been going well.  The audience and the speakers have all been light hearted and seem relaxed.  The talks I have attended have been going well.  I think the funniest so far has been Michael Neel’s "Church of the Agile".  He took the approach of making agile seem like a religion.  He came out in full robes and hood with candles lit.  It felt like more of a cult than a church, but definitely fun.

My session ended up being plagued by ghosts.  My slides started moving on their own, and Visual Studio would close windows.  Probably someone in the audience hijacking my bluetooth.  I’ll be sure to turn that off in the future.  Overall, I’m afraid I spoke over people’s heads, but I got a number of good comments afterwards.  Some people actually like a presentation that is chalked full of content I guess.  But realistically, how can you really do Wcf justice in 70 mins?  I did pack the house though.  I had 55+ people in a room that didn’t seat that many.  A few people stood or sat against the wall, but I did see people peak in, see that it was full, and walk away.

I did attend James Bender’s talk over Reliable Messaging in Wcf.  It was a really good introduction to the topic and MSMQ, lots of demos, and lots of pictures.  He was lucky enough to not have the ghosts invade his PC.

I finished the day at Brian Prince’s talk over "Soft Skillz" for the developer.  This talk was more of a set away from the .Net talks that you would expect at a Day of Dot Net event.   This focus was more on skills that developers need to succeed based off his many years in the field and the knowledge he has gained from others.  I ended up getting a copy of Halo 3 at this talk due to my mad photography skills.  The talk ended with a question of creativity: "If you have an infinite supply of bricks, what would you do raise money for you usergroup/church/school".  A number of ideas were thrown out like "Build brick pants", "Pant names on bricks, etc.  Surprising my idea of "Building a space elevator out of bricks" won the sweet prize of a "Heroes Happen {Here}" jacket (see Swag Score picture).  The jacket will go along nicely with all of the "Heroes {Community} Launch" events  that I have left to give.

I was pretty pleased with the event.  The talks contained a lot of "meat" and were very knowledgeable.  Sometimes these events have more of what I would call "marketing" slides.  The guys in Ohio really made sure that that wasn’t the case.  I will definitely be attending (and hopefully speaking) next year.

There were about 25 people at the after party (dinner at Max and Erma’s), mostly speakers, but there were a few attendees.  Jeff Blankenburg hosted an after-after party upstairs which was a blast.  There were around 22 people there and Jeff made sure that everyone not only had plenty to eat and drink, but also had a great time.   The party centered around a .Net Poker Tournament (16 members), food, and conversation.  I joined the poker game, lost early, and scored  sweet Visual Studio 2008 backpack (see Swag Score picture).

 

For those who are interested, a zip of all of my Wcf slides, notes, and demos is available here: Materials- IntroductionToWcf.zip.

And if anyone who attended CoCDoDN is not yet following me on twitter, follow me: http://twitter.com/danrigsby.  And subscribe to this blog.

Thank you Ohio!

Edit: A great little video summary of the entire event can be found here: http://cincinnatirecruiter.wordpress.com/2008/04/22/central-ohio-day-of-net-2008/.

Posted in Community | 8 Comments »

Heroes {Community} Launch - Indianapolis, IN (Part 1)

Posted by Dan Rigsby on 11th April 2008

I finished a Heroes {Community} Launch event in Indianapolis, IN for the IndyNDA users group last night. This event was setup with 2 speakers. Paul Hacker covered Windows 2008 for 20 minutes, while I covered both SQL Server 2008 and Visual Studio 2008 for the remaining hour.

There were about a 120 people in attendance and the response and comments from the audience seemed positive.  IndyNDA is now in meeting a new room which can easily seat 200 people, provides tables for all in attendance to write or eat on, and has 7 projectors to display the presentation to instead of just 2.  This location is much improved and will serve the organization well in the future.

My talk over SQL Server 2008 covered:

Top 10 SQL Server 2008 Features for Developers

  1. LINQ
  2. Intellisense for SQL Server Management Studio: T-Sql, database objects, & parameters
  3. FileStream Datatype:
    • Designed to solve unstructured LOB (large object) storage, provides performance of native NTFS with transactional support. Data is stored in NTFS, and SQL Server manages relationship between the columns and files. SQL Server manages the transactional integrity such as backing up and restoring data.
  4. Date & Time Datatypes: Separate data and time types. Time can now go down to hh:mm:ss[.nnnnnnn]
  5. DateTime2 & DateTimeOffset Datatypes: Supports years 0001 to 9999 (much like in .Net); DateTimeOffset is timezone aware, but not daylight savings time!
  6. Hierachical Datatype: Allows storage of hierarchical data such as org charts, etc.
    • Only 1 root per table though
  7. Spatial Datatypes:
    • Geography: Uses a geodetic (round earth) model and stores points, lines, polygons, and collections of Latitude & Longitude coordinates.
    • Geometry: Uses a planar (flat earth) model which stores the same types of data, but is used primarily for navigation and mapping.
  8. T-SQL MERGE Statement: Allows merging of rows from multiple tables. You can choose to update matched rows, insert unmatched rows, or delete unmatched rows from the primary table.
  9. Table-Valued Parameters: Tables can be passed as parameters to sprocs.
  10. Data Change Tracking
    • Change Data Capture (CDC): This allows you to capture all changes to data in a table into a tracking table.
    • Change Data Tracker (CDT): This similar to CDC, but it doesn’t actually capture the changes made, but captures only that some change was made.

The SQL Server 2008 demonstrations included a series of scripts which created a database, turned on CDC , showed off CDC , and created a table.  The table was an Employee table that used some of the new DateTime types, hierachyId as a make-shirt org chart, and a geography field to represent the employee’s location as a latitude and longitude.  I then ran a series of queries to show how you can search the hierachyId and the CDC history.

My talk over Visual Studio 2008 covered:

  1. What are the features in Visual Studio itself targeted to different types of developers: All, Windows Client, Web Client, Office, Mobile, and Server.  I went into highlights in each one of these that people may or may not know about.

The Visual Studio 2008 demonstrations included: 

  1. New project properties
  2. UAC support in application manifests
  3. Refactoring support for "Using" statements
  4. Wpf Editor
  5. New Css Support in web projects
  6. New Web Designer
  7. Javascript Intellisense
  8. Javascript Debugging
  9. WcfSvcHost and WcfTestClient
  10. "Add Service Reference" window and its advanced options

Overall, I think my presentation went pretty well.  We had some issues with the microphones and I ended up having to do the entire presentation with a handheld microphone.  This made it very hard to do code demos and talk at the same time.  I only have 2 hands.  So there were quite a few more "silent moments" than I would have liked, but I kept each of them around 5 seconds so that I didn’t isolate the audience.

Here is the entire presentation including slides, before and after projects, code snippets, notes, etc.: http://www.danrigsby.com/files/Presentations/HeroesCommunityLaunch-Indianapolis1.zip

Part 2 of this event will occur on May 8th, 2008 at the same location (see speaking engagements).  This meeting will continue on with the Visual Studio 2008 launch, but will really be focused for .Net developers.  Topics will include new language features in C# 3.0 and VB 9.0 and .Net Framework additions such as those added to Wcf, WF, System.Addin, etc.

Posted in Community | 2 Comments »