RSS 2.0
 Wednesday, January 14, 2009

“Weeks of coding can save you hours of planning”

-Anonymous

Wednesday, January 14, 2009 3:36:32 PM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
Development
 Monday, October 13, 2008

The Seattle developer community is holding Seattle Code Camp November 15-16, 2008 at the DigiPen campus in Redmond, Washington (close to Seattle). Please pass this notice on to folks you think are interested in either attending or speaking. Speaking of speaking, they are looking for speakers. If you hit the code camp site, you will see that they don't have sessions or tracks listed at this point. This 'camp is a blank page at this point that needs to be colored in - which is a great venue for presentations. If you have something you are passionate about but have never done any public speaking I encourage you to give it a try. If you are an experienced speaker, this is your time to get involved in your local community and share some of your experience.

What types of topics are they looking for?  Pretty much anything goes as long as (A) it involves code, and )B) It isn't a direct advertisement for a product or service. This means that this isn't limited to .NET or even Microsoft technologies. Past 'camps have included sessions on XBOX 360 development, Java, PHP, Delphi, and Rails. Submit your sessions here. Alternatively if you have no desire to get up in front of a bunch of developers and impart your wisdom, they could still use your help. Please promote this code camp at your user group meetings, post it on your blog (like I did), email it to interested locals and encourage your friends and coworkers to submit sessions.


Finally if you plan on attending please register so that we can get some idea of the required space and food needs.

Monday, October 13, 2008 11:05:49 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0] -
Community | Development
 Tuesday, August 26, 2008

I got an email this morning, as I'm sure many of you did, from Lutz Roeder ...

After more than eight years of working on .NET Reflector, I have decided it is time to move on and explore some new opportunities.

I have reached an agreement to have Red Gate Software continue the development of .NET Reflector. Red Gate has a lot of experience creating development tools for both .NET and SQL Server. They have the resources necessary to work on new features, and Reflector fits nicely with other .NET tools the company offers. Red Gate will continue to provide the free community version and is looking for your feedback and ideas for future versions.

 

Here is the new page for .NET Reflector.

Tuesday, August 26, 2008 10:04:56 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0] -
Community | Development
 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 9:13:53 PM (Mountain Daylight Time, UTC-06: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 9:31:21 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [0] -
Community | Development | INETA
 Wednesday, May 28, 2008

Elegant Code is hosting an Open Spaces session.  An Open Spaces session is a discussion where the attendees generate the topics. There will be no presentation, no lecture, no PowerPoint slides, etc.  The main point of this is a discussion were all the attendees can grow and learn from each other. The topics for discussion will be created by the group. The discussion will be facilitated, but just to keep the conversation going, not to drive it in any direction.

The first one will be held on June 3rd, at the Casa Mexico Restaurant in the Hyde Park section of Boise.  They offer beer and wine in addition to the great "South of the Border" food.

If you would like to attend, please RSVP at scott.schimanski@gmail.com.

Location

Casa Mexico Restaurant  1605 N. 13th St. (Hyde Park), Boise, Idaho (Downstairs in the brick building)

When

Tuesday evening, June 3rd, 6:30-8:30.

Wednesday, May 28, 2008 11:15:49 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0] -
Community | Development
 Wednesday, April 02, 2008

We all know the sedentary lifestyle of your classic IT person can lead to ... shall we say ... bloat. I regularly joke that the only thing bigger than your typical (Unix) system administrator is his beard. I jest.

Anyway, we do what we can to avoid the bloat, including running (literally) some form of carbon-based defrag on a regular basis, to compact that extra space.

... and it may be working across the industry.

Here's my evidence.

When registering for a Microsoft developer event in 2005, notice the shirt sizes go to 6XL ...

ConferenceShirts2005

But, for this year's Tech-Ed Developer conference, only 4XL ...

ConferenceShirts2008

I'm going to assume that Microsoft has leveraged the cool data-mining features in SQL Server to determine that 5XL and 6XL sizes are vanishing.

Wednesday, April 02, 2008 7:18:18 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [1] -
Conferences | Development
 Thursday, January 24, 2008

Last week I had a chance to meet some of the brains behind gridGISTICS - a .NET development company in Atlanta that gets it. Not only are they up to speed on the latest .NET 3.x technologies, but they have some killer products as well.

The one that struck me as the coolest was their Aware Server product, which is a grid-computing based deployment and management environment. In other words, the missing pieces to Team Foundation Server's build and (ahem) deploy automation. Packaging up applications by system and version into manifests, these binaries can be automatically deployed, registered, launched, and monitored by various Aware Agents installed around a company's environment. From the development side, they provide many Visual Studio 2008 templates and add-ins to help generate Aware-compatible applications very quickly.

awaredeploy

Follow their story here.

Thursday, January 24, 2008 2:30:20 PM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
Community | Development | Visual Studio 2008
 Friday, November 30, 2007

In addition to adding support for the .NET Framework, Microsoft is taking the next version of Silverlight farther by adding a comprehensive control model, powerful skinning and “theming,” data binding, and over 20 controls in the box. To better capture the scope of the feature set for the next version of Silverlight, Microsoft will rename Silverlight 1.1 to Silverlight 2.0.  Microsoft will also commit to delivering a Silverlight 2.0 Beta with a Go-Live license in Q1 2008.

 

As for customer evidence, the NBA began engaging with Microsoft to deliver key interactive applications on NBA.com deploying Silverlight.  By utilizing Silverlight, the NBA will be able to further broaden the scope of its online experience across video and photos. From a broader Web development perspective, Microsoft will also release a preview of the ASP.NET 3.5 Extensions in early December. Key features of the preview include MVC, Dynamic Data Controls and REST Services. Silverlight and ASP.NET are core technologies enabling better user experiences on the desktop, Web and beyond. Microsoft’s user experience approach is part of the broader Microsoft Application Platform strategy, formed with the goal of helping customers realize the benefits from more dynamic applications.

 

For more information on Thursday, please check out Scott Guthrie’s blog, Jesse Liberty’s blog, and the Silverlight homepage.

 

Also, feel free to check out the new Microsoft Download Center Beta, now powered by Microsoft Silverlight.

Friday, November 30, 2007 10:07:39 AM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
Development | Microsoft
Archive
<July 2009>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
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 2009
Richard Hundhausen
Sign In
Statistics
Total Posts: 703
This Year: 5
This Month: 0
This Week: 0
Comments: 498
Themes
Pick a theme:
All Content © 2009, Richard Hundhausen
DasBlog theme 'Business' created by Christoph De Baene (delarou)