Quantcast
Channel: Visual Studio Blog
Viewing all 1039 articles
Browse latest View live

Extensibility in Visual Studio “15”: Increasing Reliability and Performance

$
0
0

If you’ve been following this blog, you know that in Visual Studio “15” we’ve been focused on making our developer tools easier to install, increasing performance, and enhancing developer productivity. We’ve been doing the same for extensions, and it’s time to talk a bit more about the implications of these changes both on extension authors and on customers who are using extensions.

A quick summary of the changes we’re making:

  • We’ve added a performance monitoring system for extensions. Customers will now see a gold notification bar when an extension is slowing load time or typing speed;
  • We now batch extension updates and installs to make it easier to install or update multiple extensions;
  • We’ve made it possible for extensions to detect and install dependent components, now that the default installation footprint of Visual Studio is much smaller;
  • We’ve made several performance improvements that have an impact on extension authors, such as lightweight solution load and NGEN support for extensions;
  • Lastly, we’ve updated the Visual Studio marketplace to make it easier to find and install extensions;

The rest of the post goes into more detail on each of these areas.

If you’re an extension author, you’ll want to read this post carefully, since we’re asking you to do some work in this release to support the performance and installation work we’re making to Visual Studio. There is some inevitable friction here, and so we want to give you a heads-up so that you can make the appropriate changes to your extension before we go live.

Performance

One of the top extensibility requests in UserVoice is for tools that let extension users identify slow extensions and disable them if necessary. We designed the extensibility model in Visual Studio to offer great power – authors largely have access to the same APIs that we use internally – so it’s important that extensions do not degrade overall product performance.

In Visual Studio “15”, we have focused on addressing three specific performance bottlenecks in particular: (i) Visual Studio startup performance; (ii) solution load performance; (iii) overall responsiveness. And in addition to improving our own performance, we’re now also adding features to help you measure and manage extension performance in these areas.

If we detect a slow-performing extension that falls into one of these categories, we will display a message that identifies the extension and gives the user the opportunity to disable it. Here’s an example with a malicious extension that sleeps for six seconds during initialization:

You can see the performance of extensions on your system at any time by selecting the Help / Manage Visual Studio Performance menu item.

We trigger this notification by measuring the total initialization time spent by the extension on the main thread. If it exceeds a lower time threshold, we will warn users that the extension is loading slowly; if it exceeds a second, still higher time threshold, we will offer to disable the extension for the user.

We use the same dialog to also track extensions that introduce delays to typing responsiveness. Studies have shown that input latency greatly impacts the perception of an application’s performance. So, Visual Studio now measures the duration of calls within extensions to extension command filters and editor event handlers that are triggered by typing characters, and if those calls regularly take longer than a predefined threshold, we display an infobar to warn users of the impact of that extension on typing responsiveness:

If you’re an extension author, we recommend these best practices to ensure your extension performs well in Visual Studio:

  1. Use rule-based contexts to specify precise conditions when your extension should be loaded. For example, you can ensure that an extension is only loaded when a C# or Visual Basic project is active, rather than at Visual Studio startup.
  2. Use the AsyncPackage support in Visual Studio 2015 and above to allow packages to be loaded on a background thread.
  3. Review your extension’s command filters and editor event handlers (such as ITextBuffer.Changed) and perform any operations longer than 50ms asynchronously;
  4. Minimize work performed during package initialization, deferring it instead to occur on invocation of a user action.

Batched Extension Installations

Another common feature request from Visual Studio 2015 was to make it easier to install, update and remove multiple Visual Studio extensions at once. Visual Studio “15” now lets you batch up extension change operations to occur at once.

Here’s a screenshot:

Size

With the new Visual Studio installer, we have refactored Visual Studio to be more modular, installing just the features you need for the work you’re doing. The smallest configuration of Visual Studio installs in just a couple of minutes on typical machines, and the increasing number of Visual Studio developers who are using it for new platforms and languages like Python and R no longer need to install support for things like C#, MSBuild and ASP.NET to get a great Visual Studio working environment.

We’ve therefore created a way for extension authors to express their Visual Studio component dependencies by extending the VSIX manifest. The model is designed so that if dependencies are missing, the extension installer can acquire and install the missing components automatically. With this approach, for example, an extension can hint to the installer that it requires the managed language debugger to be available for the extension to run successfully.

We’re updating the extensibility tools to automatically emit these changes for new projects. By default, we set a dependency on just the Core Editor, but you can add additional components by selecting them from the Prerequisites tab. Here’s a screenshot:

The next public build of Visual Studio “15” will contain the updated manifest designer, and we’re planning to ship an update to the tools in Visual Studio 2015 to support the new manifest format before we complete Visual Studio “15”.

New Extension Capabilities

We’re taking advantage of the changes to the standard VSIX extension format to add some powerful new capabilities for extension authors.

  • Extension assemblies can now be compiled into native images (through NGEN) at install time, for added performance. You can specify NGEN options from the Properties toolwindow:

  • Extensions may now install files in certain locations outside of the extensions folder. This enables new scenarios like MSBuild tasks to be installed from a VSIX folder.

One caveat: these capabilities are only available for “all user” extensions because they require elevation. We hope to encourage extension authors who have until now been forced to wrap their VSIX in an MSI to accomplish these needs to be able to transition to a pure VSIX, enabling better manageability, roaming and auto-update capabilities for users of their extensions.

Lightweight Solution Load

In Visual Studio “15”, solutions will load faster due to support for lightweight solution load. When lightweight solution load is enabled, Visual Studio will delay fully loading projects until you start working on them. Visual Studio will still preserve common functionality, such as allowing you to navigate through your codebase, edit code, and build projects without fully loading projects. We’ve seen this speed up solution load by a factor of two or more.

This feature is still “experimental”, so to try out this feature in Visual Studio “15”, you’ll need to manually enable the lightweight solution load checkbox in Tools / Options / Projects and Solutions.

If you’re an extension author, lightweight solution load may impact your extension if you depend on a project to be fully loaded. Our team is putting together steps and guidance on how extensions can know when projects are not yet fully loaded, and how to respond accordingly. We will share this guidance as soon as possible.

Detecting Installations

Some tools need to get more specific information about a Visual Studio installation, for example an external utility that needs the location of the C++ compiler toolset. Along with the changes to Visual Studio to reduce system impact, we’ve added some new setup configuration APIs to make it easier to discover instances of Visual Studio “15”. Heath Stewart’s blog includes more detail about these APIs and samples for managed and unmanaged code.

Marketplace

One last significant change: we’re transitioning to the Visual Studio Marketplace as a place for discovering and installing extensions, again in response to your feedback. The marketplace is a modern website that supports extensions for our developer tools family, including Visual Studio itself, Visual Studio Code and Visual Studio Team Services.

In the next months, we’ll begin the process of retiring the old Visual Studio Gallery. You don’t have any work to do if you’re an extension author – we’ll migrate all the data across automatically. We are excited by some of the new features we’ll be able to offer extension authors and users alike once we are live on the new site.

More Information

If you’re building an extension for Visual Studio “15”, we’re glad to hear from you. In particular, the editor and extensibility engineering teams hang out on our Gitter team room along with many other extension authors. You can also submit or vote on feature requests in the extensibility area of our UserVoice site – we’re listening!

Tim Sneath, Principal Lead Program Manager, Visual Studio

Tim leads a team focused on Visual Studio acquisition and extensibility. His mission is to see developers create stunning applications built on the Microsoft platform, and to persuade his mother that her computer is not an enemy. Amongst other strange obsessions, Tim collects vintage releases of Windows, and has a near-complete set of shrink-wrapped copies that date back to the late 80s.


Connect(); // 2016 starts Nov 16th

$
0
0

As hundreds of people across Microsoft head towards New York City we wanted to take this opportunity to write a short blog post to remind our community that we’re almost ready to unveil Connect(); // 2016, Microsoft’s big fall developer event, streaming live and totally for free from November 16th through the 18th.

You might be reading this and asking the question “so why should you watch this?” or “what exactly is the agenda like this year?”, so let us walk you through all the details so you can decide.

Day 1: November 16th (6:45am – 1:30pm PST)

Keynotes: November 16th we will be live streaming from 9:45am through 4:30pm EST. Join the live stream to see our keynotes by Scott Guthrie and Scott Hanselman, along with many other guest speakers. You don’t want to miss this live stream; we will have lots of exciting news and announcements.

Live Q&A: After the keynotes starting at around 1:00pm EST we will begin our live Q&A with various keynote speakers, executives and some very special guests. This will be your chance to engage and ask questions as we will be taking them through Channel 9 live.

Day 2: November 17th (8:00am – 5:00pm PST)

Live Sessions: November 17th we’re once again back live streaming from 8:00am until 5:00pm PDT. Over the course of nine hours you’ll have the opportunity to dive deeper with the product teams that made day 1 announcements possible. This will include sessions on Visual Studio, .NET, Mobile, ALM & DevOps, Azure, Intelligent App and Data, Windows and Office development.

Not only will our product teams go deeper into the announcements from day 1, but they will also take your questions. We will also show some demos that go beyond the keynote.

Day 3: November 18th (9:00am – 4:00pm PST)

Free Live Training: Day 3 of Connect(); is new this year. This year we have added a training day where you will have the chance to participate in totally free, live training from both Xamarin University and Microsoft Virtual Academy. These training providers will cover the following topics in their agendas:

  • Xamarin University: Mobile and Cloud Application Development
  • Microsoft Virtual Academy: Web, Cloud and Data Application Development

All the training content will also be available on-demand. , so don’t worry if you miss the live stream. Come join us when you have time after the November 18th live stream is over and you’ll have full access to the recorded versions of these trainings for free on the respective sites.

Joining live does give you one advantage, and that’s the ability to ask questions so we hope you’ll consider doing so!

On-demand Video & MSDN Magazine

On-demand Videos: On November 16th we’ll be publishing over 110 brand new on-demand videos. These relatively short (typically around 8-15min) videos provide you another way to learn about the topics or scenarios you’re most interested in without the fluff.

In addition all the live streaming keynotes, live Q&A’s and day 2 session will be recorded and published to Channel 9 after the event, so you can view them on your schedule.

MSDN Magazine: We will also be shipping a special edition of MSDN magazine, available to both print subscribers and anyone who wishes to read them online (for free). We will be publishing over 12 articles that cover a wide variety of topics from the keynotes, and if you know MSDN Magazine then you know these articles will be deep technical content from some of our best writers.

So that’s it! It has been a lot of work to get here and I hope this blog helps you understand exactly where you can join us live or find the content on-demand whenever you can consume it. We really hope you will join us, thank you so much.

Dmitry Lyalin has been building software for 18+ years and has worked in various industries including payroll, education, banking, media and more recently Microsoft Consulting & Premier Support. Currently Dmitry works as a Senior Product Manager for the Cloud App, Developer and Data team out of Redmond. In his spare time Dmitry loves writing code and is a very passionate PC gamer.

Introducing Visual Studio Mobile Center (Preview)

$
0
0

During this morning’s Connect(); 2016 keynote, I introduced the preview of Visual Studio Mobile Center, a set of cloud services for building and managing your mobile apps. Mobile Center is designed for all apps targeting iOS and Android, including apps written in Swift, Objective-C, Java, Xamarin, and React Native.

Mission Control for your Mobile Apps

Delivering excellent mobile experiences requires going beyond frameworks and IDEs—developers also need services to continuously build, test, distribute, and monitor their apps so that they can quickly iterate and improve. Many teams cobble together a workflow using some of these services from different tools and products. But this is time-consuming and distracts you from your actual mission of delivering a great app.

This is why we built Mobile Center: a mission control for mobile apps that brings together all the cloud and lifecycle services that help developers deliver high quality apps faster. You can build, test, distribute, and monitor your apps and easily add backend cloud services to scale your app to millions of users on demand.

There are many great features included in the Preview, with even more to come. Here’s what you can do today:

  • Build your apps automatically with every pull request
  • Test apps on thousands of real-world devices
  • Distribute passing builds to beta testers
  • Monitor apps for crashes and bugs
  • Learn about real world usage with mobile analytics
  • Connect to a mobile backend for automatic scaling and to add important cloud services like offline data sync, tabular data storage, and end-user authentication services

These services are designed to work in concert to provide a simple, logical end-to-end workflow that lets you focus on building great apps, but you can also use them independently. If you just want mobile testing or beta distribution, for example, you can choose just those services. You can even use our public REST APIs, open-source SDKs, and command-line tools to integrate them in your own workflows.

Mobile Center is the next generation of our existing mobile developers services, including HockeyApp and Xamarin Test Cloud. Later next year, Mobile Center will show all of your new and existing HockeyApp and Test Cloud apps to ensure a seamless transition for those customers.

It’s easy to get started. Request an invitation and once approved, sign in with your existing HockeyApp credentials, GitHub account, or Microsoft Account. Then, connect your apps and kick off some builds. The preview is free, with some metering to ensure everyone has a chance to use the services and provide feedback.

What’s next

Future versions of Mobile Center will include expanded platform support for Cordova and the Universal Windows Platform, as well as additional cloud services such as push notifications and advanced analytics.

Sign up now and let us know what you think!

Nat Friedman, Corporate Vice President, Mobile Developer Tools@natfriedman

Nat is CVP for the Mobile Developer Tools team at Microsoft. He co-founded Xamarin, Inc. with Miguel de Icaza in 2011 and served as CEO through acquisition by Microsoft in 2016. Earlier in his career, Nat served as CTO for the Linux business at Novell, co-founded Ximian with Miguel in 1999, and co-founded and served as chairman of the GNOME foundation in 1997. He is passionate about building products that delight developers. Nat has two degrees from MIT and has been writing software for 27 years. He is an avid traveler, active angel investor, and a private pilot.

Announcing the new Visual Studio for Mac

$
0
0

At this morning’s Connect(); 2016 keynote, Nat Friedman and James Montemagno introduced Visual Studio for Mac, the newest member of the Visual Studio family.Visual Studio for Mac is a developer environment optimized for building mobile and cloud apps with Xamarin and .NET. It is a one-stop shop for .NET development on the Mac, including Android, iOS, and .NET Core technologies. Sporting a native user interface, Visual Studio for Mac integrates all of the tools you need to create, debug, test, and publish mobile and server applications without compromise, including state of the art APIs and UI designers for Android and iOS.

Both C# and F# are supported out of the box and our project templates provide developers with a skeleton that embodies the best practices to share code across mobile front ends and your backend. Our new Connected Application template gives you both your Android and iOS front ends, as well as its complementary .NET Core-powered backend.

Once you’re up and running, you’ll find the same Roslyn-powered compiler, IntelliSense code completion, and refactoring experience you would expect from a Visual Studio IDE. And, since Visual Studio for Mac uses the same MSBuild solution and project format as Visual Studio, developers working on Mac and Windows can share projects across Mac and Windows transparently.

With multi-process debugging, you can use Visual Studio for Mac to debug both your front end application as well as your backend simultaneously.

Mobile-First

Visual Studio for Mac provides an amazing experience for creating mobile apps, from integrated designers to the code editing experience to the packaging and publishing tools. It is complemented by:

  • The full power of the beloved-by-millions C# 7 programming language
  • Complete .NET APIs for Android, iOS, tvOS, watchOS, and macOS
  • The Xamarin.Forms API abstraction to maximize code sharing
  • Access to thousands of .NET libraries on NuGet.org to accelerate your mobile development
  • Highly optimized native code backed by the LLVM optimizing compiler

But we know apps don’t stop at the client, which is why I am so excited about what Visual Studio for Mac brings to backend development, as well.

Check out the release notes for a complete list of what’s included in this product.

Cloud-First

It is rare these days for mobile applications to run in isolation; most of them have a backend that does the heavy lifting and connects users.

You can use .NET Core to build your own backend services and deploy these to your Windows or Linux servers on Visual Studio for Mac, while the project templates will get you up and running with an end-to-end configuration.

Additionally developers can easily integrate Azure mobile services into their application for things like push notifications, data storage, and user accounts and authentication with Azure App Services. This is available in the new “Connected Services” project node.

Whether you are rolling out a custom backend with ASP.NET Core, or consuming pre-packaged Azure services, Visual Studio for Mac will be there for you.

Check out the release notes for a complete list of what’s included in this product.

What’s Next

Today we released the first preview of Visual Studio for Mac, a member of the Visual Studio family, and the story is just beginning. In the coming months we will be working with the Visual Studio and Visual Studio Code teams to bring more features that you love to the Mac, from advanced Web editing capabilities to support for more programming languages via the Server Language Protocol.

Visit the Visual Studio for Mac page and take it for a spin. We look forward to hearing your feedback!

Miguel de Icaza, Distinguished Engineer, Mobile Developer Tools
@migueldeicaza

Miguel is a Distinguished Engineer at Microsoft, focused on the mobile platform and creating delightful developer tools. With Nat Friedman, he co-founded both Xamarin in 2011 and Ximian in 1999. Before that, Miguel co-founded the GNOME project in 1997 and has directed the Mono project since its creation in 2001, including multiple Mono releases at Novell. Miguel has received the Free Software Foundation 1999 Free Software Award, the MIT Technology Review Innovator of the Year Award in 1999, and was named one of Time Magazine’s 100 innovators for the new century in September 2000.

Visual Studio 2017 Release Candidate

$
0
0

Today during the Connect(); 2016 event we announced the availability of the release candidate of the next version of Visual Studio, Visual Studio 2017 Release Candidate. Thank you to those who tried out the pre-builds and previews and provided feedback. Your feedback always plays an important role in the successful release of Visual Studio.

This release has many productivity features and performance updates as well as improvements to the mobile- and cloud-development experiences. Of course I can’t cover everything in this blog post, so please do take a look at the Visual Studio 2017 Release Notes and Known Issues, Visual Studio 2017 RC FAQ, and also check out the Visual Studio 2017 RC Page on visualstudio.com.

Before we get into the details of Visual Studio 2017 RC, I want to call attention to a couple of other key announcements: Visual Studio for Mac and Visual Studio Mobile Center. Visual Studio for the Mac is built from the ground up for the Mac and focused on full-stack, client-to-cloud native mobile development, using Xamarin for Visual Studio, ASP.NET Core, and Azure. To learn more, please read Miguel de Icaza’s blog post introducing Visual Studio for Mac. Visual Studio Mobile Center is “mission control for mobile apps.” It brings together multiple services commonly used by mobile developers into a single, integrated service that allows you to build, test, deploy, and monitor cloud attached apps in one place. To learn more, please read Nat Friedman’s post elaborating on Visual Studio Mobile Center.

Boosted Productivity

We have many new as well as improved features and experiences in Visual Studio 2017 to make you more productive at things you do every day.

IntelliSense. IntelliSense comes enhanced with added filtering that makes it much easier to use. Filtering makes long lists much more manageable. With features like CamelCase search you only need to type in the 2 letters in capitals for IntelliSense to appropriately filter results for you that match 2 different words with those letters capitalized. IntelliSense is also smarter now; it will select the best matching result from the list instead of simply picking the top result.

Navigation. Navigate To is much more powerful with better filtering and preview. We have also fixed Find All Reference by adding color, grouping, and a peek preview in the Find All Ref window.

Live editing. One of the most useful features is live code analysis. As the name suggests it analyses your code and flags issues in the editor. Live unit testing brings pass fail information right into your editor. It not only tells you when tests are missing but with one click you can easily create a simple scaffold of a unit test. Visual Studio will write the test, drop the test, and immediately start running it in the background. These tests run in the background and notify you of pass/fail status right in your code.

Opening files without projects. In Visual Studio 2017 RC you can directly work on code bases and files without any association with projects or solutions. Simply navigate to a folder from the menu File > Open > Folder and select the file.

Debugging. With Run to Click there is no need to set temporary breakpoints. Once you start debugging you will see a green glyph on the left. Simply click on it to run your code till that point. You will also see another glyph on the right. This is for perf tips and is very helpful in identifying perf issues immediately. If the perf doesn’t look right simply click on the glyph to open the diagnostics tools window to solve the performance problem you just found.

There are many other improvements across all the languages we support. Check out this MSDN Magazine article on productivity enhancements in VS 2017. You can also find details in the Visual Studio 2017 RC Release Notes.

Great Mobile Development

Visual Studio makes it easy to use your existing skills in C#, JavaScript, and C++ to build mobile application for Android, iOS, and Windows devices. If you are a C++ or JavaScript developer, you can use Cordova or Ionic to build sharable code. For C# apps you can use Xamarin for up to 80% code sharing when building native apps.

The biggest challenge in mobile development is testing. Both creating and running the tests against a large variety of real devices to ensure your app will work well a majority of your customers, if not all. Visual Studio 2017’s mobile test recorder makes it easy to record the actions you want to test. You can upload your tests to the Xamarin Test Cloud in one click where you can run them against thousands of real devices in the cloud.

Streamlined Cloud Development

The cloud not only changes how you test your apps but also impacts how you write code. From architecture patterns to how we deploy and update applications, to the development processes we use, Visual Studio 2017 RC makes it much easier to bring these practices into your development.

This release includes integrated tooling to package your applications into Docker containers and deploy them to the cloud. Visual Studio 2017 RC improves DevOps workflows from git based version control to making it much simpler to create continuous integration and continuous deployment pipelines. One of the significant improvements is in .NET Core. With one click you target a .NET Core application to Linux, package it into a Docker container, and publish it to a Docker registry and run it on the cloud. Once deployed, .NET Core will run your app fast.

Redefined Fundamentals

Speaking of performance, we have made performance improvements across all areas in VS 2017. Visual Studio in now notably faster at startup, has shorter solution load time, lets you load C++ solutions faster, and consumes less memory. Visual Studio is 3 times faster for a cold start, 2-4 times faster loading solutions. I won’t go into further details here since we have covered this extensively in our recent series of posts that I’ve linked to above. The video a little further down shows a comparison between solution load in Visual Studio 2017 versus what it was in Visual Studio 2015, wait till the end of the video.

What’s also new and something you’ve probably seen if you installed the preview bits, Visual Studio 2017 now installs faster. The new lightweight and componentized installer breaks down Visual Studio into independent workloads that lets you install just what you need, helping you get going much faster.

Here is one of several videos we’ve created to show these and other improvements in action.

Extensibility in Visual Studio 2017

If you are an extension author, you may find Tim Sneath’s post on Extensibility in Visual Studio 2017 interesting. He breaks down all the changes for Visual Studio extensions and what you need to do to get your extension to work in the next major version of Visual Studio.

Here is a quick summary but do check out Tim’s post for details.

Performance monitoring system for extensions. As an extension user, you will now see a gold notification bar when an extension is slowing load time or typing speed. Go to Help > Manage Visual Studio Performance at any time to see the performance of all extensions on your system.

Batch extension updates and installs. It is now very easy to install, update, or remove multiple extensions at the same time.

Extensions can detect and install dependent components. Since the default installation footprint of Visual Studio is much smaller in Visual Studio 2017 RC, we’ve provided the capability for extensions to detect and install any dependent component that are missing from the VS install.

Performance improvements in VS impacting extension authors. We’ve made several performance improvements in Visual Studio 2017 such as lightweight solution load and NGEN support for extensions. These changes have an impact on extension authors.

Also, check out this post on the Marketplace blog that goes into details of new features on the Marketplace and how we have consolidated all extensions across the VS family of products into a single location.

Sim Ship Partners

Visual Studio would not have the productivity and strength it does without the many extensions created by our community of partners. Today, alongside Visual Studio 2017 you can also install the following preview extensions that have been designed to be compatible with Visual Studio 2017 RC. Here is the full list of extensions that are going to be available with VS 2017 RC.

Try it out

Visual Studio 2017 RC has a lot of feature updates and improvements for you to try, though in this post I only covered a few highlights. For the complete list of everything in this release, along with some known issues, check out the Visual Studio 2017 RC Release Notes page.

Visual Studio 2017 RC is the final branding for the latest and greatest version of Visual Studio – what we have been referring to as the Visual Studio “15” release. The previous version of Visual Studio was Visual Studio 2015. Now that we’ve cleared the naming, here is some info on how to install Visual Studio 2017 RC if you have Visual Studio “15” Preview or Visual Studio 2015 installed on your machine. If you have a previous version of VS on your machine, like Visual Studio 2015, Visual Studio 2017 RC will install right alongside it. If you have a Visual Studio “15” Preview build installed on your machine, Visual Studio 2017 RC can’t run side by side with it. When you run the installer for Visual Studio 2017 RC, a cleaning tool will automatically detect artifacts from previous previews of Visual Studio “15” and remove them. One other thing, Visual Studio 2017 RC is in general a supported release. That said, some workloads and components are still in preview and not supported. These are marked in the installer UI as ‘Preview’. If you have further questions take a look at Visual Studio 2017 compatibility with previous releases. Also, take a look at this article to learn about offline installations. Check out this Visual Studio 2017 RC FAQ for other common questions.

As always, we welcome your feedback. For problems, let us know via the Report a Problem option in the upper right corner, either from the installer or the Visual Studio IDE itself. Track your feedback on the developer community portal. For suggestions, let us know through UserVoice.

Last but not least, check out Connect(); 2016 page for keynotes and other videos.

John Montgomery, Director of Program Management for Visual Studio
@JohnMont

John is responsible for product design and customer success for all of Visual Studio, C++, C#, VB, JavaScript, and .NET. John has been at Microsoft for 17 years, working in developer technologies the whole time.

The expanding Visual Studio family of products

$
0
0

The core of our vision is “Any Developer, Any App, Any Platform.” With our Visual Studio family of products, we are committed to bringing you the most powerful and productive development tools and services for any developer to build mobile-first and cloud-first apps across Windows, iOS, Android, and Linux.

Our existing Visual Studio family of products includes the most comprehensive set of development and application lifecycle tools on the market today. An industry leading IDE, a lightweight code editor – Visual Studio Code, and an on-premises and cloud-based team collaboration services with Visual Studio Team Foundation Server and Visual Studio Team Services. In addition, we offer a free developer program with Visual Studio Dev Essentials and a commercial program with Visual Studio Subscriptions.

Today, at the Connect(); 2016 event in New York city, we announced the release candidate of Visual Studio 2017 and Team Foundation Server 2017 RTM. I am also excited to see our Visual Studio family continue to grow with the introduction of Visual Studio for Mac and Visual Studio Mobile Center.

Visual Studio 2017 RC focuses on improved productivity, refined fundamentals (performance improvements across all areas in VS 2017), streamlined cloud development, and great mobile development. To learn more, read the details in John Montgomery’s post announcing Visual Studio 2017 RC. The download is available here.

Visual Studio for Mac is a new Visual Studio IDE. It’s built from the ground up for the Mac and focuses on full-stack, client-to-cloud native mobile development, using Xamarin for Visual Studio, ASP.Net Core, and Azure. To learn more, read Miguel de Icaza’s blog post introducing Visual Studio for Mac. The download is available from here.

Visual Studio Mobile Center is “mission control for mobile apps.” It brings together multiple services commonly used by mobile developers into a single, integrated service that allows you to build, test, deploy, and monitor cloud attached apps in one place. To learn more, please read Nat Friedman’s blog post elaborating on Visual Studio Mobile Center.

Team Foundation Server 2017 RTM and Visual Studio Team Services is bringing general availability to Application Insights, Package Management service, Code Search, and 3rd party commerce to on-premises extensions. To learn more, please read Brian Harry’s blog post. Get started here.

We hope you join us for Connect(); and enjoy 100+ on-demand videos throughout the day. If you miss the event, check back for recordings of the sessions as well as the live Q&A. Enjoy the Connect() event!

Julia Liuson, Corporate Vice President, Visual StudioJulia is responsible for developer tools and services, including the programming languages and runtimes designed for a broad base of software developers and development teams, as well as for the Visual Studio, Visual Studio Code, and the .NET Framework lines of products and services. Julia joined Microsoft in 1992, and has held a variety of technical and management positions while at Microsoft, including the General Manager for Visual Studio Business Applications, the General Manager for Server and Tools in Shanghai, and the development manager for Visual Basic.

Visual Studio Tools for Unity 3 Preview

$
0
0

Today at Connect() we announced the release of the Visual Studio Tools for Unity 3 Preview. VSTU is Microsoft’s free Visual Studio add-on that enables a rich programming and debugging experience for working with the Unity gaming tools and platform.

VSTU 3 Preview is part of the «Game Development with Unity» workload that you can install from the Visual Studio 2017 RC installer. With this workload, Unity developers can install just what they need to write and debug cross-platform Unity games with Visual Studio 2017 RC.

VSTU 3 Preview is also available for Visual Studio 2015 Update 3 on the Visual Studio Gallery at the following link:

VSTU 3 focuses on improving on the fundamentals of an IDE: code editing and debugging. The highlights of this release include:

Code Coloration for Unity messages: Unity messages (or event functions) now stand out from other methods in the editor. By default, they’ll be colored like keywords, but you can change them to your liking. In this screenshot they’re configured to be colored in bright orange.

IntelliSense: VSTU 3 Preview plugs into Visual Studio’s C# IntelliSense engine to provide code completion for Unity messages. Just start declaring a method, and if you’re in a class that supports Unity messages, our IntelliSense will kick-in and show you the list of Unity messages your script can implement.

Improved Expression Evaluator: The expression evaluator is responsible for displaying the values of the Locals and the results of the expressions you input into the Watch and Immediate Window. We’ve improved our expression evaluator to behave closer to the .NET debugger that C# developers know and love.

Visual Studio 2017 RC and Unity

You’ll need at least Unity 5.4 if you want to use Visual Studio 2017 RC as your script editor. Unity doesn’t know how to locate Visual Studio 2017 RC installations, you’ll need to select them manually. We’ll be working with Unity to make it work out of the box in future versions of Unity. In Unity, go to Edit -> Preferences, and choose Browse in the External Script Editor. Make this point to the Visual Studio 2017 RC executable. By default, its full path is:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe

If you have any suggestion or encounter any issue with VSTU 3 Preview, please report it via Report a Problem either from the installer or the Visual Studio IDE itself. Track your feedback on the developer community portal. For suggestions, let us know through UserVoice. Please share your feedback and help us ship a great VSTU 3!

Jb Evain, Principal Software Engineer Manager
@jbevain

Jb runs the Visual Studio Tools for Unity experience He has a passion for developer tools and programming languages, and has been working in developer technologies for over a decade.

Whats’s new for iOS and Android developers using JavaScript?

$
0
0

With the release of Visual Studio 2017 RC this week, we’re introducing you to the latest and greatest release of the Visual Studio Tools for Apache Cordova (TACO). In this release, we’re tackling the big problems – the issues we know you face every day as mobile developers. They fall into two major themes:

  1. Fast, reliable builds. The new Visual Studio Installer, combined with offline installation of a fully validated toolchain of 3rd party components, provides for faster builds that are also easier to troubleshoot and fix.
  2. Incredible edit-debug speed. A new browser-based simulator enables you to code fast and see the results immediately in the browser. Live reload, plugin simulation and support for Ionic Framework give VS the fastest developer workflow on the market.

Fast, reliable builds

When we talk with Cordova developers, by far the most common issues are around environment setup and building applications. This makes sense, because building is what Cordova is all about – i.e. building a native application using the native target platform SDKs. Our data indicate that 26% of developers using TACO encounter an error during their first build due mostly to issues with NPM and network firewalls. In this release, we set out to fix that.

A fast install that just works

With the new Visual Studio Installer, we created a Mobile development with JavaScript workload that is designed to give you a quick install that “just works.”

For this workload, we trimmed the total number of toolchain dependencies and applied an extra layer of testing. Using our new validated “toolsets”, mobile developers get all the components required for pre-release development – including open source packages like Cordova – so even those of you who require offline installation are good-to-go! In early trials, most developers could go from “download” to “code” within 15 minutes.

As your app moves from prototype to production, Visual Studio will prompt you to install any missing dependencies. For example, if you’re missing the Android SDK when you try to deploy to a device, Visual Studio will offer to grab it for you. Isn’t that nice? This lets you start simple and progressively install more complex toolchain dependencies as your app grows.

Toolsets

In addition to streamlining installation, we’ve worked hard to make sure builds are reliable in a wide variety of environments. Most build issues reported to us are related to a combination of npm failures, network firewalls and incompatibilities in the local toolchain. To help you get (and stay) on the right track, we’re introducing the concept of TACO “Toolsets.” A Toolset combines a set of validated tools into a single package which can be used by Visual Studio. For example, the default Cordova 6.3.1 toolset includes Cordova 6.3.1, Node 4.4.3, and NPM 2.15.0. Regardless of what else is installed on your computer, TACO will use a sandboxed toolset when building your application. By using a known combination of tools, you can be confident that builds will work as expected. If you’re more of an independent tinkerer, there’s also an option to use the Global instance of any toolchain dependency, so you maintain total control.

To configure the toolset your project will use, open config.xml and go to the Toolset section of the editor. Toolsets are built, maintained and distributed by Microsoft. Our team will release new toolsets shortly after new versions of iOS, Android and Windows become available, so make sure to check Visual Studio for updates often.

Making it easier to understand build errors

Finally, to help troubleshoot build errors when they happen, we’ve made a small and important change to make it easier to wade through build output. We’ve color-coded errors in the build output pane for easier reading and have added headers to call out steps in the build output to help you identify where in the build process there was a failure.

Beyond being helpful, it’s also a fun excuse to use some ASCII art.

Incredible edit-debug speed

This release introduces to Visual Studio a popular feature from our Visual Studio Code Cordova Tools extension: Cordova Simulate. 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.

Like Ripple, Cordova Simulate will empower you to:

  • Test at varying devices sizes.
  • Simulate geolocation, compass, and accelerometer settings.
  • Live reload for images, stylesheets, JavaScript, and HTML.
  • Use browser developer tools like a DOM explorer and JavaScript debugger, all from within Visual Studio.

Going beyond Ripple, Cordova Simulate then lets you:

  • Simulate even more plugins like Camera, Contacts, File, Media, and more (see the documentation for details).
  • Simulate your app in a dedicated browser window rather than an iframe.
  • Save API responses for custom or uncommon plugins.

Look for an upcoming deep-dive post on this blog which will take you through all the details of this new tool.

Try out Visual Studio 2017 RC and let us know what you think

Beyond the features highlighted here, we’ve also fixed numerous bugs in the product and re-written the build process to increase stability and decrease heavy build times. If you’re interested in trying out Cordova to build mobile apps, please try out this release and let us know what you think!

As you work with the tools, share your thoughts: send us direct emails, talk with us on Stack Overflow, send us a tweet on Twitter, or provide feedback for our documentation directly on our documentation site.

To get updates about future pre-release software, consider joining our TACO insiders, we’d love to work with you.

Jordan Matthiesen (@JMatthiesen)
Program Manager, JavaScript mobile developer tools
Jordan works at Microsoft on JavaScript tooling for web and mobile application developers. He’s been a developer for over 18 years, and currently focuses on talking to as many awesome mobile developers as possible. When not working on dev tools, you’ll find him enjoying quality time with his wife, 4 kids, dog, cat, and a cup of coffee.

Live Unit Testing in Visual Studio 2017 RC

$
0
0

We are very proud to introduce a new feature in Visual Studio 2017 called Live Unit Testing ! This feature will make it easy for you to maintain quality and test coverage during rapid development and take your productivity to a whole new level. Imagine you are fixing a bug in a code base which you may not be completely familiar with. With Live Unit Testing you can know right away, as you are making edits to fix the bug, that you did not break any other part of the system. Getting this feedback, in-situ, as you type will give you extra confidence, make you more productive and why not, even enjoying fixing bugs and writing unit tests!

Live Unit Testing automatically runs the impacted unit tests in the background as you edit code, and visualizes the results and code coverage live, in the editor, in real-time. In addition to giving feedback on the impact that your changes had on the existing tests, you also get immediate feedback on whether the new code you added is already covered by one or more existing tests. This will gently remind you to write unit tests as you are making bug fixes or adding features. You will be on your way to the promised land where there is no test debt in your code base!

Live Unit Testing is present in the Enterprise edition of Visual Studio 2017 and it’s available for C# and VB projects that target the .NET Framework. It uses VB and C# compilers to instrument the code at compile time. Next, it runs unit tests on the instrumented code to generate data which it analyzes to understand which tests are covering which lines of code. It then uses this data to run just those tests that were impacted by the given edit providing immediate feedback on the results in the editor itself. As more edits are made or more tests are added or removed, it continuously updates the data which is used to identify the impacted tests.

How to start Live Unit Testing

Enabling Live Unit Testing is as simple as going to the Test command at the top level menu bar and starting it as shown in image below.

Live Unit Testing in Visual Studio works with three popular unit testing frameworks; namely, MSTest, xUnit and NUnit. When using these, you will need to ensure that the adapters and frameworks meet or exceed the minimum versions given below. Please remove older adapter and test framework references from your existing projects ( make sure you remove the reference to “Microsoft.VisualStudio.QualityTools.UnitTestFramework”) and add the new ones if Live Unit Testing is not working for you. You can get all of these from NuGet.org.

  • For xUnit you will need xunit.runner.visualstudio version 2.2.0-beta3-build1187 and xunit 2.0 (or higher versions)
  • For NUnit you will need NUnit3TestAdapter version 3.5.1 and NUnit version 3.5.0 (or higher versions)
  • For MSTest you will need MSTest.TestAdapter 1.1.4-preview and MSTest.TestFramework 1.0.5-preview (or higher versions)

Live Unit Testing experience

Once enabled, Live Unit Testing helps you quickly see whether the code you’re writing is covered and if the tests that cover it are passing, without leaving the editor. Unit test results and coverage visualizations appear on a line-by-line basis in the code editor as shown in sample image below:

clip_image001 If a line of executable code is covered by at least one failing test, Live Unit Testing will decorate it with a red “×”.

clip_image002 If a line of executable code is covered by only passing tests, Live Unit Testing will decorate it with a green “✓”.

clip_image003 If a line of executable code is not covered by any test, Live Unit Testing will decorate it with a blue dash.

The real-time code coverage and test result information provided by Live Unit Testing removes the burden of manually selecting and running tests. The live feedback also serves to notify you instantly if your change has broken the program – if inline visualizations shift from green “✓”s to red “×”s, you know you broke one or more tests.

At any point in time you can hover over the “✓” or “×” to see how many tests are hitting the given line as seen in image below.

You can click on the check or “×” to see what tests are hitting the given line as shown in image below.

When hovering over the failed test in the tool tip, it expands to provide additional info to give more insight into the failure as shown in image below.

Additionally, you can navigate directly to the failed test by clicking on it in the tool tip. Then, from the failed test, you can easily debug to the product code, make edits, and continue, all while Live Unit Testing runs in the background. There is no need to stop and restart Live Unit Testing for the debug, edit and continue cycle.

At any time, you can temporarily pause or completely stop live unit testing; for example, when you are in the middle of a refactoring and you know that your tests will be broken for a while. It is as simple as going to the Test command in top level menu bar and clicking the desired action, as shown below.

When paused, you will not see any coverage visualization in the editor. When you are ready to see them again, you can un-pause it by clicking “Continue” in the Live Unit Testing menu. When in pause mode, Live Unit Testing still keeps all the data that it had collected thus far. On “Continue,” Live Unit Testing will do the necessary work to catch up with all the edits that have been made while it was paused, and will update the glyphs appropriately.

You can also stop Live Unit Testing completely if you desire. When Live Unit Testing is started again after it has been stopped, it will take longer to show the glyphs than when it was un-paused. This is because it loses all data when it is stopped.

Conclusion

Live Unit Testing will improve your developer productivity, test coverage and quality of software. .NET developers out there, please do check out this feature in Visual Studio 2017. For developers who are part of a team that practices test-driven development, Live Unit Testing gamifies their workflow; in other words, all their tests will be failing at first, and as they implement each method they will see them turn green. It will evoke the same feeling as a nod of approval from your coach, who is watching you intently from the sidelines, as you practice your art!

For problems, let us know via the Report a Problem option in the upper right corner, either from the VS installer or the Visual Studio IDE itself. If you’d like to leave us a suggestion then please use User Voice

Watch this Live Unit Testing video, where we demonstrate this feature.

Joe Morris, Senior Program Manager, Visual Studio
@_jomorrisJoe has been with Microsoft for 19 years, with a particular focus on static analysis and developer productivity for the last three years.
Manish Jayaswal, Principal Engineering Manager, Visual Studio

Manish has years of management experience in commercial software development with deep technical expertise in compiler technology, debugger, programming languages, quality assurance and engineering system.

The Data Science Workloads in Visual Studio 2017 RC

$
0
0

From getting an automatic photo tag on Facebook, to a product recommendation online, to searching your photos using keywords, or getting a fraud alert on your credit card, … Machine Learning and Data Science are all around us in one form or another.

Today we’re delighted to announce that Visual Studio 2017 RC now has dedicated workloads for Data Storage and Data Science. These two stacks provide you with all backend and tooling you need to build your next generation intelligent apps and services.

Let’s take a look at the workloads in a bit more detail:

  1.  Data storage and processing – Big Data Storage and Advanced Analytics
  2.  Data Science – All the tooling you need to analyze, build models, and create smart apps
    • Python Tools for Visual Studio – Desktop, Web, Scientific, Data Science/ML
    • R Tools for Visual Studio – Primarily Stats and Data Science/ML
    • F# – A functional-first .Net language suited for a variety of data processing tasks

Why R and Python?

While Python has been available for a while, R is the new entry in the VS family of languages. R is the most popular Data Science / Stats focused language and comes with a rich ecosystem of ready to use packages.

There are many “language popularity” rankings out there and all of them should be taken with a grain of salt, but it’s safe to say that if you’re doing Analytics, R and Python should be in your toolbox:

Most of the Microsoft Storage and Analytics technologies either already have R/Python support (direct or via SDKs), or will be having them soon. Let’s look at the tooling next.

Python Tools for Visual Studio

VS 2017 RC provides rich integration for Python, covering various scenarios from machine learning to desktop to IoT to the web. It supports most interpreters such as CPython (2.x, 3.x), IronPython, Jython, PyPy, … along with the Anaconda distro and access to thousands of packages on PyPI. For the list of new features for Python, please see the product release notes.

R Tools for Visual Studio

RTVS turns VS into a powerful R IDE that includes the usual features you’d expect like intellisense, debugging, REPL, History, etc. and advanced ones such as Stored Procedures with R that run in a SQL database, multiple independent plots, to Remoting. Remoting is very powerful in that it allows all the features of RTVS to be run on a remote machine (as if you had used Terminal Server). It is perfect for when you want to use your laptop on a subset of data locally, and then connect to a large server and continue to use the full IDE features and finally deploy your code:

Visual Studio supports both the standard CRAN R version and the enhanced Microsoft R which provides various performance and enterprise focused features.

F#

F# is a programming language that provides support for functional programming in addition to traditional object-oriented and imperative (procedural) programming. It is a great language for data processing and has a strong third-party ecosystem for accessing, manipulating, and processing data. The Visual F# tools in Visual Studio provide support for developing F# applications and extending other .NET applications by using F# code. F# is a first-class member of .NET, and retains a strong resemblance to the ML family of functional languages.

There’s a package for that!

Beyond Visual Studio integration, the Data Science workload comes preinstalled with hundreds of packages that cover just about any Advanced Analytics related scenario from image processing to bio-informatics to astronomy. The Data Science workload by default includes:

  • The Microsoft R Client – a Microsoft enhanced version of R that provides multi-core, pkg versioning and distributed memory support
  • The Anaconda Python distro – a cross-platform collection of curated Python packages from Continuum.io for machine learning, scientific computing and web scenarios.

Azure Python SDK

Azure now has SDKs covering just about every service and language, including Python. The Python Azure SDK has full support for core compute, storage, networking, keyvault and monitoring services, on par with .Net. Management coverage includes services such as Data Lake Store and Data Lake Analytics, SQL Database, DocumentDB, etc. Data support examples include SQL Database, SQL Server, DocumentDB and Data Lake Store File System.

Join our team (virtually)!

The entire Data Science stack, from tools to libraries, is open source and hosted on github. We’d like to invite you to check out the code base, fork it, file a bug, or if you’d like, add a feature! You can find the repos here:

One more thing: Free interactive Python & R Notebooks!

While Visual Studio is a highly productive desktop IDE, sometimes you just need a “REPL on steroids” to do some slicing and dicing and plotting of your data right in the browser and possibly sharing the results:

Azure notebooks is a free, hosted Jupyter notebook service:

Jupyter is like OneNote if it supported running code: it supports text (as Markdown), code, inline graphics, etc. It currently supports R, Python 2, Python 3 (with Anaconda distros). F# is coming soon. The best to learn about Azure Notebooks is to try one of the samples:

The free service is particularly useful for faculty/students, giving webinars, product demos, sharing live reports, etc. Check out some of the thousands of high quality notebooks out there.

Conclusion

Data Science helps transform your data into intelligent action. Watch this Connect(); video on Data Science and Web Development to learn more. The Visual Studio Data Science workload is our first foray into providing you with everything needed to build the next generation of intelligent apps, whether on the desktop, cloud, IoT or mobile. Take it for a spin, check out the built-in libraries and packages, peruse CRAN and PyPI for even more, and let us know what you think!

For problems, let us know via the Report a Problem option in the upper right corner, either from the installer or the Visual Studio IDE itself or by filling an issue on Github repositories for PTVS or RTVS. You may also leave suggestions on User Voice.

Shahrokh Mortazavi, Partner PM, Visual Studio Cloud Platform Tools

Shahrokh Mortazavi runs the Data Science Developer Tools teams at Microsoft, focused on Python, R, and Jupyter Notebooks. Previously, he was in the High Performance Computing group at Microsoft. He worked on the Phoenix Compiler tool chain (code gen, analysis, JIT) at Microsoft Research and, prior to that, over a 10 year period led Sun Microsystems’ Code Generation & Optimization compiler backend teams.

More Productive JavaScript in Visual Studio 2017 RC

$
0
0

We know you choose Visual Studio for JavaScript editing because it provides tools that make you the most productive. In Visual Studio 2017 RC, we’ve been focusing on improving the things you use most so that you can spend even more time focusing on coding. In this post, we will highlight some of the most exciting improvements to IntelliSense and code navigation that are available today in Visual Studio 2017 RC.

Richer IntelliSense

JavaScript IntelliSense in Visual Studio 2017 RC will now display much more useful information on parameter and member lists. This additional information is provided by TypeScript, which uses static analysis behind the scenes to better understand your code. TypeScript uses several sources to build up this information.

Rich IntelliSense on jQuery ajax() function

IntelliSense based on JSDoc

When the default type inference does not provide the desired type information, type information may be provided explicitly via JSDoc annotations. For example, to give a partially declared object a specific type, you can use the @type tag as shown below:

This is also very useful for specifying parameter information. Using the JSDoc @param tag you can add types to function parameters like so:

See this doc on github for the JSDoc annotations currently supported.

IntelliSense based on TypeScript Declaration Files

In the TypeScript world, most popular JavaScript libraries have their APIs described by .d.ts files, and the most common repository for such definitions is on DefinitelyTyped. Behind the scenes, Visual Studio will use these .d.ts files to enrich your IntelliSense.
Visual Studio will detect which JavaScript libraries are in use and automatically download and reference the corresponding .d.ts files. These files are downloaded to a cache located under the user folder at %LOCALAPPDATA%\Microsoft\TypeScript. (Note: This feature is disabled by default if using a tsconfig.json configuration file

Currently auto-detection works for dependencies downloaded from npm (via reading the package.json file), Bower (via reading the bower.json file), or loose files in your project that match a list of roughly the top 400 most popular JavaScript libraries. For example, if you have jquery-1.10.min.js in your project, the file jquery.d.ts will be fetched and loaded. This .d.ts file will have no impact on your project other than providing better completions, signatures, and contextual help.

ES6 and JSX Syntax Support

The JavaScript language is constantly evolving and Visual Studio will now help you keep up with language changes by supporting syntax updates much faster. Every year TC39, the ECMAScript standards body, releases official updates to the language. These updates bring new syntax such as classes, arrow functions, and template strings, that provide alternative, more productive ways to write JavaScript. In Visual Studio 2017, syntax through ES7 (ECMAScript 2016) including modules, classes, and arrow functions are fully supported.

ES6 syntax in Visual Studio 2017 RC

In addition to official language updates, there are also unofficial language extensions like JSX, an XML-like extension that is popular in React development, that call for more flexible syntax support. Visual Studio 2017 supports both jsx and tsx file extensions as well as JSX syntax dropped directly in JS and TS files.

JSX syntax in Visual Studio 2017 RC

General Improvements

In addition to language specific improvements, you will also benefit from several general code navigation improvements. Go To, a completely new navigation feature, allows you to quickly perform complete searches to find types, functions, files, and more. Results can be filtered down based on category, to provide a single location for fast code navigation.

Navigation with Go To (ctrl + t or ctrl + ,)

When working with large projects or libraries, often the number of results in completion lists can get quite large. To help you quickly cut down the size of these lists, you can now filter the completion lists by categories such as functions and properties. All of these filters can be quickly toggled with logical hotkeys, which can be easily discovered by hovering over the filter button icons in IntelliSense.

IntelliSense filtering on functions (alt + m)

To read more about the above improvements and get an overview of all the general productivity improvements coming in Visual Studio 2017, check out this post by Mark Wilson-Thomas on Productivity Improvements in VS 2017 RC.

Send Feedback

We hope you’re excited to take your JavaScript development productivity to a new level in Visual Studio 2017 RC. Check out this quick video to see some of the above features in more detail, but we encourage you to download it yourself and give it a spin. Feel free to log any problems using the Report a Problem tool in the upper right corner of the IDE or the installer. You can also submit any suggestions through UserVoice.

Happy hacking!

Bowden Kelly, Program Manager, VS Client
@bowdenk7

Bowden works on the JavaScript editing experience with a focus on helping developers be more productive in Visual Studio. Outside of work he enjoys playing soccer, teaching the basics of programming, and attempting to be a triathlete.

Productivity in Visual Studio 2017 RC

$
0
0

We know that many developers choose Visual Studio because of its powerful, yet natural, productivity features that help you stay “in the zone”. Visual Studio 2017 RC brings many improvements in this regard, helping you stay even more focused on your program rather than on the tools you use to build it. Download it now to see how you can save time and effort on the tasks that you do day-in, day-out.

We’ve focused our improvements in three main areas where we know most developers spend their time: code editing, navigation and debugging. In this post I’ll go into details highlighting features in each area.

Code Editing

IntelliSense filtering

IntelliSense makes exploring a new API faster by allowing you to narrow down the set of values by category. This means if it’s a variable you need, you don’t need to wade through lots of types to get to it. As an example, the screenshot below shows using the filter to just show variables and constants in the IntelliSense results for a C++ code file:

All the filters have convenient keyboard shortcuts as you’d expect. For example as you’re typing C# code you can quickly press Alt+P to filter down to Properties, or Alt+M to filter out extension methods. Just hover the filter bar to discover all the shortcuts that are relevant to your current situation.

Match highlighting

When you use techniques like camel case matching to home in on a result faster, it can sometimes be hard to tell why an item is matching. That’s why IntelliSense in C#,VB, JavaScript and TypeScript now lets you see why an item is matching your search by bolding the matching letters as shown below. Match highlighting is an extensibility point, so any language can add support for this; you can expect to see more languages supporting this over time.

If you don’t like the filtering or match highlighting features, you can easily turn them off in the IntelliSense settings for your language. Look in Tools-Options-Text Editor, under the language you are using. For instance Tools-Options-Text Editor- C# – IntelliSense will let you control these features for C#.

Better IntelliSense behaviors

Many Visual Studio languages have made big strides this release in getting you better results when using IntelliSense. For instance:

  • C# and VB have “smart preselection”. This determines the target type you are likely to need, and preselects the items in the IntelliSense list that match that type, speeding your typing flow and removing the burden of figuring out what type you need. It’s applied without hitting any special keystroke on your part. Check out this video for an overview of all the new C# and VB productivity features.
  • XAML now has IntelliSense for namespace completion, lightbulb quick fix for missing namespace, sorting and removing unnecessary namespaces, and rename refactoring support for namespace prefixes. In addition, XAML IntelliSense has been improved to help you bind quickly and correctly when binding events, paths and functions with x:Bind; better filtering so that you see only relevant information; and camel case matching support (for example, “RTB” will complete as “RichTextBox”). Watch these features in action in this video.
  • C++ has an experimental Predictive IntelliSense feature that shows a filtered list of IntelliSense results. This means you don’t have to scroll through a long list of irrelevant matches. Only items of the expected type are listed based on need-based probability. You can turn on this feature in Tools > Options > Text Editor > C/C++ > Experimental. See this article on the C++ blog for more details on how this works.
  • The JavaScript language service has been completely revamped to improve its IntelliSense. Previously, as you typed, a JavaScript engine continuously executed your code to provide runtime-like completion lists and signature help. This was great for dynamic JavaScript code, however it often provided an inconsistent editing experience. The new language service uses static analysis powered by TypeScript to provide more detailed IntelliSense, full ES6/ES7 coverage, and a more consistent editing experience. See more details in this post by Bowden Kelly on more productive JavaScript in VS 2017 RC.

Coding Convention Support via .editorconfig

You’ve told us that keeping consistent coding standards in your codebases is a boon to team productivity. It makes it easier to read code written by all team members, but it’s hard work to enforce these standards. To help you achieve consistent formatting on your projects, we’ve introduced built-in support for the public editorconfig convention file format. This lets you define formatting rules that travel with your codebase wherever it goes. This means the code that gets checked in follows the codebase’s conventions and preferences rather than the individual developer’s. You can even supply different conventions for different parts of your codebase, such as when you have some legacy code that follows a different formatting style that you might not wish to change. The format is a standard recognized by a wide range of other editors and IDEs. To get started, just add an editor config file (.editorconfig) to your project. See more details in the documentation here.

Code Analysis for C# and Visual Basic

In C# and Visual Basic, we have gone a step further in coding convention support. We’ve expanded the reach of live code analysis to include code style enforcement—empowering developers to enforce consistent code style and naming conventions across their repo or team. We also are continuously working to help you clean up and move your code forward with new refactorings and code fixes. The coolest ones added in the RC are: Move Type to Matching File, Sync File and Type Name, and Convert to Interpolated String. Check out Kasey Uhlenhuth’s article on C# and Visual Basic Productivity Improvements to learn more.

Live Editing experiences

Improving code quality as early as possible in the development process matters – finding issues sooner is better. Visual Studio 2017 RC makes useful data available at the time of editing, instead of much later in the process, so you can code with even more confidence. Live Unit Testing (a new feature available for C# and VB users on the .NET Framework) gives you the ability to instantly tell whether your unit tests are still passing as you write your code! Check out Joe Morris’s article on Live Unit Testing to get lots more details.

Navigation

Many of you tell us that you spend much of your time working with large existing bodies of code. Having the ability to quickly and easily navigate your code is immensely powerful and can dramatically improve productivity . Whether you’re drilling into a bug, finding the implications of a refactoring, or just figuring out an unfamiliar codebase, tools that get you around quickly and confidently, and help you know where you are will make a big difference. That’s why we’ve added several new navigation features to help:

Go To

Go To (Ctrl + , or Ctrl + T) is a fast, complete search that lets you quickly find files, types, methods, and other kinds of symbols in your code. It gives you a one-stop way to go to any kind of item you need, which is a particular benefit when working in larger code bases.

The new GoTo feature also lets you filter down easily, and choose to look just for one kind of item. You can do this via keyboard shortcut (check out the Edit-GoTo menu to find those shortcuts), mouse clicking on the filter icons in the Go To panel, or by using the speedy query syntax as shown in the example here. Notice the “t” before the search term which tells the search to filter down to just types. So it’s easy to change filter mid-flow as you figure out what you’re looking for.

As you move through your search list, you’ll see a preview of the selected location in a temporary pane. You can riffle through the results quickly to get to just the one you need without leaving a lot of clutter in your wake, as shown below.

GoTo is customizable too – hit the gear icon in the toolbar to change the preview behavior for instance.

Find All References

Find all references (Shift+F12) now helps you get around fast even in really complex codebases. It does so by providing advanced grouping, filtering, sorting, and searching within your results. For some languages, such as C#, the results are colorized just like they are in the editor. C++ lets you see which references are read and which are write. All this gets you a clear understanding of your references and gets you to that line of code you need with confidence.

For an example of how this can speed you to the right code, take a look below. Here I’m looking to understand the consumers of my BaseViewModel class. I can see structural detail on where those dependencies lie because I’ve selected a grouping that includes the path. This means I can quickly see that I have six viewmodels and one helper class that refer to it, and I can hover to see exactly what code is making that helper reference.

The “Group By” dropdown provides useful preset groupings, and you can even create your own by right clicking within the FAR results and using the Grouping context menu. You can also see multiple reference search result sets. This is great for those times when you’re in the middle of using a reference list to check code before refactoring, but find you need to drill on a different reference as you go. Just hit “Keep Results” to freeze the results you have and you’ll get a brand new references window to work with when you next find references.

Structure Visualizer

It’s important to have a clear sense of where you are structurally in your code when reading. To that end, we’ve added a favorite feature from the Productivity Power Tools extension into Visual Studio: Structure Visualizer. This draws structure guide lines (aka indent guides) on your code so you can easily visualize and discover what block of code you’re in at any time without needing to scroll. Hovering the lines shows tooltips that let you see the opening of that block and its parents. This is particularly useful when those blocks are scrolled off-screen. The guides are also handy for checking whether your code is at the right indent level!

In Visual Studio 2017 RC, Structure Visualizer works for XAML, C# and VB files, and for all the languages supported via TextMate grammars, as shown in the screenshot below of a Ruby file. You can expect to see more languages add support later. For some languages (like C#, VB), the tooltips are colorized just like the code they reflect too.

If you prefer not to see the lines, you can easily turn them off in Tools-Options-Text Editor-General-“Show structure guide lines”. You can also alter their color via the Text Editor “Block Structure Adornments” display item in Fonts and Colors.

Debugging

Run to Click

You can now more easily skip ahead without setting a breakpoint to stop on the line you desire. When stopped in the debugger, simply click the icon that appears next to the line of code your mouse is over. Your code will run and stop on that line the next time it is hit in your code path.

New Exception Helper

Use the new Exception Helper to view your exception information at a glance in a compact non-modal dialog with instant access to important information:

  • See what is null: Quickly see what is null right inside the Exception Helper when diagnosing your NullReferenceException in C# and access violation in C++. When you break on a line of code caused by a null value, read the message and look at the bolded variable in the Exception Helper to clue you in to what was actually null.
  • See Inner Exceptions: If the exception you break on has any inner exceptions, you can immediately see their details in the Exception Helper and use the arrows to navigate through the tree of inner exceptions.
  • Ignore exceptions from certain modules: In the Exception Settings section of the Exception Helper, you can now check a box to ignore that exception type when thrown from that current module. That way, the next time you debug that code path, you won’t break on that exception. You can reset these conditions from the Debug > Exception Settings window.

Attach to Process Filter and Reattach

Easily search in the “Attach to Process” dialog to quickly find the process you want to attach the debugger to. After you have attached to a process and stopped debugging or detached from it, you can use the new “Reattach to Process… (Shift + Alt +P)” command in the Debug menu to attach again. Use this feature to save you time and the hassle of always needing to open the “Attach to Process…” dialog when you are debugging a similar process repeatedly.

Keyboard Shortcuts

Power users of Visual Studio tell us that they feel more productive when they use keyboard shortcuts; you can get a useful concise guide to the shortcuts you’ll want to know for many of the features above here.

Send Us Feedback

I hope this has given you a flavor of how Visual Studio 2017 will help you get even more productive in your everyday development work. If you want to learn more about the full set of new features in the product, check out the overview on visualstudio.com, and of course the release notes.

Please try the Visual Studio 2017 Release Candidate today, and send us your feedback; we’d love to hear how the new features are working for you. If you see issues, please be sure to report them using the Report-a-problem tool in the upper right corner either in the IDE or the installer. Track your feedback on the developer community portal. And if you have suggestions, let us know through UserVoice. Thanks!

Mark Wilson-Thomas – Senior Program Manager, Visual Studio IDE Team
@MarkPavWT

Mark is a Program Manager on the Visual Studio IDE team, where he’s been building developer tools for nearly 10 years. He currently looks after the Visual Studio Editor. Prior to that, he worked on tools for Office, SQL, WPF and Silverlight.

Harness the Power of the Redesigned Start Page

$
0
0

In Visual Studio 2017 RC, we brought you a faster installation, better performance, and new productivity features. One of these productivity features is a redesigned Start Page that prioritizes the actions that help you get to code and start working faster.

Most Recently Used (MRU) List

We’ve heard from you that the MRU is the most valuable part of the Start Page so we thought it was time to give it the prominence it deserves. To help you quickly find what you’re looking for, each MRU item now displays an icon denoting it as a project, solution or folder, a file path for local items, and a remote URL for remote items not yet on disk. With the addition of open folder functionality, we’ve added support for recently opened folders. The new MRU also brings you grouping by date, a longer history and a pinned group that lives at the top of the MRU to give you easy access to your most important items.

To help you be more productive across multiple machines, we’ve also added a roaming element to the MRU. If you clone a repository hosted on a service, such as Visual Studio Team Services or GitHub, Visual Studio will now roam this item to any Visual Studio instance that is associated with the same personalization account. You can then select the roamed item from the MRU to clone it down and continue your work in that code base.

MRU with pinned remote repository, folder and projects

Create New Project

Whether you’re new to Visual Studio or a seasoned user, chances are you’ll want to create a new project at some point. In our research, we found that the “New Project…” command was one of the most used features of the Start Page but after talking with many of you, we discovered you often created the same few projects for experimentation. To help speed up this process, the Start Page now allows you to search for the specific project type you’d like to create. With this change, we eliminated the need to click around the New Project dialog to find what you’re looking for. As well, the Start Page will remember what you’ve recently created and allows you to create your project directly from the Start Page. This will bypass the steps of finding and selecting this template in the New Project dialog. If you sign into Visual Studio, this list will also roam with you across your devices.

Recent Project Templates

Search for web project templates

Open

Whether your code lives locally, on an on premise TFS server, hosted in VSTS or shared on GitHub, we wanted to simplify finding, downloading and opening that project.

We’ve added the ability to Open Folder, as well as preserving the Open Project/Solution command, to enable you to open a code base with or without a solution file from within VS.

For code on TFS or hosted in VSTS, you have support out of the box. You can clone a repository simply by clicking on the Visual Studio Team Services item underneath the “Checkout from” header. This area is also third-party extensible. GitHub is one service provider that has already taken advantage of this extension point. For those of you who install the updated GitHub extension, you’ll notice GitHub will appear with VSTS. We’re working to onboard more service providers so that you can easily connect to your code, regardless of the service you use to host your projects.

Open from VSTS, GitHub or from local disk

Developer News

We’ve worked on making sure the news stays fresh and relevant with fewer gaps between posts. While some users read Start Page news to start their day, we heard it wasn’t for everyone. To let you reclaim space and focus on your code, you can now collapse the news section. Don’t worry about missing the latest post; a little badge will appear whenever something new comes in to keep you up to date on all our latest news.

Collapsed Developer News with Alert Badge

Show Start Page

From early feedback, we’ve heard some confusion over where the command to show the Start Page moved. We envision the Start Page will become a starting point for your experience and so we’ve moved this command into the File menu for quicker access.

Thank you

With our latest Start Page, we aim to make your experience more productive, more functional and more personalized, drawing value from quick access to key actions, ability to roam important elements like repositories and project templates, and a new design that allows you to focus on getting to your code.

Download Visual Studio 2017 RC today and share your feedback. For problems, let us know via the Report a Problem option in the upper right corner, either from the installer or the Visual Studio IDE itself. Track your feedback on the developer community portal. For suggestions, let us know through UserVoice.

Allison Buchholtz-Au, Program Manager, Visual Studio Platform

Allison is a Program Manager on the Visual Studio Platform team, focusing on streamlining source control workflows and supporting both our first and third party source control providers.

Azure Notebooks now support F#

$
0
0

Last week I blogged about the availability of the new Data Storage and Data Science workloads in Visual Studio 2017 RC. The Data Science workload specifically provides support for the following:

These three languages and their corresponding stacks cover just about every data processing, technical computing, analytics and machine learning scenario imaginable.

For the past few months, the free Azure Notebooks service has supported R and Python. We are pleased to announce the availability of our first edition of preview support for the F# language to match the Visual Studio Data Science workload.

Azure Notebooks

In 2015 we added Azure Notebooks to Azure ML Studio, a powerful canvas for development and deployment of Machine Learning models.   Azure Notebooks are based on the open source Project Jupyter, a toolchain that allows you to create and share documents that contain live code, equations, visualizations, and explanatory text. Azure Notebooks offer free-for-use execution of notebook content, access to high-performance data center resources, and allow you to share your notebooks with friends and colleagues with a single link.

F#

F# is an open source, cross-platform language well suited for notebook-style programming.  One of the key characteristics of F# is its ability to span the spectrum from scripting (including notebook-style literate programming) to large-scale, robust software development, including web programming and cloud service implementation.  F# executes as native code through .NET compilation and interoperates with all C# and .NET libraries.  A huge package system of .NET libraries is available through NuGet, many of which are useful as components in analytical services.  Through its indentation-aware syntax and type inference, F# approaches the succinctness and clarity of Python, while remaining a strongly-typed programming language suitable for writing accurate, robust code.  While F# usage is smaller than Python and R, F# brings a unique blend of characteristics to the Cortana Intelligence and Machine Learning toolchain, and can interoperate with these languages either directly or through service implementations.

Through a collaboration with the F# community and F# experts at Microsoft, we have been able to add F# support to Azure Notebooks.  To try out your first F# notebook, please see our notebook:

  • Introducing F# and Azure Notebooks
    • Click the notebook
    • Sign in with your Microsoft account (Outlook/Hotmail/Xbox/…)
    • Click the Open in Jupyter button
    • Run the whole notebook with “Cell | Run All” or
    • Run one cell at a time using Shift-Enter

If you know F#, and would like to learn more about Azure Notebooks, please see:

F# Jupyter Kernel

Today’s release includes the ability to edit and execute F# code in Azure Notebooks, including integrated markdown. Execution is through Mono in Docker containers on Linux (Ubuntu). This release includes some limited in-browser auto-complete support. We plan to roll out further improvements to our F# support incrementally – please send us your feedback and issues.  We also plan to add more samples and content.  We are certain that Azure Notebooks will be a popular way of surfacing F# content to broad audiences.  If you are working with F# in the data science area and would like to share some of the notebooks you create with us, please either link them in the comments below or email nbhelp@microsoft.com.

F# support in Azure Notebooks is built on the hard work of the F# community including the open source components iFSharp, FSharp.Compiler.Service, FsLab, MathNet.Numerics, Paket, Mono and of course the F# language and compiler itself, as well as Jupyter, Docker and Linux.  Many thanks to all the contributors who have contributed to these components.

Conclusion

With the addition of F# to the Azure Notebook service, you have a well-rounded playground for various data processing and analysis scenarios. You can:

  1. Learn Python, R, F#
  2. Give a class or seminar to 100s of people with zero installation
  3. Take one of the various Machine Learning courses
  4. Build ML models and deploy them to Azure for production
  5. <your idea here!>

So take the sample F# notebook for a test drive and see what this powerful language can do for you!

Support & FAQ

General FAQ: https://notebooks.azure.com/faq

Filing bugs on github: https://github.com/Microsoft/AzureNotebooks

Direct mail to team: nbhelp@microsoft.com

User Voice: https://visualstudio.uservoice.com

Shahrokh Mortazavi, Partner PM, Visual Studio Cloud Platform Tools

Shahrokh Mortazavi runs the Data Science Developer Tools teams at Microsoft, focused on Python, R, and Jupyter Notebooks. Previously, he was in the High Performance Computing group at Microsoft. He worked on the Phoenix Compiler tool chain (code gen, analysis, JIT) at Microsoft Research and, prior to that, over a 10 year period led Sun Microsystems’ Code Generation & Optimization compiler backend teams.

Updating Visual Studio 2017 Release Candidate

$
0
0

We announced the availability of Visual Studio 2017 Release Candidate a few weeks ago at Connect(); 2016. For those of you who tried it, let me start by saying, “Thank you!” Already you’ve submitted several hundred issues and requests and we’re using your feedback and the telemetry on the product to improve greatly.

To get the latest version of our Visual Studio 2017 RC, you can download directly from here. If you already have the RC installed, you will receive a notification in the upper-right of your Visual Studio window. There you will find a notification saying, “Update to Visual Studio” which will install the latest RC release.

We’ve been busy fixing issues (many of those you reported) and today we are sharing an update to the RC. To find out all of the fixes and updates included in this release, please take a look at the Visual Studio 2017 Release Notes and Known Issues.

Here are a couple of changes that I’d like to call out:

  • To start, there are many bug fixes, including fixing an issue in Git syncing in Team Explorer that led to “Could not load current branch,” some crashes and hangs in loading large projects, and some bugs in Go To All.
  • We now have offline help available by installing the Help Viewer component in the Visual Studio installer.
  • You can now add and remove multiple user interface languages at any time using the Visual Studio installer on the Language Pack tab. You can select the current user interface language among those installed using Tools > Options > International Settings.
  • We improved the .NET Core and Docker workload. It’s still in preview, but we made the csproj file easier to read, added new commands to the .NET Core command-line (CLI) tools, and made many bug fixes. See the .NET blog for details.
  • We improved the Developer Analytics Tools. CodeLens now shows exceptions that have occurred during local debug sessions for projects with the Application Insights SDK and it can show the impact an exception has had on users.

We’re continuing to iterate on the release candidate and will post more updates, so we definitely want your feedback. For problems, let us know via the Report a Problem option in the upper right corner of the VS title bar. Track your feedback on the developer community portal. For suggestions, let us know through UserVoice.

John Montgomery, Director of Program Management for Visual Studio
@JohnMont is responsible for product design and customer success for all of Visual Studio, C++, C#, VB, .NET and JavaScript. John has been at Microsoft for 18 years working in developer technologies.

Connect(“demos”); // 2016: BikeSharing360 on GitHub

$
0
0

Microsoft loves developers and is constantly investing in enabling the future of development with cloud-first, mobile-first solutions that serve any developer, any application, and any platform.

During our Connect(); event this year we presented 15 demos in Scott Guthrie’s and Scott Hanselman’s keynotes. If you missed the keynotes, you can watch the recording in Channel 9. I highly recommend it!

New products, services, and tools we announced help bring innovation to your apps. We enjoy working on the demos for the keynotes and building real-world applications through which you can directly experience what’s possible using those technologies. This year, we built out a full intelligent bike sharing scenario for our Connect(); //2016 demos and are delighted to share all the source code with you today.

clip_image002

BikeSharing360 is a fictitious example of a smart bike sharing system with 10,000 bikes distributed in 650 stations located throughout New York City and Seattle. Their vision is to provide a modern and personalized experience to riders and to run their business with intelligence.

In this demo scenario, we built several apps for both the enterprise and the consumer (bike riders).

BikeSharing360 (Enterprise)

New York, Seattle, and more coming soon!

  • Manage our business with intelligence
  • Own fleets of smart bikes we can track with IoT devices
  • Go mobile and get bike maintenance reports
  • Intelligent kiosks with face and speech recognition to help customers rent bikes easily
  • Intelligent customer service: AI – assisted customer service through bots
Bike Riders (Consumer)
  • Go mobile! Go green! Save time, money & have fun!
  • Find and rent bikes and manage your rides
  • My rides: Discover and track your routes
  • Get personalized recommendations for events
  • Issues on the road? Chat with the BikeSharing360 bot, your customer service personal assistant

BikeSharing360 Suite of Apps

We want you to be inspired and learn how to use multiple tools, products, and our Microsoft application platform capabilities to unleash your productivity, help transform your businesses, and build deeply personalized apps for your customers.

We built a suite of apps for the BikeSharing360 enterprise and bike riders. The following diagram provides a high-level overview of the apps we built for:

Watch the demos in action and download the code

This time we are releasing multiple demo projects split in seven different demo repos now available in GitHub:

Websites

BikeSharing360: Websites on GitHub

  • Web Apps focused on bike rentals and corporate users
  • BikeSharing360 Public Web Site (MVC)
  • BikeSharing360 Public Web Site (ASP.NET Core)
  • BikeSharing360 Private Web Site (ASP.NET Core 1.1)

Mobile apps

BikeSharing360: Mobile apps on GitHub

  • BikeRider: Native mobile apps using Xamarin Forms for iOS, Android and UWP
  • Maintenance: Cordova cross-platform mobile app

Watch demos in action:

Backend services

BikeSharing360: Backend services on GitHub

  • Backend microservices used in various Connect() demos (mainly in the Xamarin apps).
  • Azure Functions

Watch demos in action:

Single container apps

BikeSharing360: Single container app on GitHub

  • Single Container App: Existing marketing site and publish to Azure App Service running Linux Docker Containers

Watch demos in action:

Multi container apps

BikeSharing360: Multi container app on GitHub

· Multi Container App: More complex app to demonstrate setting up Continuous Delivery with Visual Studio 2017 RC. The project was then deployed to Azure Container Services, through the Azure Container Registry.

Watch demos in action

· Watch Donovan Brown demo a single container app

Cognitive Services kiosk app

BikeSharing360: Cognitive Services kiosk app on GitHub

  • UWP Intelligent Kiosk with Cognitive Services (Face recognition API, Voice recognition)

Watch demos in action:

Bot app

BikeSharing360: Bot app on GitHub

  • BikeSharing360 Intelligent Bot: Customer Services integrated with Language Understanding Intelligent Service (LUIS)

Watch demos in action:

You can also watch this Visual Studio Toolbox episode for an E2E overview of the BikeSharing360 demo apps:

Even more demos from Connect();!

Here are a few of our tooling demos showing the latest improvements on our Visual Studio family of products:

It is a great time to be a developer. Create amazing apps and services that delight customers and build your business. With Microsoft’s intelligent Azure cloud, powerful data platform, and flexible developer tools, it is easier than ever to design, build, and manage breakthrough apps that work across platforms and devices.

Enjoy BikeSharing360 from our demo team!

Erika Ehrli Cabral, Senior Product Marketing Manager, Cloud Apps Dev and Data
@erikaehrli1
Erika has been at Microsoft for over 12 years, working first in Microsoft Consulting and enjoying later on different roles where she created content and code samples for developers. In her current role, she is now focused on executive keynote demos and Visual Studio and Azure product marketing.

Create great looking, fast, mobile apps using JavaScript, Angular 2, and Ionic 2

$
0
0

In a recent Visual Studio Toolbox episode, I highlighted some new Ionic 2 templates for use with the Visual Studio 2015 Tools for Apache Cordova (TACO). These new Ionic 2 RC templates are now available for you to try out and in this post I’ll talk you through what’s new.

> Download Ionic 2 templates on the Visual Studio Extension Gallery.

What is Ionic?

Ionic is a JavaScript framework that helps you build Android, iOS, and Windows 10 devices using the design patterns of the native operating system. Ionic builds on top of Apache Cordova, an open source framework that helps you build mobile apps using HTML, JavaScript, and CSS. These mobile apps have access to native device capabilities, like the camera or accelerometer, and can be published through public or private app stores just like any native mobile app.

Ionic provides HTML-based controls that go beyond the primitive UI of HTML; giving you a set of ready-made UI controls that are optimized for mobile devices. If you need to work with tabs, lists, navigation bars – Ionic has those for you. If you want micro-interactions, animations and buttery smooth scrolling – Ionic has those for you, too.

ionic-2-ui-overview

Examples of how the Ionic UI controls adapt to each device. Taken from the Ionic Azure Conference app demo application.

Ionic has been around since 2012 and over 3,000,000 apps have been built using it. Ionic 1 was built using Angular 1 and released in 2014. The Ionic team is now nearing the first release of Ionic 2, built on top of Angular 2.

How do I build apps with Ionic?

When you build an app with Ionic 2, you’re building an app using Angular 2. This means that you’ll use TypeScript as your programming language of choice, which brings several benefits. You be able to:

  • Use future JavaScript features (like classes and modules) today instead of waiting for your target mobile platforms to support them. TypeScript compiles to simple, human-readable, JavaScript.
  • Commit code changes with higher confidence, thanks to type checking and refactoring tools that make sure your code is working the way you expect before and after a change.
  • Investigate bugs, or new code bases, more quickly thanks to high-confidence navigation tools like Find References or Peek.

You’ll also work with Sass, a language to define styling for your apps. Sass provides valuable features for CSS development, like support for variables, and it compiles down to simple CSS files.

When building your Ionic 2 application, you focus on building self-contained components which combine HTML & CSS templates for presentation with JavaScript/TypeScript for component logic. These components are then combined into pages – i.e. the individual screens of your application.

For example, if you look at this default page for the Ionic 2 Blank template:

ionic2blanktemplate

The following TypeScript defines the component that creates this page:

    import { Component } from '@angular/core';
    import { NavController } from 'ionic-angular';

    @Component({
      selector: 'page-home',
      templateUrl: 'home.html'
    })
    export class HomePage {
      constructor(public navCtrl: NavController) {
    
      }
  
      onLink(url: string) {
          window.open(url);
      }
    }

The @Component decorator is used for the HomePage class to identify this as an Angular component and the templateUrl argument specifies the URL of the HTML for this component, which looks like:

    <ion-header>
      <ion-navbar>
        <ion-title>
          Ionic Blank
        </ion-title>
      </ion-navbar>
    </ion-header>

    <ion-content class="home" padding>

        <h2 class="center">Ionic 2 - Blank Starter</h2> 

        <div class="center">
            <p class="ionic-logo"></p>
        </div>

        <ion-card>
            <ion-card-header>
                Docs are here to help you
            </ion-card-header>

            <ion-list>
                <button ion-item 
                  (click)="onLink('http://go.microsoft.com/fwlink/?LinkID=820516')">
                    <ion-icon name="jet" item-left></ion-icon>
                    Getting Started
                </button>

                <!-- The rest of the buttons go here... -->
            </ion-list>
            
        </ion-card>

    </ion-content>

Finally, here’s a snippet of the Sass that defines the styling of this page:

    page-home {
        .center {
            text-aligncenter;  
        }
        
        .ionic-logo {
          displayinline-flex;
          position:relative;
          width:87px;
          height:87px;
          border:3.5px solid #5E86C4;
          border-radius:100%;
          -moz-border-radius:100%;
          -webkit-border-radius:100%;
          -moz-animationspin 2s infinite linear;
          -webkit-animationspin 2s infinite linear;
        }

        /* ... */
    }

When you build your project, Ionic takes care of compiling the TypeScript (.ts) files to JavaScript (.js) files, and Sass (.scss) files to CSS. It also places all the compiled files in the right places for Cordova to build your application and run it on a mobile device.

Try out the Ionic 2 tutorial on the TACO documentation site, to experience it for yourself.

What’s new for Ionic 2 & TACO?

Our Tools for Apache Cordova (TACO) team, has been working closely with the Ionic team for years to make sure that Visual Studio developers have a first-class experience when using the Ionic framework and the TypeScript language,. We previously released templates for beta versions of Ionic 2, and now we’ve refreshed these for the latest Ionic 2 RC 4 release.

The new templates mirror the standard starter templates included in Ionic:

  • Blank
  • SideMenu
  • Tabs

Each of these templates adapts to match the look and feel of the device you’re using, as you can see in this following comparison of the SideMenu template:

ionicstartertemplateplatformcomparison

Getting started with Ionic 2 RC templates

You can use these templates with Visual Studio 2015; Visual Studio 2017 RC isn’t supported yet, but we’re working on it. To use these with Visual Studio 2015, there are a few additional extensions you need to install:

  • TypeScript 2.0.6 editor – Adds support for version 2 of the TypeScript language, used by Ionic.
  • Microsoft ASP.NET and Web Tools – Among other changes for ASP.NET & web development, this adds support for new versions of NPM and the task runner explorer, used by the Ionic templates.
  • NPM Task Runner – Adds NPM script support to the Visual Studio task runner explorer, used to perform builds in Ionic.

Finally, you’ll install the new Ionic 2 RC template extension and can follow along with the Ionic 2 tutorial in the TACO documentation.

Join our Insiders and share your thoughts

After you try out the Ionic 2 RC templates, please let us know what you think! For early access to future Ionic & Cordova related updates, join our TACO insiders.

You can also share feedback via the Report a Problem option in the upper right corner of the Visual Studio IDE itself and track your feedback on the developer community portal. If you have a question about Ionic development, check out the Ionic Forum.

Jordan Matthiesen Jordan Matthiesen (@JMatthiesen)
Program Manager, JavaScript mobile developer toolsJordan works at Microsoft on JavaScript tooling for web and mobile application developers. He’s been a developer for over 19 years, and currently focuses on talking to as many awesome mobile developers as possible. When not working on dev tools, you’ll find him enjoying quality time with his wife, 4 kids, dog, cat, and a cup of coffee.

Update to Visual Studio 2017 Release Candidate

$
0
0

Today we have another update to Visual Studio 2017 Release Candidate. Some of you may have noticed that yesterday we posted an RC update, but took it down because of a setup issue. The issue is now fixed so please give it a try. To try out the newest version, you can either click on the link above or click on the notification within Visual Studio.

Take a look at the Visual Studio 2017 Release Notes and Known Issues for the full list of what’s available in this update, but here’s a summary:

  • The .NET Core and ASP.NET Core workload is no longer in preview. We have fixed several bugs and improved usability of .NET Core and ASP.NET Core Tooling.
  • Team Explorer connect experience is now improved to make it easier to find the projects and repos to which you want to connect.
  • The Advanced Save option is back due to popular demand.
  • Multiple installation-related issues are now fixed in this update, including hangs. We’ve also added a retry button when installation fails, disambiguated Visual Studio installs in the Start menu, and added support for creating a layout for offline install.

Apart from these improvements you’ll notice that we’ve removed the Data Science and Python Development workloads. As we’ve been closing on the VS release, some of the components weren’t going to meet all the release requirements, such as translation to non-English languages. They’ll re-appear soon as separate downloads. F# is still available in the .NET Desktop and .NET Web development workloads.

Please try this latest update and share your feedback. For problems, let us know via the Report a Problem option in the upper right corner of the VS title bar. Track your feedback on the developer community portal. For suggestions, let us know through UserVoice.

John Montgomery, Director of Program Management for Visual Studio

@JohnMont is responsible for product design and customer success for all of Visual Studio, C++, C#, VB, .NET and JavaScript. John has been at Microsoft for 18 years working in developer technologies.

Samsung releases second preview of Visual Studio Tools for Tizen

$
0
0

Samsung has released the second preview of Visual Studio Tools for Tizen today. Tizen is a Linux-based open source OS running on over 50 million Samsung devices including TVs, wearables, and mobile phones. You can now download the Visual Studio Tools for Tizen and begin building .NET applications for Tizen with Visual Studio.

At Connect(); in November 2016, Samsung announced a collaboration with Microsoft to build .NET support for Tizen. Along with the announcement, Samsung released the first preview of the Visual Studio Tools for Tizen. The second preview is a significant update to the first preview. In this post I’ll highlight some key new features –

  • TV application development. The first preview came with mobile application support only. With the second preview, you can now use the same familiar APIs, such as .NET Standard and Xamarin.Forms, to develop Tizen TV applications. Samsung Tizen TVs will begin shipping with .NET support once Visual Studio Tools for Tizen is officially released later this year.
  • Project wizard. Visual Studio Tools for Tizen provide a number of different options to build applications. For instance, you can build an application that runs on a single device type or an application that runs on multiple device types. You can build an application that runs on Tizen only or an application that runs on multiple platforms. The project wizard helps you to select the right project type with step-by-step guides.
  • New tools. Tizen-specific tools were added to further improve your productivity including a certificate manager, emulator manager, emulator control panel, and manifest editor.
  • More Tizen platform-specific APIs. The second preview significantly increases the number of Tizen-specific APIs available for .NET developers. Key additions include Bluetooth, Smart Card, NFC, Map, Wi-Fi Direct, Telephony, Geofence Manager, and Account Service.

For more information see Samsung’s Tizen developer website.

Try it out and share your feedback. For any problems, please let us know through Tizen .NET Forum.

Scott Hunter, Director of Program Management for .NET

Scott Hunter works for Microsoft as a Director of Program Management for .NET overseeing the server frameworks, such as ASP.NET, MVC, Web API, Web Pages and NuGet. Before this Scott was the CTO of several startups including Mustang Software and Starbase, where he focused on a variety of technologies – but programming the Web has always been his real passion.

Continuous Delivery Tools Extension for Visual Studio 2017

$
0
0

DevOps is all about getting your applications into customers’ hands quickly. The Continuous Delivery Tools for Visual Studio is a new extension for Visual Studio 2017 that brings DevOps capabilities to the IDE. You can use the extension to setup an automated build, test, and release pipeline on Visual Studio Team Services, for an ASP.NET 4 and ASP.NET Core application targeting Azure. You can then monitor your pipeline with notifications in the IDE that alert you to build failures on any CI run. The extension helps quickly setup a dev or test environment that builds, tests and deploys your app on every Git Push. In this post, I’ll cover some key features and walk you through configuration to get you started. You can find more details on the ASP.NET blog and ALM blog.

Configuring a continuous delivery pipeline for ASP.NET 4 and ASP.NET Core projects

To get started your project needs to live in a Git repo. The Add to Source Control button in the status bar will setup a repo for you and push it up to your remote repo. Then, right click on your ASP.NET project in Solution Explorer, or click on the Remote Server status icon on the status bar, and select “Configure Continuous Delivery…”. This will start to setup Build and Release definitions on Team Services that automatically builds, tests, and deploys your ASP.NET project to an Azure App Service or an Azure Container Service.

The Configure Continuous Delivery dialog lets you pick a branch from the repository to deployto a target App service. When you click OK, the extension creates build and release definitions on Team Services (this can take a couple of minutes), and then kicks off the first build and deployment automatically. From this point onward, Team Services will trigger a new build and deployment whenever you push changes up to the repository.

As your project matures you can add custom tasks to automate other parts of your release pipeline, enforce required policies, setup new deployment targets, or integrate one of the many third-party services available. Learn more about setting up Continuous Integrations on Visual Studio Team Services.

Failure notifications for any CI run on Visual Studio Team Services

Things move fast when you have an automated DevOps pipeline, so it’s important to have full transparency into the process. The latest build status and notifications for failed builds and tests failures appear in the new status bar icon. Notifications only appear for failures on the definition you are monitoring so you will not get flooded with messages for definitions you aren’t currently monitoring.

To change the build definition that you are monitoring, click Build Definition for Notifications menu item on the status bar icon.

Microsoft DevLabs Extensions

This extension is a Microsoft DevLabs extension which is an outlet for experiments from Microsoft that represent some of the latest ideas around developer tools. They are designed for broad use, feedback, and quick iteration, but it’s important to note DevLabs extensions are not supported and there is no commitment they’ll ever make it big and ship in the product.

It’s all about feedback…

We think there’s a lot we can do in the IDE to help teams collaborate and ship high quality code faster. In the spirit of being agile we want to ship fast, try out new ideas, improve the ones that work and pivot on the ones that don’t. Over the next few days, weeks, and months we’ll update the extension with new fixes and features. Your feedback is essential to this process. Join our slack channel or ping us at VSDevOps@microsoft.com.

Ahmed Metwally, Senior PM, Visual Studio
@cd4vs

Ahmed is a Program Manager on the Visual Studio Platform team focused on improving team collaboration and application lifecycle management integration.

Viewing all 1039 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>