Learn ASP.NET Core with these videos

ASP.NET CoreMicrosoft Channel 9 icon is a hot topic now amongst Microsoft developers. ASP.NET Core is a “lean and composable framework for building web and cloud applications”. The entire code base is open source and can be used to build cross-platform apps on both .NET Core and the full .NET Framework.

Microsoft knows developers want to learn this new way of building apps. They have always been excellent at delivering online learning tools and the same is true for ASP.NET Core. Microsoft Ignite was held in Atlanta in late September and they have published 749 of their session videos onto both the Microsoft Ignite On-Demand site and Channel 9.

Microsoft Ignite

For developers looking for the latest info on ASP.NET Core, check out these Ignite videos:

  • Explore web development with Microsoft ASP.NET Core 1.0 (Video | Slides)
  • Explore the new, cross-platform .NET Core 1.0 (Video | Slides)
  • Dive deep into ASP.NET Core 1.0 (Video | Slides)

For those looking for an updated overview of the Microsoft developer ecosystem, there is this video also from Ignite by Scott Hanselman:

  • Review the Microsoft application platform for developers (Video)

Microsoft Virtual Academy

Finally, the Microsoft Virtual Academy has posted two new ASP.NET Core videos:

I hope these video tutorials help you learn what .NET Core and ASP.NET Core has to offer.

Open Guelph Hackathon 2015

Open Data Guelph Logo Two weeks ago I participated in the Open Guelph Hackathon 2015. This was the second year in a row that the City of Guelph sponsored a hackathon in conjunction with Open Data Day. However, this year, instead of doing a 24 hour session they did a seven day online hack which was open to all Canadians.

Details

For this year’s hackathon there were four themes – or data sets – that could be used. For my project I chose the Solid Waste Sorting Tool dataset.

Since I was working by myself I focused on building something using the Lean Startup approach. That is, get something working and then iterating on it. So, I used Visual Studio 2013, ASP.NET, C# 4.5, SQL Server 2014 Express, and Bootstrap to create a functional app in the time that I had. For this theme it was also requested that anyone who searched for items in the waste stream that were not listed, that those searches be tracked so the items could be listed in future.

After the projects were submitted, all the participants were invited to appear before the judges either by Skype or in person at Guelph City Hall. I presented my app to Mayor Cam Guthrie and various other stakeholders from the departments who would benefit from the software.

[tweet https://twitter.com/OpenGuelph/status/573562508805599233 ]

Winners

After several anxious days I was notified I did not win. However, I was glad that I participated and was able to demo my app to the judges. To find out who did win, see this article in The Guelph Mercury.

So, a big thanks goes out to the City of Guelph for hosting this event and to Blair Labelle (@Blair_Labelle), GM of Technology and Innovation for the city, for spearheading the open data initiative in Guelph. I encourage everyone to follow Open Guelph (@OpenGuelph) on Twitter and to participate in next year’s event!

ConFoo 2015 Wrap-up

My trip to ConFoo 2015 is now over and the experience was awesome.

This was my first visit to ConFoo in Montreal and it was my first speaking engagement there also. There were over 600 software professionals at the event and while I was there I was able to present my talks on Universal Apps and Application Insights. The slide decks for both talks can be found on my SlideShare profile.

Most talks were in English but many were also in French which makes the conference unique in North America.

I also got to see some excellent talks by:

  • Julia Ouellette (@jooliah) – Prototyping: Beyond the Wireframe
  • Guy Barrette (@GuyBarrette) – Native Cross-Platform Mobile Development with Xamarin
  • Jeremy Cook (@JCook21) – Beyond MVC: from Model to Domain
  • Christian Wenz (@chwenz) – Web Application Security: Lessons Learned
  • Pascal Laurin (@plaurin78) – Behaviour Driven Development with SpecFlow
  • Mario Cardinal (@mario_cardinal) – A Personal Perspective on Architecting Mobile Applications
  • Mike Wood (@mikewo) – Being Efficient with Azure Automation

I have followed many of these people on Twitter for some time so it was nice to finally meet them in person. Especially people like Guy, Pascal and Mario who are voices for Microsoft in the Montreal developer community.

However, I feel the main point of going to conferences is to meet and network with people that you would not interact with in other circumstances. I met Stephanie Evans (@HMSEvans) and Koffi Alain Sessi (@aksessi) from Pluralsight, as well as speakers Martin Gontovnikas (@mgonto) from Argentina, Andrea Giuliano (@bit_shark) from Italy, Chris Cornutt (@enygma) from Texas, Ben Ramsey (@ramsey) from Nashville, and Jordan Kasper (@jakerella) from D.C.

There were also experiences I would have not had either – like visiting Dieu du Ciel for craft beer and swimming in the outdoor heated pool in -27 C (with wind chill) weather (where your face and hair freezes but your body is warm).

ConFoo 2016 will be from Feb 22-26. Follow them on Twitter (@confooca) and check their site regularly for updates throughout the year. And when tickets are released get yours to this world-class conference. You will not be disappointed.

Related Articles:

Speaking at ConFoo 2015

10 tips on submitting a conference session proposal

My CTTDNUG presentation slides and source files

I have published my slides and source files on An Introduction to Configuring and Extending Umbraco CMS from my presentation to Canada’s Technology Triangle .NET User Group (CTTDNUG). The slides are also available on SlideShare.

Please contact me if you have any follow up questions.

Set debug=”false” in production ASP.NET applications

I was reminded of this little axiom the other day when I deployed a site that was pretty slow. It is one of those things that I usually remember to do but once in a while forget.

In case you are not sure as to why this should be standard operating procedure (SOP), then take a look at this blog article (Don’t run production ASP.NET Applications with debug=”true” enabled) by ScottGu. He does a lot better job at explaining it than I can do.

Using Statements to wrap your database connections

In yesterday’s piece entitled Using Regular Expressions (Regex) to find all your SqlConnection strings I wrote about the fact I was trying to use  a regex string to find all my SqlConnection declarations.

In the piece I made mention of the fact that the using statement are becoming the defacto way of wrapping your connections. I first heard about this in the James Michael Hare series of articles C#/.NET Little Wonders – All The Wonders In Their Glory

The using statement is not the same as the using declarations at the top of your code behind files. Instead, they are used to wrap pieces of code so that they will call IDisposable as soon as they go out of scope.

So, instead of forgetting to call dispose on your SqlConnection instances and running the chance of having some connection pooling issues, we can use the following to instantiate our objects:

using statement

As you can see I have wrapped the code in a using block with both brackets and curly braces. I don’t have to use any try/catch statements nor do I have to explicitly dispose of my connection object. The using statement will call the Dispose() method as soon as it is out of scope – either when it completes or if it encounters an error.

So, check out using statements. They will make sure you never have to worry about closing out your connection strings and they will make your code a little bit neater.

Using Regular Expressions (Regex) to find all your SqlConnection strings

I was looking through some inherited code and there were some connection strings spread out throughout the project. Now because I try to make sure everything is closed in good order I needed a way to find where each was declared. I could change them all to using Statements but that just seems like a lot of work.

Instead, I found this nifty little piece of regex syntax that allows you to search through your connection strings:

new:Zs*(System.)*(Data.)*(SqlClient.)*SqlConnection(\([0-9a-zA-Z]*\))

In Visual Studio 2010 hit Ctrl+F and place the string in the Find what: textbox of the Find and Replace dialog box. Make sure to click the Use checkbox at the bottom and select Regular expressions. Also, make sure there are no trailing spaces after the last bracket or else it will not work. Click Find Next and voila. The nice thing about this is that it will find them if they are declared explicitly or not.

Find SQlConnection string with regex