This article will show you how to create a custom TimeZoneInfo that incorporates AdjustmentRules for Daylight Saving Time (DST) Transitions all the way back to 1918. The backdrop for this effort is covered in my previous blog post: Beware of Daylight Saving Time Transitions in .NET. You might want to read that one first for the context.

As noted in the previous post, the System.TimeZoneInfo uses AdjustmentRules to account for DST Transitions, and the default AdjustmentRules do not incorporate all the available DST data. But it is possible to create a custom TimeZoneInfo and populate the AdjustmentRules with DST Transition data available to cover all DST transitions.

Read More…

Back in 1980, Daylight saving time (DST) started on April 27th. But calling the IsDaylightSavingTime method in System.TimeZoneInfo class for April 15, 1980 returns true. The following test fails:

  1. [TestMethod]
  2. public void DST_Started_On_April_27_1980()
  3. {
  4.     var ts = new DateTime(1980, 4, 15, 12, 0, 0);
  5.     var isDst = Utils.EasternTimeZone.IsDaylightSavingTime(ts);
  6.     Assert.IsFalse(isDst);
  7. }

Let’s do some sleuthing and get to the bottom of this.

Read More…

ASP.NET 4.5 has introduced some cool new features and enhancements for web developers using Visual Studio 2012. One of the new features introduced deals with the framework’s Web Forms technology. In previous versions of ASP.NET, if you wanted to display data-bound values in a control, you needed to use a data-binding expression with an Eval statement, e.g. <%# Eval(“Data”) %>.

Using an Eval Statement to display data-bound items

This approach works, but it introduces a few problems. In my experience, the Eval statement approach is prone to developer error. If you are like me, then you have undoubtedly misspelled a member name or tried to bind to a  nonexistent member. These mistakes, while trivial, tend to make themselves known only at run-time thus making them more difficult to track. Due to the Eval statement being dynamic in nature, it is impossible to enforce compile time error checking.

With ASP.NET 4.5, we can now take advantage of Strongly Typed Data Controls. These controls allow us to specify the type of data the control is to be bound to, providing us with IntelliSense (which solves another problem for me: remembering which members belong to the DataSource) and compile time error checking. Adding a strongly typed data control requires minimal effort!

Read More…

This week, many AIS team members are attending the Microsoft SharePoint Conference in Las Vegas, Nevada. We’ll be posting blog posts from each of them as they learn what’s new and what’s exciting during sessions, demonstrations and other conference highlights.

We’re out at the SharePoint Conference 2012 this week and learning a ton about the new features of SharePoint 2013. One of particular interest to the IT pros should be the introduction of PowerShell 3.0. There are a number of new features available in PowerShell 3.0 not to mention the cmdlets!

Read More…

You’ve had a sip of the NuGet Kool-Aid, picked your jaw up off the ground after seamlessly installing your favorite Open Source project, and now you’re diving head first into NuGet as your team’s dependency management tool of choice. Private NuGet repository is in place, Package Restore is enabled and new packages are being published automagically from your builds.

DLL-hell is behind you right?  Not so fast.  This never-ending saga has reemerged as NuGet-hell.

Managing your dependencies requires discipline and conscious decision making regardless of the tools you choose.  Don’t leave the building blocks of your applications to chance.

But how do you get the information necessary to make these decisions?

Read More…

Some end-of-the-week reads from AIS employees’ personal blogs:

Windows Azure Planning: A Post-Decision Guide to Integrate Windows Azure in Your Environment: AIS’ CTO Vishwas Lele posted a complete planning guide on how to best adopt and integrate Windows Azure into your organization. (Fleeting Thoughts)

SharePoint Saturday Cincinnati Session: Clint Richardson (who wrote the excellent three-part series on The Best New Features of SQL Server 2012) presented a Voluntold admin session at last week’s SharePoint Saturday Cincinnati. His presentation, relevant links and PowerShell code are all available at his blog. (pointblankadmin)

Understanding and Using System.Transactions: Ash Tewari has compiled an excellent library of resources to help you understand and effectively use System.Transactions functionality in your .NET projects. (

Adaptive Problems Require Responding to Change Over Following a Plan: More deep thoughts on the Scrum framework and Agile values from Ryan Cromwell. (cromwellhaus)

Aliasing Multiple Properties in Knockout JS Bindings: David Benson figured out another handy use for Knockout JS’s “with” statement: you can emulate c# style “using” directives. (dben codes)

Teach Your Kid to Code: Steve Michelotti (and his 5th grade son!) will be co-presenting a great, fun session called Teach Your Kid to Code at the CMAP meeting next Tuesday evening in Columbia, MD. (Don’t forget to get out and vote early, too.) (Steve Michelotti)

The Talent Acquisition Team here at AIS continues to persevere with recruiting efforts within our federal and commercial practices as we continue to expand our presence and footprint within the market. While other firms focus on staffing contracts and driving their people to bill more hours, AIS focuses on delivery excellence.  We seek accountability and the opportunity to deliver solutions.  And we seek people with a similar, innate drive for excellence and focus on follow-through.

If you are a strong, motivated technical professional and are looking for the following:

  • The ability to work on the latest and greatest technologies and projects
  • The chance to work with the Best of the Best within the industry
  • The opportunity to join an innovative, dynamic, collaborative work environment

Then why not take a look at AIS?

Read More…