Tuesday, March 30, 2010

Free .NET Development Tools

On Intertech's blog, Andrew Troelsen lists some useful .NET development tools that also have the great benefit of being free.

Friday, March 26, 2010

iPhone App Development Without Objective-C

Here's an interesting way to develop iPhone apps without resorting to Objective-C:  build it in HTML5 and cache.

Thursday, March 25, 2010

The State of Various Technologies--Adopt/Abandon/Consider

Here's link you may want to read.  It's a quick 8 page read on the state of various technologies and whether they may be worth adopting/abandoning.  A lot of these types of things aren't worth much, but this one is by Thoughtworks, which is Martin Fowler's place.  If you aren't familiar with him, suffice it to say he's well respected on the forefront of software engineering, which is why I consider this worth the time and thought.  I'll also point you to this, which covers one of the tidbits in the doc that might otherwise easily be missed.  Last, I'll point you to this, which while old (seems to date from Google's announcement on Chrome/Chromium), is an interesting take on Chrome/Chromium, its true competitors, and its possible impact on them.

Wireless Networking

Supposedly, this company offers better Wireless Networking products.  They have some interesting antenna technology that forms 'beams', instead of just the basic omnidirectional model.

Friday, March 19, 2010

.NET Asychronous Sockets Server

I've been starting work on designing a scalable TCP/IP sockets server in .NET.  Not having done anything like this before, I did some digging around on the web, googling for '.net asynchronous sockets heap fragmentation'.  Here, here, here, here, here, here and here are some posts that were highly worth reading.

Not suprisingly, .NET wraps Win API calls, for instance AcceptEx.  With that in mind, this article provides some good background.

Also, in the course of absorbing the above, references were made to Jeffery Richter's Power Threading Library, as a great way to learn about multithreading, locks and so on.  Said library is available here.

Last, I'm not sure if this one is still relevant, so I need to read again.

Edit:  As .NET uses IOCP under the hood, this introductory article and this more technical one may be useful reads.  The second link in turn references other articles:

Design Patterns

When designing and building software, design patterns can often help.  DoFactory is one place to get sample patterns.  Like anything else they have their pitfalls and need to be applied thoughtfully.  Here's a post on the subject.

.NET Memory Leaks

Since .NET applications run in the CLR as managed code, inexperienced developers may make the assumption they no longer need to be concerned with memory usage--after all, it's managed code and the garbage collector will take care of it, right?  Unfortunately, that isn't true.  Here's a StackOverflow post and here's another post discussing the issue.  Here is a detailed MSDN article.  The article notes these are the most common causes of memory leaks in the .NET world:

  • Static references
  • Event with missing unsubscription
  • Static event with missing unsubscription
  • Dispose method not invoked
  • Incomplete Dispose method
Last, here's a post talking about how to use C#'s 'using' statement as a way of making sure the Dispose method gets called on any Disposable object.

Thursday, March 18, 2010

Martin Fowler on RESTful Web Services

Martin Fowler posted this to his blog on RESTful web services and the 'Richardson Maturity Model'.  Worth reading.

Friday, March 12, 2010

Object Relational Impendance Mismatch

Here's a good post discussing the problems that happen when using relational databases to stores objects.