Quantcast
Channel: TechNet Technology News
Viewing all 13502 articles
Browse latest View live

The future of independent antimalware tests

$
0
0

Our guiding vision at the Microsoft Malware Protection Center (MMPC) is to keep every customer safe from malware. Our research team and machine learning systems, as well as industry engagement teams, function around the clock in an effort to achieve this vision.

As part of these efforts, we are also working with independent antimalware testing organizations towards advancing the relevance of independent testing and reporting. Our goal is to help enable independent antimalware testing organizations to test using malware that has significant customer impact. We have come a long way together, and we can still make significant advances to on-demand file-detection tests.

Current on-demand file-detection tests have some limits. They are typically carried out by first assembling a set of malware samples, and then scanning them with antimalware products. The samples in the testing set that aren’t detected by the products are counted, and then their percentage is calculated. Finally, the undetected percentage is compared to other products to calculate the comparative test results. Some testers use prevalence data to choose their sample set, and some apply curves to the results, but ultimately the fundamental test scheme is the same across the board.

One major issue with the above methodology is that there is no differentiation between samples in the test set. While each sample in the test set has a different impact on customers, in the above methodology, they are weighted equally. This methodology has been of concern to us, as it doesn’t take into account the prevalence-based customer impact.

To evolve antimalware test methodologies, this problem can be solved by weighting these samples according to their customer impact – that is, how often a particular malware sample is encountered by customers. The first step is to apply a weighting based on each specific sample’s prevalence; if the sample has impacted a large number of customers, then it will have a relatively large weight. If it’s impacted relatively few customers, then it will have a smaller weight. However, this approach isn’t quite enough.

Different malware families have different behaviors. For example, some malware families use polymorphism: they change their files with every infection, causing many samples within that family to be relatively low prevalence. In this case if the malware family has a high prevalence, but each sample has a low prevalence, then without a family weight these samples are lost in the mix. To address this, a family weight should be included in addition to the specific sample prevalence weight.

After applying the weights described above, it is possible to generate a risk factor that describes how much risk a customer faces depending on which antimalware product they use when exposed to samples in the test set. On top of that, using geographical sample weights and family weights allows for a geographical risk breakout.

This kind of prevalence-weighted test is a game changer. Shifting to a weighted approach will help customers and antimalware vendors understand how their products perform in the real-world, based on real malware prevalence and impact.

There are a few caveats to such a test. The most significant is the prevalence data itself. Where would this prevalence data come from and how would it be validated? Ideally the data can be generated and composed by an antimalware industry collaboration. The MMPC is contributing to this data and is working with other independent testers to validate it.

With the participation of the MMPC and other antimalware vendor collaborators it is possible to produce the best and most meaningful set of on-demand test results yet. This is the next step in our continued journey with independent antimalware testers to drive more relevancy into testing.

Joe Blackbird
MMPC


Driving Unit Tests from Cloud Load Test

$
0
0

 

Visual Studio Load Testing has always made it easy to create Load Tests. Now with Visual Studio Online it is also easy to verify the performance capacity of your software of 1,000s of users external to your data centers using the Cloud and Microsoft Azure. It has been noted that Visual Studio Load Testing is widely used inside of Microsoft from its inception back in 2005; which begs the question since many of Microsoft development teams are NOT working on web pages, how are they using Visual Studio Load Test?  Many (most?) Microsoft developers are writing services and since Visual Studio Load Test can also drive Unit Tests, this gives our test teams insight into their services performance, capacity and availability.

For instance a large consumer of Visual Studio Cloud Load Test is Microsoft Games Studios and much of their code is a set of highly performant services that our game publishers consume (Billing, Scores, Profiles, etc.) For them, Visual Studio Load Test makes it easy to group unit tests into scenarios and ensure there services are performant and available, regardless the load. This Blog post will walk you through how to easily set up and test your unit tests using Cloud Load Testing. If prefer video, checkout the Load Testing video on Channel 9 where I show off load testing capabilities and also how you can use Application Insights to monitor performance.

Creating the Load Test project

Visual Load Test can be run against any Visual Studio Web Test, Coded UI* or Unit Test. Since the growing trend is for development teams to create REST based services that can be accessed from rich clients, web based clients, or even mobile devices let’s start with a sample that follows this new paradigm- specifically the web API sample: Unit Testing with ASP.NET Web API 2 which of course comes with a set of unit tests we can load test. At this point we could add a load test to the StoreApp.Tests project; but in most cases you will find reasons to not do this: such as the Unit Test project is owned by the development team and the Load Test Project owned by the test team or the fact you can NOT run your load tests with Visual Studio Online (i.e. the Cloud) if the load test is checked into an on-premises Team Foundation Server.

 

clip_image002

To add a “Web Performance and Load Test” project simply choose the File>Add New Project menu and select the Test project category.

clip_image004

Add the Unit Tests to the Load Test for each scenario you want to load test

Adding the Load test to your project (Right click the project > New Item > Load Test) will automatically start the load test wizard where you can add the unit tests you want to load test. While you can use data binding to test different scenarios with a single load test for readability sake most Microsoft teams create a new load test for every scenario they want to load test. In the example shown below this load test would be testing the “Get Product” scenarios.

clip_image002[6]

 

Run your Load Test from Visual Studio Online

At this point you are ready to run your load test from your local machine. If you wanted the Load Test to simulate 10,000 users as this point you would need to acquire computers, install the needed software to run your application + the Microsoft Test Agent. This is now much easier with Cloud Load Test and to enable this all you need to do is open the Local.Testsettings file and select the option: Run Tests using Visual Studio Online. Check out MSDN for a great walk through for getting started load testing.

clip_image010

Collect Performance Counters from Application Insights

A challenge of most cloud-based load test solutions is the lack of access to the machine running the application under test for collecting information like performance counters. In the screen shots below you can see how to select the performance counters collected and this performance data being collected in real time. NEW With Visual Studio Update 3, Visual Studio Load Testing integrates Application Insights so collecting production data –including custom performance counters is now a piece of cake. To see more information on what sort of data and integrating Application Insights please see the MSDN documentation at http://aka.ms/aigetstarted, the Application Insights Blog at: http://blogs.msdn.com/visualstudioalm or the Application Insights Channel9 video series http://aka.ms/aic9

clip_image012

clip_image014

Summary

Historically Development, Test and Operations were very separate efforts with operational efforts like provisioning computers for load testing or collecting of production data while testing live services involved a lot of cross team effort. Visual Studio Online tools not only reduces this friction through shared tools– in cases such as Cloud Load Test actually reduces the effort needed, by dynamically provisioning and de-allocating load resources using Microsoft Azure. Checkout this FAQ to answer any questions you have about cloud-based load testing or if you need help troubleshooting.

 

*While Visual Studio Load Test can run Coded UI Tests.  It is not generally recommended and attempting to run a load test with a Coded UI Test from Visual Studio Online you will see it fails as the Visual Studio Online (Cloud) based test agent will not have access to your application’s user interface-which is how Coded UI Tests run.  The reason Coded UI tests are not generally recommended from a load test is the the UI will create a performance bottle neck i.e. issuing lots of commands to the single keyboard or mouse will either simply queue them or in the case of parallel runs mix up the commands causing erroneous results.  (Imagine a set of clicks not intended to be run in File Explorer sending a right click and another click bringing up the “format command”….)

Looking at Memory Usage on Hosts when Creating a New VM

$
0
0

In my house I have two Hyper-V servers running multiple virtual machines with dynamic memory enabled.  This can make it a bit tricky when I want to create a new virtual machine - and I need to figure out the best server to use.  Thankfully - this little bit of PowerShell comes to the rescue:

 "Hyper-V-1", "Hyper-V-2" | %{"Memory Available on " + $_ + " : " + ("{0:N2}" -f (((get-vmhost $_).MemoryCapacity / 1GB) - ((get-vm -computername $_ | measure MemoryAssigned -sum).sum / 1GB))).ToString() + " GB"}

"Hyper-V-1" and "Hyper-V-2" are the names of my hosts.  This snippet gets the total memory in each host, subtracts the memory currently being used by virtual machines, and shows the results.  Like this:

So I can see that Hyper-V-2 has more memory available right now.

This is obviously a simple approach (it does not account for changing memory demand) but it is quick and easy to do.

Cheers,
Ben

Free ebook: Building Cloud Apps with Microsoft Azure

$
0
0

9780735695658f

Last week MS Press published a free ebook based on the Building Real-World Apps using Azure talks I gave at the NDC and TechEd conferences.  The talks + book walks through a patterns-based approach to building real world cloud solutions, and help make it easier to understand how to be successful with cloud development.

Videos of the Talks

You can watch a video recording of the talks I gave here:

 Part 1: Building Real World Cloud Apps with Azure

 Part 2: Building Real World Cloud Apps with Azure

eBook Downloads

You can now download a completely free PDF, Mobi or ePub version of the ebook based on the talks using the links below:

Download the PDF (6.35 MB)  

Download the EPUB file (12.3 MB)  

Download the Mobi for Kindle file (22.7 MB)

Hope this helps,

Scott

Sample C# code for using the latest WMI classes to manage Windows Storage

$
0
0

 

This blog post shows a bit of C# code to use the Windows Storage Management API (SM-API) classes that were introduced in Windows Server 2012 and Windows 8.

You can find a list of these classes at class described at http://msdn.microsoft.com/en-us/library/hh830612.aspx, including MSFT_PhysicalDisk, MSFT_StoragePool or MSFT_VirtualDisk.

I found a number of examples with the old interface using the old classes like Win32_Volume, but few good ones with the new classes like MSFT_Volume.

This is some simple C# code using console output. The main details to highlight here are the use of System.Management and how to specify the scope, which allows you to manage a remote computer.

Please note that you might need to enable WMI on the computer, which can be easily done with the command line “winrm quickconfig”.

 

Here is the source code, for the console application, which lists information about volumes and physical disks on the local machine.

 

using System;
using System.Text;
using System.Threading;
using System.Management;

namespace SMAPIQuery
{
    class Program
    {
        static void Main(string[] args)
        {
            // Use the Storage management scope
            ManagementScope scope = new ManagementScope("\\\\localhost\\ROOT\\Microsoft\\Windows\\Storage");
            // Define the query for volumes
            ObjectQuery query = new ObjectQuery("SELECT * FROM MSFT_Volume");

            // create the search for volumes
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
            // Get the volumes
            ManagementObjectCollection allVolumes = searcher.Get();
            // Loop through all volumes
            foreach (ManagementObject oneVolume in allVolumes)
            {
                // Show volume information
                if (oneVolume["DriveLetter"].ToString()[0] > ' '  )
                {
                    Console.WriteLine("Volume '{0}' has {1} bytes total, {2} bytes available", oneVolume["DriveLetter"], oneVolume["Size"], oneVolume["SizeRemaining"]);
                }
            }

            // Define the query for physical disks
            query = new ObjectQuery("SELECT * FROM MSFT_PhysicalDisk");

            // create the search for physical disks
            searcher = new ManagementObjectSearcher(scope, query);

            // Get the physical disks
            ManagementObjectCollection allPDisks = searcher.Get();

            // Loop through all physical disks
            foreach (ManagementObject onePDisk in allPDisks)
            {
                // Show physical disk information
                Console.WriteLine("Disk {0} is model {1}, serial number {2}", onePDisk["DeviceId"], onePDisk["Model"], onePDisk["SerialNumber"]);
            }

            Console.ReadLine();
         }
        }
    }

 

Here is some sample output from this application:

 

Volume 'D' has 500104687616 bytes total, 430712184832 bytes available
Volume 'E' has 132018860032 bytes total, 110077665280 bytes available
Volume 'F' has 500105216000 bytes total, 356260683776 bytes available
Volume 'C' has 255690010624 bytes total, 71789502464 bytes available

Disk 2 is model SD              , serial number
Disk 0 is model MTFDDAK256MAM-1K12, serial number         131109303905
Disk 3 is model 5AS             , serial number 00000000e45ca01b30c1
Disk 1 is model ST9500325AS, serial number             6VEK9B89

In Conversation with John Platt

$
0
0

You’ve heard from John Platt a few times on this site, including his introductory post on What is Machine Learning? and this piece where he talks about Twenty Years of Machine Learning at Microsoft. Larry Larsen from Channel 9 recently got the opportunity to have an in-depth conversation with him. See what John has to say about AI, Machine Learning and his focus on Deep Neural Networks.

You can catch the full interview with John here, and here's a short clip of him demystifying Deep Learning. The full article is posted to the “Inside Microsoft Research” blog here.

ML Blog Team

Free download: System Center Management Pack for SQL Server 2014

$
0
0

downloadgreenWe first released this a few months ago but I still get questions about it every now and then so in case you missed it, the System Center Management Pack for SQL Server 2014 is available to download using the link below.

The System Center Management Pack for SQL Server 2014 enables the discovery and monitoring of SQL Server 2014 Database Engines, Databases, SQL Server Agents and other related components. This Management Pack is designed to run by System Center Operations Manager 2007 R2 (except dashboards), System Center 2012 Operations Manager or System Center 2012 R2 Operations Manager.

The monitoring provided by this management pack includes performance, availability, and configuration monitoring, as well as performance and events data collection. All monitoring workflows have predefined thresholds and complimentary knowledge base articles. You can integrate the monitoring of SQL Server 2014 components into your service-oriented monitoring scenarios.


In addition to health monitoring capabilities, this management pack includes dashboards, diagram views, state views, performance views, alert views and diagnostic tasks that enable near real-time diagnostics and remediation of detected issues.

You can find more information and a download link here: System Center Management Pack for SQL Server 2014

J.C. Hornbeck| Solution Asset PM | Microsoft GBS Management and Security Division

Get the latest System Center news onFacebookandTwitter:

clip_image001clip_image002

System Center All Up: http://blogs.technet.com/b/systemcenter/
System Center – Configuration Manager Support Team blog: http://blogs.technet.com/configurationmgr/
System Center – Data Protection Manager Team blog: http://blogs.technet.com/dpm/
System Center – Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
System Center – Operations Manager Team blog: http://blogs.technet.com/momteam/
System Center – Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center – Virtual Machine Manager Team blog: http://blogs.technet.com/scvmm

Windows Intune: http://blogs.technet.com/b/windowsintune/
WSUS Support Team blog: http://blogs.technet.com/sus/
The AD RMS blog: http://blogs.technet.com/b/rmssupp/

App-V Team blog: http://blogs.technet.com/appv/
MED-V Team blog: http://blogs.technet.com/medv/
Server App-V Team blog: http://blogs.technet.com/b/serverappv

The Forefront Endpoint Protection blog : http://blogs.technet.com/b/clientsecurity/
The Forefront Identity Manager blog : http://blogs.msdn.com/b/ms-identity-support/
The Forefront TMG blog: http://blogs.technet.com/b/isablog/
The Forefront UAG blog: http://blogs.technet.com/b/edgeaccessblog/

Visual Studio 2013 Update 3 now available

$
0
0

With around 60 new features Visual Studio Update 3 has value through the entire development process from the new SDKs and emulators for Windows Phone and Windows Store development to the ~20 new features for Web developers including updates to ASP.NET Identity and Entity Framework.  For team members focused on Application Lifecycle workflows there is a ton of new value for you too!  If you are in a rush to get started you can skip directly to: Download Visual Studio 2013 Update 3 (also available on MSDN subscriber downloads). 

For an end to end view of Visual Studio Update 3 please see:

 

For folks focusing on Application Lifecycle tools below is a list of top ALM Features in Visual Studio Update 3:

  1. CodeLens for Git improvements
  2. CodeLens Processing pipeline performance improvements
  3. Release Management deployments using PowerShell Desired State Configuration
  4. Trigger deployments to Chef managed environments from Release Management 2013
  5. Deploy to Standard or Azure environments in Release Management 2013
  6. Agent-less deployments in Release Management 2013
  7. View Source in the CPU Usage tool
  8. Memory Usage Tool for WPF and Win32 Applications
  9. Diagnosing memory issues with the new Memory Usage Tool in Visual Studio
  10. Get Application Performance Counters of your choice during load runs with Visual Studio Online
  11. Test Plan and Test Suite Customization
  12. Application Insights Azure Portal Integration
  13. Improved diagnostic search across your logs with Application Insights

CodeLens

The Code Lens team has delivered performance optimizations, usability enhancements and a bunch of new features for Git users. For instance when you work with source control in Git and work items in TFS, you can view the CodeLens work items indicators for Git to obtain information about the work items associated with a method, property, or class.

clip_image001

Diagnostics

The diagnostics team have been on fire in terms of shipping enhancements in this Visual Studio Update with 10 new experiences being shipped by this team alone. One of my favorite Application Insights demos is going directly from a performance event to an Intellitrace log and then to the line of code that caused that performance degradation….MAGIC!

clip_image002

Team Foundation Server

The Team Foundation Server Team has been very busy – but much of their work was delivered through Visual Studio Online and new features like the ability to use Organization IDs and Integration into the new Azure portal. That said they have not forgotten about their on premises sweetheart and have added the ability to traverse the group hierarchy and you can now show or hide the In Progress items in the backlog.

clip_image003

Release Management

Since the RC announcement Release Management has had the most features added. The ability to use PowerShell Desired State Configuration for deployments, be able to trigger Chef environments, agentless deployments and deploy to Azure and On-premises environments.

clip_image004

Test Tools

The Test Tools team continues to deliver test tools, functionality and value online. In the Test hub of Team Foundation Server Web Access you can now add custom fields and custom work flows for test plans and test suites, Manage Test Suites permission for granting access to test suites and track changes to test plans and test suites by using work item history. Cloud-based Load Tests can now deliver both standard and custom performance counters through integration with Application Insights.  For more information on this and how to use Cloud Load Test to drive unit tests please see: Driving Unit Tests from Cloud Load Test 

clip_image005

Application Insights

If you haven’t looked at Application Insights in a while you may be shocked to find out Application Insights no uses Visual Studio Online to display monitoring data. Application Insights now is a 1st class citizen in the new Azure Portal:

https://portal.azure.com In addition the team has made searching your diagnostics logs even easier.

clip_image006


VS/TFS 2013.3 (Update 3) released

$
0
0

Today we released the final version of Visual Studio 2013 Update 3 and Team Foundation Server Update 3.  You can get the update using the link below.  Note that the link includes both the Visual Studio & TFS downloads (among other things) if you expand the Details section on the page.

Download Visual Studio 2013 Update 3

See the full list of new features in the Visual Studio 2013 Update 3 RTM release notes and bug fixes in the Visual Studio 2013 Update 3 KB article.  You can also watch a video about the release.

I’ve blogged about the features before but I’ll reiterate that some of the biggest enhancements in this Update include:

  • CodeLens support for Git
  • Configurable display on in progress items on the backlog (a common customer request)
  • Application Insights tooling
  • Desktop app support in the memory usage tool (including WPF)
  • Release management support for PowerShell/DSC and Chef
  • Test plan/suite customization, permissions, auditing, etc.
  • Cloud load testing integration with Application Insights for app under test telemetry/diagnostics
  • and a substantial number of bug fixes (listed in the KB article).

Along side Update 3, we are also releasing an updated CTP of our Cordova tooling with support for Windows 7.  Make sure to look for that too.

Thanks for all of your help with validating early drops of this release and we hope you like it.  We’re happy to be delivering it and already turning our attention to Update 4.  I’m hoping we’re going to see several very nice improvements to the TFS Agile planning tools in that release plus a lot more.  Stay tuned.  I suspect we’ll ship the first CTP of Update 4 in a couple of months.

Brian

Visual Studio 2013 Update 3, Azure SDK 2.4, Windows Phone 8.1 Update and Apache Cordova Tools CTP 2

$
0
0

Today I am excited to announce the release of three important updates for Visual Studio developers. 

  • Visual Studio 2013 Update 3 a feature-filled update for all Visual Studio 2013 users.
  • Azure SDK 2.4 an updated SDK of Azure tools for Visual Studio developers to take advantage of the cloud for infrastructure, platform, and dev/test services.
  • Windows Phone 8.1 Update including new emulators to help developers test their apps on the latest Windows Phone 8.1 release.
  • Multi-Device Hybrid Apps CTP 2.0 and update preview release of tools for Visual Studio for building iOS, Android and Windows apps with HTML and JavaScript using the Apache Cordova™ framework.

Together, these releases reflect our focus on continuously delivering great new features and improvements for Visual Studio 2013 users and on continuing our investment in Visual Studio’s tools for mobile-first, cloud-first application development.

Visual Studio 2013 Update 3

Visual Studio 2013 Update 3 is now generally available for download, and will soon be pushed as an update for Visual Studio 2013 users. 

Update 3 brings tons of new features for Visual Studio developers: Application Insights integration for new and existing projects, CodeLens supports for Git, multi-monitor support for Windows Store app development, test plan customization with TFS 2013 Update 3, View Source support in the CPU Usage diagnostics tool,  improvements to Code Map, Azure WebJobs integration, new Windows Phone emulators and much more.

Check out the Update 3 overview video below and the full release notes for complete details.

Application Lifecycle

The CodeLens feature in Visual Studio 2013 Ultimate provides information about a declaration in C# or VB source code directly at the point of attention, based on local information as well as source control data.  In Update 3, support for Git source control has been added, making it easy to track commits related to a class or method.  This works with any Git repo: local, Git in TFS, or cloned from other services such as GitHub.

Understanding how your applications are being used and how they are performing is critical for any project. With Visual Studio 2013 Update 3, Application Insights is now part of Visual Studio, and can be integrated into your Web and Store projects directly from the New Project dialog (for new projects) or the solution explorer (for existing applications).

 

Diagnostics

Memory usage is a critical component of delivering great mobile app performance.  Visual Studio 2013 introduced a new Memory Usage diagnostics tool for Windows Store and Windows Phone Store applications.  In Update 3, this tool has been extended to support WPF and Win32 application.

Code Maps are a Visual Studio 2013 Ultimate feature that allows you to map relationships in complex code bases to gain insights on application structure and architecture.  In Update 3, Code Maps have improved zoom controls, the ability to create maps from DLLs, and color-coded links to more quickly understand relationships.

 

Web and Azure

A custom JSON editor was added to Visual Studio 2013 Update 2, with support for colorization, syntax errors reporting, outlining and JSON Schema.  In Update 3, the JSON editor now also supports formatting and brace matching.

Azure WebJobs make it simple to run any console application as a scheduled or on-demand job in Azure.    In Update 3, WebJobs support is now integrated into Visual Studio, available from the Solution Explorer for any console application.

For more details on all of these features and more in Visual Studio 2013 Update 3, see the Visual Studio blog.

Azure SDK 2.4

The Azure SDK 2.4 is available now for both Visual Studio 2012 and Visual Studio 2013.

For Virtual Machines, Visual Studio developers can now configure and create snapshots, create new virtual machines from saved snapshots, and remote debug 32-bit virtual machines.  And for Storage, developers can now get read access to geo-redundant storage, and can view storage activity logs. 

For more details, see the Azure blog.

Multi-Device Hybrid Apps

In June we released a first preview of Apache Cordova tools for Visual Studio.  These tools provide an end-to-end development experience in Visual Studio for building Android, iOS and Windows applications using HTML and JavaScript with the Apache Cordova framework.

Today, we are releasing an updated CTP2 of the Multi-Device Hybrid Apps tools.  CTP2 includes support for developers on Windows 7 desktops, debugging support for Android <4.4 and across-the-board quality, reliability and performance improvements.

For more details, see the post on the Visual Studio blog.

Summary

Today’s releases deliver new features and improvements for every Visual Studio 2013 developer, along with a particular focus on mobile-first, cloud first development with Visual Studio. Visual Studio 2013 Update 3, Azure SDK 2.4, Windows Phone 8.1 emulators and the Multi-Device Hybrid Apps CTP 2.0 tools are all available for download now.

Namaste!

Visual Studio 2013 Update 3 RTM Available

$
0
0

Today we released Update 3 for Visual Studio 2013 (you can read more on Brian Harry’s blog and Soma’s blog). To upgrade you can either download the update or install a full version of Visual Studio 2013 with Update 3 already installed from these links:

In addition to new features, this update also offers reliability fixes and bug fixes, including:

  • CodeLens. CodeLens is an editor productivity feature available in Visual Studio Ultimate; with this update, CodeLens can show authors and changes to files that are in Git repositories. If you use Git for source control and TFS for work item tracking, CodeLens work item indicators now provide information about work items associated with a method or class.
  • Code Map. Code maps help you avoid getting lost in large code bases, unfamiliar code, or legacy code by visualizing relationships among multiple pieces of code. This update adds colors to links on code maps to make it easier for you to navigate. You can also drag and drop binaries from File Explorer into a directed graph in Visual Studio to immediately start exploring the code. Check out MSDN for how to map dependencies in specific code using code maps in Visual Studio.

CodeMap

Managed Memory Dump Analysis

  • CPU and Memory Usage tool. The CPU Usage toolin the Performance and Diagnostics hub now enables you to navigate from a function name in the Call Tree to the definition of that function in the editor so that you can easily see the code that is using CPU in your application. We have also made improvements to the Memory Usage tool such as support for Win32 and WPF applications (.NET 4.0 and up on Windows 8.1) and the ability to force garbage collections in managed apps.

CPU and Memory Usage Tool

  • Notification Hub. When we release a Visual Studio Update for you to download, the Notifications badge will turn yellow (in the upper right hand corner of the IDE). The badge also now acts as a toggle so you can easily use one click to open the hub and one click to close the hub.
  • ALL CAPS. The change in our menus to use all capital letters was one of the areas about which we received a lot of feedback so a while ago we added a registry key that disabled the ALL CAPS menus in VS 2012. To make the setting more discoverable and to enable it to remain set as you upgrade across Visual Studio versions, we have now added a Tools Options setting under the General Environment settings that lets you set your preferred menu bar styling. We also roam this setting so it’s available on all your devices
  • Testing. This update includes many updates to test capabilities in Visual Studio. Top features include the ability to customize test plans and test suites, ability to use work item history to track changes made to test suits and the owner of the changes, enhanced security for test suites, and cloud based load testing capabilities with application insights for monitoring performance.
  • Release Management. To better manage the release of your applications you can now deploy your app to an on-premises environment or a Windows Azure environment without having to set up a Microsoft Deployment Agent on each machine. You can use Windows PowerShell, or Windows PowerShell Desired State Configuration (DSC). You can also deploy to servers that are not running a Windows operating system when you use Chef. For more information, see Manage your release.
  • Visual Studio Graphics Analyzer. Diagnosing DirectX rendering and performance issues is tricky and the Visual Studio Graphics Diagnostics tools help. In Update 3, we have enhanced the Graphics Analyzer to analyze graphics frames and to view the impact of shader code changes without re-running the app. You can easily configure capture options in Tools Options under Graphics Diagnostics.
  • WebJobs Tooling. We have added support for Microsoft’s Azure WebJobs in Update 3. You can now create standard Console Projects in Visual Studio solutions that can be published to Azure Websites as either continuous, triggered, or scheduled WebJobs. We have also added support for two-factor authentication in One ASP.NET templates for MVC, Web Forms support, and enabled creation of ASP.Net projects using WAAD when signing in with Live Id. Checkout this Channel 9 video to learn more.
  • Application Insights.Application Insights, Microsoft’s service for monitoring production web sites and Windows Store apps, is included in this update. We have improved the account setup experience so accounts can be setup in Azure without requiring a Visual Studio Online account.

You can learn more about the full list of new Update 3 features in the release notes and bug fixes in the KB article.

Other important releases

I also want to highlight some related releases announced recently that provide additional features and functionality for Update 3 users. These releases are all compatible with Update 3 and in some cases are required for Update 3.

  • Multi-Device Hybrid Apps. You can use the Multi-Device Hybrid Apps CTP 2.0 release to build mobile apps using JavaScript or Typescript for iOS, Android, Windows Store, and Windows Phone using Update 3’s version of tooling for Apache Cordova. To learn more check out Multi-Device Hybrid apps. Visual Studio 2013 Update 3 is not compatible with CTP 1.0 & 1.1 for Multi-Device Hybrid apps. (Minimum edition required: Professional).
  • Azure SDK 2.4 RTM. The recent Azure SDK 2.4 RTM release includes tools to manage virtual machine configuration and set up remote debugging for 32-bit virtual machines, and tools to provision Geo-Redundant Storage. You can download Windows Azure SDK for 2013, Windows Azure SDK for 2012, and Windows Azure SDK for .NET.
  • IntelliTrace Stand-alone Collector. The standalone IntelliTrace collector provides a more practical alternative to remote debugging an application in production. You can use the collector to record the execution of your application on a remote machine by saving it into an .itrace file and playing it back on your local development machine with Visual Studio. For more information about the collector, see this MSDN article.
  • Windows Phone 8.1 Update Emulators. Windows Phone 8.1 Update was released this morning and is ready to download. This release provides additional emulator images to Visual Studio 2013 Update 2 or later that can be used to create and test apps that will run on devices that have Windows Phone 8.1 Update.
  • Visual Studio Tools for Unity. As we mentioned earlier this week, the Visual Studio Tools for Unity (formerly UnityVS) are available for download, free for Visual Studio Professional and higher.

Many of the features and bug fixes in this release come from your feedback. Thank you for sharing these suggestions with us on our UserVoice site and through the thousands of Send-a-Smile and Send-a-Frown actions you sent us from inside the IDE. If you find a bug please send it to us the Visual Studio Connect site.

clip_image006[3]

John Montgomery, Director of Program Management, Visual Studio Platform

John has been at Microsoft for 15 years, working in developer technologies the whole time. Most recently before working on the Visual Studio core development environment, he was working on the tools for Windows 8 development

Visual Studio 2013 Update 3 Released & July Content Rollup

$
0
0

Visual Studio 2013 Update 3 Released!

The latest update for Visual Studio 2013 is now available for download.  You can read about all the new features on the Visual Studio blog, Soma’s blog and Brian Harry’s blog.  There are some important changes to the publishing of SharePoint apps.  Specifically, the autohosted app for SharePoint program is closed. New autohosted apps are not accepted by SharePoint Online anymore. Existing autohosted apps can still run and be updated at this moment. The Office team will post future updates on the Office blog. The Publish Wizard has been updated accordingly to give you a warning about the autohosting change.

We also released an update to the Microsoft.LightSwitch.Client.JavaScript.Runtime.  This release contains bug fixes to the table sorting, some issues with textbox scrolling and the completion of the bookmarking feature that was included in Update 2. You can now update your existing LightSwitch projects using the Manage NuGet Packages dialog or the Package Manager Console.

Download Visual Studio 2013 Update 3

Community and Content Rollup – July 2014

This month is light on the content as many of the team members are enjoying their summer vacations and taking advantage of the awesome weather here in the Pacific Northwest. Our community champion Michael Washington doesn’t seem to ever take a vacation though, as he’s been busy speaking at events and writing another book! Check it out.

(Did I miss anything? Post a comment below!)

LightSwitch at SoCal Code Camp & New Book Coming Soon

Michael Washington from the famous LightSwitchHelpWebsite.com spoke at the SoCal Code Camp on LightSwitch and CBAs. If you ever get a chance, make sure and attend one of his sessions – many tips & tricks from the experts. Thanks Michael for the free training!

clip_image002

We’re also all anticipating his latest book release! Here’s the printed proof. Keep an eye out for the downloadable versions soon on LightSwitchHelpWebsite.com.

clip_image004

Team Posts

Community Rock Star Articles

Thanks everyone for your awesome contributions in July!

Forum Answerers

Thanks to all our LightSwitch forums contributors! Josh Booker tops the contributors list for this month. Thank you, everyone, for helping make the LightSwitch community a better place. It’s selfless dedication like this that makes our community rock.

kjjxa4uq

LightSwitch Team Community Sites

clip_image005

Become a fan of Visual Studio LightSwitch on Facebook. Have fun and interact with us on our wall. Check out the cool stories and resources. Here are some other places you can find the LightSwitch team:

LightSwitch MSDN Forums
LightSwitch Developer Center
LightSwitch Team Blog
LightSwitch on Twitter (@VSLightSwitch, #VS2013 #LightSwitch)

 

Happy coding!

-Elizabeth Maher, Senior SDET, Cloud Business Apps Team

Windows platform developer August updates

$
0
0

This morning, the Windows platform team has released three new Windows platform developer updates available for you:

  • Visual Studio 2013 Update 3 is now available, providing a number of productivity improvements for the Windows platform developer
  • The Windows Phone 8.1 Update emulator package is also now available, providing you with the latest phone image to test your app
  • And the Windows Phone 8.1 Update is also now available via the Windows Phone Preview Program for Developers, enabling you to run your apps on a physical phone running the latest update

In this post, I’d like to provide a quick lap around these three updates, and provide some context around what they add to your developer toolkit.

Visual Studio 2013 Update 3

While today’s Visual Studio Update contains a whole lot of productivity goodness for the Microsoft developer (see Soma’s blog post for more details), I’d like to call out three new capabilities available that improve the Windows app building experience:

  • You can now use a Push Notification wizard to connect your Windows app (client or phone) to a .NET Azure Mobile Service.
  • Sockets are now available for you to use in your Windows apps, adding another networking option for your WinRT-based apps
  • DirectX graphical debugging tooling improvements help DX devs be more productive – including some bug fixes and the addition of a command line tool in the DX remote MSI package to allow for capturing a graphics trace on a remote system without having to install the entire Windows SDK or Visual Studio.

To get Update 3, head on over to the Visual Studio download page.

Windows Phone 8.1 Update

Today, we are also making Windows Phone 8.1 Update available to our developers, both via emulator packages and a physical phone update. Today’s update continues the Windows Phone tradition of making phone updates available ahead of general consumer availability, and providing you with the opportunity to test your apps and games with the update before your customers start doing so.

As shown off by JoeB last week, there’s a ton of end-user goodness in the update (check out Joe’s Update 1 post for more info). However, you’re a developer, and you’re likely wondering what’s in the update for you. Overall, the update contains no new developer APIs, but it does contain a number of OS improvements that are sure to improve the overall experience your customers will have with your app. Here are three Update 1 improvements that I believe are worth calling out:

  • Consumer VPN support brings peace of mind to phone users wanting to access an app’s backend services in a safe and secure manner.
  • There are a number of Bluetooth connectivity improvements in the update, improving the BT integration with cars and headsets, and we’ve added a new Bluetooth Personal Area Network (PAN) profile. Also of note on the BT-front, the team has added some additional APIs for device manufacturers to make it easier to build companion apps for their devices and to enable notifications to be more easily pushed from the phone to a wearable device.
  • On the user start screen, the Store app now sports a live tile to help developers get discovered and installed more often, and the new Live Folders capability should help make it easier for you to be found and launched. :-)

store-tile-1 store-tile-2 store-tile-3

To grab the bits and start seeing how your app runs on the update:

  • You can now download the Windows Phone 8.1 Update emulator package from the Windows Dev Center download page.
  • To update your phone to the Windows Phone 8.1 Update, you’ll need to use the Windows Phone Preview for Developers program. Once your phone is opted in, you need to go into ‘Settings’ | ‘Phone update’ and check for an update; if you’re not seeing the update, verify that the ’Preview for Developers’ app is installed and that the ‘Enable Preview for Developers’ checkbox is selected.

Apache Cordova Tooling Update with Support for Windows 7

$
0
0

This week, we released CTP 2.0 of our Extension for Multi-Device Hybrid App Development which enables developers to build apps for iOS, Android, and Windows using Apache Cordova™. This preview release, the third in three months, delivers several big features requested by customers via UserVoice, Twitter, StackOverflow and email– including support for more operating systems and debugging Android devices less than version 4.4 (“KitKat”).

Support for Windows 7 and 8. According to our data, nearly 15% of developers who attempt to install the Cordova extension are using Windows 7 or 8. Prior to this release, those developers would have had to upgrade to Windows 8.1 – which isn’t always convenient or even possible in an enterprise environment. So, starting with CTP 2.0, developers running Windows 7+ (including Windows Server 2012 R2) can install and use the same toolset previously available only on Windows 8.1.

Windows 7 machine running Multi-Device Hybrid Apps

Windows 7 machine running Multi-Device Hybrid Apps

Get up and running quickly with a well-configured dev environment. Developers who have tried building Cordova projects using other tools have told us many times over: it can take days to build a well-configured dev environment. With a dozen different dependencies and hundreds of possible version combinations – let alone environment configurations – it’s hard to know what setup will work. Using CTP 2.0, Visual Studio will guide developers through download, installation and configuration of every link in the tool chain to get developers up and running quickly. When developers open a project, Visual Studio will also perform a system diagnostic check to ensure the dev environment remains healthy. If not, Visual Studio will offer suggestions to fix the problem.

Installer takes care of the 3rd party tools acquisition and configuration

Installer takes care of the 3rd party tools acquisition and configuration

Visual Studio runs system diagnostics to ensure dev environment remains healthy

Visual Studio runs system diagnostics to ensure development environment remains healthy

More debug targets for Android. With about 82% of in-market Android devices supporting a version other than 4.4 (“KitKat”), there’s a huge demand for accurate debugging on both tethered devices and emulators running Android <4.4. However, the debugging protocols most tools use didn’t become available until 4.4. Fortunately, there’s another option and with CTP 2.0, Visual Studio supports it. Using a relatively inexpensive license for jsHybugger, developers can now use Visual Studio’s debug tools against tethered devices and emulators running Android 2.3 to 4.4.

Running a Multi-Device Hybrid App on a tethered Android device

Running a Multi-Device Hybrid App on a tethered Android device

Over 300 bug fixes. Our first two releases, CTP 1.0 and 1.1, provided a great taste of what’s to come, but there’s no need to hide it: these are still developer previews and have a few rough edges. Thanks to customers posting to StackOverflow, Twitter, and blogs, we identified and fixed over 300 bugs to improve the overall product reliability, performance, and behavior. Among other things, developers can expect to find improved error messages, better installation logic for 3rd party dependencies, and faster builds.

MSDN Documentation. Developer feedback for documentation of our first release was very positive and our expanded documentation is even better. We updated and migrated the 80-page PDF tome to MSDN so developers can retrieve the most up-to-date documentation via their web browser.

Give it a try

Visual Studio 2013 customers can download and install CTP 2.0 of the extension for Multi-Device Hybrid Apps today. And, of course, we’d love to hear your feedback. You can connect directly with the product team via UserVoice, Twitter, StackOverflow and email.

 

imageRyan J. Salva, Program Manager, Visual Studio Client Tools Team

Ryan works on the Visual Studio Client Tools team where he looks after HTML, CSS and JavaScript. Today, he focuses primarily on tooling for Apache Cordova and Windows Store applications. However, he comes from a 15 year career in web standards development

Announcing new Web Features in Visual Studio 2013 Update 3 RTM

$
0
0

Today, the Visual Studio team announced the release of RTM version of Visual Studio 2013 Update 3.  Our team added a few useful features and did some bug fixing in this update to improve the web development experience. 

Our team also released Azure SDK 2.4 SDK today, you can read the detail here.

Microsoft ASP.NET and Web Tools 2013.3

Added Scaffolding Support for ASP.NET 5.2 technologies (MVC, Web API)

With this update, scaffolding will correctly detect what are the versions of NuGet packages that the project is using. For example, if the project is still using ASP.NET MVC 5.1.2, then scaffolding will use 5.1.2, instead of 5.2.

JSON editor improvements

Added Auto-formatting

Auto formatting is now part of the JSON editor and is turned on by default. You can turn off auto-formatting from Tools->Options->Text Editor->JSON->Advanced:

clip_image002

Added Brace Matching

Brace and brackets match highlighting are just like in C# and JavaScript editors now.

clip_image003

CSS editor improvements

Improved Selectors level 4 IntelliSense

We’ve improved IntelliSense support for Selectors Level 4, which will now support more selector patterns making it easier for developers to implement them in their markup.

clip_image005

Added drag-and-drop of fonts, images and.css files from solution explorer into .css files.

When editing a .css file with only body{} inside, drag and drop the following files from the solution explorer:

1. a font file to anywhere in the editor

2. Drag and drop an image file to somewhere inside the body tag

3. drag a css file (e.g. bootstrap.min.css) file to anywhere in the editor

You will get auto-generated css code like the following:

clip_image007

Added support for two-factor authentication in One ASP.NET templates for MVC and Web Forms

The new MVC template includes basic implementation of “two-factor authentication”. You can follow this instruction to plugin Email service and SMS service, and enable the project for two-factor authentication.

Moved ASP.NET Facebook Template to Visual Studio Gallery

The One ASP.NET new project dialog will no longer list Facebook as an option for a project template. Over the past several months Facebook made changes to their application development APIs that were incompatible with the ASP.NET MVC Facebook support. We've fixed the Facebook package and renamed it to Microsoft.AspNet.Facebook. This package is now available on NuGet gallery. As part of this change and to allow us to change the template more rapidly, we are now shipping the ASP.NET Facebook template as a Visual Studio Extension on the Visual Studio gallery. You can download this template from here.

Enabled creation of ASP.Net projects using AAD when signing in with Microsoft account

To see the change, let’s run the following steps. Step 1 to 3 are the same as in previous version.

1. Login to Azure management portal, go to “ACTIVE DIRECTORY”, click the Microsoft row which is auto enabled with your Microsoft account.

clip_image009

2. Click on DOMAINS to get your domain

clip_image011

3. You can use this domain to create a web application with Organizational Account. Click OK in the following dialog.

clip_image013

4. Click OK, you will see a Sign in page to verify organizational account. You can now use your Microsoft account to sign on, in addition to the user@yourmicrosoftADdomain.onmicrosoft.com. Both account certainly need to have Administrator privilege.

clip_image014[1]

Note: You can use Microsoft account only to provision your application on the AD. When signing into your application at runtime, you still need to use an organizational account user@yourmicorsoftADdomain.onmicrosoft.com .

Added support for publishing Microsoft Azure WebJobs in Update 3.

Now, developers can create standard Console Application projects in their Visual Studio solutions that can be published to Azure Websites as either continuous, triggered, or scheduled WebJobs. Console Application projects can also be published from the Visual Studio Solution Explorer as WebJobs to Azure Websites. It’s never been easier for developers to add background processing to their existing ASP.NET web applications.

On any console application, right click the project name and select “Publish as Azure WebJob…”. You will see the following dialog:

clip_image016[1]

Click OK and go through the normal Azure publish dialog, you’ll publish the WebJob project to the chosen Azure website.

clip_image017[1]

After 1st publish, you will see “webjob-publish-settings.json” file being created, storing the values you’ve set from the “Add Azure WebJob” dialog. From now on, running “Publish as Azure WebJob…” will directly go to the normal Azure publish dialog. Only if you remove this JSON file, you will see the “Add Azure WebJob” dialog again. For more information about the new WebJobs deployment feature, see How to Deploy Azure WebJobs to Azure Websites.

 

ASP.NET MVC 5.2

ASP.NET Web API 2.2

ASP.NET Web Pages 3.2

ASP.NET Identity

Microsoft released ASP.NET Identity 2.1.0 in this update. We added support for SignInManager. SignInManager, making it easier to add Two-Factor authentication, account lockout, and other security features when you log on. For more information about this feature, go to this blog post.

Entity Framework 6.1.1

Microsoft released EF 6.1.1 in this update. For more information, go to this blog post

WebDeploy 3.5 refresh

We released a Web Deploy 3.5 refresh in Visual Studio Update 3 to enable integration with SQL Server 2014. You can also download it from here

IIS Express 8.0 June 2014 Hotfix

We released an IIS Express 8.0 June 2014 Hotfix in Visual Studio Update 3. This hotfix addresses an issue with IIS Express 8.0 where creating a site and using certain character combinations in the site's folder, Internet Information Services (IIS) 8.0 Express does not start. You can also download it from here.

Known Problems

When creating a default C# ASP.NET Web Application from MVC, WebAPI or SPA template with individual authentication, generated Views\Account\ _SetPasswordPartial.cshtml and _ChangePasswordPartial.cshtml files contain invalid model.

In file _SetPasswordPartial.cshtml,

@model .Models.ManageUserViewModel
Should be changed to:
@model .Models.SetPasswordViewModel

In file _ChangePasswordPartial.cshtml,

@model Microsoft.AspNet.Identity.ManageUserViewModel
Should be changed to:
@model .Models.ChangePasswordViewModel

Similar problems exist for generated VB projects as well.

In file _SetPasswordPartial.vbhtml,

@ModelType ManageUserViewModel
Should be changed to:
@ModelType SetPasswordViewModel

In file _ChangePasswordPartial.vbhtml,

@ModelType ManageUserViewModel
Should be changed to:
@ModelType ChangePasswordViewModel

Summary

We hope you can evaluate these new features and let us know about any bugs and suggestions.  For VS features, please use Connect to submit bugs, ASP.NET UserVoice to submit and vote for suggestions, and the ASP.NET Forums for Q&A.  You can also visit the following open source sites to leave suggestions and open issues directly:


Visual Studio 2013 Update 3 released

$
0
0

Earlier today, Visual Studio 2013 Update 3 was released.  This update offers a number of small but useful enhancements for VSTO developers:

 

#1:  Support for .NET 4.5.2 and beyond, and the de-coupling of Office versions from .NET versions.

We heard a lot of feedback on this on MSDN forums, with developers asking to mix-and-match versions of Office with versions of .NET Framework.  With the latest update, the .NET Framework and Office versions are fully de-coupled:  both the Office 2010 and 2013 project templates can work with any of the 4.0+ .NET Framework versions (.NET 4.0, 4.5, 4.5.1, 4.5.2, and beyond).

 

#2:  Better design-time support for SHA256 code-signing certificates.

In the past, using a SHA256 code-signing certificate would require a runtime dependency on having .NET Framework 4.5 or above installed on the runtime machine.  Running the program without .NET 4.5 installed would result in an error:  “Exception reading manifest …  System.Deployment.Application.InvalidDeploymentException: Manifest XML signature is not valid. ---> System.Security.Cryptography.CryptographicException: SignatureDescription could not be created for the signature algorithm supplied.”

With the latest update, Visual Studio now generates a manifest in a way that can be read and run by .NET 4.0, even if the certificate happens to be SHA256.

 

#3:  Easier unit-testing.

One question I’ve often heard is about unit-testing VSTO projects.  Part of the confusion was caused by VSTO projects not appearing in the “Add Reference” dialog.  Unit-testing VSTO projects would therefore require creating a separate class library project, moving code into it, and then referencing this class library from both the VSTO project and the Unit Test project.  While this separation made sense for complex projects, it was overkill if all you wanted as to unit-test a handful of classes and methods.

Starting with VS 2013 Update 3, the “Add References” restriction for VSTO projects has been removed:  you can now create a Unit Test project and reference the VSTO project directly, without the intermediary step of moving your code to a separate class library project.

 

We hope you find these updates a welcome addition to your Visual Studio 2013 experience.  And, of course, for those interested in the new apps for Office & SharePoint model or in the Office 365 APIs, there’s a variety of tooling enhancements and platform capabilities that went into Visual Studio 2013 Update 2 a few months back (and included in this cumulative Update 3).  Check out http://dev.office.com or the Office Dev Blog for more information.

 

- Michael Zlatkovsky | Program Manager, Visual Studio

Connecting AD and Azure AD: Only 4 clicks with Azure AD Connect

$
0
0
Howdy folks! We've heard consistent feedback that integrating your on premises identities with Azure AD is harder than it should be.  There are too many pages of documentation to read, too many different tools to download and configure, and far...(read more)

Presentation on Visual Studio Database Projects Integration with Visual Studio Team Foundation Server

$
0
0

This post contains the slide deck from a recent presentation on how to integrate Visual Studio Database Projects with Visual Studio Team Foundation Server. We have also recently published an accompanying blog with extended content, details and scenarios: http://blogs.msdn.com/b/ssdt/archive/2014/07/24/sql-server-database-projects-and-team-foundation-build.aspx.

 (Note: A link to the complete slide deck can be found at the bottom of the post)

SQL Server tooling inside Visual Studio is a broad topic covering plenty of great functionality. In this presentation we will focus on integrating database projects with TFS and using Database Unit Testing. There are plenty of existing presentations covering the other parts of the SQL tooling experience.

To understand the benefits of using project-based development it helps to examine common development practices and explain the benefits and drawbacks of each one. Let’s start with simple, connected based development experience using SSMS with database changes occurring directly against the database. In this case the database is the source of truth and periodic backups are used to restore the DB if there’s a mistake / an error occurs.

This is popular due to the speed of development (make a change and it is instantly applied), but has a number of drawbacks. For instance it’s hard to understand what changes have occurred, why they were applied, or even what the overall structure is. One developer might have removed the View or Table a stored procedure calls but this won’t be noticed until you call into it. There’s also a lack of separation between development and deployment, which impacts the ability to migrate the DB to other servers among other things. So this has some benefits and lots of drawbacks.

Moving to a more advanced, and likely more common scenario in many development environments, a lot of developers continue to use connected development in SSMS but with the use of a set of scripts that represent the database creation and modification steps needed to get it into its current state.

In this example, it’s common to define the initial state (v1) of the DB, then have a set of ALTER statements that move that to v2, another for v3, etc. This supports developing against one DB and then deploying changes to a staging server before deployment. It’s a definite step up from the more basic version of connected development and many teams use this today. It does have drawbacks too:

  • It’s still not always clear what objects are in the database / what the expected state is for any give version, since use of ALTER syntax makes it harder to keep track of the actual design.
  • This means it’s still possible to have invalid stored procedures without noticing it due to the lack of warning and errors.
  • Tracking of changes (what changed and why) relies on code comments spread across the ALTER statements
  • For any given table/view the actual structure and decisions on code changes are spread across the original definition, subsequent ALTER scripts, and possibly a set of comments elsewhere.

These drawbacks are always going to be there when using pure connected development. It’s a reason we feel there are strong benefits to using an offline, project-based development pattern just like in other languages.

Here’s what a simple project-based development scenario looks like in Visual Studio, suitable for 3-5 developers. The previous set of incremental deployment scripts on a file share somewhere are replaced with only using pure Data Definition Language (DDL) describing how a table / view etc. should look. This has a big immediate benefit since you can see exactly how a given table should look for any version of your database. The changes (why they changed, what the change was) are stored by use of source control – Git in this example. That has built-in functionality for showing what changed, and commit comments explain why.

You may be wondering how this works moving from v1 -> v2 -> v3? Before you needed incremental scripts, how does that work here? The answer is that the DacFx deployment technology used by our SQL tooling automatically generates those scripts for you. When developing and testing locally you’ll be making lots of small changes which are automatically applied (try hitting F5 on a database project to see your latest changes pushed to a local development DB, for instance). When publishing full changes to a staging server, you can choose to script out those changes for validation by a DBA or directly publish the changes using Visual Studio / our SqlPackage command line tools.

In addition, now that the entire DB structure is in a project you get build-time validation to detect issues such as the broken stored procedure we would’ve missed in the connected world. This is really invaluable as a tool and can significantly improve long term maintainability.

The big benefits here are therefore that versioning becomes much less of a concern, you get lots of extra validation (build time, using the local deployment loop, and via validation of the scripts generated for full publish), and your change information is documented and stored in a consistent manner.

Slide8

Getting to a more fully-fledged development pipeline you may wish to separate out the Developer and DBA roles. Here we go through an example of that, the only real change being that the developer outputs a Dacpac (a single file representing the expected database state, usable to deploy across Visual Studio, SSMS and our SqlPackage command line tooling) or a set of pre-build scripts build against the expected target server state, then hands these off to a DBA for deployment to the staging server.

This is a common scenario in many companies where devs are not given access to staging / production servers. The tooling handles this well and readily supports scenarios such as this.

Let’s show how all this works in Visual Studio, moving from the connected world to a project-based system with source control integration and some basic unit tests to validate your functions or procedures work as expected.

What we’ve shown so far can work great for teams of 3-5 developers. However using a fileshare makes things harder than it needs to be, and doesn’t get the benefits that come with a full featured tool such as TFS. TFS isn’t just source control, it also has automated build support using a build agent, with team-level validation, integration with your standard development processes (resolve work items on checkin, roll back changes if they break the build / break unit tests).

Here we see a full development process, based on a developer checking kicking off a continuous integration build on the TFS server. This adds another layer of testing and validation, and only if it succeeds will it output a drop to the build share. Hence there’s a known quality bar to what gets output there so DBAs can have confidence when deploying to a staging server.

 

 

Not much needs to be said about Visual Studio Online. It works the same as TFS on-prem, and in many ways works with less work than an on-prem installation. It’s great and something we encourage you to explore.

Note that support for our latest SQL Tooling update, including SQL Server 2014 support, is expected in late August 2014. In the future we expect the time between when SQL Server tooling updates are released and the time these are applied to Visual Studio Online build servers to be much shorter, so you can be sure that you’re testing using the most up to date code.

 

 

 

Facebook for Windows Phone gets a big update today

$
0
0

Today, Facebook for Windows Phone is receiving a major update that brings an updated design and new features that were previously available in beta. Along with the overhauled user experience and improved app performance, Facebook for Windows Phone now supports more languages and has the ability for you to upload videos taken with your Windows Phone device directly to from the app. It also supports integration with Facebook Messenger for Windows Phone. And for devices with Windows Phone 8.1, it will now connect directly with the People Hub. In Windows Phone 8.1, Facebook contacts, events, and photo albums are now powered by the Facebook for Windows Phone app. If you have the app, you should receive the update shortly. If you don’t have it, download it here from the Windows Phone Store.

Screenshot7

Microsoft’s journey to Cloud Cadence

$
0
0

Last week the Visual Studio product owner Sam Guckenheimer keynoted the Agile 2014 Conference. 

In his presentation he went through our teams changes/learning's to adopt a DevOps workflow. 

Unfortunately I wasn’t able to attend as we had several conferences here in Redmond/Seattle but luckily we can check it out online here:

KEYNOTE: Journey to Cloud Cadence 

image

Also love the conversation about the session!

https://twitter.com/lynnecazaly/status/493762682089406464/photo/1

Embedded image permalink

Description: Sam describes a ten-year transformation at Microsoft Developer Division from a waterfallian box product delivery cycle of four years to Agile practices enabling a hybrid SaaS and on-prem business, with a single code base, triweekly delivery of new features in the service, and quarterly delivery for on-prem customers. He presents three waves of improvement and learning: first, the reduction of technical debt and other waste to gain trustworthy transparency, second, the increase in the flow of customer value, and third the shortening of cycle time to allow continuous feedback and continuous business improvement.
The current scale of the business is that there are millions of customer accounts each on–premise and in the cloud. This hybrid situation will exist for many years, and is a necessary part of the business.
Sam will discuss both the organizational issues of transformation and give examples from monthly service reviews of key practices and metrics, such as hypothesis-driven development, funnel analysis, performance monitoring, MTTD and MTTR improvement, log analysis, root cause remediation, scale unit replication and canarying, common code base, testing cycles, georeplication, feature flags, compatibility and  compliance testing. He will share his thoughts on the lessons learned in moving from a traditional software delivery team to a modern DevOps team.

Sam Guckenheimer is the author of Agile Software Engineering with Microsoft Visual Studio, from Concept to Continuous Feedback. Currently, Sam is the Product Owner for the Microsoft Visual Studio product line. In this capacity, he acts as the chief customer advocate, responsible for strategy of the next releases of these products. Prior to joining Microsoft in 2003, Sam was Director of Product Line Strategy at Rational Software Corporation, now the Rational Division of IBM. Sam lives in the Seattle area with his wife and three children in a sustainable house they built that has been described in articles in Metropolitan Home and Pacific Northwest magazine.

Viewing all 13502 articles
Browse latest View live