Tagged with Visual Studio
I'm finally getting around to looking at updating my examples and courses to 3.0. This post is based on .NET Core Preview 8 so this might change in the future.
There are a number of great walkthroughs for moving your ASP.NET Core 2.x projects to 3.0. So I don't want to repeat that. Instead, I want to talk about what's happening, not just a list of things to do.
To discuss these changes, i'll talk about a project I'm current converting (CoreCodeCamp which is the basis for the Atlanta Code Camp), though it's a branch that likely won't be deployed until after the event.
I've been updating the CoreCodeCamp project (the basis for the Atlanta Code Camp's website) for this year's Code Camp. Most of the changes are under the covers, but I wanted to talk about what I learned.
The goal of the upgrade was two-fold: upgrade to .NET Core 2.2; and move the Vue.js code to Vue CLI (to improve loading performance). It also allowed me to do some rudamentary clean I've wanted to do. On to the lessons...
In the past few years, I've run the Atlanta Code Camp website by the seat of my pants...and it cost me. On several occassions, pushing a new build to the website brought down the website (sometimes my fault; sometimes Azure's fault). I was convinced I needed to use Azure Development Slots to address this.
Since I do a lot of web development and teach web dev on the Microsoft platform, I spend a lot of time in tools that are node-based. If you don't know already, gulp, grunt, webpack, etc. all use node to run themselves.
Because of this, Visual Studio tries to be a good guy and pre-installs Node with Visual Studio. When you use some of these tools in Visual Studio, they just work. No more having to tell dev's to go install something to get them to work.
Of course, keeping that version up to date is a bit of a nightmare. I ran into yesterday and wasted several hours of my life. Let me tell you the story:
I’m very excited that the v2 of ASP.NET Core is now released. Married with Visual Studio 2017 Update 3 (or VS Core), it is now a maturing platform.
I really like what the team has been doing since the release of 1.0. They seem to really have thought about the pain points of the initial versions and worked to eliminate as many as they could.
Of course v1.x was a bumpy time. The migration from project.json to MSBuild was a painful one, but we’re past that now. You can get it now from the dot.net website:
Developers are an odd beast. Some developers love a big IDE and lots of automation to help them create great solutions.
The other type of developer, wants to write code quickly and spends a lot of time at the command-line. Luckily, Microsoft supports both types of developer.
Even though I use Visual Studio quite a lot, the brevity of Code allows me to be faster sometimes. Because of this I created a course showing how to use VS Code with ASP.NET Core projects.
But now that we’re in ASP.NET Core 1.1 (I know 2.0 is in preview, but I’m sticking with 1.1 for this discussion) and Visual Studio 2017, it feel a lot harder than it should be.
I miss project.json, but that’s not what this post is about. It’s about a lot of little helpers that used to make it easier for people coming to the platform, including:
Wroclaw Poland (not pronounced anything like you’re thinking) is a lovely little city that has an interesting history. We enjoyed chasing down some of the hundred or so dwarves that line the front of shops and churches (seen to the right – yes, that’s a dwarf using a tiny ATM).
Wroc# is an interesting event in that they bring in a large number of people (I’m guessing 400 or so) and they have one huge track. Six speakers plus a Q & A Panel for the six speakers and that’s it. I felt very privileged to be picked to be one of the speakers (which included great speakers like Tess Ferrandez, Steven Sanderson, Chris Klug, Maarten Balliauw, and Frans Rosén). It was a great day of .NET and C# content:
I’m currently creating a new course on how to use Visual Studio Code with ASP.NET Core. While I rely on yeoman for project scaffolding and some file scaffolding, I wanted to get some of the snippets I’ve grown used to having in the full Visual Studio.
I found a project called ASP.NET Core Snippets to my excitement, but it only had snippets for some of the main files in your project. Not action snippets or razor snippets. So at 4am last night I wrote a Visual Studio Code extension to add some of these snippets.
So far, it only has a handful of snippets that my 4am brain knew I wanted:
Finding the project after upgrading it, I had to look for those points of contact I had gotten comfortable using. The upgrade wasn’t painful (look back at those Beta 7-Beta 8 upgrades for that story), but knowing where they moved your cheese is important. Hopefully this post helps you with the same issues.
I’ve been watching the changes from using the project.json file to MSBuild (e.g. .csproj) for a while. Instead of manually updating it (which you can do with the SDK alone), I decided to just open the project in Visual Studio 2017 and let it update it for me. What I ended up with was a backup directory with my old project.json file and a couple of new files:
Some of my students were using ASP.NET Core 1.1 in their walk through using my Pluralsight course and I was unsure of how much of a problem that was going to be, but so far no problems really.
So to upgrade my WilderBlog project, I did two uneventful things:
Over the past few weeks I’ve been playing with the new ASP.NET 5 (also known as ASP.NET vNext) bits using Visual Studio 2015. I’m trying to make sense of the new changes and how they will affect how I build websites. I’d like to share some of what I’ve learned about the new stack.
I’m going to do this by talking through an example website I wrote using the new bits. Do know that we’re still pretty early and Visual Studio 2015 (CTP6 as of this writing) and ASP.NET 5 Beta 3 are both in a state of flux. This is definitely about what’s coming, not what is here so far.
I’ll explain what I’m doing in a series of blog posts and link them all here as I write them. The plan is to write posts about:
I’ve been working on a new web site wholly using the ASP.NET 5 (e.g. vNext, MVC6, etc.) for the past couple of weeks. This means using Visual Studio 2015 Preview and the new project types in ASP.NET 5.
The idea around the site is to be an example of an ASP.NET 5 site using MVC6, EF7, and Visual Studio 2015. It’s not perfect and ASP.NET 5 isn’t ready yet so I expect to continue to fix and remove hacks for quite a while, but it’s been fun to dig into a whole new stack while it’s still getting the kinks worked out. Here are some of my first impressions.
You can see the code as it progresses, I’m I’m not done yet, but I’m sharing the code I’m working on via GitHub here:
I’ve been working on a new course for Pluralsight on “Node.js for .NET Developers”. It’s been a fun course to write and one of the aspects of the course that I find interesting is that the open source Node.js Tools for Visual Studio plugin actually works really well.
What I particular like is that it doesn’t change the way you use Node.js – it can live side-by-side with command-line tooling like NPM, Bower, or even node.exe. It doesn’t try to do more than it should.
Once you install the tooling, it’s as easy as creating a new project (empty or a boilerplate with Express.js). It even has a project type for an existing node.js project:
As many of you know, I have a new course with Pluralsight called "Building a Site with Bootstrap, AngularJS, ASP.NET, EF and Azure". I had the opportunity to use Zen Coding (renamed Emmet for some reason) in the course. We've released a snippet of the course on YouTube that shows off this cool productivity enhancement that Web Essentials powers. Caveat: Web Essentials doesn't work with free versions of Visual Studio.
NOTE: The title of the video is incorrect and we're trying to change it...it is about Zen coding.
UPDATE: It was noted that I misspelled it. It's Emmet not Emmit. I fixed it in the article, but I can't fix it in the title as that's my URL too.
I am currently reading the Mango (Windows Phone OS 7.1) version of my Phoney Tools project. But I have a particular problem: I need to maintain both a 7.0 and a 7.1 version of the project builds. You might have the same issue with your own project so I thought it’d be a good way to show off some special features that Visual Studio has to help you solve these sorts of situations. Essentially my goal was to maintain one set of code but build both sets from the same source.
First off, I took my original project and created two solution folders and created the 7.1 projects as shown here:
I've had my phone a couple of days now and been playing with the development experience on the device. As some of you remember, I've been creating a new Moon Phase application for the phone (called "Moon Phaser"). I'll be releasing the source and you'll be able to install it on your phone (for free) once the Marketplace launches.
I've recorded a little video showing using Visual Studio 2010 and the actual device to debug directly on the device. Yes it works...and yes its fast. I am really happy with the experience. Debugging with the emulator is fast too, but there are times when you want to make sure it works on the device and that the performance is what you expect on the device. Watch the video here:
I've been speaking at user groups and conferences for a long time now. Usually at these short talks I don't get asked much about how I use Visual Studio. But now that I am teaching Silverlight, my students are never shy about asking what I am doing while in Visual Studio. I am often amazed by how people use Visual Studio without learning some of my favorite hotkeys/snippets. Here are some of mine:
I am here at DevTeach and having a great time. I got in a discussion with several of the speakers about the common complaint of some Silverlight/WPF folks that they want Blend to be in Visual Studio; or why Cider has always been disabled by most dev's.
I hear the complaint a lot that developers want the functionality of Blend hosted in Visual Studio. While I understand the desire, I've never been bothered by the dual programs. In fact, I think its better. Blend needs to be separate because its primarily for a Designer/UX role that isn't comfortable with the breadth of Visual Studio.
I've been using Amy Dullard's great batch file for switching the tools back and forth between Silverlight 2 and Silverlight 3. It works great except that it doesn't change the runtime. And while the Silverlight 3 runtime *should* run any Silverlight 2 code fine, I just don't trust it. So I had to make it better.
I am working on a hybrid ASP.NET MVC and MVC Dynamic Data project. To work on it I started with the MVC Dynamic Data project assuming this would be a Dynamic Data Project and an MVC project. As Scott Hanselman recently posted, you can mix and match pretty easily so the code was working but I was missing an important piece of functionality in Visual Studio:
My project wasn't being showing these items (or other menu options specific to MVC apps). I suspected it was some magic in the project file so I opened it up in my favorite editor:
After 382 Visual Studio Tips and a book, Sara is retiring the series. Those tips have been hitting my RSS Feed for a long time now. They've been helpful to me and my students. I really appreciate all her hard work helping us in the community.
I am surprised when I talk to developers these days and they don't know who Sara Ford is. She's responsible for CodePlex and many open source initiatives at Microsoft. In addition, her blog is an excellent source of information on Visual Studio tricks and features that most of us have never noticed. It is well worth a read. Just announced today, her blog is now available in Russian and Spanish so if English isn't your native tongue, you're in luck there too.
Wonder how I get someone to translate my blog into other languages ;)
Something I never noticed before is the Document Outline window in Visual Studio (2008?). When editing large XAML files this is particularly useful to help navigate the tree of elements.
If you've never noticed it like me, you can make it show up by using the menu's when a XAML file is open: View->Other Windows->Document Outline. Alternatively, the default key command is Ctrl-Alt-T.
This is *not* a Silverlight specific feature. It works with WPF as well (but not ASP.NET pages). Nice....
I've been using a LINQ for SQL model for a project for a few months now. The project has been compiling fine forever now. Suddenly it was failing to build the .dbml file for no apparent reason. A quick search for the problem turned up an issue with Regionate and LINQ for SQL. Uninstalled Regionate and its back to compiling.
I like the tool but until they fix the issue, i'll have to live without it for a while.