Howdy readers, Lafe here. About once a month, my partner in crime, Rich Seeley, will be doing technical takeovers of this blog. Here's his latest post, focused on fixing high CPU usage issues in Visual Studio.
The cause of a problem can be obvious.
You spill your coffee into the keyboard of your old laptop and it stops functioning.
But the cause of other problems can be elusive and tricky to troubleshoot.
That's how it is when you start looking for the cause of high CPU usage issues related to Visual Studio.
Consider the dilemma of the Visual Studio coder who has a perfectly operational machine except sometimes for no apparent reason CPU usage spikes.
Your Surface Pro 3 is overheating. But when you check with a Visual Studio guru, who has been working with the IDE for a decade or more, he says, "Never had that problem myself."
Others may say they've heard of the problem but have only a vague idea of what causes it or how to prevent it.
If you do a quick web search, you will find that there are some coders experiencing similar problems. Some are asking for solutions. Some have done serious troubleshooting and believe they have a solution.
VS CPU issues: A two-headed monster
Since nothing is simple in life or coding, there are two different Visual Studio CPU usage issues: the one mentioned above regarding the actual running of Visual Studio, and two, the issue of debugging your app so it does not cause high CPU usage for the end users. Solutions to both these problems can be elusive because it is hard to pin down what exactly is going wrong.
High CPU usage in apps
Debugging high CPU usage in apps appears to be the more common problem and Microsoft offers a tool to help solve it, so let's start there.
Taylor goes on to provide detailed tips for using the CPU usage tool to make sure your app isn't bogging down end users, who might find that annoying and stop using your app.
Further details are offered in Microsoft's Visual Studio 2015 documentation that has a refer to the documentation for the soon-to-be-released Visual Studio 2017 where there is a guide for collecting CPU usage data for apps destined to run on everything from traditional desktops to smart phones. This will be helpful for everyone writing apps for the growing mobile device market.
Also helpful for debugging issues that may bog down an app is How To Do Production Debugging on the Fly by Kamran Bilgrami, a software developer specializing in .NET, CLR internals, security, patterns and debugging. He is a contributor to Visual Studio Magazine. Bilgrami walks the reader through the steps to debug a mission critical app that is bogging down for no apparent reason. He outlines how he used tools from Microsoft and other sources to eventually pinpoint an SQL operation that had been failing for quite some time. It turned out that alerts were misconfigured, so no one was being informed of the problem.
When Visual Studio is too hot to handle
As regards the other CPU usage issue where some coders using Visual Studio say the demands of the IDE are heating up their PC, Bilgrami says he has not encountered that problem with his recently installed VS 2017 RC (Version 15.0.26206.0).
Web searches do find occasional reports of coders complaining of high CPU usage when they are working with Visual Studio. However, these reports are not widespread. Several tech journalists, who cover the Visual Studio space, say they have heard of the problem but are not aware of actual cases of it.
Blog posts such as this one indicate that the Visual Studio CPU usage issue may result from opening excluded files. In that case, a simple solution was found.
Another possible culprit may be GitHub, the web-based version control repository. On a Microsoft Developer Network forum page titled VS 2015 high CPU usage a coder reported: "I have VS 2015 running at very high CPU usage all the time. What do I do with this problem?"
The suggested solution: "You can try to disable git in Source Control if you don’t use it all the time. Sometimes enabled git plug-in can increase your CPU usage."
Instructions for disabling the package that is responsible for loading the Git source control support in Visual Studio is available here. But there is a caveat that goes along with the instructions: "Use at your own risk!"
Perhaps the more prudent route is to ask the Microsoft Visual Studio Team for help. However, they will need more information than just: "Help my CPU usage is spiking while my project is open." Instructions for gathering the data needed to troubleshoot the problem can be found on this Visual Studio Developer Community page.
If you have a similar problem/solution or even one we haven’t heard of, please let us know.
Posted by Lafe Low on 03/06/20170 comments
We all like to be faster and more efficient. We also like doing things the easier way, or slightly easier way. It’s human nature. So I have always been a huge fan of things like keyboard shortcuts. When you’re deep in the groove, the last thing you want to do is lift your hands from the keyboard to go mousing about looking for a toolbar command. Thankfully, at least when it comes to working with SQL Server, shortcuts abound.
There are the keyboard shortcuts everyone would use, regardless of the level at which you’re working in SQL Server, including:
- Ctrl-N to start a new file
- Ctrl-Shift-N to start a new project
- Ctrl-O to open an existing file
- Ctrl-Shift-O to open an existing project
- Ctrl-Alt-X to display the toolbox
- Ctrl-F2 to insert a toggle
- Ctrl-G to go to a line number
- Shift-F6 to switch panes
Here are four other great resources for more great SQL Server shortcuts:
SQL Server Management Studio Keyboard Shortcuts
This first list comes right from the source at Microsoft and is valid for SQL Server 2016 or later. Apparently first you’ll have to select your keyboard scheme though, as it can operate with the SQL Server 2016 scheme, with keyboard shortcuts based on Microsoft Visual Studio 2010. It can also use a keyboard scheme similar to the standard scheme from SQL Server 2008 R2.
11 Keyboard Shortcuts Every SQL Server Geek Should Know
This one narrows it down to 11. It might be a little dated, as it was posted in 2014, but I’m sure there are a great many older versions of SQL Server still charging hard out there. This one starts with the classic Ctrl-N and Ctrl-Tab to toggle between tabs, but also has some interesting ones like Ctrl-Space-Tab to list member and complete work in Intellisense, and comment and uncomment on lines of code with Ctrl-K, then Ctrl-C or U.
SQL Server Shortcut Keys Enlisted
It’s great to have a top 10 or top 11 list, but when it comes to something like keyboard shortcuts, I want as many as possible. With that in mind, this list is one of my favorites. It seemingly has everything, from some of the classic shortcuts mentioned above to all sorts of esoteric but important functions like database tuning, parsing queries, and connecting databases.
SQL Server Management Studio Keyboard Shortcuts
This two-part list from MSSQL Tips also has nice descriptions of what the shortcuts actually accomplish. The first section shows you how to quickly change databases with a Ctrl-U or Change Code Case with a Ctrl-Shift-U or ,Ctrl-Shift-L. Section two follows those up with shortcuts like refresh local cache with Ctrl-Shift-R and execute scripts with Ctrl-F5. You can find the first part here and the second part here.
There are plenty of other SQL Server shortcuts and tips and tricks on-line elsewhere. Stay tuned for part two coming soon!
Posted by Lafe Low on 02/23/20170 comments
Howdy readers, Lafe here. About once a month, my partner in crime, Rich Seeley, will be doing technical takeovers of this blog. Here's his first contribution, focusing on debugging in Visual Studio 2017.
Debugging isn’t the favorite part of the job for most developers, but the newest version of Visual Studio is at least trying to make it faster.
The release candidate that Microsoft tells us to get used to calling it Visual Studio 2017, makes debugging “faster now and doesn't cause delays while you are editing,” according to an article on the Microsoft website.
In an earlier version of Visual Studio, Microsoft added a hosting process for WPF, Windows Forms, and Managed Console projects to make debugging faster by spinning up a process in the background to use in the next debug session.
Then the law of unintended consequences reared its ugly head.
Or as Microsoft explained: "This well-intentioned feature was causing Visual Studio to temporarily become unresponsive for a few seconds when you stopped debugging or used Visual Studio after the debug session ended."
But Microsoft's never-say-die spirit kicked in and a fix has been made to Visual Studio 2017. The hosting process has been turned off and debugging has been optimized, so it is just as fast as it was with the hosting process but now it hopefully won’t glitch out on you.
Additionally, Microsoft says debugging is even faster for projects that never used the hosting process including ASP.NET, Universal Windows, and C++.
Plus, there is a new “Run to Click” feature.
"Now, while you are debugging, you can click the icon next to a line of code to run that line,” the Microsoft article on Visual Studio 2017 says. "You no longer have to set temporary breakpoints to perform several steps to execute your code and stop on the line you want."
Extended Debugging Support
There's more debugging news in 2017 as Microsoft shows off a new software development kit that coincides with the most recent Window 10 Insider Preview, as we learn in Windows 10 Devs Can Check Out Windows 10 Creators Update SDK in Visual Studio Magazine.
The Windows 10 Creators Update SDK Preview is a test-only version that contains a slew of updates and additions to the Windows namespace as well as some extended debugging support,” writes Michael Domingo, Visual Studio Magazine Editor in Chief.
So far Windows 10 Insider Preview version of the Windows 10 OS is only available to members of the Windows Insider program, he explains. To run it, developers need to have Visual Studio 2017 RC installed.
The Visual Studio Magazine article explains that the preview SDK offers these debug enhancements:
- Kernel-mode iHandle extension moved to debugger data model
- Debugger data model now contains PEB and TEB basic information
- Added a .dtx command for displaying extended symbolic type information when using the debugger object model
"In enhancing TACO for the new Visual Studio 2017 RC, Microsoft focused on two major problems it identified in discussions with Cordova developers: fast and reliable builds and faster edit-debug cycles," writes David Ramel in the ADT article.
For faster edit-debug cycles, he explained TACO gets a new simulator called Cordova Simulate.
The article quotes a Microsoft blog post touting the new features: "For those that have been using TACO for a while, Cordova Simulate replaces the Ripple emulator that we have been using for in-browser simulation of mobile apps. It provides for a local, fast, browser-based workflow that fits with modern Web developer practices that lets you do almost all your mobile development without touching an emulator or device."
Among other improvements, the team working on TACO made some bug fixes in the open source code itself, according to the ADT article. Good to know they practice what they preach as it were.
And for developers using TACO, especially those working on mobile apps where the pressure for faster and faster turnaround is growing, anything that speeds up debugging has got to be good news.
Posted by Lafe Low on 02/08/20170 comments
Visual Studio Live! Co-Chair Brian Randell caught up with Microsoft’s DevOps guy Donovan Brown to hear what he’s been doing and thinking lately.
You hear the phrase DevOps used a lot these days, but you may wonder what it really means, how important it is and what you should do about it for your development efforts. Donovan Brown can help. Brown is a Principal Program Manager at Microsoft. In that position, he is responsible for the DevOps vision for Team Foundation Server and Visual Studio. If you’ve heard him speak, you know he is clearly passionate about DevOps. And if you haven’t heard him speak, you’ll have another chance soon. He’ll be speaking again at Visual Studio Live! in Las Vegas this March 13-17.
Let’s go way back. How did you get started working with computers?
The first time I ever saw a computer was in the eighth grade. We had a class that taught us Q Basic. That was long before we had our own computer at home, so the only time I could use it was at school. I didn’t really use another computer until tenth grade. We had an elective called Computer Math, which again was all about Q Basic and I loved it.
Fast forward a few years and I forgot about computers. By then I had one at home. I saw this board game that I really wanted, but it was $60 and I was a starving college student. So I tried to build it with clay, which was a miserable failure. Then I tried to build it with wood, which was also a miserable failure. Then I remembered Q Basic and said, “I bet I can write this game inside this computer.” Once I started, it was the only thing I could think about. How do I get this to work? I had to figure out the algorithms. All I cared about was figuring out how to work with this computer and make it play this game with me. When it was done, it was this hideous vector based game, but it worked. I could actually play this game. So after doing that in Q Basic, I went and bought “Teach Yourself C in 20 days” and here I sit.
Can you define what DevOps means to you?
I was asked to define DevOps for Microsoft. When you have 200,000 people working in a company and you are the guy asked to define it, you take that very seriously. I’ve been writing software professionally for about 20 years, so I reflected on my career before just blurting out a definition for DevOps.
My first question was, “Why is DevOps the hottest topic on the planet right now?” Every conference has something about it. I did a search on Amazon today, and found 405 books on DevOps. This is not a flash in the pan. People are taking it seriously. But why now? How were we not talking about DevOps ten years ago? I was always taught that you’re supposed to fix what hurts most first. If I look back at my career ten or twenty years ago, deployment was so far out in the future that didn’t hurt. We were struggling just writing software. We were in waterfall, we always missed our dates. It was a nightmare. We had to fix developing software first. We had to get out of waterfall and start doing something different. What we came up with was agile and scrum, and what this allowed teams to do was produce value. But producing value and delivering value, those are not the same thing. And now all of a sudden, the fact that we’re able to produce value so quickly, it emphasizes the fact that we have a problem here. We can’t get this value to the hands of our users as fast as we can produce it.
It shines a light on what DevOps is here to solve, which is taking that value and continuously delivering it to the users. We’re talking about automation, change in the process, people’s mindset shifting. So once I figured out why it’s such a hot topic and what we’re trying to solve, I was able to define DevOps for Microsoft. I define DevOps as the union of people, processes, and product to enable continuous delivery of value to the users. It took me 30 days to write that sentence, because I can defend every word. People say why don’t you call it tools instead of products? A tool in my opinion has a specific purpose. However, if you put a product on top of that to orchestrate it, now you can do some magical things.
It’s like the analogy of a house. The house was not built by your hammer and your saw. It was built by a carpenter who used those tools to build your house. I feel the same way about my DevOps pipeline. It’s not the individual tools. It’s the product that sits on top of it that orchestrates all that and really is what enables DevOps for me. So it’s the products, not the tools that you need to focus on.
The process is the easiest part of that definition. We know how to go in and diagnose what’s wrong with a process and fix that. The hardest part is the people. They’ve been doing it the same way for 30 years. And now we’re telling them they need to change the way they’re doing things? Why fix something that’s not broken? You don’t realize it but your competition is already doing this, and by the time you realize it, it’s going to be too late. So the passion is there for me because I’ve been in the industry so long, I’ve seen all this stuff evolve and right now it’s all coming together where now we can continuously deliver value to our users. And it’s not just about delivering software. It’s about delivering value. I wanted it to be a definition that would be a spring board into a deeper conversation. That’s why it took me 30 days to write that definition. I labored over every word.
So building on your definition, why do you think DevOps has become so important to organizations?
If you don’t implement it, you lose. That’s the simplest way I can say it. Your competition is already doing it. I think mobile is the best example of this. In any mobile store, there are at least half a dozen apps that do the same thing as the app you’re currently working on. So if your app is not delivering value as fast as the others, it’s just a simple uninstall and reinstall and I’m back using someone else’s product. The world has changed drastically to where there’s instant gratification. I want it now, I expect it now, and if you’re not giving it to me, there’s a line of other vendors waiting to give me what I’m asking for.
It has become so critical because if you don’t do this, I will now uninstall you. I will give you a one star rating and I go to someone else. Negative feedback can spread over the internet in an instant if you do something wrong, so you have to be able to deliver value continuously. And DevOps is what enables that. Gone are the days where you could fail in silence. You fail in public now.
You’ve got your definition. You’ve also got this phrase “rub some DevOps on it.” How did you come up with that?
I think the first time I said that, I was making a joke. Because it’s almost like this dysfunction was sort of like a rash. It was something we needed to cure. About a year and a half ago, there’s was this ointment bottle and I put DevOps on the side of it so you could just squeeze a little DevOps on it and it would go away. The first time I did that publicly was at Build in 2016, and some guy in the crowd just lost it. And it just became a thing. It was just a joke, and it worked.
Can you give us a little preview of what you’re going to talk about at Visual Studio Live! Las Vegas? Why do they need to be there?
By then we’re going to have some more fun stuff to demo. I am also going to try to do the demos a lot quicker than I normally do. A lot of people have seen me speak already. You know what I’m going to say, you know my definition, so I’m not going to waste any time on stuff that they’ve seen already. I’m just going to try and pack it with some really cool stuff. I’m starting to fall in love with the command line, which is weird coming from a Windows guy. So I’ve been on this heavy Powershell kick lately. I’ve been working on Powershell module to VSTS and TFS, so I might preview that for you guys. I started working on a Powershell Provider, which helps you navigate your VSTS. That’s the kind of stuff I hope to bring in a demo pack.
I know you are very competitive, and you are quite an air hockey player. So what’s your current standing in air hockey?
I have not been to a world championship since I joined Microsoft. I was as high as 11 in the world. I brought a table to Redmond with me. To this day, my table is sitting in Redmond in the commons so I can go over there and practice. I haven’t made it to a world championship recently, but I am itching to get back. I can’t seem to find the time to go back to air hockey when I am having so much fun spreading the gospel of DevOps.
Click here for more info on Donovan's keynote at VSLive! Las Vegas!
Posted by Brian Randell on 02/02/20170 comments
There's certainly no shortage of resources on-line when it comes to ASP.NET. In fact, diving into all the ASP.NET blogs out there can be a bit overwhelming at first. There are so many individual bloggers and posts. Many are "official" Microsoft blogs or blogs run by Microsoft insiders, but that certainly doesn't mean they lack substance or value. Even the official Microsoft blogs mentioned here are more substance than sizzle, more source code than sales pitch.
Official ASP.NET Community
Here's where Microsoft hosts its official team ASP.NET blog, as well as some by ASP.NET insiders and independent bloggers. The list includes Scott Guthrie
(who has spoken at Visual Studio Live! events), Ricardo Peres
, Bertrand LeRoy
, and Nikolaos Kantzelis
. It also links you to ASP.NET Monsters
, Andrew Lock's .NET Escapades
, and Armen Shimoon's .NET Liberty
Recent posts include a Channel 9 presentation that dives deep into Azure Analysis Services programmability and automation. In this clip, Christian Wade and Scott Hanselman talk about some of the programmability APIs and automation opportunities in Azure Analysis Services. The intent is to help enable integration with DevOps processes and enhanced application lifecycle management.
Other posts on the site cover topics like Integration Testing with Entity Framework Core and SQL Server and Generic Repository Pattern In ASP.NET Core. Then of course there’s also content like Three FREE Training Courses on ASP.NET Core from Microsoft Virtual Academy, which comes from Scott Hanselman's blog.
.NET Web Development and Tools Blog
This too is an official Microsoft blog, but it still has some great detailed content on the ins and outs of ASP.NET. While there are product-related announcements like Announcing Microsoft ASP.NET WebHooks V1 RTM and New Updates to Web Tools in Visual Studio 2017 RC, there are also posts digging deep into specific topics like Client-side debugging of ASP.NET projects in Google Chrome and Bearer Token Authentication in ASP.NET Core.
Ode to Code
Scott Allen's Ode to Code is an excellent resource. Scott’s easy open style can help guide you through some of the more complex topics related to ASP.NET. Some of his recent posts have covered AddFeatureFolders and UseNodeModules on Nuget For ASP.NET Core, Updated Videos for ASP.NET Core and Database Migrations and Seeding in ASP.NET Core.
Fear and Loathing
I particularly like the tone of this blog, which describes itself as "Gonzo blogging from the Annie Leibovitz of the software development world." Perfect. Bil Simser, the blogger behind the "Annie" and "Hunter," dives deep into topics like automatically publishing NuGet packages from GitHub. While it appears he hasn’t posted too much recently, there’s still good content on there. Here's a sample of his tone: "There must be a better way. We have the technology. We have the capability to make this process easy."
I'll keep searching for more ASP.NET blogs, but if you have one you really like, shoot me an email at email@example.com and I'll add it to the list.
Posted by Lafe Low on 01/25/20170 comments
Being a developer isn’t easy. Learning new languages isn’t easy. Mastering your language of choice isn’t easy. Thankfully, for all these endeavors, there is help available. If you’re looking to start or beef up your library of C# books, here are a few you won’t want to miss.
C# 5.0 in a Nutshell: The Definitive Reference
While the word “definitive” gets thrown around a lot, this one seems deserving of the term. Throughout its previous editions, and indeed for this current fifth edition, the text has been extensively reviewed by C# experts both inside and outside Microsoft, including Eric Lippert and Jon Skeet. This edition has new and updated sections on concurrency, threading, parallel programming, and C# 5.0’s new asynchronous functions.
This book covers all the basics, such as syntax, types, and variables and other fundamental elements of C#. It covers the range and also gets into more advanced topics such as unsafe code and type variance. There are three chapters in this edition that cover LINQ, as well as in-depth coverage of code contracts, dynamic programming, parallel programming, and native interoperability. If you’re only going to have one C# book, this wouldn’t be a bad choice.
C# 6.0 and the .NET 4.6 Platform
So much has happened on the C# and .NET front, the authors of this text have completely rewritten and revised this edition as C# 6.0 and the .NET 4.6 Platform—now in its seventh edition. This edition reflects the latest changes to the C# language specification and new advances in the .NET Framework. There are new chapters covering the important new features of .NET 4.6, including:
- Refined ADO.NET Entity Framework programming model
- IDE and MVVM enhancements for WPF desktop development
- Updates to the ASP.NET Web APIs
This edition intends to provide a comprehensive foundation in the C# programming language and the core aspects of the .NET platform. There are also extensive overviews of technologies built on top of C# and .NET (including ADO.NET and Entity Framework, Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF), ASP.NET (WebForms, MVC, and WebAPI)). There’s complete coverage of the .NET 4.6 Platform and C# 6. You’ll also learn about XAML, Visual Studio 2015, and the new Windows Runtime. Incidentally, this edition was co-authored by Philip Japikse, a veteran Visual Studio Live! presenter.
The C# Player's Guide
This one is good if you’re just getting into coding with C#. It starts out with some of the basics of C#, but takes you all the way through into some of the more advanced aspects of the language. It opens with an introduction to C#, as well as a step-by-step walkthrough and explanation of coding a C# program.
Then the book gets into procedural programming, including variables, math operations, decision making, looping, methods, and an in-depth look at C#’s typing system. It also covers some fundamental aspects of object-oriented programming, such as inheritance, polymorphism, interfaces, and generics. It moves through some more advanced features of C#, including working with the .NET framework, managing compiler errors, and debugging. This edition of the book is updated to C# 6.0, .NET 4.6, and Visual Studio 2015.
And these three C# books, while all excellent references, clearly aren’t the only options. If you’re looking for a good place to start, there’s an impressively comprehensive Wikibook on C#. This one also takes you through the basics, and then gets into classes and advanced functions. There are also a handful of helpful links along with this entry.
Looking for some free C# books? Here’s a link where you can download them for free. The list includes Fundamentals of Computer Programming with C#, C# Essentials, and Object Oriented Programming Using C#. So there’s clearly no shortage of resources to help you delve deeper into C# programming. Take a look around and you’re sure to find one that suits your level.
Posted by Lafe Low on 01/11/20170 comments
The Visual Studio Live! events in 2017 are all part of an epic Rock Your Code Tour! We're highlighting each "tour" location's unique, iconic musical heritage with our theme this year. So here’s a look at where—and when—this tour takes us in 2017.
Viva Las Code: That's how Elvis would have said it if Elvis were a developer. You can’t miss this one; over 70 sessions and workshops to choose from, Modern Apps Live! is back as part of the event, at no additional charge, thanks to the long-standing partnership with Magenic, PLUS we've added a full day of pre-conference hands-on labs, featuring Azure, AngularJS and XAML, on Sunday, March 12. Join us for "a little less conversation," a little more code. Thank you, thank you very much.
Dev in the Heart of Texas: The code and good times are bigger in Austin. Come take in 4 days of intense, practical developer training AND experience the vibrant music culture and nightlight Austin has to offer.
The agenda will be available in January, 2017.
Take the Code Train: Our musical tour of the country stops in the nation’s capital, the birthplace of renowned big band leader Duke Ellington. Jazz up your development skills and swing into hot topics like AngularJS, Visual Studio 2017 and so much more!
The agenda will be available in February, 2017.
Code As You Are: Flannel shirts and grunge appreciation encouraged but optional; intense developer knowledge-share and networking required. We’re back at Microsoft headquarters again this year to hear from some of Microsoft’s best and brightest, while enjoying our regular cadre of expert presenters and enjoying some time on the legendary Microsoft campus. The agenda will be available in March, 2017.
Sweet 127.0.0.1 Chicago: We're on a mission to code, and thrilled to be back in the Midwest this fall. Chicago is synonymous with the blues and its brothers, Elwood and Jake. Visual Studio Live! is synonymous with the best in independent, unbiased developer training on the Microsoft Platform. The agenda will be released in the spring!
California Codin': The code is cool, the surf is up, and Disneyland is around the corner. Join us for a family-friendly conference this fall where you can learn by day, and enjoy all the sunny SoCal has to offer by night. More details coming soon!
Coding in Paradise: Grab your flip flops, laptop, and swim trunks for our biggest conference of the year! Live! 360 brings together Visual Studio Live!, SQL Server Live!, Office and SharePoint Live!, Modern Apps Live!, TechMentor and a surprise or two. If you aren't familiar with the conference, registering for any one events gets you access to all the others at no additional charge. You can pick and choose from each to customize an agenda suited specifically to your needs. More details coming soon!
Stay tuned for tour updates here! Rock On!
Posted by Lafe Low on 12/01/20160 comments
When you start talking about agile development, chances are Phil Japikse’s name will come up. Among other things, he's been heavily involved in the agile community since 2005, and has some strong opinions about what it means and how it can apply.
As a continuation to Part 1 of our recent Q&A session with him, here are Phil's thoughts on another current development trend, "Big A" agile vs. "Little a" agile framework.
"What are some of the most transformative trends going on in the development world today?"
We’ve got to talk about agile. About five years ago, one of the Gartner analysts declared agile mainstream. Once that happened, there were all these companies that felt they missed it.
Then there was a huge proliferation of agile—“big A” agile—frameworks. And I’m not knocking the frameworks. But in development, you pick the right tool for the right job. A lot of my customers found the first person they could find to implement agile just because.
What's been transformational about this is there are a lot more people trying to figure this agile thing out and examining their development practices and all that’s great. But the negative side of that is lot of people are just slamming it in because they read a book, or they found an expert in it and they’re not actually looking at core values or principles. They’re just trying to do agile because their colleagues or competition is doing it.
"Is Agile for everyone, or are there some situations and development scenarios where it's less suitable?"
I’m going to be picky here. The way you wrote this question is you’ve got the “Big A” agile. I don’t think that’s for everyone. You really have to understand the frameworks and be able to iterate change.
“Little a” agile is for everyone. If we look at what agile really is, it’s transparency. It’s collaboration. It’s continuous improvement and feedback. You can’t tell me you don’t want to try and be better at what you do. It’s incremental improvement, retrospecting, and bringing people in to collaborate.
It's for everyone, and not just in software. I'm a member of the Knights of Columbus, and I’m in charge of the poker tent for church festivals. So I run the poker tent the day of, but everything leading up to that we run in an agile manner. There’s incremental improvement and lots of feedback. We just had a retrospective the last night of an event last week to determine how we can make it better.
So agile is for everyone, but when you say “Big A” agile is going to transform your company, then it’s not for everyone. I've been thrown out by several customers because I brought up the word agile. But when I talk about how we can help you get better at what you do, we can help you cut costs and we can improve quality. Are those things of interest? Then the answer is different.
"What new things are you working on and learning these days, and why?"
I'm always talking to the different “agilists” out there. Tim Korson recently spoke at my conference (Day of Agile in Cincinnati, OH). LeSS is a framework (large scale SCRUM), and he's one of very few LeSS-certified instructors in the world.
I don’t know everything. I’ve been doing it for a long time, but it’s a journey, not a destination. I'm very passionate about it, so I want to keep honing my craft.
Want even more Phil? Follow him on Twitter (@skimedic) and read his blog by visiting http://www.skimedic.com/blog.
Posted by Lafe Low on 09/12/20160 comments
While he’s always looking at and learning new things, Phil Japikse is a C# guy at heart.
That’s how he does what he does. In fact, he's a co-author of the best-selling book, "C# and the .NET 4.6 Framework." You even can see him speak at the next Visual Studio Live! event from September 26-29 in Anaheim, CA.
We caught up with Phil during a recent webcast to get some of his thoughts on the state of the development world, including ASP.NET Core and other current web development trends. (Click here to watch the webcast on-demand.)
"What are some of the most transformative trends going on in the development world today?"
We’ve got to call out the elephant in the room, which is the Internet of Things (IoT). They just opened a driving range here in Westchester that is IoT-enabled. There’s a huge fence all the way around, with virtual targets all the way around the fence. There are chips in the golf balls so it scores it for you. I wish I would have thought of that, because I saw the prices they charge to do that. And out west, there’s a 4-H club that has an IoT-enabled test farm, so the soil knows when it needs to be watered.
"What is your preferred language and why?"
I was going to answer English! I'm actually a C# person, but I have nothing against VB.NET. I was once hired to teach developers .NET, so I was building design patterns in VB.NET. The VP who hired me looked over my shoulder and asked, “What is that?” I told him it’s VB.NET. He said, “We don’t do VB here!” I was a consultant. I wasn’t going to argue, but I asked why. His answer was ludicrous. “Because all those smart people came from Java and they won’t do VB.”
So I became a C# person because that’s what the market dictated. It’s what the market is asking for, but it’s not because I think it’s better or worse than any other language out there. I've toyed with F#, but at the end of day my fallback is C#.
"There are languages and extensions and frameworks and all sorts of different approaches – how does a developer arrive at the best combination of solutions for his or her needs?"
This is probably not the answer people will like, but it comes down to seat time, just time doing it. You’ve got to know a number of frameworks. Andy Hunt in “The Pragmatic Programmer” talks about learning a new language every year. You just have to see what’s out there. If you look at the .NET world, there are so many frameworks popping up. You’ve just got to keep working at it. You don’t know if one is going to work until you’ve worked with it. And that takes time.
So what I say is try new things, but don’t do, “Hello world.” When I sit down to learn a new framework, I think about what are three hardest things to think of with data access. So I tried to get those to work. And if I can get those things to work, then Hello World becomes easy. So as you’re looking at new frameworks, pick something hard. I can write hello world in any language out there. That doesn’t mean I would recommend that particular framework.
"What new things are you working on and learning these days, and why?"
At the end of the day, I sling code. So right now I am working on all the .NET Core stuff and ASP.NET.
Stay tuned for Part 2 of this Q&A, coming soon! In the meantime, be sure to follow Phil on Twitter (@skimedic) and read his blog by visiting http://www.skimedic.com/blog.
Posted by Lafe Low on 09/06/20160 comments
There continues to be a lot of change in the .NET world.
With Microsoft open sourcing your favorite framework with .NET Core and the companion ASP.NET Core, things are changing rapidly—even for the tech world. You might need some outside help keeping up with the changes and the new ways you can use .NET Core.
Luckily the .NET blogosphere always rises to the occasion. As a follow-up to Part 1 last month, here are some more of the best .NET blogs to follow:
1. Daily .NET Tips
I’m always a big fan of these types of things—the tip of the day or tip of the week. You can be reasonably certain you’ll have a steady flow of good stuff coming your way. The daily .NET tips from dailydotnettips.com will keep you smoothly and accurately navigating all aspects of .NET. The tips are divided into the following categories: how to, .NET FAQs, C#, Visual Studio, devices, and cross platform.
They cover things like customizing the ink toolbar in a Windows Universal app, understanding the navigation pattern for iOS mobile app development, and turning on/off Application Insights exception display for CodeLens in Visual Studio. Many of the tips build on suggestions made in previous tips, so be careful if you start following this blog. You just might get hooked! (And if you have any suggestions or comments, you can reach them at firstname.lastname@example.org.)
2. Tom’s Blog: Thomas LeBrun
Thomas LeBrun runs a simple, straightforward blog called Tom’s blog that also covers a range of .NET-related topics. Much like the daily .NET tips page, Tom’s blog is laid out nice and neatly, with the posts running down the left side of the screen.
Tom covers an impressive range of topics, including implementing a shake detector in your Xamarin.Android mobile app. This cool routine can help you determine when a user has shaken their device. While he found a previous iteration of such an app, he says he adapted the Java code to clean C# code.
Another post covers creating your own spying camera system with Microsoft Azure and a UWP application. Now of course you would only use this for legitimate purposes, like keeping an eye on your front door while you’re away for the day. Armed with a Raspberry Pi, a USB camera and Windows 10, you can enter the world of the IoT and start monitoring your property. Cool!
3. Code Rant: Mike Hadlow
Mike Hadlow’s amusing and informative blog is entitled Code Rant, from the coast of England. Hadlow’s posts cover topics like running the Kestrel HTTP server on Linux with CoreCLR. Hadlow’s posts are wonderfully detailed, with code snippets and screen shots to show you precisely how to implement what he’s talking about.
He also dives into some lengthy social and industry commentary with a post entitled “Learn to Code. It’s Harder Than You Think.” That title is a play on a U.K. initiative from the Year of Code in 2014 that was designed to encourage young people to check out software development as a career. (That program was called “Start Coding This Year. It’s Easier Than You Think.”) The post goes on to examine the differences involved in getting into coding as opposed to other careers, and how many developers are indeed self-taught.
“Even programmers with [computer science] degrees insist that they are largely self-taught. Others complained that it was a hard question to answer since the rate of change in the industry means that you never stop learning. So even if you did at some point have formal training, you can’t rely on that for a successful career. Any formal course will be just a small element of the continual learning that defines the career of a programmer,” he writes.
“We are left with a very strange and unexpected situation. Formal education for programmers seems not to work very well and yet the majority of those who are successful programmers are mostly self-taught. On the one hand we seem to have people who don’t need any guided education to give them a successful career; they are perfectly capable of learning their trade from the vast sea of online resources available to anyone who wants to use it. On the other hand, we have people who seem unable to learn to code even with years of formal training.”
Let us know if you have any other favorite .NET blogs in the comments below!
Posted by Lafe Low on 08/24/20160 comments