jtower

Microsoft MVP, Software Architect

Popular articles

by jtower

All articles

by jtower

 

Comparing Date Ranges For Overlap

I often find myself writing logic to compare two date ranges to see if they overlap. In fact, I’ve done this enough times that I thought it was worth capturing in a blog post to save myself the time of having to figure it out next time. Hopefully you, dear reader, will also find it useful. TL;DR If you don’t need to understand the reason why, no need to read on. Just use this logic:

  The Details There are two different conditions that could make for non-overlapping ranges: Condition 1: Range B ends before Range A starts, which we could write as: Condition 2: Range A ends before
Continue reading...  

Detroit, MI – Detroit DevDay

I had an excellent time presenting a talk today at Detroit DevDay in Detroit, MI. I spoke about “ASP.NET 5: Someone Moved Your Cheese”. Thanks to everyone that came to my talk and to the organizers for putting the event together. Every time I present, I challenge the attendees to give to a worthy cause if they enjoyed the talk. If the audience from my talk hits the goal, at least 6 people will get access to clean drinking water. So, if you attended and enjoyed it–or even if you didn’t–feel free to join us in giving here: http://bit.ly/detroit-gives. I had a great time meeting everyone, and look forward to seeing
Continue reading...  

Milwaukee, WI – Milwaukee CodeCamp

I had an excellent time presenting two talks this morning at the Milwaukee CodeCamp in Milwaukee, WI. I spoke about “Model-View-Whatever: Comparing JavaScript MVC/MVP/MVVM Frameworks” and “ASP.NET 5: Someone Moved Your Cheese”. Thanks to everyone that came to my talks and to the organizers for putting the event together. Every time I present, I challenge the attendees to give to a worthy cause if they enjoyed the talk. If the audience from my two talks hit the goals, at least 12 people will get access to clean drinking water. So, if you attended and enjoyed it–or even if you didn’t–feel free to join us in giving here: http://bit.ly/mke-gives for the MVW
Continue reading...  

New ASP.NET 5 Project from Scratch with Visual Studio 2015 – Part 2

Part of a Series This post is part 2 of a series: 1. New ASP.NET 5 Project from Scratch with Visual Studio 2015 – Part 1 2. New ASP.NET 5 Project from Scratch with Visual Studio 2015 – Part 2 (this one) If you’re not already somewhat familiar with ASP.NET 5, I’d recommend reading part 1 first. In that post, I showed you how to create a new empty ASP.NET 5 project in Visual Studio 2015. Now I’ll show you how to set up that project for ASP.NET MVC Why Not Web Forms? Ok, it’s worth mentioning why I chose MVC instead of Web Forms. There may actually have been several reasons, but
Continue reading...  

New ASP.NET 5 Project from Scratch with Visual Studio 2015 – Part 1

Series Overview This post is part 1 of a series: 1. New ASP.NET 5 Project from Scratch with Visual Studio 2015 – Part 1 (this one) 2. New ASP.NET 5 Project from Scratch with Visual Studio 2015 – Part 2 In this series, I’m going to document the process of creating a new ASP.NET 5 (MVC 6) project in Visual Studio 2015. Visual Studio 2015 comes with a few new ASP.NET 5 templates, but in this series I’m going to start with the “Blank” template because it will add less to the project automatically, giving us the opportunity to go through the steps ourselves. I’l start from File > New Project… and, eventually,
Continue reading...  

Interactive Map: Active Conferences, User Groups, and Meetups

With the shutdown of INETA North America coming later this year, I decided to start creating my own map of active conferences, user groups, and meetups. I planned to eventually add event dates, speaker deadlines, and other data for my own reference. However, after starting the map, I thought maybe I should share it publicly in case anyone else would also find it useful. You can try it out below (version 0.1): Red = Conference; Green = Meetup / User Group At this point, it’s far, far, far from complete, but I plan to keep plugging away at it gradually until that’s not the case. I also thought you, the larger tech community, could
Continue reading...  

Undocking Parts of the Team Explorer in Visual Studio

Did you know the Team Explorer splits into separate panes? It does, and it’s great for productivity. Read on and I’ll show you how to do it… Visual Studio Layout Everyone who uses Visual Studio on a regular basis has their own favorite setup for its numerous windows. For me, I like the Server Explorer and Source Control Explorer collapsed on the left and the Solution Explorer, Team Explorer, and Properties pane collapsed on the right. Team Explorer’s Internal Navigation The Team Explorer pane contains several frequently-used features related to Source Control, TFS, and . That’s why I keep in collapsed on the right side of Visual Studio–for quick access.
Continue reading...  

Parsippany, NJ – Take Control of Your ORM with Entity Framework

I had an excellent time last night at the Northern NJ .NET User Group in Parsippany, NJ. I spoke about “Taking Control of Your ORM with Entity Framework Code-First”. Thanks to everyone that came out and to the meetup organizers for putting the event together. Every time I present, I challenge the group to which I’m presenting to give to a worthy cause if they enjoyed the talk. Last night, N3UG broke a record by meeting their goal in less than a day. As a result, I’m happy to report that at least 3 people will get access to clean drinking water. If you attended and enjoyed it–or even if you
Continue reading...  

New York, NY – Take Control of Your ORM with Entity Framework

I had an excellent time tonight at the New York ALT.NET Meetup in New York, NY. I spoke about “Taking Control of Your ORM with Entity Framework Code-First”. Thanks to everyone that came out, Microsoft for hosting us, and to the meetup organizers for putting the event together. If you attended and enjoyed it, don’t forget to donate a little something for clean water here: http://bit.ly/nyc-gives. I promised that I’ll give $150 if the meetup group gives $150 or more as a group in the next 7 days. So, in a way, if you didn’t like it, maybe you should donate even more! In all seriousness, I had a great time meeting everyone, and
Continue reading...  

Washington, DC – SPAs: Remember the Server-Side

Thank you to everyone that came to my talk last night at Tech Talk DC, and thanks to the hosts for putting the evening together. I enjoyed our time together and my conversations with those of you I spoke with individually before and after. I hope you found at least a few things that we talked about useful. I wanted to share my slides and code samples with anyone that was interested in delving deeper on any topic. The organizers tell me the session will be available on video soon, too. I’ll update with a link here when it is. Remember to give at http://bit.ly/dc-gives before Friday and include “Tech Talk DC” in the
Continue reading...  

Blacksburg, VA – 30 Tools for Modern .NET Web Devs

I had fun last night speaking at New River Valley .NET User Group in Blacksburg, VA. I gave my “30 Tools for Modern .NET Web Development” talk, one of my favorites to give. Thanks to everyone that came out, and to the meetup organizers for hosting me. If you attended and enjoyed it, don’t forget to donate a little something for clean water here: http://bit.ly/nrv-gives. I promised that I’ll give $25 if the meetup group gives $25 or more as a group in the next 7 days. So, in a way, if you didn’t like it, maybe you should donate even more! In all seriousness, I had a blast, and look forward to seeing
Continue reading...  

Louisville, KY – 30 Tools for Modern .NET Web Devs

I had an excellent time tonight at Louisville .NET Meetup in Louisville, KY. I spoke about using “30 Tools for Modern .NET Web Development”, one of my favorite talks to give. Thanks to everyone that came out, and to the meetup organizers for hosting me. If you attended and enjoyed it, don’t forget to donate a little something for clean water here: http://bit.ly/ldn-gives. I promised that I’ll give $50 if the meetup group gives $50 or more as a group in the next 7 days. So, in a way, if you didn’t like it, maybe you should donate even more! In all seriousness, I had a blast, and look forward to seeing you all
Continue reading...  

Batarang Plugin Breaks my AnuglarJS Applications

I first installed the Batarang plugin for Chrome a couple of years ago as a way to debug AngularJS apps. It worked great, and I never looked back–until recently, that is.  In the last few months, the plugin gradually stopped working, and then even more recently, it also started breaking any AngularJS applications I navigated to in Chrome. Back in December of 2014, the author of Batarang asked for help from the community, saying “it’s clear to me that I haven’t given the time to Batarang that it deserves.” Unfortunately, it seems like this call for help hasn’t produced the desired effect because the latest update to Batarang was released a few days
Continue reading...  

Charlotte, NC – Angular + Kendo UI

I had an excellent first visit to the Enterprise Developers Guild tonight in Charlotte, NC. I spoke about using Telerik’s Kendo UI library together with AngularJS. Thanks to everyone that came out, and to The Guild for hosting me. If you attended and enjoyed it, don’t forget to donate a little something for clean water here: http://bit.ly/guild-gives. I promised that I’ll give $100 if the Guild gives $100 or more as a group this week. So, in a way, if you didn’t like it, maybe you should donate even more! In all seriousness, I had a blast, and look forward to seeing you all again soon. Thanks again! My slides and code from the evening
Continue reading...  

“Kendo <3's AngularJS" at Enterprise Developers Guild

This Tuesday, March 24, I’ll be speaking at the Enterprise Developers Guild in Charlotte, NC. The title of my presentation is “Kendo <3’s Angular: Two Great Libraries, Together At Last!“. [Event Details] In my talk I’ll be talking about using AngularJS and Telerik’s Kendo UI framework together. On its own, Kendo UI provides everything you need to create great JavaScript applications. That includes a world-class widget library. But in recent years, AngularJS has exploded onto the scene, becoming a popular and elegant framework for creating web applications. Angular, however, lacks its own built-in widget library. This could have created a nearly perfect match, but when Angular first came along, using it with Kendo
Continue reading...  

Attach Two Visual Studio Debuggers to IIS at the Same Time

Occasionally you need to be able to run two instances of Visual Studio to debug two different web applications simultaneously. If these web applications are set up to run in IIS, you may get the following error when you try to attached the second debugger: Unable to start debugging on the web server. A debugger is already attached. To run your applications, IIS creates a worker processes for each “Application Pool” you define in the IIS configuration. It then runs all applications assigned to a given App Pool in the same process. Since only one VS debugger can be attached to any given process at a time, simply putting your web apps in different App Pools is
Continue reading...  

ASP.NET’s IsAjaxRequest Doesn’t Work with AngularJS

In ASP.NET, it can be helpful to know when a request is an AJAX call (made via XMLHttpRequest, that is) as apposed to a standard HTTP request. This can be detected with ASP.NET’s Request.IsAjaxRequest() method. This helper method returns true whenever the HTTP request contains the header “X-Requested-With” with a value of “XMLHttpRequest“. JQuery handles this automatically for you with any calls made using its $.ajax() method. AngularJS, however, does not. When you’re creating and AngularJS application, this can make it difficult to detect when a request to the server was an AJAX request or not. Have no fear, though, you can fix this problem with one simple line of code in our AngularJS
Continue reading...  

Skype and IIS

Today I got the following error after setting a web site in IIS to use HTTPS/SSL and trying to start the site: “The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0x80070020)” Not a very helpful error message. Fortunately, I remember seeing something like this before when another application was already using port 80 or 443 (the standard HTTP and HTTPS ports) and IIS couldn’t attach to them. In this case it was that ubiquitous communications tools for developers and non-developers alike: Skype. Skype has an advanced setting that allows it to use ports 80 and 443 to accept incoming connections, but this doesn’t
Continue reading...  

My Thanks to Telerik

At the end of last year, Telerik unveiled their new “Developer Expert” program. According to Burke Holland, Developer Advocate at Telerik, “Telerik Developer Experts are those who have not only mastered their craft, but they’ve mastered Telerik tools as well.” With that introduction, you can imagine how honored I was to have been recently named a Telerik Developer Expert in Kendo UI. For the uninitiated, Kendo is Telerik’s comprehensive JavaScript framework that helps developers build modern HTML5 web sites and apps. There are currently 36 Telerik Developer Experts form 13 different countries, all specializing in different Telerik products including the Telerik Platform, Kendo UI, and Sitefinity. It’s an honor to be in such an elite group,
Continue reading...