The Lincoln .NET Users Group is a new gathering in Lincoln, Nebraska of .NET developers. Once a month, the group schedules a meeting, invites speakers on various .NET topics and discusses how they are used to business application. In October, I was able to attend the Agile Sports presentation on their product called Huddle.
Huddle is a web application for sports teams to document and analyze games either by their games statistics and game video. This product increases the interactivity between the coaches and their players. It is a built from Silverlight, WCF, LINQ from the .NET 3.5 Framework. The development team also used Prototype and Scriptaculous for AJAX calls. The interesting aspect of this project was that it was designed around scalability and the presentation descibed how the technologies they chose helped them achieve that goal.
When you look at their overall project in Visual Studio, they are designing their application into a 3-tier architecture such as creating object layers like Business, Core, and Data. Much of their Data layer is LINQ to SQL. The interface that contains Silverlight and web application for markup and client side scripts is in a separate project.
Windows Communication Foundation (WCF) is one of the major components that makes this product scalable. With the use of services, Agile Sports development team utiliized AJAX and Silverlight to process and retrieve their data. The advantages that WCF gave were higher performance, ease of development, code reuse, and services used as a commodity.
WCF can be deployed in different ways. At the College of Business, I’ve deployed WCF under IIS, but an ideal deployment maybe writing your own console that monitors the connection to the service. This can bypass the use of IIS and alleviate consuming more resources especially if your services are heavily consumed. WCF can use different protocols besides HTTP. Some other protocols to choose from are:
- Named Pipes
- MSMQ (Microsoft Message Queuing)
- Optimized Binary (Binary Version of XML)
WPF (Windows Presentation Foundation) or for the web, Silverlight, was used to annotate on top of game video. Annotations could also be made in a timeline of the video so step by step notes could be communicated as the play progressed.
The last major component was LINQ to SQL. Though there were some down sides discovered for LINQ to SQL, LINQ turned out to be of use to the application. One of the advantages to LINQ was the ability to query data right in the code. Queries could also be setup as compiled queries to help improve performance.
Some of the downsides or bugs discovered in LINQ at the moment are:
- Inserts cannot be executed on tables without primary keys
- “Order By” is sometimes ignored
- Does not handle many to many relationships across tables
- Joins on tables cannot occur with more than one parameter
- When it comes to debugging LINQ, Agile Sports suggested that you utilize SQL Profiler.
The presentation by Agile Sports was very enlightening for those just getting started or in that indermediate stage in working with .NET 3.5. What Agile Sports shared definitely set the expectations needed for developers to be aware of these technologies how they are benefitual or in their case give them the edge, but also give us the amount of debugging and areas of attention needed to develop an end product.
What was more exciting was to see someone exceed with .NET in taking a business idea and making it into reality.