Software development is about a lot more than just writing a few lines of code. These days developers need to know about multiple languages, handling data, security, the cloud, devops, and much, much, more (I also need to know how to connect my mother’s printer and help her with Zoom and her AOL mail too). These days there is a big focus (thankfully) on writing great, clean code that is easy to maintain, read, and enhance and this is where the SOLID Principles of Software Design come in. SOLID (an acronym) has grown really popular over the years and is often seen as a requirement in job postings. Following these principles can really help with coding but, like everything else, it takes practice. And, the principles can be a bit confusing to new comers. Even experienced developers often ask questions like

“Am I following principle X properly?”

or

“Have I gone too far and over complicated my code?”

or

“How do I achieve a balance between following good design principles and getting things done?”

Well, worry no more friends, The Dev Talk Show is here to help! We are starting a 5 week series of shows with each one dedicated to one of the SOLID Principles. In each show, we’ll explain the principle and discuss situations where it does and does not apply. We’ll break things down and have conversations about the principles, including your comments and questions. Yes, we broadcast LIVE on Twitch so you can and should participate! And if you miss the live show, you can catch up with the archives on YouTube.

Tune In:

  • All Shows are Wednesday Nights at 8:30 PM Eastern
  • Watch live on Twitch
  • Check out the archives on YouTube

Episode 1: The Single Responsibility Principle

  • Live Wed 8/12 at 8:30 PM Eastern

For more information about The Dev Talk Show, check us out here:

I am writing this as part of a series of posts all about the benefits a developer gets from being a part of a developer community. I’ve personally put a lot into my own developer communities and I have gotten a tremendous amount out of it in return. In each of these posts, I’ll list a benefit of being involved in a developer community. If you aren’t involved yet, I hope you will be soon. I’ll list some ways to get involved below…

First, what is a developer community?

In most industries, people refer to their business network. The network is made up of connections that you build over time, get to know, and support. Often, developers say we belong to a developer “community” and I think that is such a nicer idea. A community cares about each other and a community helps each other.

Today’s Benefit: Confidence

A community can give you confidence

Earlier in my career I joined a local user group. As I continued to get more and more involved in the group, my focus was on sponsors and prizes for events. We were able to get so much free stuff to give a way so in those days my nickname was “Swag Man”. I was building a pretty good reputation for myself and I was speaking at a variety of user groups. I knew the local community leaders, I knew the speakers, and I knew the vendors/sponsors. My personal network was growing. I’d routinely hear comments like “When are you going to come work for me” and “If you are ever looking for a job, just give me a call.” Many of these people didn’t really know my skills as a developer. But they knew I was passionate. And they knew me because I showed up and I was there. Hearing these comments often, I was able to have confidence at work. Confidence to make hard choices sometimes and stick to my principles. The kind of confidence that let’s you think “I’m going to do this the right way” and “I can speak up and tell the boss when they are wrong” and things like that. And guess what? Most of the time, that paid off because I did things the right way and in the end, my employers appreciated it. But if I didn’t have confidence in my career, I probably would have played it safe.

Want to join a developer community?

Join your local developer meetup. You can find tons of them on meetup.com

A local meetup is a great place to learn and build your own network. Don’t be shy. Introduce yourself to the people sitting next to you. Many people there are looking to network and build a community but they just don’t know how to do it. So take the first step. Say “Hi”. And don’t be afraid to ask questions. The speakers spend a lot of time prepping material to present and are happy to talk with you about it.

Join an online community – lots of the same benefits without leaving your chair!

The latest wave in the Developer Community: Live Streaming & Live Coding

While gamers have been streaming for a while, developers have recently realized that live streaming platforms are great for our kind of content too. The great part of Live Streaming is that the audience can really participate and join the conversation. Via the comments, viewers can ask questions, make suggestions, and even joke around with the host, all Live during the stream. This makes the stream very interactive and people actually get to know one another through participation. What makes Live Coding so interesting is that it tends to be unscripted. The sessions often end up like “paired programming” or even “group programming” with the viewers getting their ideas into the mix. While there are many developers doing live streaming, I am personally involved in two different projects

Schwammy Streams: Wednesdays at Noon Eastern Standard Time

Coding, Fun, and a Bit of Chaos

This is a solo project but I plan to invite guests on to code with me! I try to keep the show to about an hour since it is over lunch. I hope you will join me while we build this new, online, community together. On the stream, we are building some simple software but treating it like a professional project. It’s built with some of my favorite patterns, it has unit testing, DevOps, and more. In time it will get more and more features to demonstrate various frameworks and libraries. I even hope to have several UIs for the application so I can play with Angular, React, Vue, Blazor, and any other framework. The basic API is written with C# and ASP.NET Core.

To make it easier for viewers, I am streaming on 3 different platforms. Please join me on which ever you like:

The Dev Talk Show: Wednesdays at 8:30PM Eastern Standard Time (sometimes 9pm start)

Developers doing what developers do, recorded during a live stream.

This show is loads of fun. I cohost the show with my friends Chris Gomez and Rich Ross and we talk about all kinds of stuff that’s of interest to developers. We invite you to join our online community for conversations about anything from C# features to how to lead a dev team. We typically throw in demos and live coding too. We have guests from time to time and we love when viewers join in via the stream chat sharing their own opinions, questions and comments. We usually stream live from the Microsoft MTC in Malvern, PA where there is a really cool studio. And sometimes we are all remote.

We typically stream out on multiple platforms as well but occasionally (due to some technical limitations) only Mixer.

There are many great developer streams to choose from

If my style or content, isn’t right for you, find a stream that meets your needs. Search the web or ask your friends and peers which streams they like. Here are a few other recommendations:

I am writing this as part of a series of posts all about the benefits a developer gets from being a part of a developer community. I’ve personally put a lot into my own developer communities and I have gotten a tremendous amount out of it in return. In each of these posts, I’ll list a benefit of being involved in a developer community. If you aren’t involved yet, I hope you will be soon. I’ll list some ways to get involved below…

First, what is a developer community?

In most industries, people refer to their business network. The network is made up of connections that you build over time, get to know, and support. Often, developers say we belong to a developer “community” and I think that is such a nicer idea. A community cares about each other and a community helps each other.

Today’s Benefit: Learning

When you share knowledge with the community, you learn a lot yourself

Of course, if you attend meetups you are likely to learn a lot from the presentations. But you can learn even more by getting more involved and doing the presentations yourself! With the group I joined early in my career, there was a lot of encouragement for us to volunteer to speak at the meetings. I remember feeling like I didn’t know enough to be a presenter and I certainly wasn’t an expert at any of this. And I heard the advice, the same advice I give to potential speakers now. Just pick a topic, start planning a presentation, and learn the parts you don’t know. Advice I was given was don’t to worry if you aren’t an expert, if you prepare, you will know more than anyone else in the room. Sooner or later I got the courage to do a presentation. I really can’t remember what my the topic was but I know I was nervous. And I recall that I learned a ton in the process. Since then, I have done so many presentations. Each one is a learning experience for me. Sometimes I learn by prepping my content and diving into the topic deeper than I previously had done. Sometimes I learn from the questions I get during the talks. Sometimes I learn through suggestions from the audience. But there is always something learned.

Want to join a developer community?

Join your local developer meetup. You can find tons of them on meetup.com

A local meetup is a great place to learn and build your own network. Don’t be shy. Introduce yourself to the people sitting next to you. Many people there are looking to network and build a community but they just don’t know how to do it. So take the first step. Say “Hi”. And don’t be afraid to ask questions. The speakers spend a lot of time prepping material to present and are happy to talk with you about it.

Join an online community – lots of the same benefits without leaving your chair!

The latest wave in the Developer Community: Live Streaming & Live Coding

While gamers have been streaming for a while, developers have recently realized that live streaming platforms are great for our kind of content too. The great part of Live Streaming is that the audience can really participate and join the conversation. Via the comments, viewers can ask questions, make suggestions, and even joke around with the host, all Live during the stream. This makes the stream very interactive and people actually get to know one another through participation. What makes Live Coding so interesting is that it tends to be unscripted. The sessions often end up like “paired programming” or even “group programming” with the viewers getting their ideas into the mix. While there are many developers doing live streaming, I am personally involved in two different projects

Schwammy Streams: Wednesdays at Noon Eastern Standard Time

Coding, Fun, and a Bit of Chaos

This is a solo project but I plan to invite guests on to code with me! I try to keep the show to about an hour since it is over lunch. I hope you will join me while we build this new, online, community together. On the stream, we are building some simple software but treating it like a professional project. It’s built with some of my favorite patterns, it has unit testing, DevOps, and more. In time it will get more and more features to demonstrate various frameworks and libraries. I even hope to have several UIs for the application so I can play with Angular, React, Vue, Blazor, and any other framework. The basic API is written with C# and ASP.NET Core.

To make it easier for viewers, I am streaming on 3 different platforms. Please join me on which ever you like:

The Dev Talk Show: Wednesdays at 8:30PM Eastern Standard Time (sometimes 9pm start)

Developers doing what developers do, recorded during a live stream.

This show is loads of fun. I cohost the show with my friends Chris Gomez and Rich Ross and we talk about all kinds of stuff that’s of interest to developers. We invite you to join our online community for conversations about anything from C# features to how to lead a dev team. We typically throw in demos and live coding too. We have guests from time to time and we love when viewers join in via the stream chat sharing their own opinions, questions and comments. We usually stream live from the Microsoft MTC in Malvern, PA where there is a really cool studio. And sometimes we are all remote.

We typically stream out on multiple platforms as well but occasionally (due to some technical limitations) only Mixer.

There are many great developer streams to choose from

If my style or content, isn’t right for you, find a stream that meets your needs. Search the web or ask your friends and peers which streams they like. Here are a few other recommendations:

I’ve been waiting for this phone for a long time. My previous phone was a Lumia 920 and I got it when that phone was pretty new. That phone is a bit dated now but still works well. I’ve always liked that 920 and the Windows 8.1 Phone OS. In this review, I won’t focus on the official specs of the Lumia 950. There are plenty of places you can look them up and other reviews that focus on the specifications. This review will be based mostly on my thoughts and impressions. My device is an unlocked Lumia 950 in black. I purchased it directly from Microsoft at the Store. I’m at AT&T customer but since I am off contract, I wanted to keep it that way. I’ll also include my thoughts on Windows 10 Mobile since that is installed on the 950.

Windows 10 Mobile

Coming from Windows Phone 8.1, Windows 10 Mobile is a big change but still familiar enough to make for a smooth transition. The new OS is far more polished and the UI is refreshed a lot in great ways. Since I did not participate in the Insider program, this is really my first look at the OS. I’m sure I will have more thoughts later. Here are some of my first thoughts.

I have always like the actions available to me by swiping down from the top if start. But that menu is much improved now with an expandable/collapsible set of features available. Settings is much improved. Searching settings is a great feature and makes it very easy to use.

wp_ss_20151126_0007wp_ss_20151126_0008

I’ve always been a fan of Cortana and she is working great on Windows 10. So far there are no new surprises with Cortana but I look forward to seeing how it integrates with Windows 10 Mobile. I did have some trouble setting up Quiet Hours. From the phone you can easily turn Quiet Hours on or off but no way to schedule them. But of course, I forgot that Cortana handles that for me!

Another nice feature of the OS is the ease of which you can set where files get stored. Configuring the use of a SD card is easier than ever. I guess I should get around to actually popping in an SD card.

wp_ss_20151126_0012

My only real issue with Windows 10 Mobile is that I don’t think it is done. I have a feeling they rushed this out the door. Is that a big problem? Not really. But often (in my first day) various settings screens would open and then close immediately. So it is a nuisance. But my assumption is that these items will be patched quickly. I don’t mind the minor inconvenience since, as stated, I have been waiting forever for this phone.

Continuum

wp_ss_20151126_0010One of Windows 10 Mobile’s most exciting feature is Continuum. It sounded really cool to me but I admit I was skeptical for two reasons. First, I was unsure how good the experience would be. And second, I’m not sure how useful it would be to me. Well of course I tried it out right away! I already have a ScreenBeam Mini 2. It was super easy to get my phone connected to that via the Continuum app. I also have a little Bluetooth keyboard that goes with my Dell Venue 8. For the mouse, I chose to use the phone as a touchpad. I figured this would give me an idea of usage while “traveling light”. I could always upgrade to a Microsoft Display Dock and better mouse and keyboard. My first thoughts on Continuum – it works really well! There was a slight lag when typing but that was expected with my setup. Basically, it really felt as if I was using a “regular” computer. I played with email and Word and a few other things. The experience was really good. Now, for the big question… will I ever use it again? So far the only answer I have is maybe. I certainly wouldn’t shy away from it. But since I have a lightweight Surface Pro 3, it is not often that I am without a great device to use. And why would I travel with a separate keyboard in my bag vs. my Surface?

Hello

Windows Hello is Microsoft’s new login mechanism. Since childhood I’ve dreamed up using a Retina Scan to log in to a bank vault or some secret location. Windows Hello seemed as close as I would get for a while. Unfortunately, this was a bit of a let down to me. It seems to work but it is just too awkward and slow. I have heard this works much better on other devices. Hello does recognize me but not all of the time. But mostly, it just seems strange holding the phone up to my face and waiting. If it could recognize me really fast at arms-length it would be awesome but that does not work. I’ll be fair and play with it more but I have a feeling this will be turned off on my phone soon.

Size and Weight

I really like the size of this device. I’m coming from a Lumia 920 and I expected the 950 to feel a lot bigger. But it doesn’t. It is bigger but it doesn’t really feel bigger so that is great. Part of that may be due to the weight – this phone is much lighter than my 920. Part of its lightweight nature is due to the material used for the back of the phone. I’ve read many reviews that claimed that the plastic back made the phone feel cheap. I couldn’t care less about that. I really think this is a non-issue. To me, the phone is lightweight – that is a big plus. Also, the back is removable and replaceable so I assume you can get a more expensive back for it if you are so inclined. I’m happy as is. Also, I find it funny that many reviewers suggest that the back material feels cheap and users won’t like it. But many users will get a case for their phone anyway. So why would they care? While the size of this device may not feel much bigger, I have a ton more screen real-estate. I can fit so many icons on the start screen. I am really loving that. For me, the size is great. I feel like the size combined with the resolution makes for a great user experience and fits a lot of information on screen.

Setup

wp_ss_20151126_0009Setup was basically pretty easy. I logged in with my Microsoft Account and I was given the option to copy my old phone’s apps and settings or start from scratch. I chose to copy. So it took a while to install all of my apps but that is to be expected. My start screen looked really funny at first because my Lumia 920 didn’t support as many tiles as the 950 does. I can fit a ton of tiles and it doesn’t look crowded. It looks really cool, I think. Organized and slick. After the initial setup process I spent some time arranging the start screen, configuring email and calendar accounts, and more. Really a very simple process. The only problem worth noting, in case it helps someone else prepare, was the need for a Nano SIM card. My old phone’s SIM card was not compatible with this device. So while at the mall I went to the AT&T store. As much as I dislike that store, it was pretty quick and easy. The staff quickly got me set up with a new SIM Card at no cost.

 

 

 

Screen

As stated earlier, I won’t get into actual specs. I’ll just tell you that this screen is beautiful. As important as the insides of the device are, the screen is what you see, what you use. Touch feels great. Details look sharp and the colors are crisp. The screen is bright. Of course, I haven’t had a chance to try out the 950 in a variety of locations, like the beach for example, but my first impressions are that the screen is beautiful.

Camera

The camera is probably the feature that I was most excited to try. I’ve been trying to read up on the features and capabilities as much as possible and I need to continue doing so. I really want to get the most out of this camera. I had heard good things about the camera’s ability to take low light shots. I took a few pictures inside with no flash and dim lighting. I really was shocked at how good the resulting images were. This is really impressive. I’m very impressed with Rich Camera. With this feature, the camera actually takes multiple pictures and allows the user to to adjust the images later. Wow… again I am really impressed. I definitely need to play around with the camera. I’m also excited about the Living Image feature that takes a bit of video before a picture. Sounds like you can use that to make really nice montages and slide shows.

Apps

Yeah, Windows 10 Mobile is short on apps. We know that already. However, the new mail, calendar and other default apps are really nice and much improved.

Other

Capture

This phone comes ready for 2 SIM Cards. I only have 1. I find it a bit annoying that the phone and text tiles each have a little “1” on them to indicate which SIM card they are for. But I keep seeing the “1” thinking I have 1 text message waiting for me. I’ll probably get used to that.

 

 

 

 

 

 

Speaking of 2s, the phone came with 2 USB-C cables. One that is USB-C to full size USB. Another that is USB-C with a power plug on the end. That was a small but added bonus. I love the idea of a removable battery. And of course, allowing for SD card expansion is a great thing.
selection of cases and back. My 920 had hardware buttons for “back”, “Home” and “Search”. The new phone does not. The 950 has software buttons for these actions. That is taking me a bit of time to get used to but I have a feeling that this is a better set up.

Summary

Well, this should be no surprise to anyone who knows me. I love this phone. Some may say that there are better phones out there. Certainly there is an issue with available apps for Windows 10 Mobile. But I’ve been “All In” with Microsoft stuff for a while now. I am holding out hope that the platform gets more popular and the apps come. The truth is, I’m not desperate for any apps (right now). Having a Windows based phone is great for me because it works and syncs well with my home pc, my Surface Pro 3, my usage of One Drive, OneNote, and now my new Band 2. If you have a Windows Phone already, I wouldn’t hesitate from getting this device.

I had a great time on Friday 3/20 presenting “End To End Development with Schwammy’s Favorite Patterns and Practices”. Thanks to everyone who came out and sat in a packed room for a full day. And even though we had a pretty large spring snow storm, I’m pretty sure everyone stuck around for the whole day. I hope you all made it home safely.

In this talk I covered a lot of content. If you need to follow up with me on any of these topics, feel free to contact me directly or comment on this post.

Thanks for the great feedback you all provided. The response was very positive. There were a few good suggestions and I’ll definitely be taking them into account when we plan a repeat of this presentation.

Here are the files I promised. I hope the solutions all work out for everyone. Please let me know if there are any problems.

By the way… one last tip… I used one of the VS Extensions that I talked about, VSCommands, to create the zip files for download. VS Commands has a feature allowing you to right click in Solution Explorer and Zip up the solution. It will automatically remove source code bindings, ignore bin directories, and more. Very cool.

Note that the sql scripts for the ELMAH database are in the solution in the App_Readme folder.