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

Announcing Tools for Apache Cordova Update 7

$
0
0

Fresh on the heels of Update 6, we are happy to announce the release of Visual Studio Tools for Apache Cordova Update 7 (version 60219.1).

What’s New?

In this update we have some new features as well as bug fixes. In this post I’ll share a little about some feature and bug fixes.

Consume structured error data from Cordova
You have told us that you need better error reporting. In update 7 we have attempted to addressed this and have taken an important first step towards improving this experience.

Starting with version 6.0.0, Cordova now emits error messages through a well-defined API which our tools consume. This vastly improves the error reporting experience. However, please note, you will get this new behavior only if you install VS TACO Update 7 and target Cordova 6.0.0 or higher. Any projects that continue to target older versions of the CLI, you will still get the old behavior.

This is a first step towards improving this experience. We do not expect the error messages to be perfect, but we hope that they are more useful than they’ve been in the past. If you see a non-actionable error message, please email us the build log and the list of errors in the output pane, at vscordovatools at microsoft dot com. Improving this experience is one of our highest priorities.

Cordova 6.0.0 as default version for new projects
By default, new projects are now created using the latest version: Cordova 6.0.0 . However, all your existing projects will not be upgraded, and are still supported by our tools.

Ionic Templates

New ionic projects for Blank, Tabs and SideMenu templates, are now available on the Visual Studio online gallery. Additionally, get the Visual Studio extension for Ionic intellisense and supercharge your ionic development.

Updated Project Templates

All project templates have been updated to give them a modern look. A couple small issues in the templates have also been fixed, for example, some image assets have been changed and missing icons have been added.

Bug Fixes

Here are some top bug fixes in this update:

vs-tac install fails if AppData path has a space in it
We heard reports of failures instaling our node package with Update 6. We found the problem occurred when user names had a space in them. This is now fixed with this update. Thank you to those of you who reported the issue.

Reported Crashes
We’re starting to do a better job keeping up with our crash reporting system. We’ve fixed a number of bugs in this release. Check out the docs and guides for TACO to learn more.

Project name with spaces invalidates package.json file, breaks NPM
Adding NPM packages to a project with a name that doesn’t match NPM’s naming requirements was causing package restore to fail. We fixed this by adding “private”: “true” to the package.json.

Store packaging for multiple architectures only copies one package file to AppPackages directory
Create packages for the Windows store with multiple architectures at the same time is now possible.

 

To get a view into the entire list of features and bug fixes released in this update check out the resources on Visualstudio.com and docs and guides for TACO. Try out this update and share your feedback by emailing us at vscordovatools at microsoft dot com or find us on twitter @vscordovatools. We are particularly interested in your feedback on error reporting.

 

Michael Braude, Development Manager, Tools for Apache Cordova

Mike is the development manager of the Visual Studio Tools for Apache Cordova team. When he isn’t thinking about making VS TACO rock, he is appreciating the awesome puns that come out of building such a delicious product. Find him on twitter at @LittleWebFoot or reach him directly through email


Support Ending for Visual Studio 2005

$
0
0

In October 2005, before Twitter, jQuery, Blu-Ray movies, Xbox 360, Amazon AWS, Internet Explorer 7, and Google Analytics, we released Visual Studio 2005. A lot has happened in software development since 2005 (we’re looking at you, C++ 11, TypeScript, .NET 4.6, Cordova, Roslyn, and UWP!). So now it’s time to say goodbye.

In line with our support policy, starting April 12th 2016 Microsoft will no longer provide security updates, technical support, or hotfixes, for all Visual Studio 2005 products and the redistributable components and runtimes included with them, including the following products:

  • Visual Studio 2005 Standard Edition
  • Visual Studio 2005 Professional Edition
  • Visual Studio 2005 Team Suite
  • All Visual Studio 2005 Team Editions
  • Visual Studio 2005 Team Test Load Agent
  • Visual Studio 2005 Tools for Microsoft Office
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual Basic 2005 Express Edition

Support for Visual Studio 2005 Team Foundation Server ends on July 12th 2016.

Support for .NET Framework 2.0 is also ending April 12, 2016 under certain configurations. For more information, see the Support Policy for .NET Framework.

All later versions of Visual Studio products will continue to be supported for the duration of their established support lifecycle.

The best way to continue to get full support for Visual Studio products is to upgrade to the latest versions. Visit http://www.VisualStudio.com for information on the latest Visual Studio products.

Check out the following resources for additional help –

Eric Zajac (@ericzajac), Senior Program Manager, Visual Studio

Eric Zajac is a Program Manager working on the Visual Studio team, and has been at Microsoft for eight years. He is currently focused on our product release pipeline and customer portals. Before Microsoft, Eric spent seventeen years in the technology industry, working in various disciplines across many industry verticals.

Open Sourcing the Visual Studio Productivity Power Tools

$
0
0

We’re excited to announce that we’re open-sourcing the Visual Studio Productivity Power Tools on GitHub.

Productivity Power Tools, first released in 2010, is a pack of powerful extensions to improve developer productivity including Ctrl+Click Go to Definition, Copy As HTML, and Middle Click Scroll, just to name a few. Since their introduction, these tools have been updated for every major Visual Studio release, and a number of features that started out as part of the Productivity Power Tools are now core features of Visual Studio.

Making the current set of tools available to the community is important to us, and we hope it will also inspire developers with concrete examples of what can be achieved with extensions of their own.

You can find the full list of extensions we’re making available in Open Source on GitHub. The repository currently contains a subset of all extensions in Productivity Power Tools for Visual Studio 2015. Some extensions are not yet ready to be open-sourced, but we’re working on making all of them available over time.

Interested in contributing?

We welcome your contributions on GitHub! Before doing any work, start with the roadmap that describes the contribution process. We also encourage you to add bug reports and raise feature requests as issues. You can contribute code through pull requests.

Get inspiration for your own extensions!

Besides contributing to the Power Tools directly, this repo is also a great place to browse and get inspiration on different ways to extend Visual Studio. Learn more about extending Visual Studio at VisualStudio.com/integrate.

 

Justin Clareburt, Senior Program Manager, Visual Studio

Justin Clareburt is a Program Manager on the Visual Studio team, currently working in the Visual Studio extensibility space. He has over 20 years of Software Engineering experience having previously worked for several large organizations including Amazon, NewsCorp, Symantec, and the Australian Government. He brings to the team his expert knowledge of IDEs and a passion for creating the ultimate development experience.

Michael Dick, Senior Program Manager, Visual Studio

Michael Dick is a Program Manager working on the Visual Studio team. Before joining Microsoft, Michael worked at a variety of tech companies and is passionate about developer tools. He is currently focusing on the ecosystem and extensibility experience for Visual Studio.

Introducing R Tools for Visual Studio

$
0
0

R is a programming language that is widely used by data scientists, and developers seeking a more powerful tool to work with data. While data scientists use R to write programs, their work product is rarely the program itself. Instead, they produce reports or presentations from the results generated by their R program to help influence or drive business decisions.

R Tools for Visual Studio (RTVS), currently available as a Public Preview release, is a new tool from Microsoft for creating R programs using Visual Studio. RTVS is free, and Open Sourced under the MIT license. It can be downloaded by following the instructions here, and you can read our documentation here.

If you prefer videos, here is a walkthrough of some of the top features of RTVS:

A Quick Tour of R

R is a strong, dynamically typed, interpreted language that draws a lot of inspiration from other languages. It is a functional language that heavily draws from Scheme and S. It is beyond the scope of this blog post to discuss the semantics of the language, but I strongly encourage you to read these two freely available online books for a deep introduction to the language:

  1. Advanced R
  2. The R Inferno

The remainder of this blog post is a quick tour of R, its libraries, and RTVS with the goal of inspiring you to learn more about the language, its libraries, and how it can be a useful addition to your toolbox for analyzing data.

The quickest way to get started with R is through its Read-Eval-Print Loop (REPL), which lets you send commands interactively to the R interpreter. In RTVS, we surface the R REPL through the R Interactive Window.

As you can see, you can type 3 + 4 and have the result immediately computed by R; no compilation step necessary:

3 + 4
[1] 7

R’s strength is working with data. Therefore, it’s not surprising that the most heavily used data structure in R is the R dataframe, which is a convenient way of working with tabular datasets. There are many ways of getting data into an R dataframe, but perhaps the easiest is to read it from a URI. Below, you’re reading a CSV file containing data about locations of airports in the United States from Github:

usa_airports <- read.csv("https://raw.githubusercontent.com/jflam/VSBlogPost/master/usa_airports.dat", stringsAsFactors = TRUE)

In R, you assign variables using the <- operator, and you invoke functions using parenthesis. So in the code above, you’re invoking theread.csv() R library function, passing in the URI to the CSV file.

You can get help on any R library function by using the ? operator from the REPL. For example, to get help on the read.csv API, just type?read.csv in the REPL.

Next, you’re using another R function, head() to display a summary of the first 5 lines of the file:

head(usa_airports)

     X   ID                            name         city       country
1  318 6891           Putnam County Airport  Greencastle United States
2 1104 6890      Dowagiac Municipal Airport     Dowagiac United States
3 1121 6889     Cambridge Municipal Airport    Cambridge United States
4 1470 6885  Door County Cherryland Airport Sturgeon Bay United States
5 1507 6884    Shoestring Aviation Airfield Stewartstown United States
6 1617 6883 Eastern Oregon Regional Airport    Pendleton United States
  IATA_FAA ICAO      lat        lon altitude timezone DST
1      4I7  \\N 39.63356  -86.81381      842       -5   U
2      C91  \\N 41.99293  -86.12801      748       -5   U
3      CDI  \\N 39.97503  -81.57758      799       -5   U
4      SUE  \\N 44.84367  -87.42156      725       -6   U
5      0P2  \\N 39.79482  -76.64719     1000       -5   U
6      PDT KPDT 45.69500 -118.84139     1497       -8   A
               Region
1    America/New_York
2    America/New_York
3    America/New_York
4     America/Chicago
5    America/New_York
6 America/Los_Angeles

The head function is fairly primitive, as it just generates text-based output. That’s not surprising since R has been around since 1993. Surely we can do better in 2016?

As it turns out, we can. There are a lot of libraries in R that bind the R programming language to the most powerful hardware-accelerated rendering platform on the planet: HTML. In R, this is accomplished through a set of Open Source libraries known as htmlwidgets for R. Below is the same dataframe rendered using the DataTable widget. We generate an HTML page that contains all of the data from the usa_airports dataframe, and open up a browser window using the default browser that shows an interactive table containing the data. The data really is interactive; try typing “Seattle” into the search box to see it filter the data to only airports in Seattle in real time, or click on column headings to sort by that column.

library(DT)
datatable(usa_airports[,c("name", "city", "country", "IATA_FAA", "lat", "lon", "altitude")])

(to get to the interactive table, please click on the image below)

dataframe rendered using the DataTable widget

If you prefer to manipulate your data programmatically, you can easily do so as well. A popular library for manipulating data is the dplyr library by Hadley Wickham. Let’s say that we wanted to generate a list of airports located near New York city. You can do this easily via the subset function from dplyr:

library(dplyr)
new_york_airports <- subset(usa_airports, city == "New York")
datatable(new_york_airports[,c("name", "city", "country", "IATA_FAA", "lat", "lon", "altitude")])

(to get to the interactive table, please click on the image below)

Example of interactive table

You can also do more sophisticated filtering: e.g., select all the airports in NYC at below 25 feet elevation, ordering the rows by altitude and selecting only the name, altitude, latitude and longitude of the airport:

low_nyc <-
    usa_airports %>%
    filter(city == "New York" & altitude < 25) %>%
    arrange(altitude) %>%
    select(name, altitude, lat, lon)
datatable(low_nyc)

(to get to the interactive table, please click on the image below)

Table with ordering

Here, you see a more sophisticated use of R syntax via the %>% or “pipe” operator. This operator lets you naturally compose operations and read them from left to right. So in the above example, you take the usa_airports dataframe, filtering all of the rows where the conditioncity == "New York" & altitude < 25 holds true, sorting the rows by the altitude column, and selecting only the columns name,altitude, lat, and lon for the result dataset which is stored in the low_nyc variable.

If you’re curious about the implementation of the pipe operator, see the magrittr package, as well as this excellent blog post on how magrittr was influenced by the forward pipe operator from F#.

Plotting data on maps

Once you have your dataset, you can plot it on an interactive map. The leaflet HtmlWidget is an excellent library for generating interactive maps. In the code fragment below, you take the dataframe that contains low altitude New York City airports that you generated via dplyr in the previous step, and using the now-familiar pipe operator send it to the leaflet library, asking it to generate map tiles and plotting circles on them using the lon and lat columns for the positions of the circles, and using the name column for the popup that appears when the user clicks on a circle.

library(leaflet)
map <-
    new_york_airports %>%
    leaflet() %>%
    addTiles() %>%
    addCircles(~lon, ~lat, popup = ~name, radius = 200, color="blue", opacity = 0.8)
map

Map showing low altitude New York City airports

Wrapping up the tour

There is lots more to learn about R than I have time or space for in this blog post. However, hopefully what I’ve done is whet your appetite to learn more about R. There are many, many things that I haven’t covered in this blog post, so I’ve included a bunch of resources below to help you better understand R and its libraries.

Introduction to the R Programming Language

  1. An Introduction to R: written by David Smith, who currently works at Microsoft on the R team.
  2. Introduction to R Programming: a free online class created by Microsoft to help you learn R.

Key R Libraries

  1. dplyr is the data manipulation “d plyer” library that is a key tool for helping you quickly manipulate your data into a form that you can analyze.
  2. ggplot2 is a plotting library that builds on the grammar of graphics ideas by Hadley Wickham
  3. ggvis is a plotting library that generates plots on an HTML canvas, using the same grammar of graphics semantics as ggplot2
  4. rodbc lets you read data from an ODBC compliant database like SQL Server

Microsoft R products

Microsoft has a deep commitment to R, and provides a full-stack R solution for your applications, complete with tooling, runtimes and libraries.

  1. R Tools for Visual Studio is Microsoft’s free, Open Source tooling for R development in Visual Studio.
  2. Microsoft R Open is Microsoft’s cross-platform (Windows, OS X, Linux) distribution of R. It combines integration with Intel’s Math Kernel Library for accelerated linear algebra computations, as well as integration with the checkpoint package to ensure that users of your R programs will be guaranteed to be able to run your R program using the same version of the R libraries that you used to create it.
  3. Microsoft R Server is Microsoft’s libraries for accelerated R computation on datasets that don’t fit in system memory. It builds on top of the benefits of Microsoft R Open, and adds

One more thing …

We’ve talked about a bunch of things in this brief blog post. However, perhaps the coolest thing about this blog post is … I wrote it in Visual Studio. The document was written in RMarkdown, a dialect of the popular Markdown markup language, which supports embedding executable R code snippets within it.

If you want to look at the source code for it, you can get it at my Github.

RTVS in Visual Studio

John Lam, Principal Program Manager, Visual Studio

John Lam is the Program Manager for R Tools for Visual Studio, Python Tools for Visual Studio, and the Azure Jupyter Notebook Service. I work with an awesome team of devs building tools for data scientists. You can reach me on Twitter @john_lam, or on Github. Oh, and I have jobs for Python devs. Hit me up at jflam@microsoft.com.

Visual Studio “15” Preview Now Available

$
0
0

At Build 2016 we shared a preview of the next version of Visual Studio, which we call Visual Studio “15” (not to be confused with Visual Studio 2015). The download is available here. This is a Preview and is unsupported, so please refrain from installing it on your production environments.

This preview lays a lot of groundwork for vNext, so you may not see a ton of new features. The release notes have the complete list of what’s new in the release, but here are some highlights.

Perhaps the most prominent thing you’ll notice when you go to install this release is that there are two ways to install. With Visual Studio “15”, we are previewing a new lightweight installer that focuses on making installation much faster and less impactful. The smallest installation of Visual Studio with the new installer downloads in less than 300MB, and includes basic code editing support for over 20 languages along with debugging and source code control. You can optionally add support for other features: .NET desktop development with WPF and WinForms, Python, C++ and Unity. It’s a great way to preview new features in the next version of Visual Studio without impacting your production development work.

Since the new installer is a preview, it doesn’t yet have the full set of Visual Studio features. So we’ve kept the “classic” installer for you to preview the other new capabilities in the release. Over time, we will move the full Visual Studio “15” feature set to the new installer.

Regardless of how you install, you should notice the first launch experience is faster – up to 30% faster.

Now, looking at some of the new capabilities in the release, there are few I’d like to call out.

In the language area, the Visual Studio “15” preview includes XAML edit-and-continue for WPF and Universal Windows Apps and new style analyzers for C# and Visual Basic that will help you enforce coding standards.

There are also numerous fixes to the C++ language service, and a preview of a new JavaScript language service. The new JavaScript language service improves IntelliSense, includes IntelliSense for JSDoc comment annotations, and also supports JSX syntax and features like generators and modules from ES2016. This service is not enabled by default but you can enable it by toggling a registry key. For instructions on how to enable the new language service check out the Salsa Documentation on GitHub. Node.js released the latest Node.js Tools 1.2 Alpha which supports Node.js v6.x, has improved support for ES6 IntelliSense engine including support for NPM packages, JsDoc comments, and has fixes in place for increased stability, performance, and improved reliability while debugging. Node.js Tools also support project-less debugging via “Open Folder”.

In the IDE, you can now navigate code bases directly using the “Open Folder” feature, without needing projects and solutions.

In the debugger, we added the ability to add conditions to the debugger configuration so now you can set up your debugger to break or throw exceptions under specific conditions like for specific modules.

This release also updates Visual Studio Tools for Apache Cordova to support Cordova 6.0.0. TACO also has better NPM integration that will help avoid nearly 30% of the current Cordova build errors that occur due to compatibility issues between Node, NPM, and Cordova. This in turn leads to improved error messaging. TACO also has additional plug-ins.

Tools for Universal Windows App Development includes an updated .NET Native toolchain for Windows 10 apps that has added optimizations to improve runtime performance for managed apps and over 600 bug fixes.

On the analytics front, Application Insights Tools is now Developer Analytics Tools. The primary updates in this version of the tools includes better search features that enable you to easily look back in your search history and enable you to search related telemetry. Additionally, we have streamlined the experience to configure collection of traces from logging frameworks like log4net, NLog, and System.Diagnostics.

The latest Azure SDK 2.9 available with Visual Studio “15” Preview has additional support for secondary App Services and also includes some bug fixes. For details on the download and documentation take a look at Azure Developer Tools page.

In other tooling Visual Studio “15” Preview includes the latest in Office developer tools and SQL Server Data Tools supporting SQL Server 2016 and Azure SQL Database.

For a complete list of what is available in Visual Studio “15” Preview take a look at the Visual Studio “15” Preview Release Notes, and for a list of all bug fixes check out the Known Issues and Fixed Bugs. For information on compatibility check out the page on platform targeting and compatibility.

 

As always, we welcome your feedback. For problems, let us know via the Report a Problem option in Visual Studio. For suggestions, let us know through UserVoice.

John Montgomery is the Director of Program Management for Visual Studio, 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. Reach him on Twitter @JohnMont

Visual Studio 2015 Update 2 RTM

$
0
0

Today at Build 2016 we released the final version of Visual Studio 2015 Update 2. This release includes everything we shared in the Visual Studio 2015 Update 2 CTP release, as well as Visual Studio 2015 Update 2 RC.

Visual Studio 2015 Update 2 has focused on improving performance and reliability and addressing your feedback. Some key scenarios where we have improved performance and responsiveness include time for Visual Studio to start when extensions are installed, time it takes to shut down Visual Studio, NuGet performance, opening Team Explorer to browse work item queries within Visual Studio, and working in Visual Studio while experiencing network connectivity issues. If you look in the release notes, you’ll see a complete list of improvements to performance and reliability.

We have also added a handful of key features. A few that I’d like to highlight are:

  • Extension auto-update now supports many more extension types. With this feature you no longer have to manually update your extensions, but you still have full control over your extensions under Tools>Options.
  • Improvements to git support including new git commands (reset), large file storage, and a flag in the status bar to show the git branch status.
  • Universal Windows Platform Tools enable you to select both the version of Windows SDK to target as well as the minimum OS version on which your app should be available. Additionally, you can now debug background tasks, and cache your application name and package configuration to reuse without signing in.
  • Developer Analytics Tools, formerly known as Application Insights Tools, have updates to the search experience making it easier to go back and forward in history and search related telemetry. With these tools, you can now easily add Application Insights in your web apps and HockeyApp in your mobile apps. We have also streamlined the experience to configure collection of traces from logging frameworks like log4net, NLog, and System.Diagnostics.
  • Python Tools for Visual Studio 2.2.3 provides editing, IntelliSense, debugging, profiling, and Azure functionality for Python, and this update now supports template IntelliSense and debugging for the latest versions of Django.
  • Node.js Tools 1.2 Alpha supports Node.js v6.x, has improved support for ES6 IntelliSense engine including support for NPM packages, JsDoc comments, and has fixes in place for increased stability, performance, and improved reliability while debugging.
  • Azure SDK 2.9 has additional support for secondary App Services and also includes some bug fixes. For details on the download and documentation take a look at Azure Developer Tools page.
  • Visual Studio Designer for Microsoft Band allows you to create tiles for Microsoft Band. Drag and drop elements into a visual layout of a Microsoft Band and generate code easily, for C# developers. Visit http://developer.microsoftband.com/ for more information.

As always, we welcome your feedback. For problems, let us know via the Report a Problem option in Visual Studio. For suggestions, let us know through UserVoice.

John Montgomery is the Director of Program Management for Visual Studio, 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. Reach him on Twitter @JohnMont

Mobile App Development made easy with Visual Studio and Xamarin

$
0
0

Last month, we announced that Microsoft acquired Xamarin and welcomed the Xamarin team to Microsoft. Today, in his Build 2016 keynote, Scott Guthrie laid out our plans for how Xamarin and Visual Studio will come together. If you haven’t already, check out Scott Guthrie’s keynote summary post and Nat Friedman’s blog.

In short, we’re making Xamarin’s cross-platform tools available in Visual Studio, from Community up through Enterprise at no additional cost and we’re open-sourcing the Xamarin SDK – the core of the Xamarin toolchain. In addition, we’re making Xamarin’s services (for example, Test Cloud and Xamarin University) available along with the existing Microsoft mobile DevOps capabilities.

To get started with Xamarin on Visual Studio 2015 or Visual Studio 2013, download the Xamarin installer for Windows. If you are installing Visual Studio 2015 for the first time, downloading Visual Studio 2015 Update 2 will also include Xamarin tools. Similarly, Visual Studio “15” Preview installer will automatically install Xamarin Tools.

The integration of Xamarin into Microsoft’s developer tools takes us one step further towards enabling our vision of supporting “any developer, any app, any platform.” With Xamarin you can create fully native apps for Android, iOS, and Windows using the power and productivity of Microsoft’s development tools and services. Together, these and Azure backend services create a comprehensive solution that spans every phase of the mobile development cycle. Here’s a little more detail about what we announced today:

Commitment to open source. Three important things are happening around open source. First, today we committed to open sourcing the Xamarin SDK (runtime, libraries and command line tools) in the coming months. Second, Xamarin announced today that it has already contributed the Mono Project – core to the Xamarin tools – to the .NET Foundation, and the .NET Foundation in turn announced that they will re-release Mono under the MIT License. We are looking forward to active partnership with and contributions from the community for both of these projects. Finally, to kick that off, Unity, JetBrains and Red Hat announced that they are joining the Technical Steering Group of the .NET Foundation, as a great testimony of the strong momentum of the .NET community.

Visual Studio includes Xamarin technologies and tools at no additional cost. Starting today, Visual Studio Community (Microsoft’s free development environment for individual developers, small professional teams, open source projects, and education) includes a fully functional edition of Xamarin tools enabling developers to target Android and iOS applications. In addition, a community edition of Xamarin Studio (Xamarin’s development environment that runs on OS X) is now available with a license similar to Visual Studio Community. Visual Studio Professional and Enterprise include Xamarin’s professional and enterprise features at no additional cost.

Xamarin’s Enterprise capabilities available in Visual Studio Enterprise. Starting today, existing and new Visual Studio Enterprise subscribers will have access – at no additional charge – to Xamarin’s advanced enterprise capabilities and a discounted access to Xamarin Test Cloud. Xamarin Test Cloud and Xamarin University will also be available as standalone offerings, complementing Microsoft’s developer cloud services.

Xamarin Studio Community and Visual Studio Subscriptions. Xamarin Studio is a fully functional IDE enabling development of iOS, Android, and Mac applications on Mac OS X, and today we announced two things around Xamarin Studio for Mac. The first is that we’re creating a Community edition of Xamarin Studio for Mac. The second is that Xamarin Studio Professional and Enterprise will be included in Visual Studio Subscriptions.

Xamarin Studio Community is free just like Visual Studio Community for eligible customers and uses. Xamarin Studio Community includes integrated native designers for iOS and Android, as well as syntax highlighting for C# and F#, code navigation and refactoring. Download Xamarin Studio Community.

Visual Studio Professional and Enterprise subscribers can use Professional and Enterprise editions of Xamarin Studio for Mac as a benefit of their Visual Studio subscription. Most Visual Studio subscribers should log in to the Visual Studio subscriber portal (Visual Studio cloud subscribers, go here) to access Xamarin Studio (for Mac). Visual Studio Enterprise subscribers will get additional Enterprise capabilities for both Visual Studio and Xamarin Studio, as described in more detail in the Visual Studio offerings comparison page.

25% Discount on Xamarin Test Cloud benefit for Visual Studio Enterprise subscribers. Through Xamarin Test Cloud, all types of mobile developers—C#, Objective-C, Java and hybrid app builders —can test and improve the quality of their apps using thousands of cloud-hosted phones and devices. Today, we are announcing a 25% discount on Xamarin Test Cloud for Visual Studio Enterprise subscribers (Visual Studio Enterprise with MSDN and Visual Studio Enterprise – annual). Log in to the Visual Studio subscriber portal (Visual Studio cloud subscribers go here) to get your discount.

Xamarin University expansion. Xamarin University provides online training for mobile developers using Xamarin. Currently, the Visual Studio Dev Essentials program, a free developer membership, provides access to a limited set of Xamarin University courses. Today, we are expanding the selection of online classes for all Visual Studio Dev Essentials members. Additionally, we are offering even more classes to Visual Studio Enterprise and Visual Studio Professional subscribers, as a newly added subscription benefit. These classes help mobile developers augment their existing skills to build awesome mobile apps. If you are a Visual Studio Dev Essentials program member or Visual Studio cloud subscriber, log in here to access Xamarin University. All other Visual Studio subscribers should visit their subscriber portal.

Xamarin Insights and HockeyApp. The Xamarin Insights team and Microsoft’s HockeyApp team will be working together to deliver an industry-leading solution for mobile crash reporting, distribution, and analytics. As part of this transition, the combined team will focus on HockeyApp and will continue to invest in features to deliver the great experiences you have come to expect in Xamarin Insights and in HockeyApp. For more information on the transition, visit the HockeyApp blog.

Xamarin and Azure IoT. Also today, we showed off MyDriving, a fully functional Internet of Things sample app that we built using .NET, Xamarin, UWP, and our Azure cloud services such as the IoT Hub to showcase what you can build. MyDriving showcases some of what’s possible with Azure IoT services such as the Azure Event Hub and Azure Stream Analytics with Visual Studio and Xamarin to create an easy-to-understand (and to run) IoT application. You can find more details here.

As always, we welcome your feedback. For problems, let us know via the Report a Problem feature in Visual Studio. For suggestions, let us know through UserVoice.

John Montgomery is the Director of Program Management for Visual Studio and .NET, 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. Reach him on Twitter @JohnMont

Faster, Leaner, Focused on Your Development Needs: The New Visual Studio Installer

$
0
0

Visual Studio continues to grow in power and capability with each release. Our objective is to provide every developer with the tools you need to be successful whether you’re building mobile, cloud, or desktop apps regardless of your language or framework. Now that Visual Studio includes tools for Any Developer building Any App, it also includes hundreds of packages in the full installation. They come from Microsoft and others, and include runtimes and SDKs, emulators, tools and documentation. Keeping the right components installed and updated on your machine is one of the core values That Visual Studio provides – which is quite a task given the rapid evolution of developer frameworks.

In Visual Studio 2015, we made progress toward reducing the size of the minimum install by separating out the C++ compilers and build tools into optional components. We’ve also been listening to your feedback on UserVoice, Twitter and through the Report-a-Problem tool built into Visual Studio. What we’ve heard from your feedback falls into three primary themes:

  1. Visual Studio should have a lighter footprint, with less files on disk, and fewer required system dependencies.
  2. Visual Studio should have better customization, making it easier to install what you need without adding languages and frameworks that weren’t selected.
  3. Visual Studio installation, updates, and uninstallation to be both faster and more predictable.

In an effort to address each of these themes, let’s go into a bit of detail.

Lightweight and Fast Installation

We’ve taken a fresh look at the component layering and dependencies in Visual Studio. We’ve carved out a minimal ‘code editor’ experience. This minimum install is just a couple of hundred megabytes in size but it contains core elements of the product common across languages and usage patterns.

This ‘core editor’ experience includes the shell itself, the code editor, the managed and native debugger engines, and source code control support. To support many programming languages without the support of full compilers, we also included a TextMate-compatible language service (introduced in Visual Studio 2015 Update 1.) This service enables basic language colorization, IntelliSense, and symbolic search for over twenty languages including C#, Visual Basic, Java, C/C++, HTML, JavaScript, Perl, PHP, Ruby, R, Swift, and Go. Lastly, we added a new feature “Open Folder”, which enables developers to work with any codebase without needing to create a Visual Studio project or solution.

As a result, the minimum install footprint went from 6GB to 322 MB. Based on early testing, this installs in just a few minutes on a typical development machine. While this core editor installation includes only a subset of the full product, it provides a clean, dependable foundation on which we can create tailored development experiences.

Optimized for You

Layered on top of the core editor, we’ve taken the other tooling and SDKs developers need and packaged them into bundles that represent a few common developer experiences. We think of these bundles as a curated preset – a good starting point to help you get up and running quickly.

In this early preview of our new installer, we have made the first four bundles available to install: .NET desktop development, Python, C++ or games development with Unity. This is of course only a subset of the full set of languages and frameworks that Visual Studio supports. In future updates, we plan to provide the ability to tweak these bundles for more à la carte control over what’s installed.

New Lightweight Installer

Here is a quick visual summary of the bundles we are including in this first preview of the new installation environment:

Installer bundles

In a future post, we will talk more about the customer research that is helping us design these developer bundles and the principles that will determine what goes into each.

Isolated and Low-Impact

Under the hood, we’ve also been changing the way we distribute the core application to make Visual Studio installation faster, more reliable, and more flexible. Across the Visual Studio teams, we’ve been working to reduce the impact we have on the system. We have done this by moving assemblies out of the Global Assembly Cache, reducing use of the system registry, and simplifying the way we install the Visual Studio application itself. We will share more about this work in a future post.

This work enables installation and uninstallation to be much faster and more flexible than before.

Caveats and Next Steps

This is an early preview of our work and we still have plenty to enable before we can fully encompass all the functionality delivered by the current Visual Studio install experience. In the interim, as we continue to add new capabilities and complete the componentization and refactoring work, the ‘classic’ installer is also available as a way to install the full Visual Studio feature set.

As this is a preview, we’ve noted several of the limitations in the installer and product in the release notes. We’ll be updating this list as new issues are discovered.

As many Visual Studio tools depend on the installation of other components – including emulators, third-party SDKs and tools – the install size can still grow to gigabytes when all options are selected in the full product. But the work we’ve done in this preview is a substantial investment in our goal of providing a faster, more flexible, less impactful experience that gets you running quickly with just the tools you need.

We’d love your feedback on these experiences. The best way to do so is to click the ‘Send us feedback’ link in the new installer or through Report a Problem in Visual Studio itself. You can also add a new suggestion or comment on an existing suggestion on the Visual Studio UserVoice site. We’re excited to hear from you!

Tim Sneath, Principal Lead Program Manager, Visual Studio PlatformTim 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.

A Vision For Visual Studio “15”: Take on Dependencies. Stay Productive.

$
0
0

When it comes to leveraging OSS and other reusable components, developers have more options today than ever before. Productivity gains from taking on external dependencies can evaporate quickly though, when you need to spend time debugging or searching for dependency source code. To do these tasks, you might need to enlist and rebuild a library (and replace all solution references to this rebuilt version) to take advantage of Visual Studio capabilities like “go to definition” that “just work” for your own project code.

Visual Studio debugging and code exploration works pretty well (if we do say so ourselves) when you’re building everything in your solution. Well, what if VS worked just as well for code that you aren’t compiling? Code that you compile from a completely different solution, for example? Or even code you’ve dropped in as a NuGet dependency? While we have the hood up, what if Visual Studio could help with search scenarios before you take on a dependency?

This post presents a set of ideas that we are considering or have started to implement in Visual Studio “15” to keep developers productive when they take on OSS and other external dependencies. Take a look at this video for a lightning tour of what we have in mind and let us know what you think.

To follow along at a different pace, keep reading …

Do any of the following problems sound familiar? You open a dependency source file from outside your solution and it doesn’t colorize completely. You set a breakpoint on a call to an OSS dependency you’d like to debug and VS steps over it. Or you hit F12 on an external call and VS offers a “metadata view” instead of the actual implementation:

What if we could make all these problems disappear? What if we could make sure that all of Visual Studio’s rich code debugging, search and exploration features keep working without requiring that you download and build dependency source code, or locate dependency symbols? That’d be great, right?

Let’s take a quick tour through an end-to-end example of what this might look like, starting with acquiring a useful code snippet from the web and adding it to a fresh project (with no dependencies).

Useful code samples found without leaving Visual Studio

We’ll start with something that you can do today in Visual Studio: locate useful code snippets without leaving the IDE. The Bing team is updating this extension right now to provide even better search results for “how to” scenarios (by adding new “fuzzy match” search capabilities). In our “what if” scenario, we’ll look for a code snippet that can convert an XML string to the JSON format.

Visual Studio makes it all compile.

Now that we’ve located a useful snippet, we paste it into the editor. Visual Studio “15” can apply auto-fixers that make it all compile, with minimal keystrokes. VS can even suggest and install the NuGet packages you need to make everything work. This feature is shipping in the Visual Studio “15” preview bits that you can download today.

“Go to definition” just works.

Now we get to new magic we have in mind. What if you never saw a metadata view again or a message that VS “could not resolve symbol under the caret”? What if “go to definition” always worked for all the code your solution pulls in?

Debugging works. With no extra work.

If you run into an unexpected problem and need to debug your external dependencies, that can slow you down at the worst possible time. For Visual Studio “15”, we’d like to make it so that you can set and hit breakpoints without doing any extra work. No more searching the web for PDBs or source server information. No more cloning repos and rebuilding them locally, just to fix a single bug.

Search dependency code as well as yours.

Searching code is critical to productivity and you should be able to comprehensively search external code bases that you depend on. What if we could improve “find all references”, for example, to locate usage patterns within a dependency’s source code on GitHub as well as yours? We’re looking at it for Visual Studio “15”.

Tell us what you think. We’ll move forward.

Altogether, we think the experiences described above would be a great advance in developer productivity. These features should also help with extremely complex projects, where teams take on many dependencies coded elsewhere in their company (but which they don’t compile in their own solutions). What do you think? Let us know!

Michael C. Fanning, Principal SDE, Visual StudioMichael is a developer and technical lead in the Compiler Language & Platform team in Developer Division. Michael has been at Microsoft for a long time, primarily working on developer technologies and security.
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.

Build Ionic Apps in Minutes with VS Code

$
0
0

With our Cordova Tools Extension for Visual Studio Code, you can use your existing web skills to build cross-platform hybrid mobile applications for iOS, Android, and other platforms. This means that you can create and maintain one project to target millions of potential customers using various mobile devices.

One of the most popular JavaScript hybrid frameworks that we’ve heard from our customers is Ionic. Free and open source, Ionic offers a library of mobile-optimized HTML, CSS and JS CSS components, gestures, and tools for building highly interactive mobile apps. It is built with SASS and optimized for AngularJS. Today, we are pleased to announce support for Ionic in the Cordova Tools Extension for VS Code!

For those of you ready to go try it out,

  • Download and install Visual Studio Code for Mac, Windows or Linux from code.visualstudio.com
  • Launch the VS Code Command Palette – (Ctrl+Shift+P on Windows, Cmd+Shift+P on Mac) – and type the following command and hit Enter:
    > ext install cordova-tools
  • Start building!

Performance Obsessed

One of the major challenges of building these hybrid mobile applications is the “alien app” feeling that users can get if response and speeds suffer from developing with non-native libraries. Ionic bridges the gap between web and native app development offering rich, native-style UI components and interactions.

Ionic upholds its “performance obsessed” personality by integrating both JavaScript scrolling and native platform scrolling into its library. So when you are implementing large lists, your users are actually scrolling at native speeds. Ionic includes hardware accelerated animations and minimal DOM manipulations so your app is lightweight and fast. It will reliably work for complex apps both on iOS and on Android.

Ionic already includes some platform-based customization, but sometimes you need your project to be even more customized. There are a few different ways you can use the platform to style an app. Learn how to implement platform classes, use JavaScript to style your app, or use dynamic templates in the Ionic documentation.

Building with Ionic

Normally when authoring an Ionic application, a lot of time is spent on writing the markup of the components. In addition to our JavaScript IntelliSense, we now have support for common Ionic components too. Which means you can build your Ionic App faster, easier and more efficiently with our tools.

Ionic enables us to create complex user interfaces using a set of beautiful looking, pre-defined components like a Tabs, or a SideMenu.

Our tools for VS Code now support snippets that are a great way to quickly get started on complex markup.

A good idea is to try out your hybrid mobile app on a browser before moving it over to a device or an emulator to test device specific functionality. To test your Ionic app out in the browser, we have added support to begin your debugging experience with a browser based workflow, leveraging Ionic serve.

For those of you developing on Visual Studio 2015, we also support Ionic which you can learn more about here.

Next Steps

We are continuing to work on our tools and to do that, we could use some help! Please share your feedback/comments around some of things that we’re starting to consider for our next release:

  • Look at Ionic2 support as both Ionic 2 and Angular 2 are heading towards a stable release
  • A better browser based workflow with support for a “Ripple” like workflow that has support for simulating plugins, or triggering events like deviceready.

If you have ideas for features that would make you more productive writing mobile apps, we would love to hear from you! You can reach me at panarasi@microsoft.com, or tweet at our team @VSCordovaTools.

Parashuram N @nparashuramParashuram is a Senior Program Manager in Visual Studio team and works on creating tools that help with cross-platform mobile development. He is also a committer and a member of the Project Management Committee of  the Apache Cordova Project.

Visual Studio “15”: Installing Just What You Need

$
0
0

Over the past year, we’ve had the opportunity to chat with hundreds of you (developers), from those who use Visual Studio every day to those who have never used it. We observed how you setup your development environments and how they evolve and change over time. We learned that you spend a significant amount of time getting the right set of tools together and usually end up installing more than you need (both in features and in disk footprint). We heard that you think in terms of what you need for your “job” or task at hand and want your tools to be able to tell you what they need.

We found that a lot of you aren’t necessarily confident in the choices that you have to make during installations and worry that you might not be able to figure out how to make changes once the installation is complete so you tend to take all features or more than you really need. In this rapidly changing world of tools and platforms, it’s also becoming more and more difficult to know and understand the impact any changes that you make will have on your development environment.

At the end of the day, you told us that you prefer to install only the set of tools that you need to become productive and then add to the tools installed at a later date. This led us to explore the many ways that we could help you have a higher degree of confidence that you are getting only what you need and want for your development tasks.

As Tim Sneath mentioned in his blog post “Faster, Leaner, Focused on Your Development Needs: The New Visual Studio Installer,” the new installer makes it possible for you to get going quickly by installing the bare minimum, fast. The minimum footprint of Visual Studio has been reduced so there is lesser impact on your system. You can quickly get started by selecting one or many of the featured bundles that support the development tasks that you’re doing. This means you only get the features & tools that you need. Think of these bundles as pre-defined installation configurations that enable you to get productive quickly for your task by providing the core tools, frameworks, SDKs, dependencies, etc. that are necessary to edit, build, debug, and test your applications.

If you’ve already tried out the Visual Studio “15” Preview with the new installer, you may have noticed that we’ve shipped 4 bundles for you to try (.NET desktop development, Game development with Unity, Python, and C++). Pick only the bundles that you need and then sit back while your environment is setup in minutes, not hours.

Bundles in the new lightweight installer in Visual Studio 15 Preview

You can always come back to add more bundles (via “Modify”) or remove any from your machine that you no longer need.

Now you might be wondering, “How will you decide what bundles are available?” or “Will there be a bundle for everything in Visual Studio?” Those are great questions!

How will the Visual Studio team decide what bundles are available and what’s in them?

Each bundle represents a common development task that’s already supported in Visual Studio (based on usage, telemetry and developer scenarios). We will be adding more bundles over the coming months to support development tasks like Universal Windows app development, .NET web development, and mobile development (with Cordova, Xamarin, and C++). You’ll start to see new bundles appear over the coming months and find that these bundles will become more granular, which was preferred by the developers we talked with (over being coarsely grained with a large number of features, components and packages).

As for what goes in each of these bundles, the product teams who have designed and built some amazing tools and experiences for these scenarios are working to build out these bundles so that they only require the minimum set of core packages, but also provide a set of recommended features, tools or frameworks that might complement your development experience or enhance your application. We’re also continuing to break down large components in Visual Studio to ensure that you truly only get what you need.

What if a bundle doesn’t suit my needs

We realize that these bundles certainly aren’t going to be one-size fits all so that’s why we want to make sure you can tailor a bundle to meet your needs in the future (not available in today’s preview). For example if you need a specific version of an SDK. You’ll also be able to add additional features as well to your bundles for tools that aren’t specific to bundles (e.g. diagnostics tools, git command line tools, etc.).

At the end of the day, we want to make you more confident that you’re getting only what you need and reduce the likelihood of installing something you don’t need. So after you’ve tried out the new installer experience, we encourage you to share your thoughts with us via ‘Send us feedback’ in the new installer! Are there bundles that you’d like to see us add or support? What are some of the difficulties or challenges you have when settings up your development environment or keeping it up-to-date? Tell us!

Cathy Sullivan, Senior Program Manager, Visual Studio Platform
@cathysull

Cathy Sullivan is a Senior Program Manager on the Visual Studio Platform team focused on helping developers be more productive in the IDE. Before her current role, she worked as a developer in Microsoft IT for many years building internal enterprise applications using a wide variety of Microsoft technologies and of course, Visual Studio. When she’s not designing the next Visual Studio or out chatting with customers, you can find her speaking on what’s new and tips & tricks in Visual Studio at conferences like VSLive!, BUILD, and Ignite.

UI development made easier with XAML Edit & Continue

$
0
0

Making UI is easy. Making GREAT UI can be a bit trickier. Visual Studio wants to be the best in class tool for designing good user experiences. We have been spending a lot of our time looking at the challenges you face, learning from them, and being inspired by watching you try to solve UI problems. As a result, we have made some improvements to Visual Studio tools in both Visual Studio 2015 Update 2 and Visual Studio “15” Preview, and we are excited to see what you think of them.

XAML Edit & Continue

The biggest improvement for runtime debugging is Edit & Continue for XAML apps. This feature now lets you change your XAML while an app is running and get immediate feedback. On its own, Edit & Continue is amazingly powerful. When combined with the UI Debugging tools, developers can fix problems faster than ever before.

Take a look at this app:

Base window of the app

You’ll see that I’ve got a little text box that says “Urgent”, but that color looks more like a Warm and Fuzzy pink instead of a deep Red that conveys urgency. I need to fix that. Well, in reality, that color is a resource that’s being consumed by a TextBlock that’s defined in the datatemplate for the Listbox. If I weren’t already familiar with this code, figuring that whole chain out can be a bit daunting. But, with the UI Debugging tools, it’s easy.

  1. I need to enable In-App selection. At the top of my app, there’s a new In-App tool menu that lets me turn In-App selection on. I could do it from VS too, but this is quicker. Once it’s on, I can simply click on the Urgent element in my running app.Turn on IAS and Pick Urgent
  2. Click the Go To Live Visual Tree button in the Runtime tools, Visual Studio jumps to the foreground and I can see my element. The small icon next to the element says that I have source for that particular element and I can click it to go to that element.
  3. When I go to source, you can see that this particular element is in a control template. That’s not a problem for Edit & Continue. I just slide over and see that I’ve got a Style defined here. I just click that and hit F12 to jump into my Style.
  4. Well, it looks like this style is using a resource, so I can dive into that too. I can put the cursor into the string that says “UrgentBackgroundColor” and hit F12 again. Finally, this finds the value. You can imagine how finding this manually might be tricky, but F12 makes it really easy.
  5. Now I can just change the value of the resource and the change is immediately reflected in the running app.

Change value of resource in code

XAML Edit & Continue is available for both WPF projects as well as apps that target the Universal Windows Platform. If you want to work with Universal Windows Platform apps, you’ll need to have the latest insider build (version 14295 or later) installed and make sure you’ve got the latest SDK (also version 14295). Additionally, you can make more kinds of edits in a WPF project today, but we’re committed to making sure that Universal Windows app developers will have the same great experience.

Solving Accessibility Bugs

If you’re like most developers, when you start developing the UX of your app, you look at your elements in a visual way. You ask yourself how to make a visually understandable app that has flow and cues that help your users interact. But if you want to make a truly great app, you need to be accessible to users who interact with your app from a different perspective. This means that you need to be able to work with AutomationPeers. Unfortunately, AutomationPeers are runtime concepts and working with them can be difficult. For more details on AutomationPeers, take a look at http://microsoft.com/enable.

Live Property Explorer with Accessibility We recognize the challenge here and with Visual Studio 2015 Update 2, the Live Property Explorer now exposes the AutomationPeers on your UIElements. In a new scope at the top, the patterns declared by your controls as well as the properties exposed by the AutomationPeers are displayed. These are the properties and behaviors that your controls expose to assistive technologies like Narrator and represent the view that everyone has access to.

The properties in your AutomationPeers are databound to properties in your elements. This means that if you want the AutomationPeer to expose the correct value, in most cases, you need to make sure the AutomationProperties attached DependencyProperty has the right value. For instance, HelpText is a property that’s exposed by the AutomationPeer to give additional information about your control to the user. When that property is queried from Narrator, UWP will check the AutomationProperties.HelpText DependencyProperty and pass its value back to Narrator. So, if you don’t like the HelpText that’s showing in the LivePropertyExplorer, you can fix it by setting AutomationProperties.HelpText on the element.

Summary

We’re very proud of the UI Debugging tools that we delivered in Visual Studio 2015, and with these changes, we feel like we’re making big strides toward the best UI debugging workflow on any platform. If you’d like to see these features in action, check out my Channel 9 video I recorded for the //build conference that gives a good overview of what you can do.

These improvements have come from your feedback, so please keep sending them. If you’ve got something you want us to hear, we’re constantly watching UserVoice and the Report a Problem option in Visual Studio.

Dante Gagne, Program Manager II, XAML Experiences
@DanteGagne

Dante was one of the first testers for Expression Blend and his love of XAML has never faded. When he’s not playing board games or walking in the sunshine, he’s designing features in Visual Studio. His passion lies in diagnostics, accessibility, and localization with an eye toward UX design and polishing.

Visual Studio TACO Update 8 and new Ionic templates

$
0
0

Last week we announced many new Visual Studio updates, including Ionic support in the Cordova Extension for Visual Studio Code, and Visual Studio Tools for Apache Cordova (TACO) Update 8. In this post, I’ll highlight the main changes included in the Visual Studio TACO Update 8 release – which you already have If you installed Visual Studio 2015 Update 2!

Along with the new VS TACO update, we’ll also discuss some new templates available to you now, using the very popular Ionic framework.

In this TACO release we focused on two things:

  • Providing greater control over your development environment.
  • Providing prescriptive guidance for plugins and templates.

For a complete list of the changes in this release, see the VS TACO Update 8 release notes.

Take command of your environment

Open source technologies can sometimes move at a breakneck speed. For example, each month for the past year there’s been an update to at least one component of the Cordova tool chain (check out the Cordova blog). For some, that kind of innovation can be exciting and open new worlds of possibilities. For others, the pace of updates can be dizzying and introduce an element of unpredictability. With this release, we introduce features to help this second group enforce tighter control over the development environment.

In updates 7 and 8, we introduced “sandboxing” of two core 3rd party dependencies: Node.JS and the Node Package Manager (NPM). These tools are essential to make Cordova work. To ensure they work reliably, we now automatically install private versions of these tools with TACO. This guarantees that when you build with TACO, you’re building with a reliable, well-tested version of Node and NPM.

Of course, if you prefer to use the global copy of Node & NPM, then there’s a configuration setting that lets you turn off this sandboxing support.

What exactly is sandboxing doing?

When you use the sandboxed version of NPM and Node, Visual Studio:

  • Downloads copies of Node 0.12.9 and NPM 2.14.9
  • Places those copies into the local AppData folder (currently these are downloaded into %APPDATA%\Microsoft\VisualStudio\MDA\vs-npm)

… then, when Visual Studio builds a Cordova project or downloads a Cordova plugin, it uses these sandboxed versions of Node and NPM. This approach doesn’t prevent you from using a different version of Node or NPM from the command line. When you use Cordova or other Node-based tools from the command line, you’ll still be using the same globally installed versions of Node & NPM that you’d use today. You can also rest assured knowing that your Visual Studio project and files will not be made incompatible with other versions of Node/NPM when use use this feature.

One final note: These sandboxed versions are not used to manage your packages in Visual Studio – for those you would configure the External Web Tools which are already using their own private copies of Node and NPM.

Play nice with network proxies

Another important change in this release is the addition of automatic proxy configuration. If you have a network proxy configured on your computer (common in many corporate networks), the Cordova tooling will pick up that configuration and automatically apply it when working with NPM.

The proxy settings used are the same ones you would set at the system level in Windows, in the Proxy system settings of Windows 10 (or network settings within Internet Explorer). The proxy will be used any time NPM is used during a build in the Cordova tooling, or to acquire plugins. Again, this proxy is not the same as the one used to manage dependencies in Visual Studio and managed via the External Web Tools settings.

Head “True North” with the right plugins

When building out almost any app with Cordova, you’ll be using plugins to get at native device capabilities and services. Visual Studio provides a list of suggested core plugins when you open the Cordova config.xml file in a Cordova project. In this release we’re making our largest update yet. You may be asking “How do we decide what makes a Core plugin?” – good question! A plugin is included in this list when:

  • Enterprises commonly use the plug-in to access device features, improve security, store data, etc.
  • The plugin passes validation tests to ensure mainline scenarios work for Android, iOS, and Windows platforms (where the platform enables it).

Here are the new plugins added to the Core list in this release, and where you can learn more about them:

  • Azure Mobile Apps
    This library enables you to develop scalable and secure cordova mobile apps hosted in Microsoft Azure. You can incorporate structured storage, user authentication and push notifications in minutes. For more information, check out http://azure.microsoft.com.
  • Azure Mobile Engagement
    This plugin integrates the Azure Mobile Engagement (AZME) SDK into your Cordova Application. It supports both reporting and push features. For more information, see the Azure Mobile Engagement documentation.
  • Bluetooth LE
    Use the Bluetooth Low Energy plugin to connect your Cordova app to new Bluetooth devices like heart rate monitors, thermometers, etc…
  • CodePush
    This plugin provides client-side integration for the CodePush service, allowing you to easily add a dynamic update experience to your Cordova app(s).
  • HockeyApp
    This plugin exposes the HockeyApp SDK for iOS and Android. HockeyApp brings Mobile DevOps to your apps with beta distribution, crash reporting, user metrics, feedback, and powerful workflow integrations. Learn more at http://www.hockeyapp.net.

Beyond getting started: get the New Ionic templates & samples

We’ve heard from many developers that you want design and architectural guidance when getting started. When getting started there can be a lot to decide – what design patterns will I use? What UI components can I choose from? How do I build out multi-page navigation?

To help you quickly get into prototyping and building your ideas, we’re providing templates and samples using the Ionic framework.

Ionic is a framework built on top of Cordova and optimized for mobile app development using web technology. Beyond providing structure and guidance for your apps, it gives you:

  • Controls that are optimized for performance on mobile devices.
  • A UI framework that adapts to the look-and-feel of the native platform (e.g. tabs on bottom for iOS, on top for Android).
  • Web components that abstract away the HTML and CSS so that you can focus on business logic.
  • A vibrant community of developers working with Ionic every day to build out Cordova-based apps.

Learn more about Ionic in their excellent documentation site.

You can download the Ionic templates and an Ionic + Azure sample app from the Visual Studio Gallery, right now:

Ionic Project Templates for Visual Studio

The home screen for the Ionic Tabs template A set of three templates, providing examples of using the Ionic framework with features like tab navigation, animation, and common controls.The three templates included in this set are the same ones you get when using Ionic’s own Command Line Interface:
  • Blank
  • Side Menu, and
  • Tabs

AzureIonic To-Do List Sample App

The default home screen for the Azure Ionic To-Do List sample app An Ionic To-Do list sample app integrated with the Azure App Services.It creates the code structure and adds the dependencies to your project so that you can start building apps right away

Pair these with the IonicPack extension and you can also see IntelliSense suggestions for Ionic APIs as you code.

IntelliSense with automatic suggestions for ion elements

In addition to Ionic, please provide us feedback (vscordovatools -at- microsoft.com) on what kind of templates you would like to see in the VS gallery.

What’s next?

Last summer we released the first version of these tools and since then we’ve worked hard to release updates every 1-2 months. To help improve our next update, we’d love to have you download Visual Studio 2015 Update 2 with TACO Update 8 and give us your thoughts.

Join the conversation about TACO, ask questions, and provide answers on Stack Overflow (using the visual-studio-cordova tag). To stay up to date on these updates, news in the Cordova world, and more, follow us on Twitter (@VSCordovaTools). And as always, feel free to email us with your feedback (vscordovatools –at- microsoft.com), we enjoy hearing from you!

Jordan Matthiesen (@JMatthiesen)
Program Manager, Visual Studio Tools for Apache Cordova

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, 2 dogs, 1 cat, and a cup of coffee.

New and Noteworthy Extensions for Visual Studio – March 2016

$
0
0

It was great to see the excitement around last month’s post and I heard from many of you that you have discovered some new extensions. March has been another great month for the Visual Studio ecosystem. We added over 100 extensions to the Visual Studio Gallery.

To help you enjoy this creativity from the community, every month or two I’ll be introducing some of the new extensions that caught my eye. Here are the highlights for this month:

Also if you missed our earlier post, we recently open sourced the Productivity Power Tools. Besides being a great tool for developers, they make great samples for real world extensions. So head over to the repo and take a look.

Comment Remover by Mads Kristensen

Download Comment Remover from the Visual Studio Gallery

Last time, I showed you an extension that helped you with your xml comments. If you are not a friend of extensive comments, I got something different this time. An extension to remove all comments from your code. It does not only support removing comments from C# files, but also json files. Like almost all of Mad’s extensions, the source is available on GitHub.

Before Comment Remover After Comment Remover

Smooth Scroll by Lkytal

Download Smooth Scroll from the Visual Studio Gallery

This is great example of a nice and simple extension. It enables smooth scrolling in the editor. Who would have thought that this is something you can improve through an extension? No screenshot here. You got to try it out and feel it yourself :).

AsmDude by H.J. Lebbink

Download AsmDude from the Visual Studio Gallery

I don’t claim to regularly look at assembly code, or even write it myself, however I love this little project to add assembly (ASM) syntax support to Visual Studio. The project is only one month old, but is being updated regularly with new features. You can see the full progress on the GitHub repo. Maybe this is even something you are interested in contributing to, if you are passionate about assembly.

ASM Dude

Microsoft Band Tile Designer Preview

Download Microsoft Band Tile Designer Preview from the Visual Studio Gallery

This will come in handy, if you are a Microsoft Band developer. The extension provides an item template that makes it easy to add a Band tile to your app. Once you add the template, you can use the included designer and toolbox items to put together your tileby enabling selections , icons, and button presses.

Microsoft Band Tile Designer Preview

Top 10 Popular Extensions from March 2016

As I mentioned in the beginning, we added a great number of new extensions in March. Out of the new ones added, here are the 10 most popular ones — give them a try!

  1. TypeScript 1.8.4 for Visual Studio 2015
  2. DNX Angular2 Example project
  3. Microsoft Band Tile Designer Preview
  4. DNX Console Application
  5. Qlik Analytics for Visual Studio
  6. Snippet Essentials
  7. AsmDude
  8. C# Mapping & Mapper Class Generator
  9. CodeBeautifier
  10. AzureIonic To-Do List Sample App

Build your own

These few examples of simple integrations show a wide range of what you can build through Visual Studio’s extensibility framework. If that piqued your interest, we just launched a new site with some great tutorials and videos on how to get started with Visual Studio extensions: VisualStudio.com/integrate. Take a look and let me know how it goes. I’m also hanging out in our extendvs Gitter chat as @bertique. Come on by and give me a shout.

Michael Dick, Senior Program Manager, Visual Studio
@midi2dot0

Michael Dick is a Program Manager working on the Visual Studio team. Before joining Microsoft, Michael worked at a variety of tech companies and is passionate about developer tools. He is currently focusing on the ecosystem and extensibility experience for Visual Studio.

Introducing R Tools for Visual Studio

$
0
0

R is a programming language that is widely used by data scientists, and developers seeking a more powerful tool to work with data. While data scientists use R to write programs, their work product is rarely the program itself. Instead, they produce reports or presentations from the results generated by their R program to help influence or drive business decisions.

R Tools for Visual Studio (RTVS), currently available as a Public Preview release, is a new tool from Microsoft for creating R programs using Visual Studio. RTVS is free, and Open Sourced under the MIT license. It can be downloaded by following the instructions here, and you can read our documentation here.

If you prefer videos, here is a walkthrough of some of the top features of RTVS:

A Quick Tour of R

R is a strong, dynamically typed, interpreted language that draws a lot of inspiration from other languages. It is a functional language that heavily draws from Scheme and S. It is beyond the scope of this blog post to discuss the semantics of the language, but I strongly encourage you to read these two freely available online books for a deep introduction to the language:

  1. Advanced R
  2. The R Inferno

The remainder of this blog post is a quick tour of R, its libraries, and RTVS with the goal of inspiring you to learn more about the language, its libraries, and how it can be a useful addition to your toolbox for analyzing data.

The quickest way to get started with R is through its Read-Eval-Print Loop (REPL), which lets you send commands interactively to the R interpreter. In RTVS, we surface the R REPL through the R Interactive Window.

As you can see, you can type 3 + 4 and have the result immediately computed by R; no compilation step necessary:

3 + 4
[1] 7

R’s strength is working with data. Therefore, it’s not surprising that the most heavily used data structure in R is the R dataframe, which is a convenient way of working with tabular datasets. There are many ways of getting data into an R dataframe, but perhaps the easiest is to read it from a URI. Below, you’re reading a CSV file containing data about locations of airports in the United States from Github:

usa_airports <- read.csv("https://raw.githubusercontent.com/jflam/VSBlogPost/master/usa_airports.dat", stringsAsFactors = TRUE)

In R, you assign variables using the <- operator, and you invoke functions using parenthesis. So in the code above, you’re invoking theread.csv() R library function, passing in the URI to the CSV file.

You can get help on any R library function by using the ? operator from the REPL. For example, to get help on the read.csv API, just type?read.csv in the REPL.

Next, you’re using another R function, head() to display a summary of the first 5 lines of the file:

head(usa_airports)

     X   ID                            name         city       country
1  318 6891           Putnam County Airport  Greencastle United States
2 1104 6890      Dowagiac Municipal Airport     Dowagiac United States
3 1121 6889     Cambridge Municipal Airport    Cambridge United States
4 1470 6885  Door County Cherryland Airport Sturgeon Bay United States
5 1507 6884    Shoestring Aviation Airfield Stewartstown United States
6 1617 6883 Eastern Oregon Regional Airport    Pendleton United States
  IATA_FAA ICAO      lat        lon altitude timezone DST
1      4I7  \\N 39.63356  -86.81381      842       -5   U
2      C91  \\N 41.99293  -86.12801      748       -5   U
3      CDI  \\N 39.97503  -81.57758      799       -5   U
4      SUE  \\N 44.84367  -87.42156      725       -6   U
5      0P2  \\N 39.79482  -76.64719     1000       -5   U
6      PDT KPDT 45.69500 -118.84139     1497       -8   A
               Region
1    America/New_York
2    America/New_York
3    America/New_York
4     America/Chicago
5    America/New_York
6 America/Los_Angeles

The head function is fairly primitive, as it just generates text-based output. That’s not surprising since R has been around since 1993. Surely we can do better in 2016?

As it turns out, we can. There are a lot of libraries in R that bind the R programming language to the most powerful hardware-accelerated rendering platform on the planet: HTML. In R, this is accomplished through a set of Open Source libraries known as htmlwidgets for R. Below is the same dataframe rendered using the DataTable widget. We generate an HTML page that contains all of the data from the usa_airports dataframe, and open up a browser window using the default browser that shows an interactive table containing the data. The data really is interactive; try typing “Seattle” into the search box to see it filter the data to only airports in Seattle in real time, or click on column headings to sort by that column.

library(DT)
datatable(usa_airports[,c("name", "city", "country", "IATA_FAA", "lat", "lon", "altitude")])

(to get to the interactive table, please click on the image below)

dataframe rendered using the DataTable widget

If you prefer to manipulate your data programmatically, you can easily do so as well. A popular library for manipulating data is the dplyr library by Hadley Wickham. Let’s say that we wanted to generate a list of airports located near New York city. You can do this easily via the subset function from dplyr:

library(dplyr)
new_york_airports <- subset(usa_airports, city == "New York")
datatable(new_york_airports[,c("name", "city", "country", "IATA_FAA", "lat", "lon", "altitude")])

(to get to the interactive table, please click on the image below)

Example of interactive table

You can also do more sophisticated filtering: e.g., select all the airports in NYC at below 25 feet elevation, ordering the rows by altitude and selecting only the name, altitude, latitude and longitude of the airport:

low_nyc <-
    usa_airports %>%
    filter(city == "New York" & altitude < 25) %>%
    arrange(altitude) %>%
    select(name, altitude, lat, lon)
datatable(low_nyc)

(to get to the interactive table, please click on the image below)

Table with ordering

Here, you see a more sophisticated use of R syntax via the %>% or “pipe” operator. This operator lets you naturally compose operations and read them from left to right. So in the above example, you take the usa_airports dataframe, filtering all of the rows where the conditioncity == "New York" & altitude < 25 holds true, sorting the rows by the altitude column, and selecting only the columns name,altitude, lat, and lon for the result dataset which is stored in the low_nyc variable.

If you’re curious about the implementation of the pipe operator, see the magrittr package, as well as this excellent blog post on how magrittr was influenced by the forward pipe operator from F#.

Plotting data on maps

Once you have your dataset, you can plot it on an interactive map. The leaflet HtmlWidget is an excellent library for generating interactive maps. In the code fragment below, you take the dataframe that contains low altitude New York City airports that you generated via dplyr in the previous step, and using the now-familiar pipe operator send it to the leaflet library, asking it to generate map tiles and plotting circles on them using the lon and lat columns for the positions of the circles, and using the name column for the popup that appears when the user clicks on a circle.

library(leaflet)
map <-
    new_york_airports %>%
    leaflet() %>%
    addTiles() %>%
    addCircles(~lon, ~lat, popup = ~name, radius = 200, color="blue", opacity = 0.8)
map

Map showing low altitude New York City airports

Wrapping up the tour

There is lots more to learn about R than I have time or space for in this blog post. However, hopefully what I’ve done is whet your appetite to learn more about R. There are many, many things that I haven’t covered in this blog post, so I’ve included a bunch of resources below to help you better understand R and its libraries.

Introduction to the R Programming Language

  1. An Introduction to R: written by David Smith, who currently works at Microsoft on the R team.
  2. Introduction to R Programming: a free online class created by Microsoft to help you learn R.

Key R Libraries

  1. dplyr is the data manipulation “d plyer” library that is a key tool for helping you quickly manipulate your data into a form that you can analyze.
  2. ggplot2 is a plotting library that builds on the grammar of graphics ideas by Hadley Wickham
  3. ggvis is a plotting library that generates plots on an HTML canvas, using the same grammar of graphics semantics as ggplot2
  4. rodbc lets you read data from an ODBC compliant database like SQL Server

Microsoft R products

Microsoft has a deep commitment to R, and provides a full-stack R solution for your applications, complete with tooling, runtimes and libraries.

  1. R Tools for Visual Studio is Microsoft’s free, Open Source tooling for R development in Visual Studio.
  2. Microsoft R Open is Microsoft’s cross-platform (Windows, OS X, Linux) distribution of R. It combines integration with Intel’s Math Kernel Library for accelerated linear algebra computations, as well as integration with the checkpoint package to ensure that users of your R programs will be guaranteed to be able to run your R program using the same version of the R libraries that you used to create it.
  3. Microsoft R Server is Microsoft’s libraries for accelerated R computation on datasets that don’t fit in system memory. It builds on top of the benefits of Microsoft R Open, and adds

One more thing …

We’ve talked about a bunch of things in this brief blog post. However, perhaps the coolest thing about this blog post is … I wrote it in Visual Studio. The document was written in RMarkdown, a dialect of the popular Markdown markup language, which supports embedding executable R code snippets within it.

If you want to look at the source code for it, you can get it at my Github.

RTVS in Visual Studio

John Lam, Principal Program Manager, Visual StudioJohn Lam is the Program Manager for R Tools for Visual Studio, Python Tools for Visual Studio, and the Azure Jupyter Notebook Service. I work with an awesome team of devs building tools for data scientists. You can reach me on Twitter @john_lam, or on Github. Oh, and I have jobs for Python devs. Hit me up at jflam@microsoft.com.

Previewing Salsa – the New JavaScript Language Service in Visual Studio "15"

$
0
0

The new JavaScript language service, codenamed “Salsa”, is now available in Visual Studio “15” Preview. Language services are responsible for providing syntax highlighting, completion lists, signature help, and other tooling features for a specific language inside the IDE. Salsa delivers many improvements over the existing JavaScript language service such as improved module support, full ES6/ES7 syntax coverage, and JSX support.

Why a new language service?

Until now, JavaScript editing in Visual Studio used an execution model for the language service. Essentially, as you typed, a JavaScript engine constantly executed your code to provide “runtime-like” accuracy in completion lists, signature help, and other tooling features. The execution engine was great for handling the more dynamic aspects of the language, however, it also introduced significant complexity and inconsistency. For example, the execution engine is subject to timeouts from long running code such as nested loops and http requests. In these scenarios, the language service was unable to provide any IntelliSense support.

Salsa is powered by the same static analysis that provides type inference in TypeScript. By basing the new language service on static analysis we hope to accomplish a number of goals. First, static analysis provides a consistent experience for JavaScript across all Visual Studio setups by eliminating runtime bailouts. Second, JavaScript editing experiences can benefit from existing TypeScript definition to provide richer IntelliSense. Third, JavaScript inherits support for features from ES2015, ES2016 and beyond that currently exist in TypeScript. Finally, we can be more agile and add new features more often by unifying our code bases.

Enabling Salsa in Visual Studio “15” Preview

Salsa is not enabled by default because it is a preview, but please try it out and let us know what you think. To enable Salsa in Visual Studio “15” Preview, save the below snippet as a local file named salsa.reg, run it to update the registry, and then restart Visual Studio. (Do the same with value 00000000 instead of 00000001 to disable at any point).

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\15.0\TypeScriptLanguageService]
"UseTypeScriptExperimental"=dword:00000001

New features provided by Salsa

ES6 and commonjs modules

Salsa understands the ES6 and commonjs module formats (both top user voice requests) and can provide IntelliSense across modules.

Assuming the file math-util.js exists:

/**
* Returns square of a number.
* @param {number} x Number to square.
*/
export function square(x) {
return x * x;
}

Imports in other files are resolved and IntelliSense is provided.

Imports resolved and IntelliSense provided

JSX support

Salsa adds rich support for the JSX syntax including colorizing and completions inside JSX elements. This provides an excellent editing experience when working with modern frameworks that utilize JSX such as React.

JSX Support

Types from TypeScript definitions

Because the core of the new language service is also used to power TypeScript, JavaScript editing in Visual Studio can now benefit from the rich type information that the TypeScript community has created for popular JavaScript libraries and frameworks. This type of information is stored in TypeScript definition files, or.d.ts files, and can be consumed by Salsa to provide improved JavaScript IntelliSense.

Types from TypeScript Definitions

By default, the Salsa language service will try to detect which JavaScript libraries are in use and automatically download and reference the corresponding .d.ts file that describes the specific library. For more information on this feature, check out the wiki on GitHub.

Planned Features

One of the features in Salsa that we are actively working on is to improve the automatic type acquisition by the language service. Currently, the JavaScript language service that is shipped as a part of the preview relies on a third party library to search DefinitelyTyped for .d.ts files and we realize that the experience with the same is not optimal. To remove the third party dependency and make the end-to-end experience smoother, we are working on building the type acquisition capability directly into the language service itself. We are also working on improving coverage of the JSDoc spec to include @constructor and @typedef. You can see a full list of issues we are working through on GitHub.

Notable Changes

As Salsa is a completely new language service, there are a few changes in functionality that I would like to call out. One such change is that VSDoc format for comments will no longer light up the language service in favor of the JSDoc format, which is easier to author and becoming universally understood. Another key difference is that while the old language service supported an extensibility model that allowed custom extensions to be developed for specific 3rd party JavaScript libraries, Salsa no longer supports these extensions in favor of TypeScript definition files which encourage community collaboration and are easier to keep up-to-date.

Send us feedback!

For more in depth usage information, feature explanations, and details on specific behaviors in Salsa, check out our wiki page Using the Salsa Preview in Visual Studio 15 Preview.

The end goal of Salsa is to provide a JavaScript editing experience that is reliable and delightful, but it is still very much a work in progress. So please download Visual Studio “15” Preview, give Salsa a spin, and tell us what you think by commenting on the Salsa Feedback issue on GitHub!

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.

What’s new in VS 2015 Update 2 for Universal Windows developers

$
0
0

UPDATE: UWP Tools (1.3.1) will be live ~2:00 pm PST

At //BUILD/, we announced the availability of Visual Studio 2015 Update 2 that includes a significant update to the tools for building Universal Windows apps. These tools now support building apps for many new classes of Windows 10 devices such XBOX, HoloLens, and Surface Hub (in addition to Phone, PC, and IOT). Today, we are releasing yet another update to the Universal Windows Platform (UWP) tools that includes our most significant update to .NET since the first release of these tools. You can install the latest tools by running Visual Studio 2015 setup and selecting the “Tools (1.3.1) and Windows 10 SDK (10586)” option under Universal Windows App Development Tools.

In this post, I’ll highlight some of the key updates for Universal Windows app developers in Visual Studio 2015 Update 2.

.NET Native & .NETCore Update

We appreciate all the feedback.NET UWP developers are sharing with us on dotnetnative@microsoft.com. Your feedback has helped us identify and fix critical issues in .NET Native. With Universal Windows App Development Tools (1.3.1), we are releasing

an updated .NET Native toolchain (23914.00) with over 600 bug fixes to address issues that, mostly reported by customers. We have also made several optimizations to improve the build throughput for .NET Native compilation in VS.

In addition, we are releasing the Microsoft.NETCore.UniversalWindowsPlatform 5.1.0 nuget package update for the .NETCore framework targeting Universal Windows Platform.

Our recommendation is to use the latest .NET Native toolchain (23914.00) with Microsoft.NETCore.UniversalWindowsPlatform 5.1.0 nuget package for all your existing and new UWP apps. You can download and reference the updated package in your UWP projects using the NuGet Reference Manager in Visual Studio.

Universal Windows SDK Version Picker

On creating a new Universal Windows app project in Visual Studio 2015 Update 2, you can now specify the version of the SDK you are targeting, as well as the minimum version of the platform that your application requires to run on.

Version Picker Dialog

Target version specifies the version of the UWP platform that your project is targeting and therefore the set of APIs available to your app. Our recommendation is to choose the most recent Windows 10 (build: 10586) version possible to target the latest APIs in the platform.

Minimum version specifies the lowest version of the UWP platform your app can run on. Our recommendation is to choose Windows 10 (build: 10240) to target the widest range of Windows 10 devices that exist in the market.

Once you have created a project, you can also update the Target and Minimum version for your app using the project’s application properties.

Store Package Wizard Improvements

With VS 2015 Update 2, if your app is already associated with the Universal Store, package wizard Studio will now persist the appx package configuration and will allow you to create an appx package for your UWP project without requiring you to sign-in again.

Create App Packages Dialog

Summary

VS 2015 Update 2 is an exciting release for Universal Windows app developers with better quality and new features. Developers can easily install VS 2015 Update 2 on top of VS 2015 RTM or VS 2015 Update 1 and continue to use Universal Windows tools to build apps to be shipped to the Universal Store.

As always, we welcome your feedback. For reporting problems, please use the Report a problem option in VS. For suggestions, share your ideas through UserVoice.

Navit Saxena, Senior Program Manager, XAML Experiences
@saxenanavitNavit is a Program Manager in the XAML Experiences team in Visual Studio. He is passionate about building tools for XAML developers and loves engaging with the customers to get their feedback so he can keep improving the tools in Visual Studio.

Visual Studio TACO Update 8 and new Ionic templates

$
0
0

Last week we announced many new Visual Studio updates, including Ionic support in the Cordova Extension for Visual Studio Code, and Visual Studio Tools for Apache Cordova (TACO) Update 8. In this post, I’ll highlight the main changes included in the Visual Studio TACO Update 8 release – which you already have If you installed Visual Studio 2015 Update 2!

Along with the new VS TACO update, we’ll also discuss some new templates available to you now, using the very popular Ionic framework.

In this TACO release we focused on two things:

  • Providing greater control over your development environment.
  • Providing prescriptive guidance for plugins and templates.

For a complete list of the changes in this release, see the VS TACO Update 8 release notes.

Take command of your environment

Open source technologies can sometimes move at a breakneck speed. For example, each month for the past year there’s been an update to at least one component of the Cordova tool chain (check out the Cordova blog). For some, that kind of innovation can be exciting and open new worlds of possibilities. For others, the pace of updates can be dizzying and introduce an element of unpredictability. With this release, we introduce features to help this second group enforce tighter control over the development environment.

In updates 7 and 8, we introduced “sandboxing” of two core 3rd party dependencies: Node.JS and the Node Package Manager (NPM). These tools are essential to make Cordova work. To ensure they work reliably, we now automatically install private versions of these tools with TACO. This guarantees that when you build with TACO, you’re building with a reliable, well-tested version of Node and NPM.

Of course, if you prefer to use the global copy of Node & NPM, then there’s a configuration setting that lets you turn off this sandboxing support.

What exactly is sandboxing doing?

When you use the sandboxed version of NPM and Node, Visual Studio:

  • Downloads copies of Node 0.12.9 and NPM 2.14.9
  • Places those copies into the local AppData folder (currently these are downloaded into %APPDATA%\Microsoft\VisualStudio\MDA\vs-npm)

… then, when Visual Studio builds a Cordova project or downloads a Cordova plugin, it uses these sandboxed versions of Node and NPM. This approach doesn’t prevent you from using a different version of Node or NPM from the command line. When you use Cordova or other Node-based tools from the command line, you’ll still be using the same globally installed versions of Node & NPM that you’d use today. You can also rest assured knowing that your Visual Studio project and files will not be made incompatible with other versions of Node/NPM when use use this feature.

One final note: These sandboxed versions are not used to manage your packages in Visual Studio – for those you would configure the External Web Tools which are already using their own private copies of Node and NPM.

Play nice with network proxies

Another important change in this release is the addition of automatic proxy configuration. If you have a network proxy configured on your computer (common in many corporate networks), the Cordova tooling will pick up that configuration and automatically apply it when working with NPM.

The proxy settings used are the same ones you would set at the system level in Windows, in the Proxy system settings of Windows 10 (or network settings within Internet Explorer). The proxy will be used any time NPM is used during a build in the Cordova tooling, or to acquire plugins. Again, this proxy is not the same as the one used to manage dependencies in Visual Studio and managed via the External Web Tools settings.

Head “True North” with the right plugins

When building out almost any app with Cordova, you’ll be using plugins to get at native device capabilities and services. Visual Studio provides a list of suggested core plugins when you open the Cordova config.xml file in a Cordova project. In this release we’re making our largest update yet. You may be asking “How do we decide what makes a Core plugin?” – good question! A plugin is included in this list when:

  • Enterprises commonly use the plug-in to access device features, improve security, store data, etc.
  • The plugin passes validation tests to ensure mainline scenarios work for Android, iOS, and Windows platforms (where the platform enables it).

Here are the new plugins added to the Core list in this release, and where you can learn more about them:

  • Azure Mobile Apps
    This library enables you to develop scalable and secure cordova mobile apps hosted in Microsoft Azure. You can incorporate structured storage, user authentication and push notifications in minutes. For more information, check out http://azure.microsoft.com.
  • Azure Mobile Engagement
    This plugin integrates the Azure Mobile Engagement (AZME) SDK into your Cordova Application. It supports both reporting and push features. For more information, see the Azure Mobile Engagement documentation.
  • Bluetooth LE
    Use the Bluetooth Low Energy plugin to connect your Cordova app to new Bluetooth devices like heart rate monitors, thermometers, etc…
  • CodePush
    This plugin provides client-side integration for the CodePush service, allowing you to easily add a dynamic update experience to your Cordova app(s).
  • HockeyApp
    This plugin exposes the HockeyApp SDK for iOS and Android. HockeyApp brings Mobile DevOps to your apps with beta distribution, crash reporting, user metrics, feedback, and powerful workflow integrations. Learn more at http://www.hockeyapp.net.

Beyond getting started: get the New Ionic templates & samples

We’ve heard from many developers that you want design and architectural guidance when getting started. When getting started there can be a lot to decide – what design patterns will I use? What UI components can I choose from? How do I build out multi-page navigation?

To help you quickly get into prototyping and building your ideas, we’re providing templates and samples using the Ionic framework.

Ionic is a framework built on top of Cordova and optimized for mobile app development using web technology. Beyond providing structure and guidance for your apps, it gives you:

  • Controls that are optimized for performance on mobile devices.
  • A UI framework that adapts to the look-and-feel of the native platform (e.g. tabs on bottom for iOS, on top for Android).
  • Web components that abstract away the HTML and CSS so that you can focus on business logic.
  • A vibrant community of developers working with Ionic every day to build out Cordova-based apps.

Learn more about Ionic in their excellent documentation site.

You can download the Ionic templates and an Ionic + Azure sample app from the Visual Studio Gallery, right now:

Ionic Project Templates for Visual Studio

The home screen for the Ionic Tabs template A set of three templates, providing examples of using the Ionic framework with features like tab navigation, animation, and common controls.The three templates included in this set are the same ones you get when using Ionic’s own Command Line Interface:
  • Blank
  • Side Menu, and
  • Tabs

AzureIonic To-Do List Sample App

The default home screen for the Azure Ionic To-Do List sample app An Ionic To-Do list sample app integrated with the Azure App Services.It creates the code structure and adds the dependencies to your project so that you can start building apps right away

Pair these with the IonicPack extension and you can also see IntelliSense suggestions for Ionic APIs as you code.

IntelliSense with automatic suggestions for ion elements

In addition to Ionic, please provide us feedback (vscordovatools -at- microsoft.com) on what kind of templates you would like to see in the VS gallery.

What’s next?

Last summer we released the first version of these tools and since then we’ve worked hard to release updates every 1-2 months. To help improve our next update, we’d love to have you download Visual Studio 2015 Update 2 with TACO Update 8 and give us your thoughts.

Join the conversation about TACO, ask questions, and provide answers on Stack Overflow (using the visual-studio-cordova tag). To stay up to date on these updates, news in the Cordova world, and more, follow us on Twitter (@VSCordovaTools). And as always, feel free to email us with your feedback (vscordovatools –at- microsoft.com), we enjoy hearing from you!

Jordan Matthiesen (@JMatthiesen)
Program Manager, Visual Studio Tools for Apache CordovaJordan 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, 2 dogs, 1 cat, and a cup of coffee.

Open Any Folder with Visual Studio “15” Preview

$
0
0

For developers to be truly productive in Visual Studio their code needs to be organized into Solutions and projects, right?

For a long time, that was a core expectation of how Visual Studio works. Unfortunately, this requirement is a bit of a burden for those of you working across multiple tools and platforms. Sometimes Solutions make a lot of sense, sometimes they don’t – even for languages that Visual Studio has great support for. Many developers start a project by searching GitHub to see what problems other developers have already solved that might be similar to the new project they’re working on. Unfortunately, since most of these projects lack a Solution file, onboarding them into Visual Studio is tedious.

For these developers, we are introducing a new way to work with code in Visual Studio. Visual Studio “15” Preview can open any folder and:

  • Edit code.
  • Navigate to symbols.
  • Build.
  • Debug and place breakpoints.

All of this works without any projects or Solutions.

With Visual Studio “15” Preview, you can now clone any of these repos and open the folder directly. This means that you won’t have to spend time creating a new Solution or project file. This in turn ensures that you will be able to launch more quickly into solving your coding problem.

This new capability to open a folder that has an unknown or missing Solution or project file also comes with the following support features:

  • Most popular languages will have Syntax Highlighting and navigation:

Syntax Highlighting And Navigation

  • Many languages can be debugged as well. Node.js, Python, C#, C++, and VB in the Preview, more coming soon.
  • Git version control is integrated with open folders.

There are two ways to open a folder in Visual Studio. In the Windows Explorer context menu on any folder, you can click “Open in Visual Studio”. Or on the File menu, click Open, and then click Folder. Recent folders will be persisted to the MRU.

Open From Windows Explorer Or File Menu

Debugging

No Visual Studio feature would be complete without a robust debugging experience. Visual Studio “15” Preview supports debugging Node.js, Python, MSBuild based project (C#, C++, VB), and any executable with PDBs.

Node.js and Python

  1. Install Node.js or Python Tools or Visual Studio “15” Preview and the Node.js runtime.
  2. Right-click any JavaScript file in the Solution Explorer, and then click “Set as Startup Item.”
  3. Press F5*.

Solution Explorer Right Click Set Up As Startup Item

* For Python, there is an additional step. Click the debug dropdown, and then select “Customize” and add the following property to the file’s launch configuration. Now you are ready to F5. This extra step will be removed in a future release.
“pythonInterpreter”: “c:\\{Path To Python}\\python.exe”

Add property Python Interpreter

MSBuild Projects

  1. In the debug dropdown menu, select the project (or select the project or file that you want to display as the “Startup Item” in the Solution Explorer).
  2. Press F5.

Executables

  1. Select the EXE as the “Startup Item” in the Solution Explorer.
  2. Verify that the PDBs next to the EXE are up to date.
  3. Press F5.

Debugging the Current Document

  1. If you have selected “Current Document” in the debug dropdown, Visual Studio will attempt to debug the current document (for example a script) or the project that it belongs to.
  2. If the current document cannot be debugged, Visual Studio will ask you to select a startup item manually through the Solution Explorer context menu.
  3. This is the default selection in the debug dropdown menu.

Customizing F5

You can customize F5 as well, for instance, passing command line arguments to the debugger process. More customization will be available in future releases.

Command Line Arguments

In the debug dropdown, click “Customize” and add the following property to the file’s launch configuration:
“args”: [“arg1″, “arg2″]

Command Line Arguments

Summary

With Visual Studio “15” Preview, we’ve worked hard to simplify the basics and make it easier for you to launch into the fun stuff. The open folder feature will save you time and headaches in trying to assess whether a repo gets you 80% there or has already solved the problem for you. This feature is also fully extensible. More details and documentation about the features extensibility will be available soon.

There are a few things to keep in mind though. This is a preview release, so the feature still has a few rough edges. The configuration syntax, especially in launch.json, is likely to change in future releases of Visual Studio.

Will Buik – Program Manager, Visual Studio IDE Project and Build

Will is a long time user of Visual Studio. Since his foray into programing with Visual Basic 4, he has loved programming, software development, and hardware hacking.  He loves working on the development tools that he has leveraged for many years.

Improving the C++ Developer Experience in Visual Studio 2015

$
0
0

Harness the speed, performance and portability of modern C++ with the power of Visual Studio 2015 Update 2. This release includes remote debugging on Linux devices, additional support for targeting Android and iOS (and Windows), a state of the art C++ coding experience, faster builds, support for modern C++ and all the power of the Visual Studio.

The release corresponded with Build 2016.

Build 2016

For those who missed sessions online or at the event (or want to relive the moment), you can binge-watch over on Channel 9. C++ developers might want to include these gems:

C++ Developer Experience Improvements

In addition to Build sessions, we shared a number of examples and in-depth articles on the C++ blog:

Keep up with the latest announcements from the C++ team on the C++ blog.

Send Us Your Feedback

As always, we welcome your feedback. For problems, let us know via the Report a Problem option in Visual Studio. For suggestions, let us know through UserVoice.

Thank you.

Eric Battalio, Senior Program Manager, C++
@ebattalio (@visualc)Eric is part of the C++ team at Microsoft. He spends most days talking to developers like you to better understand the software development process and improve the experience.
Viewing all 1076 articles
Browse latest View live


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