« Allergies | Main | Graphic Design Firm »

October 06, 2008

IndyTechFest 2008

Ok, so this is my second attempt at writing this post. I just lost over 1 hour's worth of work when Firefox crashed. I should know this by now: save, save, save! Oh, and I'm also using Google Chrome. We'll see how well it does.

I attended the IndyTechFest this past Saturday and am glad I did. I almost did not go: my husband was going to Louisville to attend a football game Friday night and wouldn't be back until Saturday noonish and the conference started at 8AM. But, I decided I should go anyway and luckily our babysitter was available to watch the kids Saturday morning.

So there I was, at 8AM on the dot, to attend the welcome & key note. That part was only ok. I would have preferred Brad Jones to give the whole keynote presentation as he made some interesting points, but there was "funny guy" Buck Foley. I have to admit I don't like this kind of humor very much, but he did have some funny slides later on. If he could give up the act and just show those funny slides, it'd be much better in my opinion!

Anyway, I was there from 8AM until 6PM or so and I'm glad I attended. I learned lots of good stuff. Here are my notes from the various presentations.

Tips & Tricks for the New C#
This session was very well attended. It was in the largest room and along with many others, I was sitting on the floor as all seats were taken. C# is definitely the most popular language here.


  • Auto-Implemented properties: short way to create very basic properties. Ex: public double TotalPurchases {get; set;}

  • using keyword: I realize this is not new, but it's good to remind yourself of it. You should use these when you are using a disposable type as C# will do the cleanup for you. No need for try-finally!

  • Extension methods: add new methods to existing types. Ex: public static decimal Half(this decimal d) {return d*2;}. Now you can say myDecimalValue.Half().

  • Lambda expressions: read the MSDN article to find out more!

  • LINQ performance tips: use table.Where() instead of table.toList().Find(). The latter will get all the rows from the table, then perform the filtering in memory while the former performs the filtering in SQL. Much more efficient especially when dealing with large tables.

  • [System.Diagnostics.Conditional("DEBUG")] property: can be specified in front of properties or methods so they won't get called in release mode.

  • CTRL+I: look for text within scope of document. CTRL+SHIFT+I searches up.

  • CTRL+K with CTRL+C: comments out block of code

  • CTRL+K with CTRL+U: uncomments block of code

  • CTRL+K with CTRL+F: properly indents code

  • CTRL+SHIFT+V: loop through copied text to paste separate lines

  • code snippets: great way to use predefined code snippets. There are few different ways to use them, see this MSDN article for more information. One quick example: type "tryf" then tab tab. This will create a try-finally set of code. You can create your own snippets. Check out the Snippet Designer on CodePlex.


  • GhostDoc: generates XML documentation comments. Also works in VB.NET, although it's "experimental" and you need to change a default setting. See the documentation for additional information.

  • Source Code Outliner Power Toy: provides tree view of your source code and allows you to quickly jump from one place to another.

  • LINQPad: allows you to visually create a LINQ query and, best of all, test it to make sure it returns what you expect.

Tips & Tricks for the New VB.NET
This presentation was in the same room as the C# presentation but definitely not as well attended. Most people must not be developing in VB.NET these days. Below are only the items pointed out in this session that were not mentioned in the previous session (there was a lot of overlap).


  • New object initializers: set parameter values within same line as declaration. This will remind you of JSON. Example: Dim x as New Student("Cardwell") {.firstName = "Marianne", .State = "Indiana"}

  • YSlow: plug-in for Firebug (thus only for Firefox) developed by, you guessed it, Yahoo!. Shows you how you can speed up your site.

Lessons on Event and Error Logging
This was a disappointing session. I was really hoping to see more real examples and some recommendations, but it was more of a discussion. It was a "lunch & learn" session and that might explain why it was set up this way. To the organizers: this might be a good topic for a real session next year. There seemed to be lots of interest (the room was full). The presenter mentioned a few things:


  • Store logs in databases: more efficient and more accessible. Also easier to query.

  • Think of how the logs will be used and consider developing application to query these logs, focusing on the different kinds of people accessing it and the kind of information they are interested in

  • Look at the way event handling is done in DotNetNuke. Re-use the code if applicable.

Developing SharePoint Web Parts
I've barely used SharePoint and have never developed in it, but there is a possibility that I will in the near future and this session was very informative. Below are my notes.


  • There are 2 types of web parts: ASP.NET web parts (preferred) and SharePoint Services v2 Style web parts, mainly used for backwards compatibility.

  • many community tools available on CodePlex

  • To create a new project, select SharePoint -- Web Part. My understanding is that you need to develop on a Windows 2003 Server machine. Apparently, a MS Virtual PC is available for download with the required OS for 1 year.

  • VS 2008 creates the solution file for us, including everything needed to deploy

  • supports persistent properties

  • Can expose properties with EditorParts. You'll need to play with properties, such as personalizable, WebBrowsable, WebDescription and Category.

  • Connectable web parts: based on notion of providers & consumers. This allows one web part to talk to another web part

  • No built-in support for treating user controls as web parts. User control is set up as a protected property. Load the ascx file in CreateChildControl then add it to the parts controls. In the solution, put the ascx file in the following file structure: TemplateFiles (folder) -- ControlTemplates (folder) -- Some other folder -- user control. This will ensure the user control shows up in the correct location upon deployment.

Building WPF Applications in Visual Studio 2008 and Expression Blend
Great presentation. I'd heard lots about WPF but had never really seen it or played with it. I don't think I'll get to use it in the near future, which is a bit of a bummer. The presenter promised to put the slides up on his blog.

Web Development with ASP.NET MVC
This was the last session of the day and I don't know if it was over my head, if I was too tired, or what, but I had a hard time following this one. I think this is one of those things that you have to work with to really understand. Luckily, the presenter, Aaron Lerch, put his slides up on his blog. I did really like his introduction to how HTTP works. I'd never seen it explained this way and it was very useful. Sometimes I really realize how a Computer Science degree would come in handy...

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d83454d86569e20105355095b4970b

Listed below are links to weblogs that reference IndyTechFest 2008:

Comments

Thanks for the kind words about my part of the keynote! Thanks also for joining us at IndyTechFest this year as well. The feedback is appreciated! Hopefully we can make next year's event even better!

Thanks for coming out and supporting Indy TechFest.

You can find my slides to both my talks (A Tour of CodePlex and WPF) at http://davebost.com/blog/2008/10/06/indy-techfest-08-wrap-up/.

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Google Ads

April 2009

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

Photo Albums

Statcounter


  • counter stats