Quantcast
Channel: Category Name
Viewing all 10804 articles
Browse latest View live

TFS 2017 Update 1 RC available

$
0
0

Today we released the Team Foundation Server 2017 Update 1 Release Candidate.

This release can be used for a fresh install or to upgrade any supported previous version.  Here’s a chart showing the recommended upgrade paths from various TFS versions (you can substitute TFS 2017.1 in the rightmost column).  The upgrade from any of the more recent versions should be smooth but upgrades from 2017 should be particularly easy.

upgrades

This release is English only.  We’ll provide the localized versions at RTM.

You can read the release notes for all the improvements (and it’s a crazy long list) but here are a few of my favorite highlights:

  • New personalized account home page
  • Tons of pull request improvements
  • NPM support in package management
  • Test impact analysis
  • Versioning for build and release tasks
  • and more…

We’re looking forward to any feedback you have.  At this point the feature set should be complete and we’re just refining it.  We should be starting to lock this release down in the next few weeks and will ship it as soon as it is ready.

Thanks,

Brian

 


New Feature: Delivery Plans for Visual Studio Team Services

$
0
0

Today, we’re announcing a brand new Visual Studio Team Services feature… Delivery Plans.

plans

What are Delivery Plans?
When you’re planning and tracking work, it’s often necessary to see that work across Teams and Projects.  Visual Studio Team Services already provides customizable Kanban boards and Backlogs to help teams get their work done, but it’s often difficult to assemble the data from all those Boards and Backlogs into a comprehensive view.  Delivery Plans changes all that. A Delivery Plan is a view of the work from multiple teams (and multiple projects) laid out on a calendar with each team’s interations. Each row in the view represents the work from a team’s backlog, with each card corresponding to a work item — user story, feature, or epic. As you horizontally scroll through the calendar, work in future (or past) iterations comes into view.

Like the Kanban board, a Delivery Plan is an interactive work board, although one designed for multiple teams. You can add teams from across all the projects in your account.  If the plan needs updating, you can simply drag cards to update the iteration path. And, like the Kanban board, you can customize the card fields so that you can see relevant information for your work.

Delivery Plans in practice
Internally, we’ve been testing delivery plans for several months with a focus on sharing the schedule of new Features being added to Team Services. Every three weeks, we review our Delivery Plan to discuss whether we’ve set the right priorities and determine if dependencies exist.

Some of the questions that we ask of teams in our 3-sprint reviews are:

  • How confident are the teams in meeting the deliverables scheduled for each sprint?
  • Are dependencies across teams adequately addressed via the planned deliverables?
  • Are there gaps in the schedule, where no deliverables are scheduled? What’s the cause? Can this be mitigated?

Next steps
Delivery Plans are available for public preview on all Team Services accounts. You begin by installing the Plans extension available from the Visual Studio marketplace.

We have additional features to add to Delivery Plans in the next few months. A few highlights are …

  • Markers to highlight key dates (such as release dates and customer demonstrations) on the plan.
  • Field Criteria which will allow you to tailor your plans to only show a subset of cards (such as work items with a certain tag or other field value)
  • Dependency tracking. Highlighting dependency links between work items and whether they are scheduled to be resolved successfully.

Please install the extension and leave feedback on Uservoice about other views and additions that you would like to see on Delivery Plans.

To learn more about installing and using delivery plans, see Review team plans.

Derrick Fu
Program Manager, VSTS

Working with Multiple .NET Core SDKs - both project.json and msbuild/csproj

$
0
0

As .NET Core and ASP.NET Core make the transition from project.json style project files to MSBuild (csproj) style files, I'm starting to get myself up to speed on what's needed, what's changing, and why/if it's a good thing. Documentation is still getting updated but there's a great blog post from Nate McMaster who works on the team.

As I touched on in a previous post, you can continue working on project.json based projects while experimenting with the newer stuff. Here I have a global.json with the version pinned to an earlier SDK. Then I move to another folder and the .NET CLI gives me another version. Projects can remember and pin their SDK versions.

Global.json is useful

This is assuming that you do have multiple versions (and the ones you want) installed:

Here I have 4 SDKs installed and I can see them in my installation folder

To be clearer, I'll run "dotnet new" in one folder and again run "dotnet new" in another. Note that one has global.json pinned older "LTS" (Long Term Support) SDK with project.json and one will use the later "Current" (bleeding-edge) stuff.

See how that works?

C:\Users\scott\Desktop\csprojstuff> dotnet new
Created new C# project in C:\Users\scott\Desktop\csprojstuff.

C:\Users\scott\Desktop\csprojstuff> dir
Volume in drive C is Windows
Volume Serial Number is 00C1-AED2

Directory of C:\Users\scott\Desktop\csprojstuff

01/23/2017 01:09 PM .
01/23/2017 01:09 PM ..
12/07/2016 09:49 PM 422 csprojstuff.csproj
12/07/2016 09:49 PM 133 Program.cs
2 File(s) 555 bytes
2 Dir(s) 149,845,356,544 bytes free

C:\Users\scott\Desktop\csprojstuff> cd ..\projjsonstuff

C:\Users\scott\Desktop\projjsonstuff> dotnet new
Created new C# project in C:\Users\scott\Desktop\projjsonstuff.

C:\Users\scott\Desktop\projjsonstuff> dir
Volume in drive C is Windows
Volume Serial Number is 00C1-AED2

Directory of C:\Users\scott\Desktop\projjsonstuff

01/23/2017 01:10 PM .
01/23/2017 01:10 PM ..
01/23/2017 01:05 PM 95 global.json
06/21/2016 07:10 PM 214 Program.cs
06/21/2016 07:10 PM 367 project.json
3 File(s) 676 bytes
2 Dir(s) 149,844,484,096 bytes free

Now I can also "migrate" that project.json forward with "dotnet migrate." That's a NEW command so look what happens if I just run it locally there without changing the global.json pinned SDK version? Doesn't work. For this example I'll delete global.json and run it again.

C:\Users\scott\Desktop\projjsonstuff> dotnet migrate
No executable found matching command "dotnet-migrate"

C:\Users\scott\Desktop\projjsonstuff> del global.json

C:\Users\scott\Desktop\projjsonstuff> dotnet migrate
Project projjsonstuff migration succeeded (C:\Users\scott\Desktop\projjsonstuff)
Summary
Total Projects: 1
Succeeded Projects: 1
Failed Projects: 0


C:\Users\scott\Desktop\projjsonstuff> dir
Volume in drive C is Windows
Volume Serial Number is 00C1-AED2

Directory of C:\Users\scott\Desktop\projjsonstuff

01/23/2017 01:11 PM .
01/23/2017 01:11 PM ..
01/23/2017 01:11 PM backup
06/21/2016 07:10 PM 214 Program.cs
01/23/2017 01:11 PM 944 projjsonstuff.csproj
2 File(s) 1,158 bytes
3 Dir(s) 149,843,054,592 bytes free

Again, go check out Nate's excellent blog on the topic. He also covers briefly how you can publish "Standalone" or "Self-Contained" Deployments, and points out that in MSBuild world, all projects are portable until you decide to target a runtime:

dotnet publish --framework netcoreapp1.0 /p:RuntimeIdentifier=osx.10.11-x64

More on this as it comes!


Sponsor: Do you deploy the same application multiple times for each of your end customers? The team at Octopus have taken the pain out of multi-tenant deployments. Check out their latest 3.4 release


© 2016 Scott Hanselman. All rights reserved.
     

Moving the Games Backend from Servers to Cloud: Game Insight Goes for Azure

$
0
0

Building a successful online multiplayer game is а complex task that requires orchestrating a host of nitty-gritty details. All the major components must play well together, starting from game design, artwork, client implementation, and the servers running behind the scenes. Without that last one, modern mobile games literally could not exist.

Alex Shirov, CTO of Game Insight – one of the largest games companies in the world – shared their experience of moving their famous game to Microsoft Azure.

The server infrastructure of a mobile game is a very complicated aspect of the product – and vitally important. No matter how good an online game is judged by any other criteria, a poorly performing backend can reduce all your efforts to nothing.

gameinsight_azure_1

In contrast to their newer products built on micro-services, 2020: My Country, one of Game Insight’s hits that was released in early 2013, implements a classic backend design. The services for the game relied on physical hardware, mainly because there was no other option to consider at the time the game was developed. Having dedicated physical hardware that you manage is very expensive. This includes upfront prices and administration costs. IaaS providers at the time offered an unreliable toolset, which simply did not satisfy the requirements for such a product. But things have changed since the first version of the game and it was time to reconsider the backend infrastructure.

gameinsight_azure_2

At first glance, migrating the backend services behind an online multiplayer game that has been live for many years seems like a risky task and I won’t oversimplify it. However, cloud platforms such as Microsoft Azure make this process easier.

The backend of 2020: My Country was recently running on the following physical machines:

  • A load balancer
  • Three app server nodes (PHP, Redis)
  • Five database nodes (MySQL). Each app server and database node had 24 cores and 32GB of memory.

With the flexibility that the cloud provides, Game Insight started with a lighter setup knowing they could scale out if they needed to. The new setup consisted of a:

  • A load balancer
  • Two app server nodes (Standard F4)
  • Two database nodes (Standard DS4 v2)

All the nodes were created as Microsoft Azure Linux Virtual Machines located in a single subnet, backed by the default Azure DNS, and running on the latest OpenLogic CentOS images. They decided to go with a default OS image to avoid any further issues with out-of-the-box features like monitoring, updates and backup. All the required packages were installed using Ansible scripts. The setup process was straightforward. The administration console, being very easy to use, made the whole process of creating new instances a snap.

gameinsight_azure_3

One of the major problems was migrating the existing data. Having about 2TB of data stored on their database servers, the data migration process went smoothly: the speed while copying data held stable at around 1 Gbit/s.

Game Insight was pleasantly surprised by the performance of the virtual machines mainly due to the fast 1TB SSDs. This enabled them to reduce the number of database nodes from five down to just two. The new database instances now serve 100% of the game’s traffic running at about 10–15% of CPU usage. Furthermore, adding just one additional app server (Standard F4) to the setup described above kept the app servers running at 25-35% of CPU usage.

Alex Shirov says “overall, we’re very satisfied with the new backend infrastructure for 2020: My Country. Not only is hosting our backend services on Microsoft Azure now considerably less expensive, it is much more flexible, allowing us to adjust server capacity to our current needs automatically, at nearly real time. Moreover, it’s much more reliable to have every logical tier failsafe with all the nodes automatically backed up and capable of being replaced immediately upon any kind of failure.”

Today, Game Insight has many titles in operation. Most of their games have been built using modern micro-services architecture, although some of the older titles still have a legacy architecture similar to 2020: My Country. In conclusion, Alex Shirov says “having had such a great experience migrating an existing project, we’re looking forward to bringing more to Microsoft Azure IaaS platform to benefit from the amazing out-of-the-box features like high availability, outstanding performance, automatic scaling and backups, and 24/7 monitoring.”

Cheers,
Guggs
@stevenguggs

Team Foundation Server 2017 and Kerberos Authentication

$
0
0

In Team Foundation Server 2017 we made a change to the default security support providers used by our IIS site for Windows Authentication. We didn’t anticipate this change attracting much notice, since we had ensured (through extensive testing) that there would not be any impact for existing TFS deployments and since we were making things simpler by taking away a little-used decision point during advanced configuration scenarios. We underestimated the detail-orientedness of our customers, however, and many people both noticed the change and mistakenly thought that they needed to react to it. The point of this blog post is to explain the change in a bit more detail and to reduce the confusion we mistakenly caused.

First, some backstory. The Microsoft Security Development Lifecycle was updated a while back to forbid explicit selection of the NTLM security support provider, due to various vulnerabilities in the protocol – see https://en.wikipedia.org/wiki/NT_LAN_Manager#Weakness_and_Vulnerabilities, for example. Instead, the SDL recommendation is to always use the Negotiate security support provider, which will attempt to use Kerberos, but will fall back to NTLM if Kerberos cannot be used. This same recommendation can be found in various other public documents. For example,  https://msdn.microsoft.com/en-us/library/windows/desktop/aa378749(v=vs.85).aspx has the following paragraph:

Your application should not access the NTLM security package directly; instead, it should use the Negotiate security package. Negotiate allows your application to take advantage of more advanced security protocols if they are supported by the systems involved in the authentication. Currently, the Negotiate security package selects between Kerberos and NTLM. Negotiate selects Kerberos unless it cannot be used by one of the systems involved in the authentication.

TFS had been using NTLM as an explicit default setting for the Windows Authentication security support provider for a long time, but in TFS 2017 we decided to comply with the SDL recommendation here as part of an overall push to make TFS more secure by default. (Another part of this effort was the set of changes around recommending the use of HTTPS bindings and an effort to make doing so easier.) After a bunch of testing, we discovered that using only the Negotiate provider would negatively impact certain clients. When we added both the Negotiate and NTLM security support providers, however, we could not find any clients which worked with our old default settings (just NTLM) and failed with the updated settings (Negotiate and then NTLM, in that order).

As such, we decided not just to update the default setting, but also to remove the need for customers to make any decisions about the supported providers. If you want to use Kerberos, it should just work (so long as you have set things up properly outside of TFS). If you want to use NTLM, it should also just work.

The only real impact here is the desired one – some customers who are using machine accounts for their TFS service accounts and who are not using multiple application tiers or custom host names will start using Kerberos authentication, and thus get the benefits of its increased security, without even noticing. We do not expect there to be any other impacts.

If you have reason to believe that this change has negatively impacted you, report it at developercommunity.visualstudio.com and we will work with you to get it resolved.

The week in .NET – Adafruit Class Library for Windows IoT Core, Floor Plan

$
0
0

Previous posts:

On .NET

We had no show last week, but we’ll have two this week.

On .NET - Public Speaking

On Wednesday at 9:00AM Pacific Time, Scott Hanselman will host a panel discussion on public speaking, with Kasey Uhlenhuth, Maria Naggaga Nakanwagi, Donovan Brown, and Mitch Muenster.

ndepend

On Thursday at 9:00AM Pacific Time, Patrick Smacchia will be on the show to talk about the brand new version of ndepend.

Both shows will stream live on Channel 9. We’ll take questions on Gitter, on the dotnet/home channel and on Twitter. Please use the #onnet tag. It’s OK to start sending us questions in advance if you can’t do it live during the shows.

Package of the week: Adafruit Class Library for Windows IoT Core

Adafruit is a familiar brand for anyone involved in the maker movement. Entrepreneur extraordinaire and open source advocate Limor Fried built the success of the company on high quality tutorials and a line of open source and US-manufactured products.

Adafruit recently released the Adafruit Class Library for Windows IoT Core, a set of classes and associated tutorials for using some of their most popular products with Windows IoT Core, for example on a Raspberry Pi.

Here’s an example of an event handler that displays the altitude, longitude and latitude when a GPS HAT receives new coordinates:

Game of the week: Floor Plan

Floor Plan is a puzzle adventure game designed for virtual reality. In Floor Plan, players travel in an elevator in order to find items that can be used to solve various puzzles. You’ll meet a whole cast of cooky characters as you move between floors, each of which is designed with their own whimsical theme.

Floor Plan

Floor Plan was created by Turbo Button using C# and Unity. It is available for Gear VR, Oculus Rift, and Daydream.

User group meeting of the week: Mocking – Making fun of unit tests using DI in Raleigh, NC

TRINUG holds a meeting on Wednesday, January 25 at 6:00PM in Raleigh, NC on mocking, and using dependency injection in tests.

.NET

ASP.NET

F#

New F# RFC: Implement IReadOnlyCollection<‘T> in list<‘T>

Check out F# Weekly for more great content from the F# community.

Xamarin

UWP

Games

And this is it for this week!

Contribute to the week in .NET

As always, this weekly post couldn’t exist without community contributions, and I’d like to thank all those who sent links and tips. The F# section is provided by Phillip Carter, the gaming section by Stacey Haffner, and the Xamarin section by Dan Rigby, and the UWP section by Michael Crump.

You can participate too. Did you write a great blog post, or just read one? Do you want everyone to know about an amazing new contribution or a useful library? Did you make or play a great game built on .NET? We’d love to hear from you, and feature your contributions on future posts:

This week’s post (and future posts) also contains news I first read on The ASP.NET Community Standup, on Weekly Xamarin, on F# weekly, and on Chris Alcock’s The Morning Brew.

Promote your App – Anywhere. Anytime.

$
0
0

We are very excited to announce the release of campaign APIs for the Windows Store. Using these REST APIs, media agencies can promote apps and manage their ad campaigns easily. ‘Promote your App’ is a feature within DevCenter that allows you to create ad campaigns for your apps to grow your audience and engage with them. Using ‘Promote your App,’ you can leverage advanced targeting capabilities and use our popular ad templates to advertise your apps among Windows users.

About the APIs

These APIs are open to media houses that wish to run promotions on behalf of their advertisers – developers, game studios, anyone with apps on the Windows Store. Developers or organizations that already have a DevCenter account can also use these APIs to create and manage their ad campaigns.

These APIs are a powerful way of accessing your ad campaigns – they allow for bulk operations and features such as sharing creatives and/or targeting templates across campaigns. For media agencies handling large volumes of advertising, the APIs allow for flexibility while creating campaigns as well as viewing reporting data.

Developers can continue to use the DevCenter dashboard as well. Any campaign created under a single account – whether through the dashboard or API will be accessible from either channel.

How to get started?

Media agencies that would like to know more and get access to the promotion APIs, please reach out to storepromotionsapi@microsoft.com to sign up.

App developers and organizations using DevCenter can follow the prerequisite steps listed here.

Detailed documentation for accessing these APIs along with code samples is available here.

Promote your apps using APIs and reach the fast growing pool of Windows audience, starting NOW!

The post Promote your App – Anywhere. Anytime. appeared first on Building Apps for Windows.

Solved and Fixed: StreetPass stopped working on Nintendo 3DS XL

$
0
0

Nice to meet you! says my MiiYes, this is kind of a silly blog post but it's been bugging me for months so I wanted to get it out there in case it helps someone who is googling for the answer!

I have a little Nintendo 3DS XL (the "new" one) that I bought for long trips. It's a great little device with a large library of games, plus it plays SNES classics like Super Metroid. All in all, I'm thrilled with the purchase.

It has wifi, and both Netflix and Hulu in a pinch for the kids, but it also has some really cool social features using a proprietary wifi connection called "StreetPass." The nutshell is that if you pass by someone (within 30-40 feet in my experience) their "Mii" avatar will jump into your game console and bring with it data from other games.

There's simple stuff like Puzzles, there's mini games like Find Mii, and StreetPass enhances more complex games like Mario World or Resident Evil: Revelations by adding in whole new components. In Resident Evil you'll get communications and weapons drops from your colleagues who are apparently fighting zombies at the same time as you. In Shovel Knight you can race the "ghost" of another player. It's safe and anonymous.

If you travel it's even cooler as you'll StreetPass people in airports and collect their countries or states of origin. I carry my 3DS to conventions and all over the world. It's a hoot.

BUT. A few months back it stopped StreetPassing. Nothing happened, ever. I made sure everything was updated, turned it on and off, but nada.

Recently I fixed it and I'm sure it will fix StreetPass for you also.

  • Go into Mii Maker and design a secondary Mii. Doesn't matter what it looks like. I did it quickly.
  • Switch to that secondary Mii. You won't lose anything.
  • Exit Mii Maker, then go back in and switch back to your original Mii.
    • I surmise that this clears things out and re-writes some settings for you.
    • I also changed my Mii's hat and outfit just to make sure it was re-written completely.
  • Head over to Mii Plaza and you should be all set. My system started StreetPassing within the day.

Photo Jan 24, 9 59 42 PM

I hope this helps someone because as a traveller who really digs StreetPass, having it not work was really harshing my mellow. By the way, I REALLY love this "DreamGear" rubber case I got for my 3DS. It changes the shape of it, makes it larger, almost like an Xbox controller. That's an Amazon link that you can use that will help me get more 3DS games. ;)


Sponsor: Big thumbs-up for Kendo UI! They published a comprehensive whitepaper on responsive web design and the best and fastest way to serve desktop and mobile web users in a tailored and cost-effective manner. Check it out!



© 2016 Scott Hanselman. All rights reserved.
     

Documentation available for the Setup Configuration API

$
0
0

Visual Studio 2017 has brought big changes to extensibility that allow developers to install extensions to different instances and install dependencies. In support of multiple instances, a fast API was required that tools can use to find and launch VS and related tools, or to install extensions.

I previously published some samples, and now documentation for these APIs is available. The documentation is based on the runtime-callable wrapper (RCW) – the .NET interop assemblies– for the native configuration API. The main difference is that the native API will return an HRESULT while the RCW will throw a COMException where the ErrorCode will be the same HRESULT the native code would’ve returned.

If you have any feedback about the APIs, please feel free to leave comments below. Until we can update the documentation, I’d be happy to answer questions about the APIs below, or take a look at the samples for usage. Questions about the samples can also be asked in the Q&A section of the samples project site.

Visual Studio Setup PowerShell Module Available

$
0
0

To make the new setup configuration APIs more accessible to developers, we have published the “VSSetup” PowerShell module on powershellgallery.com, making it quick and easy to install.

If you have Windows Management Framework (WMF) 5.0 or newer – installed with Windows 10 – or PowerShellGet for PowerShell 3.0 or 4.0, you can run the following from even an unelevated PowerShell host:

Install-Module VSSetup -Scope CurrentUser

You can also install for all users if you leave off the Scope parameter entirely. You can also download and extract a ZIP archive from our Releases page on the project page.

After installing, you can quickly enumerate all launchable instances you have installed.

Get-VSSetupInstance

If you want to enumerate all instances – even those requiring a reboot or otherwise not complete – you can pass -All.

Get-VSSetupInstance -All

The default display properties present the main information for which end users are probably most interested, but you can pipe the results to select * to see everything.

If you want to select specific instances – like the latest installed instance with the .NET Framework (desktop) workload – you can use Select-VSSetupInstance.

Get-VSSetupInstance | Select-VSSetupInstance -Latest -Require Microsoft.VisualStudio.Workload.ManagedDesktop

More examples are available in our README. You can log bugs and suggestions on the Issues page, and we are happy to consider pull requests. See CONTRIBUTING for developer notes. We appreciate your comments and contributions.

Team Services January Extensions Roundup

$
0
0

I can’t believe we’re almost through the first month of 2017. I hope the new year is treating everyone well. We’ve got a lot in store for the Team Services extension ecosystem and we’re excited to continue growing our platform and bring you new experiences. This month I want to give a shout-out to two trending and highly rated extensions from Geek Learning. Check Geek Learning out over at http://geeklearning.io/

Yarn

See it in the Marketplace: https://marketplace.visualstudio.com/items?itemName=geeklearningio.gl-vsts-tasks-yarn

Looking for an npm alternative? Have you tried Facebook’s solution, Yarn? The folks over at Geek Learning have some great insight into why you may want to try Yarn and their Team Services extension. Check out their blog post for full details on Yarn and how it could benefit you: http://geeklearning.io/npm-install-drives-you-crazy-yarn-and-chill/geeklearninglovesyarnThis extension adds one new Build & Release task, Yarn. With this task, you can execute Yarn in whichever project directory you need using configurable parameters. The wonderful reviews for this extension speak to the amount of time you potentially can save in your build process. The task is added under the “Utility” category.

add-tasks

All you’ll need to do is configure the directory in which you want to execute Yarn and specify the arguments you want to append. The ‘Production Install’ checkbox appends the ‘–production’ argument. Full details can be found on Geek Learning Wiki for Yarn, https://github.com/geeklearningio/gl-vsts-tasks-yarn/wiki

configure-yarn

 

Microsoft Azure Build and Release Tasks

See it in the Marketplace: https://marketplace.visualstudio.com/items?itemName=geeklearningio.gl-vsts-tasks-azure

This extension has really been trending over the last month and it’s not hard to see why. If you’re building and publishing your applications with Microsoft Azure you’ll definitely want to give this 4.5 star rated extension a look.

This extension is a small gold mine of tasks to use in your Build and Release definitions.

newgeek

 

For their public Wiki and code repository, check out their GitHub: https://github.com/geeklearningio/gl-vsts-tasks-azure/wiki

Are you using an extension you think should be featured here?

I’ll be on the lookout for extensions to feature in the future, so if you’d like to see yours (or someone else’s) here, then let me know on Twitter!

@JoeB_in_NC

VIDEO: How to get started with technical public speaking!

$
0
0

On .NET is a weekly chat with team members from the .NET team at Microsoft. This week we put together something a little different, and honestly, I think it not only went really well, but I think it's an hour that provides a lot of value that goes well beyond .NET or any technology.

We put together a panel of folks at different points in their technical careers. Some just starting to speak publically and some who've been doing it for 20+ years. Some introverts, some extroverts. Some with speaking or theater experience, others with none. And we talked!

We chatted about how to get started, where you can learn to speak on technical topics, how to form a story arc, how to best utilize your gifts, when to be critical and when to just chill.

It was great fun and included myself, Kendra Havens, Maria Naggaga Nakanwagi, Kasey Uhlenhuth, and Donovan Brown. You can view or download it here on Channel 9, or you can watch it on YouTube embedded below.

Let us know if this kind of content is useful, and if you want to see more in the future.


Sponsor: Big thumbs-up for Kendo UI! They published a comprehensive whitepaper on responsive web design and the best and fastest way to serve desktop and mobile web users in a tailored and cost-effective manner. Check it out!



© 2016 Scott Hanselman. All rights reserved.
     

VS Team Services Update – Jan 25

$
0
0

We have begun the process of deploying our sprint 112 work into production.  You will see the improvements show up in your account over the next week.  You can read the release notes for all the details in this deployment.

A few things worth highlighting…

This provides your first peek at our new Enterprise Agile “Delivery Plans” feature.  To get it, you actually need to go to the marketplace and install it into your account.  This feature is designed to enable you to look across teams and see how work is aligned.  This is still a very early preview and we have lots of plans to continue to evolve it but there’s enough functionality there for you to try it and start giving feedback.

deliveryplan

The mobile work item forms that I first demoed in my session at Connect(); in November are now available in the service.  If you just click on a link to a work item from any notification email on a phone, you’ll get the new mobile web view.  It’s a tremendously better experience.  We have some work to finish optimizing work items but we have lots of other work on the backlog – like mobile pull requests views, etc.

mobileform

We broke up the “administer” permission on Git repos into finer grained permissions.  I call this out because it’s been a common request – and one made in a comment on my last post.  Among other things, you can now give people permissions to create repos without giving them full administrative control over repos.

There’s plenty of other nice improvements too…

Much of this (though not all) will make it into the TFS 2017 Update 1 release.  We’ll be clear about what made it when we publish the release notes for RC2.

I hope you enjoy the update!

Thanks,

Brian

Team Services Process Customization Roadmap (Jan 2017)

$
0
0

Work items in Visual Studio Team Services can be customized to meet the needs of your individual organization. Today, project administrators can add/remove fields to a work item form, change the way fields are displayed on a form, define states that your work item can move through, and define your own custom work item types.

This blog post gives you a sneak peek at next set of customizations that we plan to bring to Team Services.

As always, the timelines and designs shared in this post are subject to change.

Planned dateFeature
Q1 2017
  • Add custom backlog levels
  • Improved navigation of process customization
Q2 2017
  • Define business rules for work item types
  • Add identity fields to work item types
  • REST API support for customization

Custom backlog levels

When you create a project with any of our processes (Agile, Scrum or CMMI), each team gains access to one product backlog (Stories, Backlog items, or Requirements) and two portfolio backlogs (Epics and Features). Small organizations typically find these two portfolio levels sufficient for their needs. However, large organizations have expressed the need to add more portfolio backlogs.

With custom backlog levels, you can add new portfolio backlog levels above Epics.

In the following image, we add a portfolio backlog called “Themes” above Epics, and associate the custom work item type “Theme” with this new backlog level.
custom-backlogs-levels

Improved navigation for process customization

We’re updating the navigation involved in managing a process.  The main change you’ll see is how you choose and modify a work item type. You’ll choose the work item type from a drop-down menu and modify it from the form layout. You no longer have to select the area you want to customize. From the form, you can perform all actions, including adding and editing of fields, modifying states, and later, maintaining the business rules.

improved-navigation

Rules for work item types

With  rules, you can set default values, clear entries, or restrict changes. With conditional rules, you can restrict to run a rule only on a specific state change, or when a field has a specific value.

When you define the rule, first you choose what needs to happen (action), and then when the rule needs to execute (condition).

business-rules

Adding Identity fields

We currently support the most important field types such as text box, checkbox, and picklist. The number one request we’ve received is to also support custom identity fields, just like the Assigned To field.

Custom identity fields will render the same control as the Assigned To field, with the identity picker and avatar image.

identity-field

REST API support for customization

Today we have a few APIs available to get a list of work item types, but we know you need more. If you are building on top of Team Services and TFS, you want to get the list of all processes in the collection and a list of all work item types in a process. You also want to know the fields and states of a work item type, including the state color. And you not only want to retrieve that data, you also want to update that configuration.

The next set of process REST APIs will deliver these capabilities to you.

Various process models

Dependent on whether you host TFS on your own servers (on-premises) or how your account was created in Team Services (cloud), you will be using one of these process models

  1. Inheritance
  2. Hosted XML
  3. On-premises XML

process-model

Inheritance process model (Team Services)

All new accounts created in Team Services use the Inherited process model.  The customizations and roadmap described in this post apply only to this process model.

To customize your project, you first create an inherited process from one of the system processes (Agile, CMMI or Scrum), and migrate the project to the new inherited process. A change to your inherited process immediately affects all team projects which use that process.

See our documentation to learn more about the customization of inherited processes

Hosted XML process model (Team Services)

At the Connect() event last November, we announced the migration from TFS to VSTS.  Accounts imported from TFS to Team Services use this process model.

This model is very similar to the on-premises XML process model. The major difference is where the metadata for the team project is stored. Team projects which use the hosted XML process model, read their metadata from the process. A change to the process will affect all its team projects too.

To customize a process in this model, you download the process as a zip file, make the changes locally, and then upload the full process to apply these changes.

On-premises XML process model (TFS)

This process model is the traditional model used by all on-premises installations. As opposed to the other two process models, the metadata of a team project is not read from the process. When you create a team project, the process metadata is copied to the team project. As a result, any change to the process won’t affect the team projects. Instead you modify the metadata of the project using the command-line tool called witadmin.

Compare process models

The table below summarizes the differences between the various process models

Team ServicesTFS
InheritanceHosted XMLOn-premises XML
Inherit system processes changes (Agile, Scrum, CMMI)
Process changes affect team projects
WYSIWYG editor
Use witadmin to edit team projects
REST API (read)
REST API (write)
Create custom processes
Advanced customizations (global workflow, custom link types, global lists)

Future

We have received many requests to bring the Inheritance process model to on-premises. We are working through our plan for on-premises now, and expect to provide an update in the spring of 2017.

Keep the feedback coming!

Ewald Hofman

Update to Visual Studio 2017 Release Candidate

$
0
0

Today we have another update to Visual Studio 2017 Release Candidate.

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

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

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

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

John Montgomery, Director of Program Management for Visual Studio

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


Debugging .NET Core on Unix over SSH

$
0
0

With the release of Visual Studio 2017 RC3 it is now possible to attach to .NET Core processes running on Linux over SSH. This blog post will explain how to set this up.

Machine Setup

On the Visual Studio computer, you need to install the ‘ASP.NET and web development’ workload in the 1/26/17 update for VS 2017 RC. If you previously installed Visual Studio 2017 RC, you can see if it is an RC3 release from Help->About.

On the Linux server, you need to install SSH server, unzip and either curl or wget. For example, on Ubuntu you can do that by running:

sudo apt-get install openssh-server unzip curl

Deploying the Application

In order to debug your application running on Linux, it will first need to be deployed there. One option for doing this is to copy sources to the target computer and build with ‘dotnet build’ on the Linux machine. Another option would be to build on Windows, and transfer the built artifacts (the application itself, any runtime libraries it might depend on and the .deps.json file).

For debugging, there are two important notes. First, it is much harder to debug retail-compiled code than debug-compiled code, so it is highly recommended to use the ‘Debug’ configuration. If you do need to use the ‘Release’ configuration, make sure to disable Tool->Options->Debugging->Just My Code. Second, the debugger for Linux will need to make sure Portable PDBs are enabled (which is the default), and they will need to be next to the dll.

Attaching the Debugger

Once the computers are configured and the application is up and running now we are ready to attach the debugger.

  1. Go to Debug->Attach to Process…
  2. In the ‘Connection Type’ drop down, select ‘SSH’
  3. Change the ‘Connection Target’ to the IP address or host name of the target computer
  4. Find the process that you would like to debug. By default, your code will run in a ‘dotnet’ process. You can look at the ‘Title’ column to see each processes command line arguments to find the process that you are interested in.
    Attach to process dialog showing a list of process from a remote Linux machine over an SSH transport.
  5. Click ‘Attach’. You will get a dialog to select which type of code you would like to debug. Pick ‘Managed (.NET Core for Unix)’.
  6. Debug as you would expect

A picture showing Visual Studio stopped at a breakpoint hit in code running on a remote Linuc machine.

If you have any feedback we’d love to hear from you, send it from the VS Send Feedback feature or find us on twitter at @VS_Debugger.

Gregg Miskelly
Principal Software Engineerunzip curl

Splitting up Git administer permissions

$
0
0

Like everything in VSTS and TFS, Git repos are protected by a set of permissions. For instance, you must have Read for a repo to clone or view its contents. Likewise, you must have Contribute to push changes. Until recently, you needed one permission to create, delete, or rename a repo, edit branch policies, or change other people’s permissions: Administer.

We heard from several customers that Administer covered too many scenarios. For instance, at one customer, anyone can create new repos and rename any repo they created. Due to compliance regulations, no one can delete a repo they created (only a select group of people have that capability). At another customer, for company policy reasons, separate individuals control branch policies (the repo owner), adding & removing other people’s permissions (project administrators), and deleting repos (like the previous customer, restricted to only a handful of people).

With Administer covering all of these capabilities in one permission, both customers were unable to delegate some authority without delegating all authority. In practice, this meant that only a small set of people were responsible for all repo creation and management, creating a bottleneck for engineers every time they wanted a new repo.

You’ve probably guessed what I’m going to say next: we’ve split the Administer permission into 6 new permissions. Those new permissions are:

  1. Create repository
  2. Delete repository
  3. Rename repository
  4. Edit policies
  5. Manage permissions
  6. Remove others’ locks

We automatically migrate permissions on upgrade (meaning that if you previously had Administer on a a repo or at the project level, you now have these 6 new permissions on that repo or project). When you create a new repo, we automatically grant Delete, Rename, Edit policies, Manage permissions and Remove others’ locks on that repo, equivalent to the old behavior of granting Administer.

We also took this opportunity to clean up the names of a few existing permissions. Several of them were awkwardly phrased. “Force push” is a well-understood Git concept, so we promoted it to the front of its corresponding permission name. Mapping from old name to new, the renamed permissions are:

  • Branch creation  Create branch
  • Note management → Manage notes
  • Rewrite and destroy history (force push) Force push (rewrite history and delete branches)
  • Tag management Manage tags

These changes apply to VSTS effective with the M112 release and will come to TFS 2017 in Update 1. Small caveat: Until Update 1 releases, users who set permissions using the command-line tf.exe git permissions tool will not be able to grant or revoke the new permissions against a VSTS account. The workaround in the short term is to set permissions with TFSSecurity.exe or the admin tab in the web experience.

It’s now pretty easy to let anyone create a new repo in your project without giving them full administrative control. Grant the Contributors group “Create repository” and you’re all set.

`yield` keyword to become `co_yield` in VS 2017

$
0
0

Coroutines—formerly known as “C++ resumable functions”—are one of the Technical Specifications (TS) that we have implemented in the Visual C++ compiler. We’ve supported coroutines for three years—ever since the VC++ November 2013 CTP release.

If you’re using coroutines you should be aware that the keyword `yield` is being removed in the release of VS 2017. If you use `yield` in your code, you will have to change your code to use the new keyword `co_yield` instead. If you have generators that use `yield expr`, these need to be changed to say `co_yield expr`.

As long as you’re changing your code you might want to migrate from using `await` to `co_await` and from `return` in a coroutine to `co_return`. The Visual C++ compiler accepts all three new keywords today.

For more information about coroutines, please see the Coroutines TS here: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/n4628.pdf. As the author of the Coroutines TS works on the Visual C++ team you can also just send us mail with your questions or feedback (see below.)

Why are we making this change?

As a Technical Specification, coroutines have not yet been adopted into the C++ Standard. When the Visual C++ team implemented them in 2013, the feature was implemented as a preview of an up-and-coming C++ feature. The C++ standards committee voted in October of 2015 to change the keywords to include the prefix `co_`. The committee didn’t want to use keywords that would conflict with variable names already in use. `yield`, for example, is used widely in agricultural and financial applications. Also, there are library uses of functions called `yield` in the Ranges TS and in the thread support library.

For reference, here are the keyword mappings that need to be applied to your code.




Instead of `await`Use `co_await`
Instead of `return`Use `co_return`
Instead of `yield`Use `co_yield`

We’re removing the `yield` keyword with VS 2017 because we’re also implementing the Range-v3 TS and we expect many developers to call `yield` after a using declaration for ranges, e.g., `using namespace ::ranges`.

Preventing these breaks in the future

We know many of you have taken dependencies on coroutines in your code and understand that this kind of breaking change is difficult. We can’t keep the committee from making changes (trust us, we try!) but at least we can do our best to make sure that you’re not surprised when things do change.

We created a new compiler switch, `/experimental` when we implemented the Modules TS in VS 2015 Update 1. You need to include `/experimental:module` on your command line so that it is clear the feature is experimental and subject to change. If we could go back in time we would have had coroutines enabled with `/experimental:await` instead of just `/await` (or `experiemental:coroutine` if we’d known what the feature would be called three years later!)

In a future release we will deprecate the `await` keyword as well as restrict the use of `return` from coroutines in favor of the new keywords `co_await` and `co_return`.

In closing

As always, we welcome your feedback. Please give us feedback about coroutines in the comments below or through e-mail at visualcpp@microsoft.com.

If you encounter other problems with Visual C++ in VS 2017 please let us know via the Report a Problem option, either from the installer or the Visual Studio IDE itself. For suggestions, let us know through UserVoice. Thank you!

Update to Visual Studio 2017 Release Candidate

$
0
0

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

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

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

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

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

John Montgomery, Director of Program Management for Visual Studio

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

TFS 2017 Update 1 RC available

$
0
0

Today we released the Team Foundation Server 2017 Update 1 Release Candidate.

This release can be used for a fresh install or to upgrade any supported previous version.  Here’s a chart showing the recommended upgrade paths from various TFS versions (you can substitute TFS 2017.1 in the rightmost column).  The upgrade from any of the more recent versions should be smooth but upgrades from 2017 should be particularly easy.

upgrades

This release is English only.  We’ll provide the localized versions at RTM.

You can read the release notes for all the improvements (and it’s a crazy long list) but here are a few of my favorite highlights:

  • New personalized account home page
  • Tons of pull request improvements
  • NPM support in package management
  • Test impact analysis
  • Versioning for build and release tasks
  • and more…

We’re looking forward to any feedback you have.  At this point the feature set should be complete and we’re just refining it.  We should be starting to lock this release down in the next few weeks and will ship it as soon as it is ready.

Thanks,

Brian

 

Viewing all 10804 articles
Browse latest View live


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