Resharper 4.0 good news and a little WPF databinding

It’s been tough doing development in Visual Studio 2008 without ReSharper for the last several months, but as much as I enjoy ReSharper, C# 3.0 trumps it. I’ve occasionally installed the Nightly Builds of ReSharper 4.0, but the sea of red around my LINQ code always resulted in the install not lasting very long. Luckily, the most recent “works here” nightly build of ReSharper 4.0 (build 755) looks pretty usable. The only notable issue I’ve found is that it doesn’t like non-trivial LINQ queries inside of static methods, which is a pain but perhaps not a showstopper.

Speaking of LINQ, Brian Stoker has a nice introduction to WPF Databinding with LINQ to SQL over on The Code Project. I’ve been meaning to learn more about this for a while and Brian’s article did a great job of introducing enough information to get something up and running without being overwhelming.

{ Add a Comment }

Consuming a WCF service from Flex Builder 3

Flex Builder 3 includes improved support for web services, but the process of getting it to consume a WCF service was still a bit trickier than expected. Here are a few pointers:

  1. Flex only supports up through SOAP 1.1, so doing a web service import fails for the defaults Visual Studio uses. To correct this, modify the WCF service to use basicHttpBinding. Pete Brown has an example on how to do this over in his blog.
  2. The “Import Web Service” wizard doesn’t provide any pointers after it runs on how to use the strongly typed client it generates, but it’s actually pretty straightforward. Check out Build SOAP Clients with Flex Builder 3 over on FlexLive.net. There’s also some good sample code in the comments.

With the above I was able to get a sample WCF service that returns an array of strings working correctly with Flex. I’ll post a followup later with my experiences with more complicated objects — that’s where things have broken down in my experience with SOAP interop in the past. However, supposedly Flex 3′s new support is based on Apache Axis which is pretty well regarded, so fingers crossed.

{ Add a Comment }

Google’s Android SDK First Impressions

Google has made the Android SDK publicly available. A few first impressions:

  • Android development is Java based and is similar to the method used to develop for the Sidekick: Compiled Java classes are run through a tool that translates them to a custom VM (Android’s Davlik VM in this case).
  • IDE integration is available via an eclipse plugin.
  • A good portion of the base Java libraries are included. I’m especially happy to see the excellent java.util.concurrent API is standard. The Apache Commons library is standard as well, which is nice to see.
  • There is rich media support available (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF). With Apple, Adobe, and Google all building on H.264VC-1 is becoming less and less attractive.
  • I’ve suspected that Android would include the Java 2D API, since it’s been rumored to be based on the Skia engine that Google purchased. While the engine may be based on Skia, the API is definitely not Java 2D. The 2D library is called SGL, and is documented in the android.graphics package.
  • OpenGL ES is standard, but hardware 3D acceleration is not.
  • Like Adobe’s AIRSQL Lite is included for structured data storage.
  • Android’s web browser is based on the Webkit engine used in Apple’s Safari browser.

{ Add a Comment }

Vista and Scala

  • I’ve run every modern version of Windows since NT 3.51 (which ran great including OpenGL 3D graphics on a 90Mhz Pentium with 16 megabytes of RAM believe it or not) but unless something changes radically, I’ll be skipping Vista from now on. I ran it at home for over two months trying to get used to it, but finally I got frustrated enough that I decided it was worth losing an entire evening to “downgrade” back to Windows XP and I couldn’t be happier. I still prefer Windows XP to Linux on the desktop, but I’d choose the latest Ubuntu Linux over Vista in a heartbeat.
  • If you’re interested in functional programming, definitely check out Scala. It has a nice pragmatic feel to it, a friendly & active community, and can easily access the massive amount of JVM libraries. There is also a .NET version in the works as well. There’s also a nice plugin for Eclipse being worked on. There’s a great introductory article available over at Artima that I highly recommend checking out.

{ Add a Comment }

Parallel Programming, Silverlight, and the RSS Bandit parser

{ Add a Comment }

Every once in a while the Internet still surprises me

I’ve been trying to wrap my head around WPF databinding tonight. It turns out Don Box wrote a post on the subject this evening. Due to the power of RSS and news aggregators, I’m benefiting from his post on the same night he wrote it.

Having this happen reminds me of Peter Drayton’s post about blogging and how the technologies around it enabe a “Topic-Oriented Web of Smart People”.

{ Add a Comment }

Flex & Silverlight

I’ve been experimenting with Flex 2, Adobe’s Rich Internet Application library built on Flash 9 over the last few months and am impressed. For a very long time Flash was developer unfriendly. That has changed. Flex Builder is a respectable IDE, and Actionscript 3 is based on JavaScript 2 which feels very similar to developing in Java/C#. It’s even nicer in some ways. You can use dynamic typing for prototyping and then switch to static typing when you want compile-time checking. Adobe has also released the Flex SDK, so you can also develop Flex applications for free.

For me, the big technical downside to Flash based applications is that like a Java Applet your application is wrapped in a binary object that is embedded into the web page. That means that search engines can’t easily index it, and as a user you run into weird issues where keys that normally work in web pages don’t work when you’re using a Flex application. The whole experience is somewhat like viewing a PDF on a web page—it works okay but feels slightly off.

Silverlight, Microsoft’s competitor to Flash, is more web browser friendly. It uses XAML, an XML-based format, for describing the user interface and leverages the browser’s JavaScript engine for programming. Instead of binary embedding, it’s all text, which means you can write Silverlight applications in any text editor or even generate them dynamically, and have the resulting page indexed more easily by search engines. From a technical standpoint Silverlight is currently inferior to Flex, especially after dropping CLR support for 1.0, but overall I really like the vision of Silverlight.

Rich Internet Applications are the future, and the battle is on for the platform they will be built with. If the history of cooperation between web browser vendors is any indication, Ajax is unlikely to evolve quickly enough to stay competitive with Silverlight and Flex. Unfortunately for Microsoft, the use of Flash by sites like Youtube and MySpace means that 84.3% of browsers already have a runtime installed that supports Flex 2. If I had to make a bet right now, my money would definitely go on Flex.

Ashish Shetty, a Program Manager at Microsoft recently asked for candid impressions of Silverlight. What I’d like more than anything else from Silverlight is for it to become a non-proprietary alternative to Flash. Microsoft has a real opportunity here:

  • Release the Silverlight specification as a open patent-free standard
  • Release a Silverlight implementation (minus the multimedia codecs) under the Microsoft Permissive License.

This would be a radical departure for the company and I don’t see it happening. But opening Silverlight would likely fulfill Bill Gates’ vision of seeing Silverlight technology ‘absolutely everywhere’.

{ Add a Comment }

The Four Meme

I’ve been tagged by Dave! for the four meme. It would be interesting to see a navigable browser of this meme from its start point.

Interesting coincidence: I got tagged just a couple of hours after finishing Mark Pesce’s interesting viewpoint on the implications of global connectedness.

Four Jobs:

  • Software Engineer
  • Adjunct Instructor
  • Writer
  • Chief Software Architect

Four Movies I Could Watch Over and Over:

  • True Romance
  • Existenz
  • They Live
  • Fight Club

Four Places I’ve Lived:

  • Chicago, IL
  • Bloomington, IN
  • Richmond, CA
  • Mishawaka,IN

Four TV Shows I’d Love to Watch

  • Lost
  • Charlie Rose
  • Good Eats
  • The Daily Show

Four Places I’ve been on Vacation:

  • Las Vegas
  • Portland
  • London
  • Amsterdam

Four Websites You Visit Daily:

Four of My Favorite Foods:

  • Peanut Butter
  • Yogurt
  • Cheese
  • Steak

Four Places I’d Rather Be:

  • Marathon, FL
  • French Rivera
  • Amsterdam
  • London

Four Albums I Can’t Live Without:

  • The Beatles, Revolver
  • PWEI, This Is The Day…This Is The Hour… This Is This
  • Gary Numan, Premier Hits
  • The Kleptones, A Night at the Hip-Hopera

Four People to Tag:

{ Add a Comment }

Managed DirectX Resource Disposal

If you find that a Managed DirectX application you’re developing is taking a very long time to shut down, make sure that you’re disposing all the Vertex Buffers (and other pooled device resources) in the reverse order that you created them.

I’ve been working with Managed DirectX seriously for about a week now and I’m pretty impressed so far. There are a few gotchas I’ve run into like the above, but for the most part it’s been easy to get up to speed. It’s actually more similar to OpenGL than I expected.

{ Add a Comment }

New Tachy Release

I’m happy to announce that a new release of Tachy is now available. The big news for this release is that Tachy now includes debugging support developed by Peter de Laat, including an alpha version of his Visual Studio .NET 2003 Add-in for Tachy. Thanks Peter! Click on the thumbnail below to see a screenshot of the Add-in at work:

Peter has generously released his changes and Visual Studio.NET Add-in under the same BSD license as the rest of Tachy. For more information on the new Add-in, take a look at Peter’s “readme.txt” file in the ‘TachySource/TachyExtension’ directory. A sample that uses the Add-in is available in the ‘TachyExamples/Example2DotnetClasses’ directory.

The new release can be found on the Tachy page or downloaded directly here.

{ Add a Comment }