RSS 2.0
 Wednesday, October 01, 2008

Whether you're attending Microsoft's PDC or not, The Underground is the place to be!

 

image

Microsoft and INETA have joined forces to bring you a truly amazing experience in downtown Los Angeles on the Wednesday during PDC. They've got a fantastic speakeasy evening lined up, one that's sure to leave a lasting impression. It'll be a great night of vignettes, networking, music, dancing, food and drinks!

Check it out. See you there!

Wednesday, October 01, 2008 10:34:58 AM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
Community | Conferences | INETA
 Thursday, July 17, 2008

Wow, two great speakers in less than a month. Last month, we had Kalen Delaney speaking at Boise's inaugural SQL Server User Group and tonight at the Idaho .NET User Group, Kathleen Dollard an INETA speaker is sharing her "Twelve Gems and Eight Dragons talk."

dollard

Here are the Twelve Gems

  • System.AddIn - one of two new features in 3.5 that are getting overlooked; allows you to let other people provide customization to your application; wraps everything about managing app domains; check out the Pipeline Builder tool on CodePlex
  • HashSet - sets = groups and very high performance, and sets are mutable; LINQ allows set-type functions, but is missing some features and always returns copies
  • WPF Async Data Loading - Asynchronous behavior offered for instance loading and (sometimes) property retrieval, by leveraging the ObjectDataProvider IsAsynchronous property in XAML
  • Generic Classes C# - Generic classes encapsulate operations that are not specific to a particular data type; the most common use for generic classes is with collections like linked lists, hash tables, stacks, queues, trees, and so on. Operations such as adding and removing items from the collection are performed in basically the same way regardless of the type of data being stored; Why generics? improve performance, enhanced behavior with 3.5, improve robustness by catching typing errors at compile time, reduce amount of code via generic refactoring; Kathleen's guidance is to stop using System.Collections and replace it with System.Collections.Generic
  • Refactor/Rename - in her opinion the most commonly used refactoring; now available in Visual Basic as well
  • Snippets (your own) - Microsoft's provided snippets are marginal; Kathleen says not to use Microsoft's snippet editor, but rather Bill McCarthy's Snippet Editor 2008 instead
  • Understanding Your Code - static analysis (FxCop, VSTS Code Analysis - but custom rules are hard), code-based analysis (CodeIt.Right and StyleCop), and VSTS Code Metrics (maintainability index, cyclomatic complexity, depth of inheritance, class coupling, and lines of code) - cool and (some parts) are useful, unit test code coverage, and performance
  • Data Driven Unit Testing - data sources define conditions, can be Excel, quality team can be included and expand the list, consider naming classes by condition, do not demand 1:1 class correspondence, and anticipate n:1 test correspondence
  • Extension Methods - Extension methods enable you to "add" methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type so you don't have to wait for Microsoft to provide functionality you've been waiting for;
  • System.Exception.Data - a key/value pair collection to provide additional, user-defined information about the exception
  • Partial Methods - separate responsibility, pretty useless unless they can interact; partial methods allow interaction between partial classes; they required definition of clear extensibility points and are a replacement for intra-object dependency
  • Document Outline - provides an outline view of elements and scripts in the current document (Web or Windows forms)

Here are the Eight Dragons

  • VB vs. C# nullable operators - be careful here because a lot of combinations of =, <, >, etc. may give unexpected results
  • Inheriting from Collections. Generic.List - Microsoft decided List should have max performance so they sealed everything to avoid virtual table calls, so you can't modify, add events, anything;
  • Interface versioning - everything implementing the interface is broken, so create a new interface or consider using a base class
  • Immutability in anonymous types - once you place something in a dictionary, its hash must not change; anonymous types are used most in LINQ; in C#, all instances of anonymous types are immutable, but VB uses a key to define a immutable fields of anonymous types and if the key is missing, it will use reference semantics so for LINQ consistency, uses full value semantics in LINQ
  • The New constraint - the most useless piece of junk related to generics; generics provide 3 constraints: base, interface, and new; the "New" constraint requires public parameterless constructor and this is not consistent with most good development; instead you should use reflection to instantiate
  • Unexpected LINQ evaluation

Landscape Complexity

  • if we are feeling overwhelmed (and we should be given the complexity of .NET 3.5) with so many languages, data bases, server solutions, data access, presentation
  • There is a frightening pace of change, which is a generally a good thing, but we are losing hobbyists, one man shops
  • No one is competent anymore
  • You cannot know it all
  • Code for change - assemblies (n-tier and beyond, wrap XML, wrap communication, wrap office automation, wrap special library access) , class design (interface coding, partial classes, generics), code design (lambdas, LINQ core), big picture (source control, CI, reluctant polyglot programming, code generation, testing, metadata - DRY4D - don't repeat yourself in the 4th dimension (time)

Other terms overheard this evening

  • Polyglot Programming - using the best language for the job; in this case, C# or VB :-)
  • CTRL + Shift + V - Cycle through the clipboard in Visual Studio
  • CTRL + A + C - Copy the text out of a dialog window
Thursday, July 17, 2008 8:13:53 PM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
Community | Development | INETA | Visual Studio 2008
 Tuesday, July 01, 2008

I got an opportunity to attend the LA C# User Group tonight, and listen to Mike Vincent speak on this subject. I'm familiar with the concepts and capabilities of dynamic languages, but looked forward to getting my questions answered.

Michael Vincent

The behaviors of a dynamic language include several cool behaviors:

  • Extend the program by adding new code
  • Extend objects and definitions
  • Modify the type system

The downside:

  • No compiler safety net
  • IDE maturity such as Intellisence
  • TDD becomes very important

The Dynamic Language Runtime (DLR) adds a set of services on top of the CLR to support dynamic languages. It will be distributed with Silverlight, IronPython, and IronRuby. Here's a cool graphic Scott Hanselman posted last year that explains the roadmap past, present, and future:

Other notes:

  • The Silverlight CLR 2.0 won't support CodeDOM, so the need for a dynamic language really becomes evident.
  • Django is a high-level framework for Python comparable to Ruby on Rails, and at PyCon 2008 (March 2008) Microsoft demonstrated Django's use on Iron Python
  • John Lam demonstrated Ruby on Rails running on IronRuby at RailsConf (May 2008)

On a side note, one of the attendees told me about the Google App Engine, allowing you to run your application on Google's infrastructure.

You can download Mike's presentation here.

Tuesday, July 01, 2008 8:31:21 PM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
Community | Development | INETA
 Monday, November 20, 2006

I had a great time last week representing INETA and presenting Team System topics to the San Gabriel Valley .NET Developers user group and the Bay .NET user group in Califrnia.

I really enjoyed chating with Mike Parker, an MIT grad, Army Reserves officer, sharp software developer, and the owner of this rolling WarDriving mobile-consulting "love van" ...

Monday, November 20, 2006 8:09:46 PM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
INETA | Microsoft | Team System
 Friday, October 06, 2006

I enjoyed traveling to Spokane (I have family there) and presenting to the Spokane .NET User Group (SNUG?) on various SQL Server 2005 T-SQL, engine, and data type enhancement topics. This was my second INETA event, and they just keep getting better.

One of the attendees works for a company called SprayCool, which has a technology for keeping mission-critical servers and data centers cool, and running smoothly. This has to be the "coolest" thing I've heard of in awhile! SprayCool is the process of using liquid evaporation, or phase change, to cool electronics. A fine mist of coolant is sprayed onto electronic hot spots and immediately evaporates. The vapor is then captured and the heat is rejected as it circulates through a heat exchanger. This results in an extremely efficient method of cooling.

Friday, October 06, 2006 10:36:32 AM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
INETA | Microsoft | SQL Server
 Thursday, September 14, 2006

I can always spot the true geeks at the user group meetings and conferences, because not only do they know who Nancy Davolio is, they've seen her photo. My INETA presentation earlier this week for the Northern New Jersey .NET User Group at SetFocus in New Jersey include such wise souls as Al Smith, and together we explored the subject.

It seems that "Nancy's" photo changes with each version of Access (2003 version) ...


The Nancy that I grew up knowing


Nancy 2003

Who will we see in Office 2007? :-)

Turns out this mystery has been blogged about before.

Thursday, September 14, 2006 5:25:03 PM (Mountain Standard Time, UTC-07:00)  #    Comments [1] -
INETA | Microsoft
 Monday, August 21, 2006

If you are in the Seattle/Redmond area, join me tonight while we look at CTP 5 of the Visual Studio Team Edition for Database Professionals.

I'll be starting at 7:15 pm tonight in building 40 at Microsoft. Click here for more details.

Monday, August 21, 2006 12:00:35 PM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
INETA | Microsoft | Team System
 Friday, July 28, 2006

That's right. My friend, and fellow MVP and INETA guy, Carl Prothman has signed-on to Microsoft as a full time employee (sucker). Carl is the man when it comes to many things, especially the collecting of connection strings. I pitch his site wherever I travel.

He is going to be working in the Community group as a Software Developer Engineer (SDE). Rumor has it that he'll be working for Doug Seven (another community soul who went to the blue-side a few years ago).

It seems that Microsoft has been hiring a record number of folks over the last several weeks (as many as 150/week Carl said).

I think this is a perfect fit for Carl, as he is "Mr. Community" up in the Seattle area.

Friday, July 28, 2006 3:53:25 PM (Mountain Standard Time, UTC-07:00)  #    Comments [1] -
INETA | Microsoft
 Thursday, June 01, 2006

It's been awhile, but Bill is blogging again. I know he's been busy working on his latest Hitchhiker's Guide to Visual Studio and SQL Server 2005 book and speaking for INETA.

Bill Vaughn

Thursday, June 01, 2006 1:11:32 PM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
Conferences | INETA
 Saturday, February 18, 2006

Like my good friends Scott Cate and Wallace B. McClure, I have also been accepted to the INETA speakers' bureau. As a former user group coordinator, I appreciate INETA's mission to help bridge the resource-gap with .NET focused user groups around the country. INETA is a group that I have long supported and I consider it an honor to represent them.

I'm looking forward to a new target audience for my continued evangelism in .NET, SQL Server 2005, and Team System!

Read more about INETA here and see the entire rogue's gallery of speakers here.

Saturday, February 18, 2006 5:06:55 PM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
Microsoft | INETA
Archive
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910
About the author/Disclaimer

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

© Copyright 2010
Richard Hundhausen
Sign In
Statistics
Total Posts: 714
This Year: 2
This Month: 0
This Week: 0
Comments: 509
Themes
Pick a theme:
All Content © 2010, Richard Hundhausen
DasBlog theme 'Business' created by Christoph De Baene (delarou)