dotNetDave Rocks The San Diego .NET User Group (2016.2)

The dotNetDave Rock The World Tour 2016 will end this year at the San Diego .NET User Group on December 6th at 6pm. I hope you will join me for the session below.

Rock Your Development With A Real World Example

This session will demonstrate concepts in the first four parts of my series titled “Improving Code Quality… One Developer At A Time” with a real world app attendees will use during this session. This app that runs from the cloud (Azure) will show how I use proper architecture design along with coding standards, defensive programming by properly implementing OOP, logging of events and exceptions, code obfuscation, unit testing, strong naming and much more.  Even though code examples in this session are in .NET, the concepts can be applied to any language. This is part five in my series titled “Improving Code Quality… One Developer At A Time”.

Other Conference Sessions

You can view all of my other conference sessions on-demand by going here.

Interviewee => Recruiter Tip #8: Learn How To Create Calendar Invites

I don’t know about you, but if something is not on my calendar, there is a very good chance it won’t happen. I’ve been learning this time around that most recruiters do not know how to make calendar events for their candidates. If a recruiter sets up a call with the candidate or a phone/ in-person interview, then I think they should send a calendar invite so it’s on their and the candidates calendar. If there is a conflict with the day or time the candidate can simply request a better time (through Outlook at least).

Calendar invites for an interview, it should include these items:

  • Address of the company including a map link to the exact building.
  • Names of all the interviewers and links to their LinkedIn profile.
  • Link to the company website including any specific reading the candidate should do.
  • Detailed description of the interview process (programming tests, written or online tests etc.)
  • Any other important information the candidate should know before going to the interview.

As I say in all of my Rock Your Technical Interview conference sessions, if your recruiter does not do this “find another one”.

If you have any suggestions on this tip, please make a comment below.

MVP Summit 2016 – My Issues For The Teams

This year will be the 10th year I have gone to Microsoft to attend the annual MVP Summit. This is the one conference I look forward to all year. My favorite part of the summit is to interact directly with the difference teams at the Microsoft campus because they really do listen to us… well most of the time. For example, there are features in Visual Studio that came from me.

So, every year I bring to the teams what we like and what we’d like to see changed. For the last two years, I even had meetings with the Office team, but I’m giving up on that this year. I have a lot to discuss with the following teams.

Azure Team

I have a brand new conference talk titled “Rock Your Development With A Real World Example” that is all about how I properly architected an app in Azure. From that experience, mostly frustrating, came the following.

WebJobs

  1. Does not stay alive unless switched to Azure Standard Plan or above.
    1. If not, it will just disappear when Azure determines when it’s not in use.
      1. No log message on why/ when it disappears.
  2. token.IsCancellationRequested never seems to gets set to true when job shuts down.
  3. It’s 2016, we need better error messages than this!
    1. Job failed due to exit code -2146232576
  4. Need to support latest .NET Framework they day they are released, not 6+ months later!
  5. Some documentation is non-existent!
  6. No support to trap unhandled exceptions like you can in all the other application frameworks. Since WebJobs are really console apps, this very important event needs to be added.

I’d also like to see the Azure MVP monthly credit to roll over to the next month if not used. This way I won’t have to worry about leaving VM’s running when not in use.

Azure Mobile App

I really wanted to use Azure Mobile App service3 in my solution, but couldn’t due to the flowing.

  1. No tooling for clients.
  2. Does not fully support OData.
  3. Not ready for prime time.

Entity Framework Team

When it’s up to me, Entity Framework is the only database access framework I use in .NET. I’ve never looked back since it came out in 2008. Here are some of the issues I found or features I’d like.

  • EF7 or EF Core is not ready for prime time. Maybe should stay in pre-release until it is.
  • Create menu items in VS extension to create/ push migrations
  • Would be nice to get db path from LocalDB!
  • Obsolete ITableData since it does not properly implement the Id field (is a string and should be a GUID).
    • EF does not seem to support this interface anyway, but it should… well a better interface.

ASP.NET

For this project I decided that I would use WebForms in ASP.NET. Sure, not sexy, but works great and is fast to get going. Here are my comments.

  • ASP.NET Core not ready for prime time.
  • Reporting Services report does not work with EF6.

Visual Studio Team

Here are just some of the issues/ features I’d like the Visual Studio team to consider.

  1. Make it easy to remove unused references/ NuGet packages.
  2. Visual Studio needs to gen code that passes their own tools like StyleCop and Analyze!
  3. VS running on Azure VM’s need to get a lot faster! Sometimes it can take 15 minutes for VS to fully bring up a project. Seems to happen only with the first solution that is started after the VM boots.
  4. EntityDataSource control needs to support EF projections
  5. Visual Studio Analyze/ StyleCop needs to ignore folders like Migrations
  6. Need true workflow in Visual Studio that actually works
  7. Visual Studio Analyze needs to recognize Code Contracts

If you have anything you would like for me to discuss with the teams above, please make a comment below before November 7th. I encourage Microsoft teams to make comments too.

Silicon Valley Code Camp – 2016

I attended the 11th anniversary of the Silicon Valley Code Camp this year on October 1st and 2nd in San Jose California. When I speak around the country and get into a discussion about community driven conferences like Code Camp’s, I encourage whomever I am talking to that they should attend this Code Camp just once, since it’s the largest in America (maybe the world) and is my favorite one.

img_6194

Craig Berntson & David McCarter

It’s my favorite because it’s the most diverse conference I’ve ever been too, most likely due to being held in the Silicon Valley area. Even though Code Camps were started by .NET developers and always have been free, all have morphed to include all languages and technologies. This year the top sessions were the topics AngularJS, Architecture, Azure Cloud, Java, JavaScript, .NET and NodeJS. Sunday includes a kid’s day to bring out the inner programmer. If you are every free the first part of October, then you need to attend this code camp. Even though I live over 400 miles away, I’ve never missed this conference since 2011.

In recent years, the Silicon Valley Code Camp averages 2,500 attendees per day (larger than most paid conferences) and has 200 volunteers to help run it. These volunteers are very important because they help with everything from checking in attendees, serving lunch, helping out the speakers and much more. Also very important are the sponsors since they are the ones who fund this code camp that includes paying for the food, paying for rooms at the venue.

Of course the speakers are most important since most share their knowledge out of the kindness of their heart.  There are some speakers from large companies like Microsoft, but the vast majority of the speakers are developers just like you and I. For me, these are the best speakers since they live in the same world as the attendees. They speak on topics that they are passionate about and you should be too.

Lastly, hats off to the team that puts on the Silicon Valley Code Camp! These hand full of people, lead by Peter Kellner, work part time most of the year to pull this conference off. They are all volunteers too! Watching this conference work every year is pretty amazing. I always remember the first year I attended in 2011 where at lunch time there were pizza boxes stacked higher than me (I’m over 6ft tall)! This year, they served pizza on Saturday and burritos on Sunday. The speaker/ volunteer dinner after sessions on Saturday featured BBQ that I always look forward to after a day of speaking and attending sessions.

img_6188

Peter Kellner

Unfortunately, attendance and sponsorship were noticeably down this year for some reason. With technology growth and change moving faster and faster every year, I’m not sure why there wasn’t more attendees this year than last. This year there were over 150 sessions over the two days… for FREE! All you have to do is pay for travel if you live outside of the area.

img_6210

To the sponsors, all I can say is that large community driven conferences are the best place to get the word out about your product. If you’ve sponsored a community driven event before and didn’t feel it was worth it then you might be doing it wrong. I have, in the past, given advice to companies about how to drive developers to their booth and it always worked… I guess because I’m a geek. My favorite story was when I told one sponsor to give out Twinkies at their booth. They went out and purchased an entire pallet of them. Their booth always had more geeks around it compared to the other sponsors.

If you’ve never attended the Silicon Valley Code Camp, then start making your plans now for next year. I will be there for sure.

Soft Skills – As Important If Not More Important Than Technical Skills At Conferences

A number of years ago, after speaking at user groups, companies, high schools, colleges, code camps and at large paid conferences for 20 years I decided to turn the topic of my sessions away from the latest version of a framework and somehow figure out a way to teach my “experience” of software engineering.  This is a lot harder said than done. In the end, I call these “soft skills” since the concepts can be used with any software language or framework. For example, I think how to properly implement object oriented programming (OOP) is a soft skill. Other people use the phrase “soft skills” for what I call “people skills”.

Since I decided to go down this path, it’s been harder and harder to get my sessions accepted by conferences, especially the big paid ones like DEVTEACH, VSLive and DEVConnections just to name a few. In 2015, only one of these conferences accepted one of my sessions and in 2016, none of them did. This is too bad because I believe that conferences have a duty to help developers become better developers, not offer just the latest framework or version of a software language that they think will sell more tickets. Here are numbers from 2016 on how many soft skill sessions these conferences and others had.

  • DevConnections – Las Vegas: 1
  • DEVIntersection – Las Vegas: 3
  • DEVTEACH – Montreal: 3
  • NDC {Sydney}: 3
  • VSLive (Visual Studio Live) – Orlando: 0

These conference can range from $1,000 to $4,000 just for the ticket! Now let’s contrast this against the largest community driven conference called the Silicon Valley Code Camp that averages 2,500 attendees per day for FREE! This year, the Silicon Valley Code Camp will have over 20 (17%) soft skill sessions (including some of mine). They are even letting me do a full day workshop at the Code Stars Summit on how to survive the technical interview (my most popular talk ever and there is no code in this session).

So if you feel that these skills are important, then please email the conferences that you like to go to and tell them.

Attendees are the only ones who can change this at conferences. If you don’t feel these types of skill are important… I guarantee you will later in your programming career. Please share your comments. To see where I will be speaking next, please visit this page: Rock The World Tour

Check To See If Process Is Already Running

Do you need to see if a process is already running? It’s pretty easy with the code below. I wrote this code for my console apps .NET back utility and .NET file cleaner utility.

''' <summary>
''' Check to see if the current app is already running.
''' </summary>
''' <returns><c>true</c> if app is not running, <c>false</c>.</returns>
Public Function IsProcessRunning() As Boolean
    Return If(Process.GetProcessesByName(
              Path.GetFileNameWithoutExtension(
              Assembly.GetEntryAssembly().Location)).Count() > 1, 
              True, False)
End Function