Jacksonville .NET Code Camp – THIS SATURDAY – Aug. 28, 2010

The 6TH annual Jacksonville .NET Code Camp will be held this Saturday, August 28, 2010, at the University of North Florida.  If you are a frequent reader of our blog, then you will know that we have made a stronger effort to promote various code camps across the nation.   We are huge supporters of code camps because they allow .NET developers from different communities to network and most importantly learn about .NET development.  Another fantastic thing about code camps, THEY ARE FREE!

The Jacksonville .NET Code Camp is currently scheduled for over 35 sessions for .NET developers of all levels.  The sessions will range from informal “chalk talks”, hands on labs, to full featured presentations by Microsoft MVPs, Regional Directors and Authors.   The sessions are divided into the following 7 tracks: Application Server & Integration, Applications, Business Intelligence, Developer Tools, Languages & Frameworks, Development Practices, Web Platform, and Windows Phone 7.

In addition breakfast, snacks and lunch will be made available to all registered attendees and like all code camps, there will be tons of SWAG.  Last but not least, there will be an after-party at the Sneakers Sports Grille for all attendees.

MVC 3: The Preview and why it’s important

We are approaching another milestone in ASP.NET MVC. This release offers improvements to the view that are rather significant. Specifically, MVC 3 allows you to easily use the View Engine of your choice for building your applications. It comes out the box with Razor, the View Engine that powers the new WebMatrix package. For those that haven’t touched it, Razor’s semantics reminds me of classic ASP. It’s essentially an inline coding model that leverages a lot of modern .NET but in a really simple way. Take a brief look and you will get the point.

<!DOCTYPE html>
@{
   var myDb = Database.Open("PeopleDatabase");
   var people = myDb.Query("SELECT * FROM TestTable");
}
<html>
   <head>
     <title>People Example</title>
   </head>
   <body>
   <ul>
   @foreach(var person in people)
   {
     <li>@person.FirstName</li>
     <li>@person.LastName</li>
   }
   </ul>
   </body>
</html>

I know many of you will immediately want to force comparisons. That’s generally where internet conversations about WebMatrix, Razor, or even the Webforms vs MVC debates start going downhill. I think there needs to be a little perspective when looking at these things. These are not competing technologies. They are only options. No one is suggesting you rewrite your weather prediction services in Razor.

But this release isn’t just about the Razor View Engine. You could use Spark, NHaml, or create your own if you wanted to. This is why I think this release is significant. Microsoft has done a great job of taking care of the plumbing. Allowing developers and groups to do whatever they want with the view engine of their choice.

As for deployment, keep in mind this preview isn’t installed on the servers. You will need to upload a copy of the System.Web.Mvc.dll to your bin folder. On my machine, the path to the .dll is C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies.

Michael Ossou
Technical Support

SQL Server 2008 R2 vs. 2005

Before I began to write this article, I had planned to cover all possible new features in SQL Server 2008 R2 comparing it to the 2005 edition. This appeared to be impossible because there are so many additions and enhancements to this edition that writing about each of them would fill a book. After I excluded the features that are not included in the edition of the servers we are running in our data centers, those that are disabled for the security or performance reasons, and those that require administrative rights at the instance level, I was still left with a significant amount of information to cover. So here are the additions that in my opinion will be useful to the most users.

New Features in Management Studio

The Management Studio also comes with new features and functionality with the release of SQL Server 2008 R2. The most useful features for developers and administrators are IntelliSense and Regions in Query Editor.

IntelliSense in the Query Editor

One of the most exciting features added to SQL Server 2008 R2 is the IntelliSense support in Query Editor of Management Studio. To be able to use this feature you need to be connected to SQL Server 2008 R2. It is not backward compatible with SQL Server 2005 edition. Unless you are one of those developers or DBAs who like to memorize all objects, their parameters, and T-SQL statements, or enjoy spending hour in books online looking for this information, this feature is a must. Besides completing a word and identifying an incorrect syntax, IntelliSence will list database objects and parameters required by functions and stored procedures as you type.

Query Editor Regions

Regions helps with organizing T-SQL code by grouping certain region of code. Regions can be expanded or collapsed by clicking the ‘-‘ or ‘+’ signs next to them which helps navigating and examining the code. A region is automatically created for batches ending with a GO statement, and for each BEGIN / END block.

Going Beyond Relational

There are more and more applications that require storing beyond relational data types. SQL Server 2008 R2 provides the functionality to store, search, and retrieve the beyond relational data types such as XML, Full-Text, Geometry and Geography types, Hierarchies, and Media.

HierarchyID

Object-Oriented class inheritance, organizational charts, Family trees and Bills of Material are all examples of hierarchy which is hard to model with the traditional relational databases. The problem becomes more complicated when you need to implement functionality such as navigating and manipulating the tree or defining many-to-many relationships. Microsoft introduced a new data type called HierarchyID where the entire hierarchy can be stored. Although HierarchyID is a CLR data type, it does not require CLR to be enabled on the instance.

Geospatial Data Types

SQL Server 2008 R2 introduces new GEOGRAPHY and GEOMETRY data types that allow storing geospatial data in the form of points, lines, and polygons in the tables. These spatial types enable users to perform SQL queries and operations on spatial data within SQL Server 2008 R2 directly. You can also index those columns that store spatial data types. The geospatial data types and functions in SQL Server 2008 R2 are based on standards established by the Open Geospatial Consortium. Geospatial data can be imported into SQL server from the following formats: WKT, WKB and GML (Geospatial Markup Language). Geography and Geometry data types are supported by many major GIS (Geography Information Systems) such as ESRI ArcGIS, Mapinfo, Autodesk Map 3D 2007, Manifold, and more.

Working with Date and Time

Until Microsoft SQL Server 2008 R2, the ability to store date and time was limited. The only options SQL Server 2005 offered were the datetime or smalldatetime data types. The problem with those data type is that they do not allow storing only date or only time. Moreover, they do not account for time difference between physical locations (time zones). The results of those limitations are inconsistent data, storage and coding overhead.

SQL Server 2008 R2 introduces 4 new date and time data types; date, time, datetime2, and datetimeoffset.

datetime2 occupies 6-8 bytes and is able to store dates and times between January 1, 0001 and December 31, 9999 with an accuracy of 100 nanoseconds, whereas datetime takes up fixed 8-bytes and stores date/time in range of January 1, 1753 to December 31, 9999 with an accuracy of 3.33 milliseconds. The new datetimeoffset date type is similar to datetime2, but in addition it stores time zone offset in the range between -14:00 through +14:00.

The range of the date data type is between 0001-01-01 and 9999-12-31, whereas its predecessor datetime could only store the date range between 01-01-1753 through 9999-12-31. The range of time data type is between 00:00:00 and 23:59:59.9999999.

Upgrading to SQL Server 2008 R2

Mainstream support for SQL Server 2000 ended in April, 2008. The mainstream support for SQL Server 2005 will come to an end in April of 2011. If you are considering deploying your web application to SQL Server, we strongly recommend deploying it to 2008 R2 version. If you are currently using SQL 2005, SQL 2008, or even SQL 2000 versions, our advice would be to upgrade to 2008 R2 as soon as you can. The new SQL Server is fully backward compatible with its predecessors while providing better and faster performance for your applications. The steps to upgrade SQL Server are detailed in this community forum post.

Dmitri Gropen
Technical Support

MS SQL 2008 R2 – when? Now!

DiscountASP.NET is happy to announce the immediate availability of MS SQL 2008 R2.

The “R2” designation indicates that this is not a major release of SQL Server, but there are a number of interesting new features for developers. R2 is different enough from SQL 2008 that we decided to treat it as we would a major release and dedicate a new group of servers to R2 (rather than upgrading the existing 2008 servers).

MS SQL 2008 R2 is available right now as an option in Control Panel. You may notice that we have also revamped the “Database Management” section of Control Panel to make it a bit easier to navigate.

We are always working hard to stay on the cutting edge and maintain our spot as the best .NET host in the world, and as always we appreciate your support and feedback.

Social Networking Channel Capacity: Is There a Human Limit for Social Networking Communities?

The other day, I read a short article by Clive Thompson entitled “In Praise of Obscurity” in the February 2010 issue of Wired magazine. In the article, Thompson talks about how socializing doesn’t appear to scale. He highlights Maureen Evans, a grad student and poet, who built an active twitter following by tweeting recipes condensed down to 140 characters. Her social network grew into a very active community – a large but close knit group of twitter-ers engaged in many conversations. But then as her followers increased, she recounts that the sense of community died when her social network got up to around 13,000 followers. People just stopped talking to each other and stopped talking to her apparently.

It appears that when a social network grows too large, people start to feel estranged and that their contributions to the community are not useful anymore and so the conversation stops. In addition, when there is a large community, people tend to self-censor their remarks adding to that lost sense of community. So that is the phenomena that Thompson was referring to when he wrote that socializing doesn’t appear to scale.

The Wired magazine article reminded me of Malcolm Gladwell’s book, The Tipping Point, where he talks about the concept of Channel Capacity and then discusses the idea of Social Channel Capacity.  So let me try to touch on both these concepts.

Channel Capacity is a concept in cognitive psychology that refers to the capacity of the brain to store/recall certain information. Without getting into all the different experiments described in the Gladwell’s book, the gist is that our brain, on average, is wired to store about 6-7 categories/bits of information before most people start making mistakes in recalling. That is one of the reasons why our phone numbers in the USA are 7 digits.

Gladwell continues in his book to discuss the idea of Social Channel Capacity. The gist is that humans become less effective as a group when they reach around 150 people or more because with a group of this size, people cannot maintain emotional ties with each other. In other words, there is a limit to the amount of relationships one person can have and maintain.

And of course there are examples of this Social Channel Capacity. In combat military organizations, the hierarchy is often setup so that any functional fighting group is less than 200 people to maximize cohesion and effectiveness. The average village size of many hunter-gatherer tribes around the world is around 150. The Hutterites, a religious group, strictly maintains a population of 150 because they have found that this is the most effective number of people to function as a group. I’ve also seen some analysis of online gaming guild sizes and they tend to max out at around 150.

A modern example is found in the company, Gore Associates, who created the water-proof outdoor fabric, Gore-tex. When the number of employees reaches to about 150 people, they split it off as its own functional division. In fact, they only buy buildings that can comfortably accommodate 150 people with 150 parking spaces. And with this business practice, they are a successful multi-million high-tech company and they’ve won many “best place to work” awards.

OK. Let’s get back to the original idea of this post. I talked about the Wired magazine article and I diverged a little to talk about some concepts in the book, The Tipping Point. I talked about the human minds Channel Capacity which relates to the limit of retaining new data, and then the concept of Social Channel Capacity which relates to the size limit of functional groups.

So that led me to ask whether or not there is such a thing as Social Networking Channel Capacity – a human limit to Social Networking communities. As evidenced in the Wired article where 13,000 members seems to be a point where active conversations tend to stop. Could 13,000 be a human limit to emotional ties within communities made up of “weak interpersonal ties”?

I don’t know the answer to this question. I just thought it interesting and just wanted to pose the question and see what you all think.

Takeshi Eto
VP Marketing and Business Development

Microsoft Technology Associate (MTA) Program – A New Student Certification Program

Just wanted to spread the word on a new Microsoft program to help students get started with Microsoft certifications.

Unlike the more advanced Microsoft certifications that we are familar with, this MTA program targets students with no prior IT or development experience or employment. This program is only available in educational settings and is designed to integrate into the curriculum of existing computer courses.

The MTA programs offers:

  • 3 IT Certifications in Networking Fundamentals, Security Fundamentals, and Windows Server Administration Fundamentals
  • 3 Development Certifications in Software Development Fundamentals, Windows Development Fundamentals, and Web Development Fundamentals
  • 1 Database Certification for Database Administration Fundamentals

Testing is conducted by Certiport, a commercial testing service, at participating schools.

You can get more information at the Certiport website.

Takeshi Eto
VP Marketing and Business Development

How Cool – Imagine Cup Winners Receive the First Two Windows Phone 7 Preview Devices

A big congrats to Christian Hood and Eric Lo who won the Mobile Gaming award at the 2010 Imagine Cup Finals competition in Warsaw, Poland!

These two high schoolers from Advanced Technologies Academy in Las Vegas won for developing a 2D game for Windows Phone 7 called “Droid Assault”. They plan to make their game available when the WP7 Mobile App Marketplace opens up. I hope this helps pay for college and beyond.

And for their prize? How about the first two Windows Phone 7 preview devices outside of Microsoft staff! Way to go!

Takeshi Eto
VP Marketing and Business Development