Visual Studio for Mac is replacing Xamarin Studio

Xamarin Studio 5.1

Xamarin Studio 5.1.4

Xamarin Studio 5.1.4 is a hotfix release based off of Xamarin Studio 5.1.3.

Fixes

  • Fixed: Xamarin Studio is randomly wiping out the .csproj and leaving an empty project file (Android).

Xamarin Studio 5.1.3

Xamarin Studio 5.1.3 is a hotfix release based off of Xamarin Studio 5.1.2.

Fixes

  • The iOS Designer was misgenerating partial methods associated with Actions. The bug caused them to semi-randomly appear/disappear from the .designer file.

Xamarin Studio 5.1.2

Xamarin Studio 5.1.2 is a hotfix release based off of Xamarin Studio 5.1.0. It does not contain the fixes in the Xamarin Studio 5.1.1 Alpha.

Fixes

  • Fixes a regression introduced by Android SDK Tools r23 and Android Build-tools r20 that changed the path of the zipalign tool.

Xamarin Studio 5.1.1

  • Preview of Xcode 6 iOS designer support. Using Xcode 6 also requires Xamarin.iOS 7.9.1.

Fixes

  • Fixed rendering on Yosemite.
  • Fixed opening of projects on Yosemite.
  • Fixed scrolling in the Edit Reference window on Yosemite.
  • Fixed misplaced context menus on Yosemite.

Xamarin Studio 5.1

Android

The target selector in the main toolbar now allows selecting the emulator or device to be used for running the application. The old Project / Android Device Target menu is gone and devices are shown in the main toolbar:

To be able to disambiguate between emulators that are running and non-running, they are grouped in the target dropdown. Physical devices are grouped together with running emulators. If an emulator doesn't support the SDK level that the project requires, it will still be shown in the list, but it will be disabled.

Besides the devices and emulators, the target selector also has an option for starting the device manager.

When the user executes or starts debugging, the selected device or emulator will be used as the target. In the event of there being no emulators defined or devices connected then the user will be prompted to create an emulator and start it up. If the selected target is an emulator that is not currently running then that emulator will be started and the execution will block until the emulator has started up.

If the user stops execution while the emulator is starting up then the IDE stops waiting for the emulator but the emulator will continue to start up. If the emulator is already running then the emulator window will be brought to the front

The Uninstalling Package command will now uninstall from the selected device if it is running or connected - it doesn’t start up the emulator in order to uninstall it.

The Manage Devices dialog also have some small changes. If there are no suitable devices connected or emulators to execute the target, the devices dialog will be shown in "selector mode”. All emulators and devices will be shown, but devices that do not meet the minimum android version required will be labeled as such.

Debugger

  • Big performance improvements. Some debugger operations are now as much as 4x faster.
  • Added support for support for DebuggerNonUserCodeAttribute (if the developer has enabled "Debug project code only” in their debugger settings), DebuggerHiddenAttribute, and DebuggerStepThroughAttribute. The debugger will no longer stop in code with any of the aforementioned attributes.
  • Added support for the DebuggerStepperBoundaryMethodAttribute which causes the debugger to resume execution when code with this attribute is encountered.
  • Added a "Set Next Statement” command in the editor’s context menu which sets the next statement to be executed when the program resumes execution, allowing developers to re-run previous statements or jump over statements in the current method.
  • Added a "Show Next Statement” command in the editor’s context menu which will jump to the next statement that will execute when the program resumes (useful if you’ve scrolled in the file and/or switched to another file tab).
  • Added a "Run To Cursor” command to the editor’s context menu which will resume (or build & start) execution of the program, stopping when it reaches the cursor (it will stop sooner if a breakpoint is reached before it reaches the cursor).
  • Added support for client-side evaluation of simple properties (e.g. properties that essentially just manually implemented auto-properties).
  • Fixed usage of DebuggerTypeProxyAttributes.
  • You can now invoke generic methods in the Immediate Pad (and Watch Pad) w/o needing to explicitly provide generic type args assuming that the generic type arguments can be deduced based on the parameter types. In other words, if you have a method such as `int MethodName (T item)`, entering the expression `MethodName (5)` will now resolve this to `int MethodName (int item)` and will successfully invoke the method.

Xamarin Designer for iOS

  • Fixed several issues where storyboards could not be loaded.
  • The 'custom controls have been disabled' warning message was incorrectly being activated after building/rebuilding a solution under certain circumstances. This has now been fixed and so should appear less frequently.
  • Improve UISlider, UIStepper and UIPageController min/max/current properties behavior.
  • Improve display of floating point values in property entries.
  • Fixed cases where UIViews were incorrectly marked as under-constrained.
  • Improved handling of Headers and Footers inside UITableView.
  • Fixed an issue with the UITableViewController.Refreshing property.
  • Improved error handling when an incompatible type is used as the 'customClass' for a UIView or UIViewController.
  • Honour the setting to hide UINavigationBars and UIToolBars in all cases.
  • Several issues with UIBarButtonItem have been fixed. We now allow seguing from these and exposing them as outlets.
  • Improved handling of UIToolBars on UINavigationControllers.
  • Fixed an issue where the badge in UITabBarItem was not always removed when the badge text was removed.
  • Fix hint text being sometimes incorrectly committed as a value on Windows
  • Fix text entries clipped incorrectly with long values on Mac.
  • Adjust property panel animations to be smoother and less intrusive.
  • Visual refresh of several icons.

Changes to Actions and Outlets

User defined outlets (outlets which do not have the [GeneratedCode] attribute) inside the .designer.cs file will be retained as-is on a best-effort basis. Previously the iOS Designer would attempt to regenerate some of these which could result in the signatures of Actions changing.

The iOS Designer typically generates Actions of the form

[Action ("onClicked:")]
[GeneratedCode ("iOSDesigner", "1.0")]
partial void OnClicked (UIButton button) { }

There are times when you may want to use the same method for multiple different NSObject subclasses. If you wish to do this, you can move the declaration of this action to your main code file (not the designer one) and then modify the signature to read

[Action ("onClicked:")]
[GeneratedCode ("iOSDesigner", "1.0")]
partial void OnClicked (NSObject button) { }

The designer will understand this and will not auto-generate a 'UIButton' overload.

The designer also supports generating actions with no parameter. If your storyboard file contains an action which has a selector name with no trailing ':', then the Designer will create an action of the form

[Action ("onClicked")]
[GeneratedCode ("iOSDesigner", "1.0")]
partial void OnClicked () { }

NuGet

Added support for searching and installing a specific version of a NuGet package

The Add Packages dialog and Xamarin Studio’s unified search can now be used to search for all versions, a range of versions, or a specific version of a NuGet package. The search syntax is:

PackageId version:VersionNumber

Examples:

AutoMapper version:2.1
AutoMapper version:2.1.0
AutoMapper version:*

Added support for solution specific NuGet.config files

NuGet will chain together multiple configuration files allowing a solution to define its own configuration by including a NuGet.Config file. The main use of this is to define package sources that are available when a particular solution is opened in Xamarin Studio.

Other Fixes

  • Fixed proxy credentials not requested for https package source
  • Fixed Web.config transforms not being applied when installing NuGet packages (e.g. Nancy.Hosting.Aspnet)
  • Fixed XDT remove transforms (Xml Document Transformations) on Mono (used in Microsoft.AspNet.Mvc NuGet package).

Version Control

  • Improved speed for loading projects that are under Git and status operations.
  • Decreased memory usage for Git.
  • Fixed several issues in the Push Changes… dialog.
  • Fixed Revert To Revision command. This new unwinds the selected files to the selected commit.
  • Fixed Subversion issues with files being locked.
  • Windows Subversion client is now loaded on demand.
  • Fixed issues with Ignored items in Version Control showing up as Unversioned.
  • Fixed issues with multiple updates in Review Changes and Commit view.

Shell Improvements

  • Native file dialogs are now used for file system interactions on Windows.
  • Several icon updates
  • Find in Files now shows the project to which a file belongs in the results pad.
  • Improved general look of Xamarin Studio for Windows in HDPI displays.

Other Improvements and Bug Fixes

  • Fixed issue that caused context menus to not behave properly on Mac (test instructions).
  • Fixed: Out-of-solution exceptions are not visualized.
  • Fix issue when saving file links in shared projects
  • Fixed Move To Class and Create Class/Interface commands when used in shared projects.
  • Fixed issue that caused files to be incorrectly added to projects referencing a shared project.
  • Allow standard .net build actions in shared projects.
  • Fixed rendering of the region section in text editor breadcrumb

Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.