Skip to content
June 13, 2011 / alausted

jQuery Resources

Free books

Free video training
Advertisements
August 13, 2010 / alausted

What is Continuous Integration?

We’ll start with a quote from Martin Fowler, who made the term Continuous Integration popular in a paper from the early 00’s.

Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day.

He also states:

The essence of it lies in the simple practice of everyone on the team integrating frequently, usually daily, against a controlled source code repository.

As someone new to Continuous Integration, I did a bit of research and compiled it into this summary. Remember, that Continuous Integration is a practice and you don’t need to follow it to the letter. I do believe it is beneficial to think about these things in terms of: “Will it benefit my team/organization?”

Benefits of Continuous Integration?

Back in college I worked part time at the Juran Center for Leadership and Quality. I learned a bit about Quality, Continuous Improvement and began to believe in the ideas behind it. I would say that CI is one way to improve software quality on your team.

Continuous Integration helps:

  • improve quality and creates a stable build
  • errors to surface and be fixed quickly
  • reduce complexity of integration because it is done frequently
  • reduce defects and find them immediately while they are fresh
  • reduce the amount of time hunting down bugs caused by developers stepping on each other’s toes.
  • speed deployment
  • reduces integration risk
  • managers to know where you are, what works and what doesn’t
  • break down barriers between customer and development
  • measure progress daily

Key Practices for Continuous Integration as identified in Martin Fowler’s article:

  • Maintain a single source repository
  • Automate the build
  • Make your build self testing
  • Everyone commits to the main branch of code every day
  • Every commit should build the main branch of code on a build server/integration machine
  • Keep the build fast
  • Test in a clone of the production environment
  • Make it easy for everyone to get the latest executable
  • Make it easy for everyone to see what’s happening with the build
  • Automate deployment

Where to start with Continuous Integration?

If you’re like me, you’re new to this so where is a good place to start? First of all, have an understanding of the benefits and read an article or two. Once you’ve established it in your mind here are a few practical steps to start that shouldn’t overwhelm you or your software team.

1. Source Code Integration

Source code must be checked-in or integrated with a source control management tool. This is the place to start if the development team is not using a SCM.

2. Daily Check-in

Here we need to communicate to our team that at least once a day check-in is required and the source code repository should always be in a deployable state with no build errors.

3. Automated Build

Once your development team has source control in place and has communicated the idea of a daily build then it’s time to think about an automated build. An automated build can be done on each source check-in or it can be scheduled. Starting out, it is probably adequate to schedule your build nightly.

4. Automated Testing

Overtime, the team may want to start introducing unit tests that become part of the build process. Identify major areas where things go wrong or identify the most used code areas and write unit tests for them.

Feel free to leave me your comments and thoughts.

Sources:

August 6, 2010 / alausted

How To: Some of the properties associated with the solution could not be read.

Each time I open our Visual Studio Solution file it gives me the message:

“The following Web projects must be converted to the new Web site format. The conversion process will remove all source control bindings and the project will be under source control after migration.”

7-22-2010 8-20-59 AM

Following this dialog box I received another:

“Some of the properties associated with the solution could not be read.”

7-22-2010 8-21-21 AM

I found a few items after googling/binging and through trial and error came up with a resolution.  It’s important to remember that before making any changes to your solution that it is backed up.

Step 1

How many projects exist in your solution?  Write it down or remember. 

Step 2

Find the following items in your solution file (.sln).

GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = <number of projects in your solution>

Step 3

Remove each GlobalSection(TeamFoundationVersionControl) = preSolution section except for the correct number of projects.  In my case, I had 14 projects so I deleted each GlobalSection that didn’t contain SccNumberOfProjects =14.

Even after I deleted them all I had some duplicates so I just removed them all except the very first GlobalSection in my solution file.

Step 4

Remove the lines that contain SccProjectEnlistmentChoiceX where X is a number.

Step 5

Edit the vspscc project files.  It will look something like projectname.csproj.vspscc. 

Change the ENLISTMENT_CHOICE from COMPULSORY to NEVER.

Remove the value from inside of the ORIGINAL_PROJECT_FILE_PATH.

Conclusion

That should do it.  It may be much simpler to just create a new solution, add your projects, overwrite the existing solution file and check back in to TFS.  

This was a bit of trial and error for me so it may not be 100% accurate and work exactly the same for you.  I am not an expert and was learning as I went but hopefully this can help point you in the right direction.  I invite any comments, background or further guidance.

– Andy

Sources

July 23, 2010 / alausted

High-level view of jQuery

Recently my manager asked the team their thoughts on jQuery.  I have little experience with it other than reading about it and looking at samples.  But as I thought about it there’s more to adopting a new library or methodology than just because a developer thinks it’s cool or because it’s the latest thing.  So I decided to do a bit of high level research on jQuery.  This post is from the context of making a decision on whether a development team should adopt jQuery.  Feel free to send me your thoughts and comments.   

Background information

jQuery is an open source JavaScript framework started by John Resig in January 2006.  John Resig is a JavaScript tool developer for the Mozilla Corporation.  Today it is arguably the most popular JavaScript framework available.

What jQuery is not

  • A new programming language

Why use jQuery?

  • Technology agnostic, meaning it’s not emotionally tied to any web development technology
  • Cross browser compatible.  It works the same in all browsers
  • Easier to write than pure JavaScript
  • Easier to learn than other JavaScript libraries
  • Excellent community support
  • Lots of Plug-in available
  • Lightweight framework (15kb)
  • jQuery does a lot of heavy lifting for the web developer.  
  • jQuery is clean and concise
  • Designed to simplify client script of html.

Features of jQuery

  • Manipulate the DOM (document object model)
  • Create animations
  • Handle events
  • Develop Ajax applications
  • Ability to create and use plug-in on top of the library

Who’s using jQuery?

jQuery is well tested and adopted.  Here’s a brief list of web sites using jQuery.

  • MSNBC
  • Facebook
  • Google
  • Netflix
  • Dell
  • Mozilla
  • WordPress
  • Major League Baseball

Stats also support the popularity of jQuery:

What’s Microsoft’s Role?

  • Microsoft has adopted jQuery on top of ASP.NET.  According to Microsoft it does not replace ASP.NET AJAX but compliments it.  At this point they are used separately.
  • Microsoft is shipping jQuery as part of Visual Studio 2010.  Can download hotfix for Visual Studio 2008 to get intellisense to work.  It is also shipping with ASP.NET MVC.
  • Microsoft is not going to change the core jQuery framework but will contribute
  • Visual Studio 2010 has strong support for jQuery and JavaScript

What are other JavaScript libraries?

  • Prototype
  • MooTools
  • YUI Library (Yahoo)
  • ASP.NET Ajax
  • Spry
  • Dojo
  • Ext JS
  • Google Web Toolkit

Summary

Today, jQuery is arguably the most popular JavaScript framework.  It is my feeling that jQuery is the JavaScript library of choice for ASP.NET developers.  It will ease client side development, allow for code reuse, easier maintainability and cleaner JavaScript development.  Do you have any other thoughts as I learn this library and add it to my web development toolkit?

Related Links

Wikipedia: jQuery
ASP.net and jQuery at PDC2008
jQuery and Microsoft: The Q&A
jQuery, Microsoft, and Nokia
Getting started with jQuery in Visual Studio 2008